Diagnostics · Intermediate · 20–40 minutes
How to fix the WordPress white screen — A White Screen Is a Fatal Error With the Message Switched Off
Nothing is rendering and you have no error to work from — so the first job is not fixing anything, it is making the failure speak.
The short answer
A white screen is a fatal PHP error whose message has been suppressed for safety, so step one is retrieving that message rather than trying fixes: enable WP_DEBUG and WP_DEBUG_LOG in wp-config.php, or open the error log in cPanel, and read the file and line it names. Nine times in ten the log ends the investigation on its own.
If the log is silent or unavailable, bisect from outside WordPress — renaming folders in File Manager disables plugins and themes without needing a dashboard. Only after that do you go looking at memory limits, .htaccess and half-finished updates, in that order of likelihood.
By the HostingFast team · Reviewed 24 August 2026
Intermediate
Assumed skill
20–40 minutes
Wall-clock cost
5
Stages in the runbook
24/7
Engineers on shift
Everything on this page happens outside WordPress, which is deliberate: when the dashboard is part of the casualty list, your tools are SSH, File Manager and the log. Being locked out changes the instruments, not the method.
Resist the urge to start disabling things. Ten seconds spent turning error output on saves the twenty minutes of guesswork that a blank page tempts everybody into.
Make the failure speak
Add `define('WP_DEBUG', true);` and `define('WP_DEBUG_LOG', true);` to wp-config.php above the 'stop editing' line, reload the page, then read wp-content/debug.log. If you would rather not touch the file, cPanel's error log holds the same fatal with a timestamp against it.
Production PHP hides error output on purpose — stack traces tell a stranger which components you run and where they live. The error still fired; it was written to a log instead of the browser. Debug mode simply redirects it somewhere you can read.
Line the timestamp up against the last change
A blank page nearly always trails an action: an update, a new plugin, an edit to functions.php. Take the timestamp from the log and match it against your update history, your deploy log or your own shell history. Your most recent change stays the prime suspect until the log clears it.
'Nobody touched anything' usually means an automatic update fired, a cron task ran, or the PHP version moved under the site. All three leave a timestamp somewhere, and matching two timestamps is faster than testing five theories.
Bisect from the filesystem
Rename wp-content/plugins to plugins.off in File Manager or with `mv`, and every plugin drops at once. Site returns? Rename it back and reactivate one at a time until the fatal reappears. If the plugins are clear, rename the active theme's folder so WordPress falls back to a bundled default — a fatal error inside a theme looks identical from the outside.
Bisection is not elegant, but it is bounded: each pass halves the search space, and it works with no dashboard, no admin login and no SSH. On a site with forty plugins you are five reloads from the answer.
Then the three mundane causes, in order
Exhausted PHP memory first — lift the limit in wp-config.php or the panel's PHP settings and re-trigger the page. Then a mangled .htaccess: rename it and re-save permalinks under Settings to regenerate the rules. Then an update that died part-way, which reruns cleanly once the site loads again.
Where the fault is a memory ceiling rather than broken code, that is a sizing signal worth acting on. Per-site PHP settings live in the control panel here, and if a plugin needs more headroom than the plan gives it, an in-place upgrade takes effect without a migration.

The platform these commands were run on
Every runbook here was exercised on the platform we actually operate — cPanel, LiteSpeed, NVMe storage, one-click installs — so the log paths and panel screens match yours rather than a generic host's.
Support is a human being at any hour, and the scope covers the awkward practical questions other hosts bounce straight back to you.
- Error logs and PHP settings in the panel, not a ticket
- Per-site PHP version switching from the control panel
- Daily backups, so a bad edit is a one-click undo
- Engineers on shift whatever hour it goes wrong
Why HostingFast
Standard on every plan
Diagnosis before treatment
The first step retrieves the actual error message, so nothing after it is guesswork dressed as procedure.
Works with no dashboard
Every action runs from File Manager or a shell, which is the situation you are in when the admin is down too.
Bounded, not endless
Bisection halves the suspect list each pass — forty plugins is five reloads, not forty.
Causes ranked by likelihood
Memory, .htaccess, interrupted update. In that order, because that is the order the support queue sees them.
Scoped honestly
Tracing and clearing a white screen is an intermediate job — 20 to 40 minutes, most of it reading rather than typing.
Sourced from real incidents
The sequence here is the one our engineers work through, in the order they work through it.
Quick Start
From order to online
- 1
Turn the error message back on
Set WP_DEBUG and WP_DEBUG_LOG in wp-config.php and read wp-content/debug.log, or open cPanel's error log. A white screen is a fatal error with its message suppressed — job one is reading that message.
- 2
Match the timestamp to the last change
Take the time from the log entry and line it up against update history, cron runs or your own recent edits. 'Nothing changed' nearly always means something changed without you.
- 3
Drop all plugins from the filesystem
Rename wp-content/plugins in File Manager and every plugin deactivates at once. If the site returns, rename it back and reactivate one at a time until the fatal returns with a name attached.
- 4
Fall back to a bundled theme
Plugins clear? Rename the active theme's folder so WordPress reverts to a default. A fatal inside a theme presents exactly like a fatal inside a plugin from the browser.
- 5
Work the three mundane causes
Raise the PHP memory limit and retry; rename .htaccess and re-save permalinks to rebuild it; rerun any update that died part-way. In that sequence, because that is the order of likelihood.
Built In
Loaded onto every plan
- Error logs and per-site PHP settings available in the control panel
- Per-site PHP version switching from the control panel
- Daily backups, with self-service restores you run from the panel
- Staging environments for testing changes before they ship
- SSH, Git and Composer on the developer-focused plans
- cPanel — the control panel most of the industry already runs
- LiteSpeed caching built into the server rather than patched in by plugin
- Human support on duty every hour of every day
- In-place account upgrades — no migration when you change plan
- Free SSL on every plan, renewed automatically before it can expire
Frequently Asked
What people ask us most often
Where exactly does the PHP error land on cPanel hosting?
Two places worth checking. cPanel's Errors tool shows the recent server-level entries with timestamps, and once WP_DEBUG_LOG is on, WordPress writes its own to wp-content/debug.log. The server log catches fatals that happen before WordPress boots; the WordPress log is more readable for everything after that. Look in both.
Why does the site render for me but stay blank for everyone else?
Almost always caching. Logged-in administrators bypass the page cache, so you are being served fresh output while visitors get a stored copy of the broken response. Purge the cache and test in a private window — and treat your logged-in view as the one experience no real visitor is having.
Can I bring in a domain I already own?
Yes, and it is routine. Unlock the name at your current registrar, take the auth code, and start the transfer from your client area. Remaining registration time carries across, and DNS keeps resolving throughout, so nothing goes dark while the transfer runs.
Is there somewhere safe to reproduce this before I touch production?
Yes — plans with staging let you clone the live site, break the clone on purpose, and push the fix back once it behaves. Reproducing a fatal on a clone is how you turn 'I think it was the theme' into a diff you can point at.
Keep reading
How to Connect a CDN
When an edge network genuinely lowers the numbers and when it just adds a hop — intermediate, roughly an hour.
How to Install WordPress
A live WordPress install answering on your domain inside ten minutes, with the PHP version set before the first request — beginner, about 10 minutes.
Best Hosting With WordPress Toolkit
The same decision as a buying guide: which specifications move the numbers, which are marketing, and the plan we would sign.
Drupal Hosting
Drupal with Composer, Drush and per-site PHP control available on tap.
WordPress Hosting
WordPress on LiteSpeed and NVMe, with staging clones and daily backups included.
Changing hosts? Run through our checklist first.
A straightforward sequence for a switch your visitors never feel: which files move first, how to shift email across without losing a single message, the right moment to repoint DNS, and the two mistakes behind almost all the downtime we get asked to rescue.
Put it where the logs are one click away.
Panel-level error logs, per-site PHP control, daily backups and free SSL — plus engineers who answer at three in the morning.
View WordPress Hosting plans