WordPress update service

Managed WordPress updates for core, plugins, themes and PHP: backup, staging, screenshot comparison, a release window and a rollback plan. Also for shops with integrations, page builders and other CMSs.

Book managed updates
5.00/5 - (17 votes)
16 min read
Guide
500+ WP projects

I run WordPress updates as part of maintenance on a fixed schedule: first a full backup, then the update on a staging copy of the site, tests, a comparison of screenshots from before and after, and only then the release to the live site in an agreed window. I do not install every new version the moment it appears. Critical security fixes jump the queue, and they also go through staging.

This page covers how often I update what, how a single round runs, what I do when something stops working after an update, and how updates work in a shop with integrations, on a page builder and on systems other than WordPress. The full maintenance service, with backups and monitoring, is described on the WordPress website maintenance page.

How often I update WordPress

The schedule for one site. For a shop I set the windows separately.

Weekly

  • Minor fixes and security releases for core, plugins and themes
  • Updates through WP-CLI on a staging clone
  • Tests of the main paths and screenshot comparison
  • Release to the live site in the agreed window

Monthly

  • Review of major plugin versions and their changelogs
  • Decision: update now or hold the version back
  • Review of administrator accounts
  • Core Web Vitals measurement after the changes

Quarterly and twice a year

  • Quarterly: review of the plugin list and removal of abandoned plugins
  • Twice a year: security review of file integrity, administrator accounts, capabilities and exposed endpoints
  • Twice a year: comparison of staging with the live site
  • PHP version upgrade: on plan, once the plugins and theme are ready

Security updates outside the weekly cycle

A critical security fix does not wait for the weekly round. It goes first, on its own, by the same route: backup, staging, test, release. The exact window for such fixes is written into the quote, because it depends on the reaction time your plan includes.

I learn about vulnerabilities from vulnerability databases, including the Patchstack database and WPScan. When a flaw appears in a plugin you run, I check whether a fixed version exists and whether the flaw affects your configuration.

The WordPress security team is more than 50 trusted experts, including lead developers and security researchers. The same page says that only the latest version of WordPress is officially supported, and that the team backports fixes to older versions as a courtesy. A site left several versions behind can end up without a fix.

How one round of updates runs

The same order for core, plugins, themes and PHP. Only the scope of the tests changes.

  1. Full backup

    Before any change I take a full backup of the database and files. It is the point I return to if something goes wrong on the live site.

  2. Update on staging

    Updates go to a clone of the site first, through WP-CLI. Major plugin versions go only after I have read the changelog.

  3. Tests on the clone

    I test the main paths through the site: forms, login, and in a shop the basket and payment. If a test fails, the change goes no further.

  4. Screenshot comparison

    I take screenshots of agreed pages before and after the update and compare them. A shifted layout, a missing button or a different font shows up here before a visitor sees it.

  5. Release in a maintenance window

    The change goes live in an agreed window, with a snapshot and a rollback plan ready.

  6. Watching after release

    For 24 hours after release I watch closely for side effects. Uptime monitoring checks the site every 1 to 5 minutes.

  7. Entry in the report

    Updates, regressions found on staging and any rollbacks go into the monthly report.

An example from this year: WP Rocket 3.23.2.2 went onto the clone before I moved a site to WordPress 7.1. The fault and the workaround are in WP Rocket, the WordPress 7.1 fatal error and Cloudflare.php.

Screenshot comparison after an update

A functional test checks that the form sends and the basket accepts a product. It will not notice that a theme update has put the header over the menu on a phone, or that the page builder has changed the spacing in the pricing section. That is why after every update I compare screenshots of selected pages from before and after the change. We agree the list of pages at the start of maintenance: the home page, the main service pages, the contact form, and in a shop a product page, the basket and checkout.

When the comparison shows a difference, I check whether it comes from a planned change. If it does not, the update stays on staging while I find the cause. Only a version that looks the same, or differs in a way you know about, goes live.

PHP version upgrades as part of maintenance

Moving to a newer PHP version is part of maintenance, with no separate quote. I plan it ahead because it depends on three things: whether the host offers the newer version, whether every plugin and the theme support it, and whether the site’s own code uses functions that newer PHP has removed. I first run a clone of the site on the newer PHP, then go through the tests and the screenshot comparison, and only then change the version on the live site, in an agreed window.

WordPress recommends PHP 8.3 or greater, MariaDB 10.11 or greater or MySQL 8.0 or greater, and HTTPS support. According to the WordPress.org version check service, the minimum PHP version for the current WordPress is 7.4. I combine a PHP upgrade with a review of the plugin list, because a plugin that has not been updated for a long time is the first suspect when something fails on the newer version.

What breaks after an update and what I do about it

The most common symptoms after a core, plugin, theme or PHP update.

Symptom: Critical error or a white screen after a plugin update
What I doI restore the state before the change from the snapshot, look for the cause on the clone and release the fixed version in the next window.
Symptom: A page looks different from before the update
What I doScreenshot comparison stops this on staging. If the difference reached the live site, I roll the update back and fix the styles or hold the version.
Symptom: The basket or payment in the shop stops working
What I doI do not release a change that failed the basket test. If the fault appears only on the live site, I roll back and return to staging.
Symptom: Orders stop reaching the ERP or the accounting package
What I doI test the data exchange between the shop and the other system on staging and hold the connector version until the data goes through correctly.
Symptom: A new plugin version needs changes in the theme code
What I doI hold the version and describe what needs rebuilding. The rebuild is outside maintenance and gets its own quote.
Symptom: The plugin author has stopped developing the plugin
What I doAt the quarterly plugin review I propose a replacement or removal.
Symptom: A plugin needs a newer PHP version than the server runs
What I doI plan the PHP upgrade and test it on staging. That is part of maintenance.
Symptom: The site changed overnight without anyone deciding to change it
What I doI check which automatic updates are switched on and set them so that critical parts go through staging.

Updating a WooCommerce shop with payments, ERP and e-invoicing

In a WooCommerce shop an update touches more than the shop itself. The payment gateway, the shipping plugin, the ERP connector and the invoicing plugin each have their own authors and their own release rhythm, and each one talks to a system outside your server. After updating such a connector I check on staging that data still flows both ways: the order reaches the ERP, the stock level comes back to the shop, the invoice is created.

E-invoicing is a good example for UK and Irish shops. HMRC plans to require e-invoices for all VAT invoices from April 2029, and in Ireland large corporates must issue them from 1 November 2028, with every business able to receive them from that date. WooCommerce does not issue structured e-invoices itself, so a plugin, a Peppol access point or the accounting package does it, as I describe in e-invoicing in WooCommerce for the UK and Ireland. Updating that connector goes through staging like any other, and the test includes issuing a test invoice in the provider’s test environment. I describe how a shop connects to other systems in the WooCommerce ERP integration guide and the WordPress API-first guide.

I test payment gateways with the basket, details, delivery and payment path, without placing a real order. A shop that needs this all the time, not only after updates, runs on the Store Reliability Plan. On that plan the update rhythm depends on the level: monthly updates through staging, updates every two weeks, or a weekly update window.

Typical case: a shop with a payment gateway and an accounting connector

A typical shop that owners bring to me has a payment gateway, a shipping plugin, an invoicing plugin linked to the accounting package and a dozen or so other plugins. In the same week WooCommerce and the payment gateway can both get an update. In that week I update them separately: WooCommerce first, then the basket and invoice test, then the gateway and the test again. If something goes wrong, it is clear at once which change caused it.

Updates on a page builder site

Sites built with Elementor, Divi or WPBakery carry an extra layer to update: the builder itself, its add-ons and often a separate theme. The builder stores the page layout in its own format, so a builder update can change the look of many pages at once. I compare the builders in Gutenberg vs Elementor, Divi and WPBakery.

A typical company site with 30 plugins and a page builder gets several updates in most weeks. On a site like that the screenshot comparison does most of the work, because a functional test passes even when a section on the home page has fallen apart.

Update WordPress yourself or hand it over

The answer depends on what breaks on your site when an update fails.

WordPress automatic updates compared with managed updates

WordPress can update itself. According to the administration handbook, existing installations receive minor core updates automatically by default, and fresh installations created on WordPress 5.6 or later receive both minor and major ones. The WP_AUTO_UPDATE_CORE constant in wp-config.php changes this: 'minor' leaves only minor updates on, and true turns them all on.

Plugins and themes work differently. Since WordPress 5.5, administrators opt in to automatic updates plugin by plugin and theme by theme. The same page says WordPress runs auto-updates twice a day and relies on WP-Cron to carry them out.

An automatic update installs the new version with no backup and no staging test. For minor core fixes that is an acceptable risk. For a shop, a payment plugin or a plugin the order form depends on, the risk is too high. In maintenance I therefore leave automation where the change is small and handle the critical parts by hand through staging.

Bringing a site back up to date after a year without updates

A typical starting point: a company site nobody has updated for a year, with dozens of plugins, an older PHP version and one backup from a few months ago. On a site like this I do not update everything at once, because if something fails there is no way to tell which change caused it.

I start with the onboarding audit, which is included in the first month: a list of plugins with versions, a check of which ones are still developed, the PHP version, and whether the existing backup restores. Then I take a fresh full backup and a staging clone. On the clone I update in batches: core first, then plugins from the simplest to those the form or the shop depends on, and the theme last. After each batch come tests and the screenshot comparison. Abandoned plugins get a replacement or go. I plan the PHP upgrade as a separate step once all plugins are current.

Only when the clone passes every test do I move the changes to the live site in an agreed window. From then on the site joins the ordinary weekly rhythm. If a part turns up along the way that needs new code, I describe it and quote it separately.

Updates on a Multisite network

On a WordPress Multisite network, plugins and themes are installed once for the whole network, so updating them affects every site at once. Each site may still use a plugin differently: one has its order form on it, another only a banner. On the network’s staging copy I therefore test the main paths on every site that uses the plugin, and the screenshot comparison covers pages from several sites. A Multisite network is priced individually, depending on the number of sites and the requirements.

Rolling out a major WordPress version

A major core version such as WordPress 7.1 changes more than a patch release and exposes plugin incompatibilities more often. According to the WordPress.org version check service, the current version is 7.1.3 (as of 28 October 2026). I never install a major version on release day. First I check on staging that the plugins and theme work with it, compare screenshots and read the changelogs of plugins that have not yet declared compatibility. The major version goes live in an agreed window once the clone passes the tests.

The WP Rocket 3.23.2.2 fault with WordPress 7.1, mentioned above, came to light on such a clone. When a single plugin blocks a major version, I keep the site on the previous branch until the author releases a fix or I find a workaround, and I record that in the report.

What the report says about updates

Every update round leaves a trace in the monthly report: what was updated, which regressions showed up on staging, which versions I held back and why, and whether any change was rolled back from the live site. After a failure you can see what changed on the site and when, and if you ever switch maintenance provider you have a history to hand over.

Code changes during updates

Sometimes an update needs a small fix in the site’s own code: in a child theme, in a plugin written for the business, or in a function that stopped working on newer PHP. I keep every such change in version control, so it is clear what changed, when and why, and it can be reverted. I check the code against the WordPress Coding Standards with PHP_CodeSniffer and the WPCS rules, and static analysis with PHPStan catches type errors and calls to functions newer PHP no longer has. Before release I review my own change again, separately from writing it. A larger rebuild remains outside maintenance and gets its own quote.

Drupal, TYPO3, Laravel and Symfony updates

I use the same pattern (backup, staging, tests, window, rollback plan) on systems other than WordPress. The tools and the release rhythm differ.

I update Drupal through a repeatable process built on Composer, with deployments through Drush. Drupal 7 has had no security support since 5 January 2025, and Drupal 10 loses it on 9 December 2026. What that means for a Drupal 10 site is covered in Drupal 10 end of life: upgrade or migrate.

In TYPO3 the moves between LTS versions matter most. Free support for TYPO3 12.4 ended on 30 April 2026, so a site on that version needs a plan to move to 13 or 14 LTS.

A Laravel application can get patch releases as often as weekly, and each major version gets two years of security fixes. Fixes reach the live server within days, together with Composer dependency updates and a composer audit run, always on a test server first. Symfony 6.4 receives bug fixes until November 2026 and security fixes until November 2027, which is why many projects start with a plan to move to 7.4.

What managed updates do not include

In maintenance I update core, plugins, themes and the PHP version. Outside maintenance are rebuilding a part that needs new code after an update, large changes to the theme or site architecture, building new integrations and moving to another system, for example a migration to Next.js or Astro. That work gets its own quote and starts once you confirm it. What maintenance itself costs is on the WordPress maintenance cost page.

If the site is already down after a failed update and you have no maintenance contract, start with WordPress repair. If unfamiliar files, redirects or a Google warning appeared after an update, go to the WordPress malware removal page.

Next step: send the site address and the list of plugins you consider critical. I reply with how I would schedule their updates and what maintenance would cost.

Related cluster

Explore other WordPress services and knowledge base

Strengthen your business with professional technical support in key areas of the WordPress ecosystem.

Recommendations from LinkedIn

Recommendations and reviews of working with WPPoland

Selected recommendations from WordPress, WordCamp and e-commerce leaders - with a focus on delivery on time, technical depth, and a business-driven approach to WordPress development.

Karolina Czapla

Karolina Czapla

Marketing Strategist, Performance & Digital Strategy

“Working with Mariusz on WordCamp has shown me how rare it is to combine deep technical skill with genuine leadership. He plans, coordinates and delivers with precision, while giving the team space to grow and contribute....”

Co‑organiser, WordCamp Gdynia 2024 & 2025

Anna Kamińska

Anna Kamińska

Talent Acquisition Specialist / HR People Partner

“Mariusz's portfolio speaks for itself. It reflects his precision, versatility and sense of responsibility. You can trust him to guide a project from idea to delivery, keep stakeholders informed and make sure things are d...”

Worked on the same team

Sarah‑Luisa Kwolek

Sarah‑Luisa Kwolek

IT Project Management & Product Owner, Web/App

“For over two years I could always rely on Mariusz to handle WordPress tasks calmly and professionally, from styling and templating to third‑party integrations. He brings steadiness to the team and keeps the frontend side...”

Mariusz was her client for WordPress work

Argert Boja

Argert Boja

Senior Full‑Stack Developer

“Mariusz is the teammate everyone hopes for: strong full‑stack WordPress skills, clear explanations and a positive attitude even under pressure. He moves easily between custom plugins, performance work and Gutenberg layou...”

Worked alongside Mariusz on WordPress projects

Varun Patil

Varun Patil

Growth & CRM Lead

“Beyond development, Mariusz understands SEO, analytics and growth. He talks directly with stakeholders, asks the right questions and ships solutions that move business metrics, from AMP to tracking to performance.”

Managed Mariusz on growth initiatives

Rafał Osiński

Rafał Osiński

Founder @ EasyTrips.pl, Senior WordPress Dev

“I've known Mariusz through the WordPress community for many years. He's reliable, deeply involved and consistently shows up, at meetups, WordCamps and in projects. If you care about long‑term collaboration and someone wh...”

WordPress community co‑organiser

Daniel Blossfeld

Daniel Blossfeld

Process Optimization & Digitalization Consultant

“I had the pleasure of working with Mariusz for almost three years. During that time, his WordPress development skills proved invaluable across a range of projects, from website builds to online member areas and even Shop...”

Mariusz was his client for WordPress work

Natalie Wiszczor

Natalie Wiszczor

CRM & E-Mail Marketing Manager

“I had the great pleasure of working with Mariusz for over 4 years in the technical field. During this time, he proved to be a competent and reliable colleague. What stood out in particular was his friendly nature and his...”

Worked with Mariusz on different teams

Mark Chalklen

Mark Chalklen

Head of Design & Build at Itineris Limited

“Mariusz is a great member of the team, always happy to get stuck into any task and happy to learn new things. A great communicator and all round nice guy to work with. Hard to beat on our weekly Strava leader board thoug...”

Managed Mariusz directly

Jessica Di Pasquale

Jessica Di Pasquale

Leading SEO initiatives with data-driven growth strategies.

“Mariusz is a very skilled, patient and expert guy. Always ready to help and to fix errors, I really appreciated working with him. He is such a great colleague!”

Managed Mariusz directly

Biki John

Biki John

Content Marketing Aficionado & SEO Enthusiast

“It was great to work with Mariusz. I really appreciated his extensive knowledge of WordPress and how that came in handy whenever I needed support navigating the CMS. I commend Mariusz totally for his patience, good natur...”

Worked with Mariusz on different teams

Rafal Borowiec

Rafal Borowiec

Software Developer, Consultant, Manager and Lecturer

“I had an opportunity to work with Mariusz for 7 months. He excels in technical optimization for search engines (SEO). Mariusz has also strong expertise in AMP development, GTM, and GA. Mariusz feels very comfortable with...”

Managed Mariusz directly

Belinda Koch

Belinda Koch

Web-Tracking Analyst at TUI

“Mariusz is a great person to work with. He is extremely motivated to learn new things and share his knowledge, and is very knowledgeable on a wide range of topics. We worked together on digital analytics and tracking top...”

Worked with Mariusz on digital analytics and tracking topics

Ali Nezamolmaleki

Ali Nezamolmaleki

Growth, SEO, Analytical thinking, AMP

“Mariusz is an extremely talented person in his field of work. He is always capable of giving a new perspective to solve problems and to think out of the box in situations where everything seems to be locked. Working with...”

Worked with Mariusz on the same team

Karol Jakubcewicz

Karol Jakubcewicz

Front-end / JavaScript Developer

“Mariusz is an incredibly experienced WordPress developer and SEO/SEM specialist I've had the pleasure to work with for almost two years. As a pilot of the team responsible for AirHelp's website development, he's been one...”

Worked with Mariusz on the same team

Paweł Lewczuk

Paweł Lewczuk

Front-end developer, WordPress developer

“I collaborated with Mariusz on several projects and our cooperation was always exemplary. I believe there are many more joint projects ahead of us. Highly recommended!”

Mariusz was Paweł's client

Przemek Wroblewski

Przemek Wroblewski

Software Developer with 20+ years of experience

“I found Mariusz as someone with great expertise and profound knowledge of frontend solutions. Powerful, knowledgeable and accountable WordPress developer. Has an easiness to build interpersonal relations with others. He ...”

Worked with Mariusz on different teams

Frequently asked questions

Questions about scope, delivery, pricing, and execution quality.

How do I update WordPress safely?#
Take a full backup of the database and files, run the update on a staging copy of the site, test the main paths, compare how pages look before and after, and only then release to the live site in an agreed window. Have a way back to the previous version ready before you release.
Should I turn on WordPress automatic updates?#
WordPress installs minor core updates on its own, and that is a sensible default. Automatic updates for plugins and themes are switched on one by one. On a site a business depends on, I update the critical parts, such as the shop or payments, by hand through staging.
How often should WordPress plugins be updated?#
In my maintenance, minor fixes and security releases go out every week, I review major plugin versions with their changelogs every month, and once a quarter I go through the whole plugin list and remove abandoned plugins.
A WordPress update broke my site. What now?#
Go back to the state before the update from a backup or snapshot, and look for the cause on a staging copy, away from the live site.
Is a PHP version upgrade included in maintenance?#
Yes. I plan the move to a newer PHP version ahead and test it on staging together with the plugins and theme, like any other update. WordPress recommends PHP 8.3 or greater.
Should I update WordPress myself or pay someone?#
A simple site with a few plugins and a working backup is fine to update yourself. A shop, a site with integrations or a page builder site with dozens of plugins is better run through staging, with a backup and a rollback plan, because a failed update there costs orders or the layout of many pages.

Need an FAQ tailored to your industry and market? We can build one aligned with your business goals.

Let’s discuss

Related Articles