Troubleshooting
A page is missing from the scan
The most common reasons:
- It is password-protected. These are never scanned - there is no way to render them without the password. Remove the password and the page is picked up on the next scan.
- It is a custom post type, WooCommerce product, or unpublished (draft, scheduled, pending or private). These are free to scan but off by default. Switch on the matching option in Settings - Custom post types or Unpublished content - and they are included from the next scan.
- It is excluded from scanning. Re-include it from the Exclusions screen (Manual Exclusions tab), or from the Posts / Pages screen. On paid plans, check whether an exclusion rule matches it.
A working link is reported as broken
- It may be "blocked, not broken". Some hosts challenge automated requests; the plugin marks these separately from real failures. On Premium, setting the browser user-agent can reduce how often a strict host does this.
- A temporary error (such as a timeout) is retried later in the same scan. If a slow host keeps timing out, raise the check timeout on the Settings screen.
- It may need a parameter you are ignoring. If you added a URL parameter to the ignore list that the destination actually needs, the checked URL can differ from the real one. Remove that parameter from the list and re-scan. (This cannot happen with the built-in defaults - they are all cache-busters and tracking tags that never change what loads.)
The same file is counted as many different URLs
This is usually a cache-buster or tracking parameter (like ?ver=123) that
changes on every render. Add the parameter to the ignore list on the Settings
screen, and each real file is checked once. On Premium, the URL Parameter
Learning Engine spots these for you and suggests them with evidence.
A scan reports an error on some pages
The plugin scans a page by requesting it on your own server. On some configurations behind aggressive Cloudflare bot protection this self-request can be challenged. The plugin retries and falls back to a direct local fetch; if that also fails it reports an actionable error for those items rather than silently skipping them.
A scheduled scan ran later than the time I set (paid)
On standard shared hosting, WordPress background tasks run on site visits, so a scan scheduled for 09:00 starts on the first visit after 09:00. On low-traffic sites this can be noticeably later. A server-side cron calling wp-cron.php removes the delay but is never required.
The email report didn't arrive (paid)
Reports are sent with WordPress's standard mail function. On hosts without proper mail configuration, messages may be delayed, spam-foldered or dropped. An SMTP plugin is recommended for reliable delivery. Send failures are recorded in the plugin log (Settings > Logs).
Safe Browsing says my key is invalid (paid)
The "Test API key" button reports exactly what Google returned. The usual causes are a mistyped key, the Safe Browsing API not being enabled for the key's Google Cloud project, or an application restriction on the key that blocks server-side requests. The Logs tab records the full response for diagnosis. Note that key changes at Google can take a few minutes to take effect.