Site Broke After a PHP Update

Updates, Migrations & Maintenance

The host moved PHP forward and your code did not come along.

datacram.com/fix/site-broke-after-php-update
Likely causes, ranked
Site Broke After a PHP Update
An abandoned plugin or thememost likely
Custom code written for an older versioncommon
An outdated WordPress corecommon
A jump across several versions at oncepossible
Fix steps in this guide5
the causes explained below, most likely first
What you’re seeing

The site worked yesterday and today shows a white screen, a 500 error, or a page of deprecation warnings. Nothing was changed on your side — the host upgraded PHP, or an upgrade was scheduled and you accepted it.

What it actually means

PHP is the language WordPress runs on, and it moves forward. Each major version removes functions that were deprecated for years. Code written against the old behavior stops working the day the server catches up.

The uncomfortable part is that this is not really a bug. The host did the right thing — old PHP versions stop receiving security updates and become a genuine liability. What broke is code that had been running on borrowed time, usually a plugin or theme nobody has maintained.

That reframes the fix. Rolling PHP back buys you a few days, not a solution, and every day on an unsupported version is a security risk you are choosing to carry.

What usually causes it

Most likely first.

  1. 1

    An abandoned plugin or theme

    Something that has not been updated in years, using functions removed from modern PHP. The usual suspect.

  2. 2

    Custom code written for an older version

    Snippets in functions.php or a site-specific plugin, often added by a previous developer.

  3. 3

    An outdated WordPress core

    Older core versions genuinely do not support newer PHP. Core has to move first.

  4. 4

    A jump across several versions at once

    Going from an old version straight to the latest concentrates years of removals into one moment.

  5. 5

    Deprecations flooding the page

    Not fatal, but with display_errors on they can bury the site under warnings and break layouts.

How to fix it

Work through these in order. Take a backup before you change anything.

  1. Step 1Read the error log before touching anything

    It names the file and line that failed, which usually identifies the offending plugin or theme in one glance. Everything else is guesswork without it.

  2. Step 2Roll PHP back temporarily

    Most hosts let you switch versions in the control panel. Do this to get the site up, and treat it as a deadline rather than a resolution.

  3. Step 3Update WordPress, then plugins, then the theme

    In that order. Core first, because plugin compatibility is usually written against current core.

  4. Step 4Replace what cannot be updated

    If the culprit is abandoned, no amount of configuration will save it. Find a maintained alternative — this is the actual fix.

  5. Step 5Test on staging, then move forward

    Switch staging to the new PHP version, work through the errors there, then upgrade production deliberately rather than being upgraded.

When to stop and call someone

Call someone if the failing code is custom and nobody remembers who wrote it, if the plugin at fault has no maintained replacement and you depend on it, or if you are stuck on an old PHP version because upgrading breaks the site — that is a slow-moving security problem, not a stable state.

Frequently asked

Because code on your site used functions that the new PHP version removed. Each major release drops features that were deprecated for years, so a plugin, theme, or custom snippet that had not been maintained stops working the moment the server upgrades.

Usually yes, through your hosting control panel, and it is a reasonable emergency step to bring the site up. Treat it as temporary: old PHP versions stop receiving security patches, so staying behind trades one problem for a worse one.

Read the PHP error log, which names the exact file and line that failed — that path identifies the plugin or theme directly. If the log is unavailable, disabling plugins one at a time on the new PHP version narrows it down.

Then it has to be replaced rather than repaired. Code that no longer receives updates will break again at the next PHP release and is a security exposure in the meantime. Finding a maintained alternative is the durable fix.

Test PHP upgrades on a staging copy before production, keep WordPress, plugins, and themes current, and remove anything abandoned before it becomes urgent. Most hosts announce version changes well in advance, which is enough time to check.

Free · AI-powered · Emailed to you

See exactly what’s holding your website back.

Get a free audit of your site — speed, SEO, mobile, and security — with the fixes that matter most, delivered as a PDF to your inbox.

Get my free audit
CallGet a quote