WordPress 500 error after PHP update? Read the log

A WordPress 500 error after a PHP update does not prove the new PHP version is faulty. More often, the update has exposed code that was already old, unsupported or relying on behaviour that the newer runtime no longer allows.

That distinction matters when the site is taking enquiries, bookings or orders. If someone responds by flipping PHP versions, updating a handful of plugins and clearing every cache they can find, one useful error can become a muddle of changed files and fresh symptoms.

The weak setup: change PHP, see 500, change everything else

The usual panic sequence is understandable. A host moves a WordPress site from PHP 8.1 to PHP 8.3, a page returns a 500 Internal Server Error, and the assumption is that PHP 8.3 has broken the website.

Then comes a batch of live changes: disable plugins, update the theme, reinstall something, switch the PHP version back, and perhaps ask the host to increase random limits. It can restore the page, but it does not establish what failed or whether the same fault will return during the next update.

A 500 error is a server-side response, not a diagnosis. It can be caused by a fatal PHP error, an exhausted memory limit, a missing PHP extension, a malformed server rule, a permissions issue or an application-level problem. PHP may be involved without being the whole story.

What a WordPress 500 error after a PHP update usually means

A WordPress 500 error after a PHP update means the server could not complete the request. The most useful evidence is the first reproducible error in the server or PHP log, especially if it names a file, function, plugin path, theme function or missing extension. Newer PHP versions often reveal compatibility debt in plugins, themes and custom code that had been sitting quietly under an older version.

For a business site in Dubai, the UAE, the UK or Liverpool, the practical concern is not winning an argument about which supplier owns the fault. It is restoring the affected route without making the repair harder. A contact page, booking page or service landing page can be the only page using a particular form add-on, shortcode or old template function.

Why version switching can hide the actual fault

Older PHP versions may tolerate deprecated behaviour that PHP 8.3 will reject. A plugin can be broadly compatible while one old add-on, template override or custom function is not. The homepage may work perfectly because it never loads the failing code.

Take a familiar example. A site moves from PHP 8.1 to 8.3. Most pages load, but one plugin-driven page returns a 500 error. The error log points to a deprecated function inside a form extension or a custom callback attached to that page. Rolling PHP back may make the visible issue disappear, but the compatibility problem still exists.

There is also a commercial cost to treating a rollback as the whole repair. The site remains tied to an ageing runtime, future hosting changes become more awkward, and the next developer has to rediscover the same dependency under pressure.

The better version: let the first error narrow the work

The error log should decide what gets changed next. Not the last plugin somebody remembers updating, not the loudest opinion in a support ticket, and not a vague suspicion that WordPress itself has gone funny.

Start with the failing request

Record the exact URL, time and action that causes the 500 error. Is it a public page, wp-admin screen, form submission, AJAX request or scheduled task? Reproduce it once where possible. A log entry is far more useful when it can be matched to a specific request rather than a pile of unrelated warnings from the same day.

Check the hosting error log, PHP error log and any WordPress debug log already available. Look for the first fatal or uncaught error at the matching time. The important detail is usually the file path and line reference. A path inside wp-content/plugins, a child theme, a must-use plugin or a custom snippets plugin points the investigation in different directions.

Check the runtime around the named error

If the log reports a missing class, undefined function or deprecated syntax, check whether the affected plugin, theme or extension officially supports the active PHP version. If it reports memory exhaustion, identify which request consumed memory before simply raising the limit. A memory increase may be appropriate, but it is not evidence that memory was the original design problem.

Also check PHP extensions. A page relying on image processing, XML, database drivers or a particular encryption library can fail after a hosting-level PHP change if the new environment does not include the expected extension. That is a configuration mismatch, not necessarily a WordPress fault.

Isolate carefully, preferably away from live traffic

Use a current staging copy where it represents the live stack closely enough to trust the result. Disable or update one identified component at a time, then retest the same failing request. If a plugin-driven page fails while ordinary pages work, start with the plugin, add-on, shortcode or template code unique to that page.

A controlled rollback can be sensible when a critical route is down and the compatible repair needs more time. It should preserve service while the cause is documented, not become a permanent habit. Take a restore point and record the exact PHP version, affected URL and error entry before making the change.

A practical 500-error triage sequence

  1. Preserve the evidence. Note the failed URL, time, PHP version and visible error behaviour.
  2. Read the matching server or PHP log entry. Prioritise fatal errors and file paths over general warnings.
  3. Identify the component named in the trace. It may be a plugin, theme file, custom snippet, server extension or memory condition.
  4. Check compatibility and dependencies. Confirm support for the active PHP version and required extensions.
  5. Test one controlled change. Use staging where possible and retest the exact request, rather than checking only the homepage.
  6. Use rollback as containment if needed. Keep a record of why it was used and what still needs repairing.

This is broadly the sort of evidence-led approach used in WordPress website repair in Dubai: identify the reproducible failure, protect the live business route, then fix the dependency rather than spray changes across the stack.

When the host, developer and plugin supplier all point elsewhere

Sometimes the host owns an incomplete PHP environment. Sometimes a plugin supplier has not caught up with a supported PHP version. Sometimes old custom code in a child theme is the actual issue. The useful question is not who can be blamed first. It is which log entry identifies the failing layer and who can change that layer safely.

If the same site has no current backup, no staging copy and no documented update history, that is worth addressing once the immediate fault is stable. Ongoing WordPress maintenance in Dubai should leave a clearer trail of versions, updates, backups and business-critical page checks, so a routine PHP change does not turn into guesswork.

Do not downgrade PHP as a reflex

Downgrading can be a reasonable short-term containment measure for a live outage, but it should follow evidence. It is not a universal fix for every 500 error, and it should not replace checking the file, extension or resource issue named in the log.

A site with an isolated incompatibility can often be repaired by updating, replacing or adjusting the affected component. A site with several old dependencies may need a more considered compatibility review. Either way, changing five things at once only makes the next decision less certain.

Message Standish Services on WhatsApp to discuss the error and repair route. Read the server error before changing PHP or plugins again.