A WordPress white screen or a site that's suddenly down isn't always a WordPress problem. Before you restore a backup, deactivate plugins, or switch themes, spend five minutes on two checks outside WordPress: is the domain still registered, and does its DNS point at the right server? If either one is wrong, nothing you change inside WordPress will fix the site, and a restore just costs you time.
We've seen agencies spend hours on restores and plugin testing when the cause was an expired domain in one case and a DNS record edited in the wrong place in another.
Suspect the domain or DNS first when you see any of these:
error_log.http://.Your connection is not private or NET::ERR_CERT_COMMON_NAME_INVALID on a site that had a valid certificate yesterday.This site can't be reached or DNS_PROBE_FINISHED_NXDOMAIN.Error 522: Connection timed out.That last point is the strongest signal. If a restore from before the problem started doesn't help, the problem probably isn't in the site's files or database.
http:// instead of https://.Why the private window and http://: when a domain expires, the registrar usually points it at its own parking page. That page often has no valid certificate for your domain, so https:// fails or shows a blank page. Your normal browser also remembers that the site used https:// and keeps trying it. A fresh private window on http:// is the quickest way to see what the registrar is actually serving.
If the domain has expired, the fix is renewal at the registrar. Whoever owns the registrar account (often the client) has to do it. Once renewed, the site usually comes back within minutes to a few hours, depending on the registrar.
The domain's nameservers decide which DNS records are live. Records anywhere else are ignored.
Check the nameservers:
dig NS example.com +short
On Windows:
nslookup -type=NS example.com
If the answers end in ns.cloudflare.com, the live records are in Cloudflare. If they belong to the registrar, the live records are in the registrar's DNS panel.
This is the most common trap. A client changes the A record at their registrar, but the nameservers point to Cloudflare. The registrar shows the new IP address, everything looks right in the screenshot they send you, and the site still points at the old server. When a client sends a "DNS screenshot," check which dashboard it came from before trusting it.
Look up what the domain resolves to:
dig A example.com +short
dig A www.example.com +short
Compare the result with the server IP for the hosting account. In cPanel it's shown as Shared IP Address in the General Information panel. If you can't find it, ask us.
If the domain is proxied through Cloudflare (orange cloud), dig returns Cloudflare's addresses, not your server's. In that case you have to look at the records in the Cloudflare dashboard under DNS > Records. You need access to that Cloudflare account, which is often the client's, not yours.
If the A record points at an old server, update it where the DNS is actually hosted (Step 2). With a short TTL, the change usually takes effect within minutes.
You can confirm the site works on our server before DNS is fixed. Either method tells your computer to skip DNS and go straight to the server IP. Replace 203.0.113.10 with your server's IP address.
With curl:
curl -sI --resolve example.com:443:203.0.113.10 https://example.com/
A 200, 301 or 302 status means the server is serving the site.
With your hosts file, so you can browse the site normally:
203.0.113.10 example.com www.example.com
/etc/hosts (edit with sudo)C:\Windows\System32\drivers\etc\hosts (edit as Administrator)Remove the line when you're done, or you'll keep seeing the server directly and miss later DNS problems.
If you'd rather not edit your hosts file, use our Preview Links system instead (link coming soon).
If the site loads correctly through the bypass, the server and WordPress are fine, and the problem is DNS or the domain. If the site is also broken through the bypass, move on to Step 5.
Once the domain is current and DNS points at the right server, a white screen is usually a PHP fatal error. Check the site's error_log for PHP Fatal error entries from the time the problem started.
Also note that a site with broken DNS can look partly broken even through the bypass. Plugins that call back to the site's own domain, and assets loaded by full URL, fail while DNS is wrong. Fix DNS before you chase those.
dig A example.com +short returns the right IP, or Cloudflare's addresses with the right origin in the Cloudflare dashboard.https://example.com and https://www.example.com, with a valid certificate.Our DNS support is limited to members who use Cloudflare. See DNS.
Open a ticket if:
Include the domain, what dig A returns, and whether the bypass test worked. See Need Help? for how to reach us.
Your computer or network may still have the old DNS answer cached, or you may have a hosts-file entry from earlier testing. Run dig against a public resolver, such as dig A example.com @1.1.1.1 +short, to see what the rest of the internet sees.
A restore only changes the site's files and database on the server. If the domain expired or DNS points elsewhere, visitors never reach that server, so the restore has no effect.
It depends on the record's TTL. Cloudflare records set to Auto update in minutes. Records with a TTL of several hours can take that long to reach everyone.