Quick answer: A 500 error means PHP crashed or the web server hit a bad configuration. Read the actual error first — PHP-FPM log or wp-content/debug.log with WP_DEBUG_LOG enabled — then apply the usual fixes: deactivate the failing plugin/theme, raise memory, or repair a broken .htaccess/server block.
Overview
“HTTP 500” is a symptom, not a diagnosis: fatal PHP errors, exhausted memory, syntax errors from a bad update and web-server misconfiguration all wear the same mask. The fastest route is always the log — guessing plugins one by one is the slow path. On a VPS you have full log access, so use it.
Before you start
- SSH access — when wp-admin is down, WP-CLI still works.
- Know your log locations:
/var/log/nginx/error.log,/var/log/php8.3-fpm.log. - A recent backup in case a rollback is faster than a fix.
Step-by-step guide
- Turn on WordPress logging (wp-config.php, above the “stop editing” line):
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); - Reproduce the error, then read the last lines:
tail -n 50 wp-content/debug.log sudo tail -n 50 /var/log/nginx/error.log - Fatal error names a plugin/theme: deactivate it without wp-admin:
sudo -u www-data wp plugin deactivate broken-plugin # or all at once: sudo -u www-data wp plugin deactivate --all sudo -u www-data wp theme activate twentytwentyfour - “Allowed memory size exhausted”: raise
memory_limitin php.ini (andWP_MEMORY_LIMITin wp-config) — see PHP tuning. - Error only on some URLs (Apache): re-generate
.htaccessby re-saving permalinks; on Nginx checknginx -t. - Still stuck? Roll back the last change (update, new plugin, config edit) from backup — the error started when something changed.
Common issues
- Blank debug.log: the crash happens before WordPress loads — the PHP-FPM log has it.
- 500 only in wp-admin: classic memory exhaustion or an admin-only plugin conflict.
- Intermittent 500s under load: not a code bug — FPM pool exhaustion; see pm.max_children sizing.
When to contact support
If the platform itself misbehaves (disk full at the host level, VPS unresponsive), open a ticket. For application errors, include the exact log lines if you ask for guidance — “it shows 500” alone isn’t diagnosable.
Frequently asked questions
Where do I find the real error behind a 500 page?
In the logs: wp-content/debug.log once WP_DEBUG_LOG is enabled, plus the PHP-FPM and web-server error logs under /var/log — the last lines name the failing file and plugin.
How do I disable a plugin when wp-admin is down?
Over SSH with WP-CLI: wp plugin deactivate plugin-name (or --all). Renaming the plugin's folder in wp-content/plugins has the same effect if WP-CLI is unavailable.
Why do 500 errors appear only during traffic spikes?
That is capacity, not code: the PHP-FPM pool runs out of workers and requests time out. Add page caching and resize pm.max_children, or upgrade the plan.
Related articles
- How to troubleshoot the WordPress white screen (WSOD)
- How to optimize PHP for WordPress
- How to configure WordPress backups
- How to secure WordPress on a VPS
Need a hand? Contact Cloud2Y support →
