Troubleshooting

Updated:

URLs Not Warming After Changes

Possible causes

1. Cache Invalidator disabled

Check that the master switch is enabled.

2. Post Type not enabled (or relationiship not set)

3. Sitemap membership

The URL may not be present in configured sitemaps. Only URLs included in your sitemap are eligible for targeted warmup.

Membership is maintained automatically in the background. If a URL was recently added or changed, it may take a short moment to be included.

Verify

  • the URL appears in your sitemap
  • the URL is canonical (matches sitemap format)

Automatic Cache Warmup disabled

Check the warmup master switch.

No cache adapter detected

Both plugins are designed to operate with a supported cache plugin. Without one, invalidation and warmup have no practical effect.

Full warmup preparing

If a full warmup is currently preparing, targeted URLs may be buffered and warmed shortly after preparation completes.


Cache Adapter Not Detected

Verify a supported cache plugin is installed and active.


WP-Cron Not Running

WP-Cron is the task scheduler that WordPress uses for background processing. Both Cache Invalidator and Cache Warmup depend on it for async deep invalidation, timed invalidation rules, warmup run preparation, and warmup batch execution.

Symptoms: warmup runs staying in preparing, batches not executing, timed invalidation rules not firing, async deep invalidation not processing.

  • Check if DISABLE_WP_CRON is set to true in wp-config.php. If so, configure a server-side cron job.
  • Use the Cache Warmup WP-Cron diagnostics panel to test loopback connectivity.
  • Low-traffic sites may experience delayed cron execution. A server-side cron job resolves this.

Disabling WP-Cron and setting up a server-side cron job is the most reliable and predictable way the two plugins work as expected, and is therefore recommended.

Setting up a server-side cron job

If your site has low traffic or WP-Cron is disabled, a server cron job ensures background processing runs reliably. Most hosting providers allow configuring this either via their control panel or with a cron command.

  • Open your hosting control panel and locate Cron Jobs
  • Add a job running every 1–5 minutes
  • Use your WP-Cron URL:
    https://your-site.com/wp-cron.php?doing_wp_cron

Cron command (example)

  • Example command running every minute:*/1 * * * * wget -q -O /dev/null https://your-site.com/wp-cron.php?doing_wp_cron
  • Replace the URL with your site’s actual URL
  • See your hosting documentation for details

Warmup Runs Stalling

  • Check the stale run minutes setting. Runs with no activity beyond this threshold are automatically recovered.
  • Verify WP-Cron is firing (see above).
  • Check server error logs for timeout or memory issues during warmup requests.
  • Auto-pacing adjusts batch size based on server performance. If manually pacing, reduce pages per batch.
  • Runs stuck in preparing usually indicate WP-Cron is not firing.

Sitemap Notices

These notices mean Cache Warmup can’t reliably determine which pages to warm.

Missing sitemap

No sitemap is configured. Cache Warmup doesn’t know which pages belong in a full warmup.

How to fix
  1. Go to Cache Warmup Settings → Warmup.
  2. Add your sitemap URL(s)
  3. Click Save.

Membership degraded

Cache Warmup couldn’t fully refresh your sitemap data. Warmup still runs, but some pages may be skipped.

How to fix
  1. Check you sitemap URL(s) in Cache Warmup SettingsWarmup.
  2. Make a small content change (for example, update a page)
  3. Wait a moment and reload

If it persists:

  • Open your sitemap URL in the browser (use link below the sitemap field)
  • Make sure it loads publicly

Membership missing or invalid

Cache Warmup can’t use your sitemap data. Page matching may not work correctly.

How to fix
  1. Check you sitemap URL(s) in Cache Warmup SettingsWarmup.
  2. Make a small content change (for example, update a page)
  3. Wait a moment and reload

If it persists:

  • Open your sitemap URL in the browser (use link below the sitemap field)
  • Make sure it loads publicly

Multilingual URLs Missing

  • Verify that your multilingual plugin (see Multilingual Compatibility) is active and configured.
  • Cache Invalidator detects multilingual plugins in a fixed order. If using multiple plugins, only the first detected is used.
  • Review multilingual fanout policy toggles. Post triggers default to same-language fanout while non-post triggers default to all-languages fanout.

Debug Logging

Support Debug Mode

If anything does not work as expected, the support debug mode can be enabled from Cache Invalidator → Settings → Support & Debugging.

  • Both Cache Invalidator and Cache Warmup write to the same shared log file.
  • Only high-signal entries (INFO, WARNING, ERROR) are recorded. Verbose output is excluded.
  • Download the log file directly from the settings panel and share it with support.
  • The log file appears after the first diagnostic event fires. Use the Refresh button to check.
  • Disable support debug mode when troubleshooting is complete. This deletes the log file automatically.

Developer Constants

For developer-level debugging with access to the server error log:

  • Set WP_DEBUG and WP_DEBUG_LOG to true in wp-config.php.
  • Define ECI_DEBUG and/or ECW_DEBUG to enable plugin-specific logging to the PHP error log.
  • Define WP_CACHE_AUTOPILOT_DEBUG to enable both ECI_DEBUG and ECW_DEBUG behavior simultaneously.

Operational Limitations

Password protected sites

If the sites is password protected via .htaccess or a plugin like Password Protected, the URLs can’t be preloaded.

In order to warm a URL it must be publicly available.

As soon as the site is live, trigger a manual warmup.