If your WordPress front-end shows blank pages while /wp-admin and /wp-login.php still load normally, the OTTO full-page cache has likely stored an empty (0-byte) response. This article shows you how to confirm the cause using response headers and restore your site immediately.
⚠️ What a 0-Byte OTTO Cache Response Looks Like
A 0-byte cached response produces a specific symptom pattern you can distinguish from a PHP crash or a hosting outage:
- Every front-end URL — homepage, posts, and category pages — returns HTTP 200 with a completely blank body
- The browser shows a white or empty page with no error message and no partial content
- The WordPress admin (
/wp-admin), login page (/wp-login.php), and REST API endpoints continue to load normally - All visitors see blank pages — the issue is not limited to one browser or account
PHP errors and theme crashes typically break the admin dashboard too, or display a visible error message. A hosting outage returns a 5xx status code rather than HTTP 200. When you see HTTP 200 + blank body + working admin, check the OTTO cache first.
🔍 How to Confirm OTTO Cache Is Serving the Empty Response
The x-metasync-otto-cache response header tells you whether OTTO served a page from its cache. A value of HIT combined with a blank page body confirms a 0-byte cache event.
Check response headers in browser DevTools
- Open your browser and press F12 to open DevTools, then select the Network tab.
- Load your homepage or any blank front-end URL.
- Click the first document request in the list and open the Headers panel.
- Under Response Headers, locate the
x-metasync-otto-cacheheader.
If the value is HIT and the page is blank, OTTO is serving the stored 0-byte response. If the value is MISS or the header is absent, OTTO is not the cause — check your active theme and plugins instead.
Check response headers with curl
Run the following command, replacing the URL with your site address:
curl -sI https://yoursite.com
Look for x-metasync-otto-cache: HIT and content-length: 0 in the output. Both values together confirm the diagnosis.
🛠️ How to Clear the OTTO Cache and Restore Your Site
Purging the OTTO full-page cache deletes the 0-byte entry and forces OTTO to re-cache a valid response on the next page visit. Your front-end returns to normal immediately after the purge.
Clear the cache from the WordPress admin
- Log in to
/wp-admin— this continues to work even when the front-end is blank. - In the left sidebar, go to Search Atlas → Settings (OTTO cache: Clear Page Cache / Clear Post Cache / Clear all cache).
- Click Clear All Cache and confirm when prompted.
- Reload your front-end homepage to verify pages are rendering correctly.
Clear the cache from the Search Atlas dashboard
- Log in to app.searchatlas.com and open your site's OTTO workspace.
- Go to Settings → Full-Page Cache.
- Click Purge Cache and confirm. You'll see a green confirmation message when the purge completes.
After purging, OTTO re-caches a fresh response the next time each page is visited. Reload a front-end URL to confirm the blank pages are resolved.
💡 Why a 0-Byte Response Gets Cached
OTTO stores the HTTP response it receives the first time it crawls a page. If that initial response is empty — due to a conflict at that exact moment — the empty response is stored and served to every subsequent visitor until the cache is cleared.
Common triggers include:
- Page builder initialization failure: Plugins like Elementor Pro can output a blank body if a license check or asset load fails at the moment OTTO first crawls the page.
- Theme activation during cache warm-up: Activating or switching a theme (such as Hello Elementor) while OTTO is building its cache can cause an empty response to be stored.
- Managed hosting server rules: Hosts like WP Engine apply server-level request filtering that can interfere with OTTO's cache-crawl requests and produce a 0-byte response.
- Plugin deactivation while cache is live: Deactivating a plugin that a cached page depends on causes the page to render blank, which OTTO then re-caches as valid content.
⚙️ How to Prevent Future 0-Byte Cache Events
Follow these practices to reduce the risk of OTTO caching an empty response:
- Clear the OTTO cache before and after any theme change, major plugin update, or hosting migration.
- After any maintenance window, reload a front-end page and confirm that
x-metasync-otto-cacheshowsHITwith visible content — not a blank page. - Exclude pages that rely on external license checks or volatile dynamic content (steps below).
Exclude specific pages from the OTTO full-page cache
If a specific page repeatedly triggers empty-cache events, exclude it so OTTO always serves it dynamically:
- In
/wp-admin, go to Search Atlas → Settings (OTTO cache) → Exclusions. - Enter the URL path (e.g.,
/checkoutor/my-account) in the Excluded URLs field. - Click Save. OTTO bypasses the cache for those paths and serves them fresh on every request.
Excluded pages are always served dynamically and are not affected by future 0-byte cache events.
🎯 You can now confirm a 0-byte OTTO cache event using the x-metasync-otto-cache: HIT header, restore your site by purging the cache from /wp-admin or the Search Atlas dashboard, and reduce recurrence by clearing the cache around theme and plugin changes. For more on configuring OTTO's caching rules, see the OTTO Full-Page Cache Settings article.