A website page that normally works can sometimes suddenly appear blank, fail to load, or even prompt visitors to download the page instead of displaying it.If the page still works in the website’s administration area, it can be tempting to immediately investigate the CMS, plugins, themes, PHP settings, or application code.However, check the caching layer first.

This applies to almost any website platform, including WordPress, Drupal, Joomla, Shopify, custom PHP applications, and other CMS-based websites.

Common symptoms

You may encounter one or more of these:

  • A frontend page suddenly becomes blank.
  • The browser sometimes tries to download the page.
  • The page works sometimes but fails at other times.
  • The administration area works normally.
  • The page starts working again after clearing the cache.
  • Other pages on the website continue to work normally.

Intermittent behavior is an especially useful clue.

Why caching can cause this

A website may have several caching layers:

Browser → CDN/proxy → hosting cache → web server → CMS/application

For example, your hosting provider may have a dynamic cache or reverse proxy in front of the website.

If a problematic response is cached, visitors may continue receiving that response even though the website itself is working correctly.

This can make the problem appear random.

Step 1: Check the HTTP response

One of the simplest ways to investigate a website is with curl.

On Windows, open Command Prompt and run:

curl -I https://example.com/page

Replace example.com/page with the page you are troubleshooting.

Look for the HTTP status:

HTTP/1.1 200 OK

A 200 OK generally means the server successfully returned a response.

Other useful statuses include:

301 / 302    Redirect
304          Not Modified
403          Forbidden
404          Not Found
500          Server Error
502 / 503    Server or upstream error

Also look for:

Content-Type: text/html

For a normal web page, you generally expect an HTML content type.

Step 2: Look for cache headers

In the curl -I results, look for headers containing words such as:

Cache-Control
X-Cache
X-Cache-Hit
X-Proxy-Cache
Age
ETag
Last-Modified

You may also see headers specific to your CMS, hosting provider, CDN, or web server.

For example:

X-Cache: HIT

or:

X-Proxy-Cache: HIT

A HIT generally means the response was served from a cache.

That is not necessarily an error. However, if the page is behaving incorrectly, it is an important clue.

Step 3: Check redirects

Run:

curl -IL https://example.com/page

The -L option follows redirects.

This can help identify problems such as:

  • Unexpected redirects
  • HTTP-to-HTTPS problems
  • Redirect loops
  • Incorrect URLs
  • Unexpected server responses

Ideally, the request should eventually reach the expected page and return a normal HTML response.

Step 4: Test with a cache-busting URL

A simple way to test whether caching is involved is to add a query parameter:

curl -I "https://example.com/page?nocache=12345"

This creates a slightly different URL and may cause the caching system to treat it as a new request.

You can also save the response:

curl -s "https://example.com/page?nocache=12345" -o test.html

Then open test.html in your browser.

If the normal page behaves incorrectly but the cache-busting version consistently returns valid content, investigate the caching layer.

Step 5: Test the page multiple times

Intermittent problems are easier to identify by making several requests.

On Windows Command Prompt:

for /L %i in (1,1,10) do @curl -s -o NUL -w "%{http_code} %{size_download} %{content_type} %{time_total}\n" "https://example.com/page?test=%i"

This displays:

  • HTTP status
  • Response size
  • Content type
  • Response time

For example:

200 125430 text/html 0.421
200 125430 text/html 0.398
200 125430 text/html 0.405

Consistent results are generally a good sign.

If some requests return very different results, such as:

200 125430 text/html
500 0
200 125430 text/html

or:

200 125430 text/html
200 0

that suggests the problem may be occurring somewhere between the browser and the application.

Step 6: Clear the website cache

If your hosting provider, CDN, or website platform provides caching, clear the relevant cache.

Depending on the platform, the option may be called:

  • Clear Cache
  • Purge Cache
  • Flush Cache
  • Clear Dynamic Cache
  • Purge CDN Cache
  • Clear Site Cache

After clearing the cache, test the original URL again:

https://example.com/page

Also test from an Incognito or Private browser window.

Don’t immediately change PHP settings

A blank page can sometimes be caused by a PHP error, memory problem, or application failure.

However, don’t immediately increase PHP memory or execution limits just because a page is blank.

First determine whether the response is coming from a cache.

If the problem continues after clearing the cache, then investigate:

  • PHP error logs
  • Application logs
  • CMS logs
  • Server error logs
  • Plugins or extensions
  • Themes/templates
  • Recent code changes
  • Database errors
  • PHP memory and execution limits

A useful troubleshooting sequence

  1. Test the page normally.
  2. Run curl -I against the URL.
  3. Check the HTTP status and content type.
  4. Look for cache-related headers.
  5. Run curl -IL to check redirects.
  6. Test the URL with a cache-busting parameter.
  7. Compare several requests if the problem is intermittent.
  8. Clear the hosting/CDN/site cache.
  9. Test again using an Incognito window.
  10. Check application and server logs if the problem remains.

Case Study

A recent similar issue was experienced on a Drupal website hosted on Siteground. Clearing and purging the Drupal website cache did nothing. Flushing the cache server-side, on the other hand, fixed the issue. The above curl commands helped identify the caching culprit and where it needs to be cached.

Screenshots below on where to flush the cache from your Siteground > Site Tools > Speed section.

Siteground-SuperCacher-dynamic-cache

Siteground-SuperCacher-memcache

Key takeaway

When a website page works in the backend but intermittently appears blank, fails to load, or tries to download instead of displaying normally, check the caching and proxy layers before making major application or PHP changes.

A few simple curl commands can reveal whether the server is returning a normal HTML response and whether a cache is serving the content.

This approach works across different website platforms and can help narrow down the problem before making changes that could affect the live website.