Your WordPress site just went blank — no error, no menu, no content, just a white screen. Or maybe it's showing "There has been a critical error on this website" instead. Both are the same underlying problem showing up differently depending on your WordPress version, and both mean visitors (and customers, if you run WooCommerce) can't see your site at all.
I've fixed this exact issue for WordPress sites across the US, UK, and Europe over my 14+ years as a WordPress developer. This guide walks through the real causes in the order you should actually check them — no guesswork, no randomly deleting plugins.
White Screen vs. Critical Error — Same Problem, Different Display
Both are caused by a PHP fatal error — WordPress simply displays it differently depending on your setup:
- White Screen of Death (WSOD) — a completely blank page, no text at all. Happens when
WP_DEBUG_DISPLAYis off and no error-handling wrapper is active. - "There has been a critical error on this website" — WordPress 5.2+ added this friendlier fatal-error message with an option to email the site admin. Same root cause, better messaging.
The fixes below apply to both — the only difference is which one your site happens to show you.
Common Causes of White Screen / Critical Error
- A plugin update that's incompatible with your PHP version or WordPress core
- A theme function causing a PHP fatal error
- PHP memory limit exhausted
- A corrupted core file or incomplete WordPress update
- A syntax error introduced by manually editing
functions.phpor a plugin file - Incompatible PHP version after a server-side PHP upgrade
Step 1: Enable Debug Mode to See the Actual Error
Before guessing, get WordPress to tell you exactly what broke and where.
Access your site files via FTP, cPanel File Manager, or aaPanel, and open wp-config.php. Add these lines just above the line that says /* That's all, stop editing! */:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
Reload your site, then check /wp-content/debug.log. You'll see the exact PHP error, the file, and the line number that caused the crash — this turns a guessing game into a direct fix.
WP_DEBUG_DISPLAY to false so the raw error doesn't show to visitors — it only gets written to the log file instead.
Step 2: Deactivate All Plugins via File Manager
Plugin conflicts and incompatible updates are the single most common cause of this error.
Since you can't access wp-admin, do this via FTP/File Manager instead:
- Navigate to
/wp-content/plugins/ - Rename the folder to
plugins-disabled - Reload your site — if it loads now, the issue is a plugin
Rename the folder back to plugins, then rename each individual plugin folder one at a time (e.g. woocommerce → woocommerce-off) reloading the site after each, until you find the exact plugin causing the crash.
Step 3: Switch to a Default Theme
If deactivating plugins didn't fix it, the theme is the next most likely cause.
Via FTP, go to /wp-content/themes/ and rename your active theme's folder (e.g. your-theme → your-theme-off). WordPress will automatically fall back to a default theme (Twenty Twenty-Four, etc.) if one is installed. If the site loads now, your theme's functions.php or a template file has the error.
Step 4: Increase the PHP Memory Limit
An exhausted memory limit is a common silent cause, especially after installing a new plugin or theme.
Add this line to wp-config.php, above the "stop editing" line:
define( 'WP_MEMORY_LIMIT', '256M' );
If your debug log shows "Allowed memory size exhausted," this is very likely the fix — though it's often a symptom of a deeper issue (like a plugin conflict) rather than the root cause on its own.
Step 5: Restore Core Files (Incomplete Update)
If the crash happened right after a WordPress update, the update may not have finished properly.
Re-upload fresh WordPress core files (excluding wp-content and wp-config.php) from wordpress.org. This replaces any corrupted or partially-updated core files without touching your content, plugins, or theme.
Step 6: Check for a PHP Version Mismatch
If your host auto-upgraded PHP in the background, an older plugin or theme may not support the new version.
Check your current PHP version in your hosting control panel (cPanel, aaPanel, Plesk). If it was recently changed, try reverting to the previous version temporarily to confirm — then update the incompatible plugin/theme instead of staying on old PHP long-term.
Quick Reference Checklist
| Root Cause | Fix |
|---|---|
| Plugin conflict or bad update | Rename plugin folders one by one via FTP |
| Theme error | Rename theme folder, fall back to default theme |
| Memory limit exhausted | Add WP_MEMORY_LIMIT to wp-config.php |
| Corrupted core files | Re-upload fresh WordPress core files |
| PHP version mismatch | Check host's PHP version, update incompatible plugin |
| Syntax error in functions.php | Check debug.log for exact file and line number |
How Much Does It Cost to Fix a White Screen or Critical Error?
Most of the time this is a fast fix once the actual error is identified:
- Simple plugin/theme conflict: usually resolved within 30–60 minutes of developer time
- Memory limit or config fix: under 30 minutes, often a one-line change
- Corrupted core files or failed update: 1–2 hours, including verification that nothing else broke
- Custom code conflict (functions.php, custom plugin): 1–3 hours depending on how the code was written
Since the site is completely inaccessible while this is happening, most clients want it fixed same-day — which is realistic for the vast majority of cases once someone experienced is looking at the actual error log instead of guessing.
Still Showing White Screen After All This?
If you've worked through every step above and the site still won't load, the cause is likely something deeper — a compromised file from a hack, a database-level issue, or custom code that needs an experienced eye. As a WordPress developer with 14+ years of experience, I fix these regularly, often the same day. If your site was recently hacked rather than just broken, see my guide on recovering a hacked WordPress site — the symptoms can look similar.
Site Showing a White Screen or Critical Error?
I'll find the exact cause from your error logs and fix it — usually the same day.
Hire a WordPress Developer →Frequently Asked Questions
What causes the WordPress White Screen of Death?
It's caused by a PHP fatal error — most commonly a plugin update that's incompatible with your PHP version, a theme function error, or an exhausted memory limit.
Is "There has been a critical error on this website" the same as White Screen of Death?
Yes — it's the same underlying PHP fatal error. WordPress 5.2 and later show this friendlier message instead of a blank page, and can email the site admin with error details automatically.
How do I fix a WordPress critical error without accessing wp-admin?
Use FTP or your hosting file manager to rename the /wp-content/plugins/ folder or your active theme's folder. This disables plugins/theme without needing admin access.
Will I lose my content if I fix a white screen error?
No. Fixing a white screen or critical error involves plugins, themes, or configuration files — not your posts, pages, or database content.
How do I find the exact error causing the white screen?
Enable WP_DEBUG and WP_DEBUG_LOG in wp-config.php, reload the site, then check /wp-content/debug.log for the exact file and line number where the PHP error occurred.
How much does it cost to fix a WordPress white screen or critical error?
Most cases are resolved within 30 minutes to 2 hours of developer time, depending on whether the cause is a simple plugin conflict, a memory limit setting, or a deeper core-file or custom-code issue.