Skip to main content
Buyer's guide

WordPress Maintenance Plans: What to Pay and What to Demand

What a plan should cover and how often, cited prices from DIY to WooCommerce, the terms to get in writing before you sign, and how to check the work was actually done.

What a WordPress maintenance plan covers (and how often)

What a maintenance plan is

A WordPress maintenance plan is recurring, scheduled upkeep of WordPress core, plugins, themes, backups and security. It is only worth paying for when updates are tested before they go live and you can see proof the work was done.

The schedule below shows what a complete plan covers and how often each task should happen.

Daily: backups, uptime and malware scans

Automated backups run every day, stored away from the site so a server failure does not take them too. Uptime monitoring checks the site around the clock and alerts someone when it stops responding. Malware scanning looks for injected code, suspicious files and known bad plugin versions, so a hack is caught early rather than reported by a visitor.

Weekly: tested updates and key-flow checks

Plugin and theme updates should be tested on a staging environment before they reach the live site, and the plan should state how a bad update is rolled back. After updates, someone checks that contact forms still send and, on a WooCommerce store, that a test order gets through checkout.

Monthly: core updates, performance and reporting

WordPress core updates are the baseline every plan must cover, and they follow the same staging-first rule. Each month also brings a performance check against Core Web Vitals, a broken link scan, and a monthly report that lists what was updated, backed up, scanned and fixed.

Quarterly: restore drills and audits

A backup that has never been restored is unverified, so a quarterly restore drill should prove the backups actually work. The quarterly list also includes a PHP version review, since outdated PHP can hold back newer plugin versions, and a user and access audit that removes old accounts and checks admin roles.

Managed hosting is not a care plan

Managed WordPress hosting looks after the server and the software it runs on. A care plan looks after what runs on that server: core, plugins, themes, testing and reporting. Some overlap, such as backups and PHP versions, is normal. Ask each provider which tasks they own so nothing falls between them.

What a plan costs, and why quotes vary so much

Quotes vary because plans differ in testing, response times, included fix time and risk, not just in the label. The tiers below run from DIY to premium, with each price tied to its source. Compare what each tier includes in writing, not what it is called.

TierPrice (source)What drives the priceWhat is often left out
DIY$0 to $105 per month in tools, plus two to eight hours of your time (DreamHost)Your tool choices, how many plugins you run and how many hours you commitTesting and rollback unless you set them up yourself
BudgetVaries widely; often the lowest quotes on the marketBlind, automated updates with little human timeTesting before updates go live, restore drills, and fix time when an update breaks something
Mid-tierabout $246 per month (Freshysites average)Staging-tested updates, more plugins covered, some developer hoursCheck for a stated response-time SLA and who pays for fixes
Published example: WP Buffs$89, $179, $239 and $359 per month (Maintain, Protect, Perform, Custom; wpbuffs.com, October 2026)Scope grows tier by tier, from basic upkeep to custom workRead each tier's terms for testing, SLA and fix time
Premium or Enterprisestarting at $1,000 per month (Codeable)Response-time SLA, included developer hours, WooCommerce transactions, compliance or accessibility scopeLess is left out, but confirm restore drills and break-fix terms in writing

What to demand in writing before you sign

Staging-tested updates and a stated rollback path

Ask for plugin, theme and WordPress core updates to be tested on a staging environment, a private copy of your site, before they reach the live site. The contract should also say how a bad update is rolled back, who does it and how quickly, so a failed update never becomes your problem to untangle.

Break-fix liability for updates they applied

If a plugin or WordPress core update the provider applied breaks your site, who pays for the fix? Get the answer in writing. A good plan covers repairs caused by its own updates at no extra charge. A weak one bills the fix as extra development hours, which turns routine upkeep into a surprise invoice.

A response-time SLA with stated hours

A service level agreement (SLA) should name response times in hours, not promise help soon. Ask for separate times for downtime and for hacked-site cleanup after a malware scan finds something. Check whether those hours run around the clock or only during business hours, and whether weekends and holidays count.

Restore drills that prove backups work

A backup that has never been restored is unverified. Ask how often the provider actually restores a backup, ideally to a staging copy, to prove it works from start to finish. Ask to see the result of the last drill. If the answer is never, treat the backups as a hope rather than a safety net.

Backup location, retention and your access

Find out where backups are stored, and whether that is somewhere other than the server your site runs on. Get the retention period in writing, meaning how far back you can restore. Most important, confirm you can download backups yourself at any time, without waiting on the provider.

Cancellation, handover and reporting

Cancellation terms should state the notice period and promise a handover of backups, admin logins and any accounts set up for your site. Confirm in writing that your site, content and data belong to you. Then pin down the reporting cadence and what each report must list, so you can check the work.

Verifying your plan

How to check the work was actually done

A monthly report is the visible part of a maintenance plan, but it only counts as proof if you can check it against the site yourself. Here is what to look for and how to test it.

A useful report lists every update made that month, including WordPress core, plugins and themes, with the version number before and after each one. It should also show the dates of recent backups, the results of malware scanning, the uptime percentage from uptime monitoring, any incidents and how they were handled, and the time spent on your site. If a line item is missing, ask why. A plan that includes something but never reports on it gives you no way to know it happened.

You can spot-check a report in a few minutes. Log in to wp-admin, open the Plugins screen and compare the installed version of each plugin with the version the report says it was updated to. Do the same for your theme and for the WordPress core version shown on the Updates screen. If the numbers match, the updates were applied. If they do not, or if plugins the report never mentions are showing pending updates, raise it with your provider.

Backups need a separate check, because a backup that has never been restored is unverified. Ask for evidence of the last restore test: when it ran, which backup was used, what was restored and where, and whether the restored copy worked. A provider that runs restore drills should be able to answer straight away.

Watch for these red flags:

Reports that look identical every month, with the same wording and the same items, which suggest a template rather than a record of real work.

Reports with no version numbers, which make it impossible to check what was updated.

Vague entries such as "all plugins updated" or "site secured" with no detail behind them.

If you see any of these, ask for the underlying details before your next renewal.

DIY or paid? Match the plan to your site type

Doing maintenance yourself is a real option for many sites, as long as you budget the time. DreamHost puts DIY at $0 to $105 per month in tools, plus two to eight hours of your time. WooCommerce stores carry enough risk to justify paying for staging-tested updates and a response SLA.

Site type or optionRisk profileUsual best fitWhat to make sure of
Brochure siteFew plugins and low change riskDIY with automated backups and a management dashboardBackups run on schedule and you have restored one at least once to prove it works
Business or lead-gen siteForms and SEO matter, so a broken form quietly loses leadsDIY if you can commit monthly hours, otherwise a mid-tier planForms are tested after every update and key pages still load and rank
WooCommerce storeCheckout and payment plugin updates put sales at riskPaid plan with staging-tested updates and a response SLAA written rollback path and stated response hours when checkout breaks
DIY time cost (per DreamHost)Your hours are the real price of doing it yourself$0 to $105 per month in tools, plus two to eight hours of your timeBlock the hours in your calendar every month, not just when something breaks
Zeebrar, for people running the work themselvesPlugin updates are the largest recurring DIY taskBulk plugin updates on Pro and Agency plansBlocks versions VirusTotal flagged as malicious; WordPress itself refuses versions needing a newer WordPress or PHP
Zeebrar rollbackAn update can take a site offlineFor updates sent from Zeebrar, the connector backs up an active plugin and restores it if the site returns an errorFull-site backups, staging and uptime monitoring still come from your host or other tools

Your next step: a quick decision path

Path 1: A simple site and a few hours a month

If your site has few plugins and you can spare a few hours monthly, run the schedule above yourself with a management tool. Your action this week: set up automated backups, then do your first plugin update round. Test each update on a staging copy before it reaches the live site, and note how you would roll it back.

Path 2: You want hands-off cover

Get quotes from several providers and score each against the written-terms checklist: staging-tested updates, break-fix liability, a response-time SLA, restore drills and cancellation terms. Hire a freelancer when you have one site and want a direct contact. Choose an agency when you need SLA-backed coverage. Your action: send the checklist with every quote request.

Path 3: You sell maintenance plans

Build your tiers around the same checklist your clients will use. Price by human hours and risk: WooCommerce stores and tighter SLA terms take more work to cover. Make the monthly report the visible deliverable, with versions before and after, backup dates and incidents. Your action: draft a report template this week.

Run client updates from one dashboard

Agencies and freelancers who run the work themselves can manage plugin updates across many sites from one Zeebrar dashboard. Zeebrar blocks versions VirusTotal flagged as malicious, and if an update makes the site return an error, the connector restores the active plugin's old version. Bulk updates come with the Pro and Agency plans.

Running maintenance yourself? Pick the plan that fits

If you run maintenance yourself, compare Zeebrar plans to find the one that fits your sites. Bulk plugin updates are on the Pro and Agency plans, with malware-flagged versions blocked and an automatic rollback if an update causes an error.