What maintenance actually covers, how often each task is genuinely needed, what it costs, and how to run the whole thing on a schedule instead of by hand.
“WordPress maintenance” sounds like a single service, which is why it gets underestimated. In practice it is a set of unrelated tasks bundled under one name, each with its own cadence and its own failure mode. Updates protect against compromise. Backups protect against everything else. Performance work protects revenue. They are not substitutes for one another.
The reason WordPress specifically needs this is its plugin model. A typical site runs a dozen or more third-party plugins, each maintained by someone else, on their own release schedule, with their own security record. That extensibility is why WordPress runs so much of the web, and it is also why an unmaintained WordPress site degrades faster than a static one.
Almost every WordPress maintenance checklist lists “take backups” and stops there. Taking a backup is the easy half. The half that matters is restoring one — to a staging site, on a normal Tuesday, before you ever need it. A meaningful share of backup systems fail on first restore: incomplete database exports, missing uploads, a plugin that stored data outside the tables. Discovering that during an actual incident is how a bad morning becomes a bad quarter.
Cadences below suit a typical business site. A WooCommerce store handling payments should move updates, backups and malware scanning to daily.
| Task | How often | Why this cadence |
|---|---|---|
| Check the site loads and checkout works | Weekly | Catches failures no automated uptime ping will see — a 200 response and a working basket are different things. |
| Apply plugin, theme and core updates | Weekly | The single highest-value task. Most compromised WordPress sites are running a known, patched vulnerability. |
| Verify a backup actually restores | Monthly | An untested backup is a hope. Restore one to staging before you need it at 2am. |
| Review users and roles | Monthly | Remove the contractor who left, downgrade the client who does not need admin. |
| Scan for malware and file changes | Weekly | Detection speed decides whether it is a cleanup or a rebuild. |
| Check for broken links and 404s | Monthly | Accumulates silently after every content edit and migration. |
| Review Core Web Vitals and page weight | Monthly | Performance degrades gradually as plugins and images pile up. |
| Clean the database | Quarterly | Post revisions, expired transients and orphaned metadata bloat backups and slow queries. |
| Audit installed plugins | Quarterly | Remove what is unused; replace what is abandoned. Every plugin is attack surface. |
| Check PHP version and hosting stack | Annually | Running an unsupported PHP version means security fixes stopped arriving. |
| Renew domains, SSL and licences | Annually | The most avoidable outage there is. |
Backups are the only part of WordPress maintenance that turns a catastrophe into an inconvenience, and they are the part most often misconfigured. Three failures account for nearly all of it.
A backup stored in a folder on the same hosting account is not a backup. It shares a fate with the thing it protects: if the server fails, the account is suspended, or an attacker gets write access, both copies go together. Off-site means a different provider — object storage, a separate cloud account, somewhere with its own credentials.
A WordPress site is both. The database holds posts, pages, users, settings, orders and most plugin data; the filesystem holds uploads, themes and plugin code. Restoring one without the other gives you a site that loads and is missing everything that matters. Check that your backup includes the uploads directory in particular — it is usually the largest thing on the site and the most commonly excluded to save space.
This is the one that catches experienced people. Backups run nightly and report success for a year; the first actual restore reveals that the database export was truncated, or that a plugin stored its data in a custom table nobody included. Restoring to a staging site once a month is unglamorous and it is the only thing that converts a backup from an assumption into a fact.
Long enough to survive a problem you did not notice immediately. Compromises and corrupted content are often discovered weeks later, and a rolling seven days of backups is no help if the damage happened on day nine. Thirty days of daily backups, with monthly snapshots kept longer, covers the realistic cases. For a store, keep more — the cost of storage is trivial next to the cost of reconstructing orders.
Step-by-step: how to back up a WordPress site, covering the manual database and file export as well as the automated route. For core releases specifically, the latest WordPress version tracks what shipped and what to check before applying it.
Almost none of it is sophisticated. WordPress sites are rarely targeted individually — they are found by automated scanners looking for known vulnerable versions of popular plugins, then exploited at scale. The implication is reassuring and slightly boring: keeping software current handles the overwhelming majority of the threat.
The maintenance tasks that carry real security weight:
If a site has already been compromised, maintenance is not the right tool and cleanup is a different job with its own sequence — isolate, identify entry point, clean, rotate every credential, then patch what let them in.
Updated on a schedule, with conflict checks before anything goes live.
Site-health diagnostics, cache clearing, and Core Web Vitals checks.
Vulnerability scans, user-role review, and plugin-risk monitoring.
Find and fix broken links, missing meta and alt text across the site.
Every change is snapshotted first — roll back anything in one click.
Each client gets a branded report of exactly what was done, automatically.
| Capability | Traditional maintenance service | WP Duty |
|---|---|---|
| Turnaround | Hours to days (human queue) | Minutes, on a schedule |
| Cost per site | $30–$200 / month | From a few dollars / site |
| Undo a change | Restore from backup (slow) | One-click, per action |
| Across many sites | Manual, site by site | One instruction, whole fleet |
| Client reporting | Manually written | Auto-generated, white-label |
Ask anyone maintaining WordPress sites where the time goes and the answer is rarely the work itself. Applying an update takes seconds. What takes the time is the surrounding ritual: logging into each dashboard, checking what changed, spot-checking the front end afterwards, noting it down for the client, and repeating that per site. The task does not scale badly — the ceremony around it does.
That is the specific thing automation should target. Not replacing the judgement about whether a major version bump is safe, but removing the twelve identical logins that surround a decision you already made.
Unattended maintenance is only sensible when the recovery path is fast. An automated update that breaks a checkout page at 3am is worse than no automation, if fixing it means restoring last night's database and losing a day of orders. Snapshotting before every change makes the reversal one click rather than a recovery project — which is what makes running it unattended a reasonable thing to do at all.
The economics change completely somewhere around the tenth site. Below that, maintenance is a chore you absorb. Above it, it is a scheduling problem: the work is not harder, there is just more of it arriving at once, and the cost of context switching between client environments starts to dominate the cost of the work.
This is also where the risk profile changes. One disclosed vulnerability in a plugin you have standardised on is now present on every site you manage. The response you need is one instruction applied across the portfolio, not an afternoon of logins while the window stays open.
Managing multiple WordPress sites covers the fleet workflow, and WordPress site management covers the day-to-day operation side.
No single change makes a WordPress site slow. What happens is that a launch-day site is fast, and then over two years it gains a slider, a chat widget, three tracking scripts, a few hundred uncompressed images and forty thousand rows of post revisions. Each addition is individually defensible. The cumulative effect is a site that takes four seconds to load and nobody can point to why.
That accretion is why performance belongs in maintenance rather than in a one-off optimisation project. An audit fixes the current state; a recurring check stops it drifting back within a year.
Treat the score itself as a diagnostic rather than a goal. A perfect synthetic score on a page that still feels slow to a real visitor on mobile data has optimised the wrong thing.
Everything above applies to a store, with the intervals tightened and two additions. A brochure site that breaks is embarrassing; a store that breaks is losing money for every hour it stays broken, and the loss is measurable, which changes how much maintenance is worth.
A maintenance routine is a scheduled opportunity to notice something before a client does. Most WordPress failures give warning if anyone is looking: memory warnings before a white screen, slow queries before a timeout, a plugin conflict on staging before it reaches production.
The failures worth recognising on sight are a database connection error, the generic critical-error message WordPress shows when PHP fails fatally, and the white screen that appears when a fatal error occurs with display disabled. Each has a small set of likely causes and a standard diagnostic order — and each is far cheaper to resolve when the last change made is known and reversible, which is exactly what a maintenance log gives you.
The practical difference maintenance makes here is narrowing the search. Debugging a site nobody has touched in eight months means considering everything. Debugging one with a change log means starting with the last thing that changed, which is usually the answer.
The troubleshooting section covers each of these errors in full, along with hacked-site recovery and speed optimization.
All three are legitimate. The wrong answer is the fourth option most sites are actually on: intending to do it yourself and not doing it.
You have one or two sites, you are comfortable in the admin, and — the part people skip — you will genuinely put a recurring block in the calendar and honour it. The work is not difficult. The failure mode is not incompetence, it is that nothing forces the task to happen, so it slides until something breaks. If the last six months suggest that is you, pick another option honestly rather than resolving to try harder.
The site earns meaningful money and you want a person accountable when it stops. What you are buying is judgement and someone to call, not the mechanical work. Ask any prospective provider two questions: when did you last test a restore from backup, and what happens if an update you applied breaks the site. The answers separate a real service from a monitoring dashboard with an invoice attached.
The work is repetitive, you have more than a handful of sites, or you are an agency delivering this for clients. The recurring tasks in the table above are almost entirely mechanical — the judgement is in deciding the policy once, not in executing it forty times. Automation earns its place when it removes the ceremony and keeps the reversibility.
These are not exclusive. The common arrangement for an agency is automating the scheduled work, keeping a human on the exceptions, and pricing both into a plan.
Everything above is about doing the work. These cover packaging it, pricing it and getting paid for it.
What to include at each tier, contract wording that prevents scope disputes, and how to move existing clients onto a plan.
Care plans guideThe unscheduled half: response times you can honour, what counts as support, and pricing on ticket volume.
Support plans guideTurn your hours, rate and tooling cost into a floor price and margin for each tier. No signup.
Run your numbersA WordPress maintenance service keeps a site updated, secure and fast — handling plugin and theme updates, backups, security scans, performance checks and broken-link fixes so the site keeps running smoothly. WP Duty does this with AI: you set a routine and it performs the work on a schedule, snapshotting every change so it can be undone.
Updates and security scanning are weekly tasks for most sites, and daily for anything handling payments. Backup restore tests, user reviews and performance checks fit a monthly rhythm. Database cleanup and plugin audits are quarterly, and PHP version and licence renewals are annual. The cadence table on this page breaks it down task by task.
Traditional managed WordPress maintenance typically runs $30–$200 per site per month. WP Duty replaces most of that manual work with AI: plans start free, with paid tiers from $9/month, and the Agency plan at $59/month covers up to 20 sites with fleet automation and white-label client reports.
The common outcomes are a compromise through a known plugin vulnerability that was patched months earlier, a backup that turns out not to restore, and a slow accumulation of broken links and performance debt. None of these announce themselves early, which is why maintenance tends to be neglected until it is expensive.
Yes. WP Duty runs through WordPress's native APIs, snapshots prior state before every change, and lets you require approval for sensitive actions. Anything it does can be rolled back in one click, so AI maintenance is reversible rather than risky.
Automatic updates are right for most sites, because the risk of running unpatched code is usually higher than the risk of an update breaking something. The exception is a site with heavily customised or commercial plugins, where a staging test first is worth the delay. What makes either approach safe is being able to reverse a bad update quickly.
Yes. On the Agency plan, every routine can auto-generate a branded, client-ready report with your logo and name — summarising the maintenance performed over the period and emailed straight to the client.
Free to start. Undo anything. Reports your clients will actually read.
Start free