WordPress maintenance plans: what to include, and what clients pay for

By CompatNav · Published · Last reviewed · 3 min read

Short answer

A maintenance plan is a promise about what you do, how often, and how fast you react. A clear plan has three parts: the routine (backups, updates, checks), the response (what happens when something breaks, and how quickly), and the report (what the client sees each month). Tiers differ by frequency, response time and extras, not by leaving out backups. Add PHP upgrades as a named line item: they are predictable, dated work that clients otherwise only meet when a host forces them.

What every plan includes

Whatever you call it, a plan covers three things. Write each one down, in the client’s words.

  1. The routine: what you do and how often. Backups (and restore tests), WordPress, plugin and theme updates, security and Site Health checks, a look at the site after updates. The maintenance checklist has the full list by week, month, quarter and year.
  2. The response: what happens when something breaks, how the client reaches you, and how fast you react. This is what clients really buy.
  3. The report: what the client sees each month. Without it the routine is invisible, and a plan that looks like nothing is the first one cancelled. See what to put in a maintenance report.

Three tiers that make sense

EssentialStandardPriority
BackupsDaily, restore tested quarterlyDaily, restore tested monthlySeveral a day, restore tested monthly
UpdatesWeekly, after a checkWeekly, tested on staging firstWeekly, staging, and the risky ones scheduled with the client
PHPVersion and end date in the reportCheck for the next PHP version every quarterCheck, upgrade on staging, switch and watch, included
ResponseNext working daySame working dayWithin a few hours
ReportMonthly summaryMonthly reportMonthly report and a quarterly call
Small changesNot includedA set number of minutesA set number of hours

The amounts are yours to set. What makes the table work is that every tier keeps backups and updates: the higher tiers react faster and do more, they don’t remove risk from the cheaper one.

Name PHP upgrades in the plan

PHP versions get security fixes for a fixed time, and php.net publishes the dates years ahead: PHP 8.2 until 31 December 2026, 8.3 until 31 December 2027, 8.4 until 31 December 2028 (php.net). When a version ends, hosts move sites, and plugins written for the old version can stop the site.

That makes PHP upgrades good plan content:

  • They are predictable. You know the date a year in advance, so you can plan the work and the client’s budget.
  • They need a check before the switch. Which plugins will break on the new version is known only after a check; moving from PHP 7.4 to PHP 8 shows why the step can be large.
  • They separate routine from projects. Include the check, the staging test and the switch; quote separately when custom code needs a rewrite.

Write down what is not included

Plans lose money on what nobody wrote down: new pages, design changes, content entry, a plugin that needs replacing. A short not included, quoted separately list protects both sides, and gives you a natural way to offer project work.

Next: pricing

Once the content is fixed, the price follows from your time and your response promise. How much to charge for WordPress maintenance walks through the numbers without guesswork.

Key takeaways

  • A plan promises three things: the routine, the response when something breaks, and the report.
  • Tiers should differ by frequency, response time and extras, never by dropping backups or updates.
  • Name PHP upgrades in the plan: they come on known dates and need a check before the switch.
  • Write what is not included (new features, design changes, content), so the plan stays profitable.
  • A monthly report makes the invisible work visible, and keeps clients subscribed.

Frequently asked questions

What is the difference between a maintenance plan and a care plan?

Mostly the name. Some agencies call the basic routine “maintenance” and add support hours or small changes in a “care” plan. What matters is that the client can read what is included.

Should PHP upgrades be included or billed separately?

Including the check and the switch, and billing fixes to custom code separately, works well: the check is routine, while rewriting an old plugin can take days.

How many tiers should I offer?

Two or three are easy to compare. More tiers make clients hesitate.

Check your own site before you upgrade

CompatNav is a free WordPress plugin. It reads the code of your plugins and themes on your own server and tells you, in plain words, what will break and what will only show notices on the PHP version you choose. It never changes your code. It can’t see problems that only appear while code runs with real data, so a quick check of your site after the upgrade still matters.

Get CompatNav on wordpress.org How it works

Sources

About the code examples: each output is the real output of the code shown, run with the official PHP builds, without a php.ini, with all errors reported and displayed. Only the file path was replaced by a neutral server path.