Step 3’s folder-rename trick is the single most useful blind-debugging move on shared hosts: WordPress treats a missing plugin folder as “just deactivate it” rather than fataling again, so it’s safe even with zero visibility into logs.
Code
Debug a white screen of death with no error log output
A triage scenario for the frustrating case where the site is blank, WP_DEBUG is off, and the host's error log has nothing useful in it.
Works with Claude / GPT1,400 uses★ 4.4
The prompt
code-debug-white-screen-of-death
A client site is showing a completely blank white page on the front end and in wp-admin. There's nothing in the browser console, nothing in `/wp-content/debug.log` (which doesn't even exist), and the host's cPanel error log viewer shows entries from three days ago but nothing from today. ENVIRONMENT: [shared hosting, PHP 8.1, no SSH access, only SFTP and phpMyAdmin, this started right after installing a new plugin update this morning] Walk through this the way a senior dev triages a blind site-down issue with limited access, in order: 1. Explain why the error log might be empty even though there's clearly a fatal error: `display_errors` and `log_errors` might both be off at the PHP level regardless of `WP_DEBUG`, or the host logs PHP errors to a separate location than the WordPress debug log (e.g. `/home/user/logs/error_log` next to the account root, not inside `wp-content`). 2. Give the exact `wp-config.php` edit to force logging on temporarily, placed before `/* That's all, stop editing! */`: `WP_DEBUG`, `WP_DEBUG_LOG`, `WP_DEBUG_DISPLAY` set correctly so errors log to file but don't also print to the broken front end. 3. If that still shows nothing (some hosts suppress fatal errors from being logged at all under certain `error_reporting` levels), give the SFTP-only fallback: rename the just-updated plugin's folder in `/wp-content/plugins/` to deactivate it without admin access, and check if the site recovers, confirming the plugin update as cause before digging further. 4. Once confirmed, explain how to find the actual line without full error logging: add a temporary `register_shutdown_function()` snippet to a must-use plugin that captures `error_get_last()` and writes it to a known file, which catches fatal errors even when the server's own logging config is unhelpful. 5. Note the edge case: if renaming the plugin folder doesn't fix it, check whether the white screen is actually a memory exhaustion error with output suppressed, not a code error, since those look identical from the outside and need a different fix (raising `WP_MEMORY_LIMIT`, not rolling back a plugin). Swap in your actual hosting environment and access constraints.