The maintenance schedule at a glance
Use this as a starting schedule, then adjust it to how often the site changes and what an interruption would affect. A store taking orders needs more frequent database backups than a brochure site with occasional edits.
| Task area | Weekly | Monthly | Quarterly |
|---|---|---|---|
| Backups | Check jobs + off-site copy | Review retention + failures | Restore to staging |
| Updates | Triage + staged updates | Review deferred items | Review compatibility |
| Security | Alerts + malware scan | Users + login logs | Access + PHP support |
| Availability | Uptime + SSL alerts | Expiry + alert routing | Recovery drill |
| Visitor tasks | Submit every form | Crawl links + review 404s | Full journey review |
| Performance | Investigate regressions | Vitals + cleanup | Plugin + hosting review |
Weekly checklist: confirm the site can serve visitors
Record a result and an owner for every failed check
- Verify backup completion and off-site storage.Open the backup job history, check the timestamp and inspect both the file archive and database export at the independent destination. A green plugin badge alone does not prove the backup can be restored.
- Review core, plugin and theme updates.Check Dashboard > Updates and vendor changelogs for security fixes, PHP requirements, dependencies and database migrations. Follow the safe update process below and record any deferred update with a reason and review date.
- Review security alerts and run a malware scan.Use the host or security tool to inspect detections, new administrators and unexpected file changes. Investigate findings before deleting files; a clean scan does not prove the site is free of compromise.
- Check uptime, certificate alerts and the alert recipient.Use an external monitor for the homepage and a critical page, with status and expected-content checks. Send a test alert to the primary contact and backup contact, and confirm both can acknowledge it.
- Test visitor actions on desktop and a cellular connection.Open navigation, contact, search and any booking or checkout journey. Submit every form with a labeled test and confirm inbox delivery, using the detailed checks below.
- Close or escalate failures.Save the affected page, reproduction steps, timestamp and test result in a ticket. A check is complete when it passes or has an assigned owner, next action and agreed review date.
Monthly checklist: performance, cleanup and expiry
- Compare Core Web Vitals on representative pages.Use PageSpeed Insights for the homepage, a content page and a conversion page on mobile and desktop. Review LCP (loading), INP (responsiveness) and CLS (layout stability) where field data exists; use Search Console to find affected page groups, and keep lab results separate from real-user data.
- Verify caching without caching private sessions.Check the host or cache plugin for a cache hit on public pages, then test after purging. Exclude cart, checkout, account and other personalized pages as required by the platform; confirm logged-in content does not appear to another visitor.
- Resize and compress images before adding optimization plugins.Match image dimensions to their displayed size, serve suitable modern formats and set width and height to reduce shifting. Lazy-load below-the-fold images; avoid delaying the main visible image, and compare the same page before and after.
- Clean the database selectively.Back up first and preview a cleanup of obsolete revisions and expired transients with a reputable tool. Keep an agreed revision history, and never delete unfamiliar tables, order data or active plugin records just because they look large.
- Review plugin bloat and pending licenses.List each plugin's purpose, owner, license expiry and overlapping features. Test removal of redundant plugins on staging, then check page rendering, forms and background jobs before removing them live.
- Check expiry and retention settings.Inspect the SSL certificate expiry and renewal status, registrar domain expiry, payment method and renewal contact. Confirm backup retention spans several restore points and that older copies remain available outside the hosting account.
Quarterly checklist: prove you can recover
- Restore an off-site backup into isolated staging.Restore matching files and database, adjust staging configuration, then check login, images, permalinks, forms and sample order records where applicable. Record the backup date, restore result and blockers; never test by overwriting the live site.
- Review recovery access and responsibility.Confirm a named person can reach hosting, DNS, the registrar and independent backups even if WordPress is unavailable. Store recovery codes securely and test the escalation route without sharing passwords in a report.
- Audit the full visitor journey.Review menus, search, contact, booking and store flows on desktop and a phone. Use sandbox payments or a coordinated controlled live test for checkout, then verify confirmation, records and email delivery.
- Review the platform and care-plan scope.Check PHP support status with PHP's supported-versions list and your host, then test any version change on staging. Review abandoned plugins, theme dependencies, capacity, backup frequency and whether the maintenance agreement still matches the site.
How to update WordPress with a recovery path
Minor core releases usually address maintenance or security; major releases can introduce broader changes. Both require verification, and a plugin patch can still change a critical checkout or form behavior.
- Step 1
Inventory changes and read changelogs
Record installed and target versions of core, plugins and themes. Check compatibility, dependency order, PHP requirements, security urgency and any irreversible database changes before selecting a maintenance window.
- Step 2
Take and verify a fresh backup
Before every update, capture matching files and database and verify the off-site copy is accessible. Identify the restore procedure, person responsible and any new orders or submissions a database rollback could erase.
- Step 3
Clone production to protected staging
Use a current clone with matching PHP and relevant hosting settings. Isolate mail, payments and integrations, then run baseline tests so existing faults are not mistaken for update failures.
- Step 4
Apply updates in the supported order
Follow vendor dependencies rather than assuming one universal update order. Update risky plugins such as commerce, builders, forms and integrations one at a time, testing between changes; record each version and result.
- Step 5
Test the changed site
Check desktop and mobile layouts, login, forms, search, checkout and scheduled tasks where used. Inspect the browser console and PHP error log, then compare key pages with the baseline; stop if a critical test fails.
- Step 6
Deploy the tested changes carefully
Take a fresh live backup before applying the tested versions or selectively deploying code. Never push a staging database over live orders or form entries; database migrations need a deliberate deployment and recovery plan.
- Step 7
Verify live and finish the record
Purge relevant caches, repeat critical live tests and confirm monitoring and scheduled backups still work. If a change fails, stop deployment and use the prepared rollback or repair plan while preserving new live data, then document the failure and next action.
Find a plugin conflict without guessing
- Reproduce
Write down one failing action
Record the page, click path, account role, browser, error and recent changes. Reproduce on staging and compare with a clean browser session before changing plugins.
- Isolate
Use session troubleshooting or staging
Use staging by default, especially for checkout and anything that changes data. On live sites, the Health Check & Troubleshooting plugin's troubleshooting mode disables plugins and switches to a default theme only for your logged-in session, so visitors keep seeing the normal site.
- Narrow
Deactivate half on staging
Keep required dependencies together, disable half the candidate plugins and repeat the same test. Test the other half or smaller groups until you identify a suspect, then test it alone and with its interacting plugin or theme.
- Inspect
Read console and PHP errors
Use browser Developer Tools > Console and Network for script failures or failed requests. On staging, enable WP_DEBUG and WP_DEBUG_LOG with WP_DEBUG_DISPLAY false; capture the matching PHP error and timestamp in the protected log.
- Resolve
Retest the complete stack
Try a supported vendor fix, configuration change or compatible version, then re-enable all required plugins and rerun visitor tests. Exit troubleshooting mode, turn temporary debugging off and remove or restrict diagnostic logs before closing the ticket.
// Edit existing definitions before the stop-editing comment; avoid duplicates.
// Replace the sample path with a private location writable by PHP.
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', '/absolute/private/path/wp-errors.log');
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', '0');Verify form delivery and fix broken visitor routes
A success message is only the first check
- Submit a real test on every form.Inventory contact, quote, newsletter, booking and embedded forms, including alternate-language versions. Use a controlled address, label the submission TEST, exercise required fields, consent and upload controls, and check the confirmation page or message.
- Confirm the entire delivery chain.Find the entry in WordPress or the receiving system if storage is enabled, confirm the staff inbox received it, inspect spam or quarantine and verify the autoresponder at your test address. Check the CRM, booking or mailing-list destination as applicable, then remove test records and attachments according to your retention policy.
- Diagnose missing email rather than assuming it was sent.Check the recipient and sender settings, then use an SMTP plugin with an authenticated mail provider if the current delivery route is unreliable. Verify provider requirements for SPF, DKIM and DMARC, inspect sending logs and repeat the actual form submission; an SMTP test email alone does not test form routing.
- Crawl public links and inspect 404 logs.Run Screaming Frog or a link checker monthly, then combine its findings with server or analytics 404 records. Separate broken internal links from bots requesting nonexistent pages, and manually test key navigation, downloads and external destinations.
- Repair at the source and verify the redirect.Update internal links to the final address. Use a permanent redirect for a permanently moved page only when there is a relevant replacement; avoid redirecting every missing page to the homepage, remove chains and loops, and recrawl to confirm the result.
Security controls to verify, not just install
2FA and unique accounts
Require two-factor authentication for privileged WordPress, hosting and registrar accounts where supported. Verify enrollment and secure recovery codes, remove shared admin logins and give each person a named account.
Least privilege
Review Users > All Users monthly and after staffing changes. Remove former users with content reassigned as needed, investigate unknown administrators, and use Editor or another limited role when administrator rights are unnecessary.
Less unused code
Remove unused plugins and themes after checking dependencies. Keep the active theme's parent if required and a maintained fallback theme if it is part of your recovery plan; review all remaining components for updates.
Login protection
Configure rate limiting or login protection at the host or security tool. Test failed-login controls and recovery access, inspect suspicious login patterns and avoid rules that lock out legitimate users or block required integrations.
Disable dashboard file editing
Set define('DISALLOW_FILE_EDIT', true); in wp-config.php before the stop-editing comment, avoiding duplicate definitions. Verify theme and plugin file editors are unavailable; this reduces one editing route and does not prevent every compromise.
Supported runtime and scanning
Check Tools > Site Health > Info > Server for PHP details, confirm the version still receives upstream security fixes and test upgrades on staging. Schedule malware scans, review their results and investigate unexpected users or files even when a scan is clean.
Run the same checklist across client sites
Use a standard runbook with site-specific exceptions: hosting, credentials owner, critical forms, plugins, backup schedule, retention, deployment method and recovery contact. A central dashboard helps track work, but a successful bulk update does not prove each client's site works.
Put these boundaries in the care plan
- Define recurring work and evidence.List update checks, staging tests, off-site backups, restore drills, security scans, monitoring and monthly reporting. Give each site an owner, record exceptions and keep credentials in a password manager.
- Separate response from resolution.Agree coverage hours, urgent contact routes, acknowledgment expectations and how a repair is scoped. State whether malware cleanup, premium licenses, hosting, after-hours work and major compatibility repairs are included or separately quoted.
- Price the agency's own work too.Include client communication, review, reporting and expected exceptions in your costs. Use the white-label WordPress pricing guide to structure a care-plan quote around defined scope.
Site / reporting period / responsible person: [fill in] Updates: [component, old version, new version, test result] Deferred updates: [reason, owner, next review date] Backups: [schedule, last verified off-site copy, retention] Restore test: [last date, staging result, next drill] Security: [scan result, user/access changes, open findings] Availability: [monitor source, incidents, SSL/domain renewal status] Visitor tests: [forms, inbox confirmation, links, checkout if used] Performance: [pages, field/lab results, changes, remaining issues] Next actions: [ticket, owner, priority, agreed date or approval needed]
For delegated delivery, agree branding, access, review and client communication in the white-label WordPress workflow. Scope development or larger repairs through white-label web development, rather than letting them silently expand the maintenance plan.
↑ Back to topSite down or hacked: priorities for the first hour
This is an order of operations, not a promised recovery time. A suspected compromise needs containment and evidence preservation as well as getting the site back online.
- Confirm
Check from outside your network
Use the external monitor and a separate connection to confirm the failure. Check hosting status, DNS, certificate validity and recent changes; record the first observed failure and notify the designated owner.
- Preserve
Save evidence before destructive changes
Ask the host to preserve logs and take a quarantined snapshot of files and database. Treat it as potentially compromised evidence, keep it separate from clean backups and avoid repeated untracked changes.
- Contain
Limit the impact
Work with the host to restrict access or serve a clean maintenance page if the site is malicious. Revoke suspicious sessions and accounts, secure privileged access from a trusted device, and pause jobs that could send malicious mail or spread changes.
- Recover
Choose a known-good recovery path
For an update fault, use the documented rollback while preserving new live records. For compromise, involve qualified help to identify the entry point, clean or restore a verified pre-compromise backup, patch the cause and rotate affected secrets before reopening.
- Verify
Test and keep the incident open
Recheck forms, delivery, login and commerce where used, then monitor for recurring errors or indicators of compromise. Record what is confirmed, what remains uncertain and the next update for the owner; assess whether exposed data requires specialist review.
When to maintain it yourself and when to hire help
DIY can fit when
- You can access hosting, staging and independent backups.
- You can restore a backup and verify forms and critical journeys.
- Someone owns alerts, updates and the maintenance record.
Bring in help when
- You lack a tested recovery path or time to respond to failures.
- Orders, memberships or integrations make database changes risky.
- Conflicts recur, compromise is suspected or client-site volume exceeds your capacity.
Fer Marketing's WordPress maintenance starts from $250 per site per month, with agency volume pricing. It covers updates, security, off-site backups, tested restores, uptime monitoring and a monthly report; agencies can resell the service white-label under their own brand.
For new pages, content edits, forms and integrations, use WordPress site management. Confirm the site's scope, coverage and exceptions in writing, then contact Fer Marketing with the site details and any open issues.
↑ Back to topFrequently asked questions
What belongs on a WordPress maintenance checklist?
Include files and database backups, core/plugin/theme updates, security and access reviews, external uptime monitoring, performance, forms and broken links. Every check should have a verification result and an owner for unresolved issues.
What WordPress maintenance should I do weekly?
Check backup jobs and off-site copies, review updates and security alerts, inspect uptime alerts and test key visitor journeys. Submit every form and confirm inbox delivery, then assign any failures for repair.
What should I check monthly and quarterly?
Monthly, review performance, caching, images, database cleanup, broken links, users and renewals. Quarterly, restore a backup to staging, review recovery access, audit full visitor journeys and reassess PHP support and maintenance scope.
Should I back up before every WordPress update?
Yes, take a fresh backup of matching files and database before every update, including minor releases and plugin updates. Verify an off-site copy is accessible and that someone knows how to restore it.
How often should WordPress backups run?
Base frequency on how much new data you can afford to lose, including orders and form submissions. Schedule backups automatically, keep multiple off-site recovery points and test restoration rather than relying only on job completion messages.
What is staging, and can I push it to the live site?
Staging is an isolated copy for testing updates and changes. Deploy tested code or apply tested versions carefully, but never replace the live database with a staging database over newer orders or form entries.
Are automatic WordPress updates safe?
Their suitability depends on the components and the cost of a failure. Review the actual settings, maintain backups and alerts, and use supervised staging tests for changes affecting critical functions.
How do I troubleshoot a plugin conflict?
Reproduce the problem on staging, then narrow candidates by deactivating groups while preserving dependencies. Where available, Health Check & Troubleshooting's session mode can help isolate components; inspect browser and PHP logs and retest the full stack after the fix.
Why does a form show success without sending email?
The success message confirms only part of the process; routing, mail authentication, spam filtering or an integration can still fail. Check entries and sending logs, confirm both staff inbox delivery and the autoresponder, and retest the actual form.
Does managed hosting replace WordPress maintenance?
Check the hosting agreement because responsibilities vary. Hosting may handle infrastructure and some backups or updates while leaving plugin compatibility, form delivery, content, recovery testing and client reporting to you.
How much does Fer Marketing charge for WordPress maintenance?
WordPress maintenance starts from $250 per site per month, with agency volume pricing. Agencies can resell it white-label; confirm the scope, coverage and any exceptions in writing.
What is the difference between maintenance and site management?
Maintenance focuses on updates, security, backups, monitoring and keeping existing functions working. Site management handles requested content changes, new pages, forms and integrations, with scope agreed for the site.
Send your site details, current maintenance setup and unresolved issues to [email protected]. We can review what needs attention and confirm a written scope for your business or agency.