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/pageReplace example.com/page with the page you are troubleshooting.
Look for the HTTP status:
HTTP/1.1 200 OKA 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 errorAlso look for:
Content-Type: text/htmlFor 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-ModifiedYou may also see headers specific to your CMS, hosting provider, CDN, or web server.
For example:
X-Cache: HITor:
X-Proxy-Cache: HITA 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/pageThe -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.htmlThen 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.405Consistent results are generally a good sign.
If some requests return very different results, such as:
200 125430 text/html
500 0
200 125430 text/htmlor:
200 125430 text/html
200 0that 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/pageAlso 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
- Test the page normally.
- Run
curl -Iagainst the URL. - Check the HTTP status and content type.
- Look for cache-related headers.
- Run
curl -ILto check redirects. - Test the URL with a cache-busting parameter.
- Compare several requests if the problem is intermittent.
- Clear the hosting/CDN/site cache.
- Test again using an Incognito window.
- 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.
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.

