Skip to content
super-page-cache

Instant speed boost – enable lazy-loading, defer scripts, and fine-tune caching for blazing-fast pages. Priority support included.

See Pro Plans →

Fixing Blank Ads with Super Page Cache and Cloudflare

If ads are showing as blank spaces on your site, full-page caching is likely capturing a static snapshot of the page before the ad content has a chance to load. This guide explains why this happens and walks you through two solutions to fix it.

Understanding the Issue

When Super Page Cache saves a page, it stores a static HTML snapshot of that page on Cloudflare's edge network. If a dynamic ad script — such as one injected by an ad management plugin — has not fully rendered at the moment the cache snapshot is taken, the cache stores only an empty placeholder or blank slot in its place.

Every visitor who is then served that cached page sees the blank space instead of an actual ad. The ad code is simply not present in the stored HTML.

There are two ways to resolve this:

  • Solution 1 — Exclude the affected pages from caching entirely.
  • Solution 2 — Load ads client-side (after the page is delivered), so the cached page still loads fast and ads still appear.

Solution 1: Exclude Ad Pages from Caching

This approach tells Super Page Cache to skip caching for the specific pages where ads are appearing blank. Those pages will be generated fresh for each visitor, which ensures the ad code is always included.

  1. In your WordPress admin, go to Settings > Super Page Cache.

  2. You are on the General tab by default. Scroll down to the Prevent the Following URIs to Be Cached field.

  3. Enter the slug or URI pattern for each page where ads are blank — one per line. For example:

    /blog/
    /shop/
    /deals/

    You can also use a wildcard (*) to exclude a section of your site. For example, /blog* excludes your blog index and all individual post URLs under it.

  4. Click Save Settings.

  5. Purge the cache using the Purge Cache button in the plugin dashboard.

Verify the fix

Open the affected page in an incognito or private browser window. Confirm that the ads are now visible and loading correctly.

⚠️ Important: This solution works best when only a small number of pages carry ads. Excluding a large portion of your site from caching reduces the performance benefit of using a CDN cache. If ads appear across most of your pages, use Solution 2 instead.

Solution 2: Use Client-Side Ad Loading

Some ad management plugins support loading ads dynamically in the visitor's browser after the cached page has been delivered — often called lazy loading or AJAX loading. When enabled, the cached HTML no longer needs to contain the ad code; ads are fetched on every visit regardless of the cache.

Check your ad plugin's documentation or settings for options such as:

  • Lazy loading — Defers ad code execution until the page is fully loaded in the browser.
  • AJAX loading — Fetches ad content via a separate browser request after the page loads.

If your plugin supports one of these options, enable it, then return to Settings > Super Page Cache and purge the cache using the Purge Cache button.

Not all ad plugins or their free versions include lazy loading or AJAX options. If yours does not, use Solution 1 to exclude pages with ads from the cache.

Verify the fix

Open the affected page in an incognito or private browser window. Open your browser's DevTools (press F12), go to the Network tab, and reload the page. Find the request for the page itself and check its response headers. You should see:

  • cf-cache-status: HIT — confirming the page is being served from Cloudflare's cache.
  • The ad slot is visible and loaded correctly on the page.

Still having issues?

If ads are still blank after trying both solutions, contact Themeisle support for further help.