Skip to content

Guide for agencies and businesses · Updated October 2026

WordPress maintenance checklist: weekly, monthly and quarterly

A WordPress maintenance checklist covers backups, updates, security, uptime, speed and the forms visitors use to reach you. Check that the site works every week, tune performance and clean up every month, and prove you can recover every quarter. Before any update: a fresh backup, a test on staging and a rollback plan.

Cadence
Weekly, monthly, quarterly
Recovery
Files + database, tested off-site backup
Updates
Staging first, verify live afterward
Proof
Record tests, issues and next actions

Editorial review: October 16, 2026

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.

Recurring reviews, supported by automated checks between visits
Task areaWeeklyMonthlyQuarterly
BackupsCheck jobs + off-site copyReview retention + failuresRestore to staging
UpdatesTriage + staged updatesReview deferred itemsReview compatibility
SecurityAlerts + malware scanUsers + login logsAccess + PHP support
AvailabilityUptime + SSL alertsExpiry + alert routingRecovery drill
Visitor tasksSubmit every formCrawl links + review 404sFull journey review
PerformanceInvestigate regressionsVitals + cleanupPlugin + hosting review
↑ Back to top

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.
↑ Back to top

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.
↑ Back to top

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.
↑ Back to top

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

↑ Back to top

Find a plugin conflict without guessing

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

Staging debug settings in wp-config.php
// 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');
↑ Back to top

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.

↑ Back to top

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.
Monthly maintenance report, fill in actual results
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 top

Site 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

↑ Back to top

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 top

Frequently 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.

Keep reading

Tell us what you need

Write to [email protected] or message us on WhatsApp. You get a reply from Fernando, not a sales team.