Title: CrawlCue – Broken Link &amp; Image Auditor
Author: Eliyahna
Published: <strong>August 25, 2026</strong>
Last modified: August 27, 2026

---

Search plugins

![](https://ps.w.org/crawlcue-broken-link-image-auditor/assets/banner-772x250.jpg?
rev=3665846)

![](https://ps.w.org/crawlcue-broken-link-image-auditor/assets/icon-256x256.jpg?
rev=3665844)

# CrawlCue – Broken Link & Image Auditor

 By [Eliyahna](https://profiles.wordpress.org/eliyahna/)

[Download](https://downloads.wordpress.org/plugin/crawlcue-broken-link-image-auditor.1.1.1.zip)

 * [Details](https://wordpress.org/plugins/crawlcue-broken-link-image-auditor/#description)
 * [Reviews](https://wordpress.org/plugins/crawlcue-broken-link-image-auditor/#reviews)
 *  [Installation](https://wordpress.org/plugins/crawlcue-broken-link-image-auditor/#installation)
 * [Development](https://wordpress.org/plugins/crawlcue-broken-link-image-auditor/#developers)

 [Support](https://wordpress.org/support/plugin/crawlcue-broken-link-image-auditor/)

## Description

CrawlCue gives WordPress administrators a focused maintenance workflow:

 * Manually crawl the rendered front end of the site.
 * Discover internal pages from actual front-end links.
 * Check internal and external HTTP/HTTPS links.
 * Check image src and responsive srcset/source URLs.
 * Cache duplicate URL checks during a scan to reduce unnecessary HTTP requests.
 * Group repeated problem URLs so footer, menu, and template links do not flood 
   the report; open a group to see every source page.
 * Show where each URL was discovered in the rendered markup, including the HTML
   attribute (such as `img[srcset]`), a compact element locator, and an expandable
   HTML clue.
 * Open the source page in a new tab or open the WordPress editor when available.
 * Recheck a grouped result after fixing or removing it; CrawlCue checks the destination
   once and reloads source pages in small batches only when needed.
 * Separate confirmed broken resources from URLs that automated checks could not
   verify because of access controls, throttling, bot protection, TLS trust differences,
   custom HTTP responses, or temporary server conditions.
 * Sort report columns and bulk-recheck selected grouped results.
 * Manually mark inconclusive URLs as working after opening them in your browser;
   CrawlCue remembers that verification across future scans unless strong evidence
   later contradicts it.
 * Ignore intentional/unfixable URL groups without deleting the audit.
 * Show a WordPress Dashboard widget with broken-link/image counts and the last 
   scan time.
 * Recommend another audit after 7, 14, 30, 60, or 90 days without scheduling anything.
 * Run the scan in small administrator-initiated AJAX batches instead of one long
   PHP request.

CrawlCue intentionally does not use WP-Cron, require a cloud account, or send your
crawl report to an external service.

During an audit, the site server makes HTTP/HTTPS requests to the links and image
URLs found on the site so it can verify whether they respond. Those destination 
servers can therefore receive normal web-request information such as the site server
IP address and the plugin user-agent. The plugin does not add personal data, account
data, or the site URL to its external-request user-agent.

## Screenshots

[[

[[

[[

[[

## Installation

 1. Upload the plugin folder to `/wp-content/plugins/` or install the ZIP from Plugins
    > Add New > Upload Plugin.
 2. Activate CrawlCue.
 3. Go to Tools > CrawlCue.
 4. Click “Scan Website Now” and keep the audit screen open while it runs.
 5. If the browser is closed during a scan, return to Tools > CrawlCue and click “Resume
    Scan”.

## FAQ

### Does the plugin use WP-Cron?

No. Scans only run while an administrator explicitly starts or resumes one. The “
audit overdue” message is calculated from the saved last-scan timestamp when an 
administrator views WordPress.

### Does it crawl Elementor output?

Yes. The crawler requests the rendered front-end HTML, so links and images output
by Elementor, themes, menus, widgets, shortcodes, WooCommerce, and similar front-
end systems can be discovered when they appear in the resulting HTML.

### Does it check external links?

Yes. External URLs are checked with WordPress’s safe HTTP functions. Each unique
URL is checked once per audit and that result is reused for every occurrence found
on the site. A check normally uses HEAD; when HEAD is unsuccessful, CrawlCue may
make one small GET fallback before classifying the URL.

### CrawlCue found a broken resource on a page, but I cannot see it. Where is it?

Open **Details** (or **View all** for grouped results). CrawlCue shows the rendered
HTML attribute that exposed the URL, such as `img[src]`, `img[srcset]`, `img[data-
src]`, `source[srcset]`, or `a[href]`, plus a compact element locator and an expandable
HTML clue. Hidden widgets, responsive/lazy markup, shared headers or footers, shortcode
output, and page-builder templates can contain URLs that are not visibly displayed
on the page.

The clue identifies the rendered markup CrawlCue received from the front end. It
may not identify the original PHP, shortcode, widget, or page-builder template that
generated that markup.

### Why is a URL listed under Needs Review even though it works in my browser?

Some sites, CDNs, firewalls, social networks, certificate chains, or anti-bot services
respond differently to a WordPress server than they do to a visitor’s browser. CrawlCue
therefore treats most non-success responses as inconclusive unless the response 
strongly establishes that the resource is gone. HTTP 404 and 410 are confirmed broken;
responses such as 403, 429, custom/non-standard 4xx codes, 5xx codes, timeouts, 
DNS failures, and TLS/SSL verification failures are shown under Needs Review instead.

CrawlCue also retries a failed HEAD check with a small, browser-compatible GET request
before classifying the URL, because some healthy sites do not handle HEAD requests
the same way as normal page requests. The compatibility request still identifies
itself as CrawlCue and does not solve JavaScript challenges, bypass CAPTCHAs, or
use session-cookie tricks.

If you open an inconclusive URL yourself and confirm that it works, use **Mark as
Working**. CrawlCue stores that manual verification separately from Ignore and remembers
it on future scans when the automated check remains inconclusive. A later confirmed
failure such as HTTP 404 or 410 overrides the old manual verification.

### What happens if I remove a broken link or image instead of repairing its destination?

Recheck preserves that workflow. It first checks whether the representative source
page still contains the saved URL. If the reference was removed, CrawlCue verifies
the other grouped source pages in small batches and clears the removed occurrences.
If the reference is still present, CrawlCue retests the destination once and updates
the whole group.

### Does it scan CSS background images?

Version 1.0 focuses on HTML image sources (`img src`, `srcset`, and `picture/source`)
and hyperlinks. External stylesheets and CSS background-image crawling are not included
in the first release.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“CrawlCue – Broken Link & Image Auditor” is open source software. The following 
people have contributed to this plugin.

Contributors

 *   [ Eliyahna ](https://profiles.wordpress.org/eliyahna/)

[Translate “CrawlCue – Broken Link & Image Auditor” into your language.](https://translate.wordpress.org/projects/wp-plugins/crawlcue-broken-link-image-auditor)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/crawlcue-broken-link-image-auditor/),
check out the [SVN repository](https://plugins.svn.wordpress.org/crawlcue-broken-link-image-auditor/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/crawlcue-broken-link-image-auditor/)
by [RSS](https://plugins.trac.wordpress.org/log/crawlcue-broken-link-image-auditor/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.1

 * Package the plugin under the WordPress.org-assigned slug so local Plugin Check
   resolves the same text domain used by the repository.

#### 1.1.0

 * Added discovery-location details for every broken link and image occurrence.
 * Report whether a URL came from markup such as `a[href]`, `img[src]`, `img[srcset]`,
   lazy-load data attributes, or `source[srcset]`.
 * Added compact element locators and escaped HTML clues to help locate hidden, 
   responsive, widget, shortcode, header/footer, and page-builder references.
 * Added a Details view for single-occurrence results; grouped results continue 
   to use View all.
 * Recheck now refreshes discovery-location metadata for existing results when the
   reference is still present.

#### 1.0.9

 * Match the WordPress.org-assigned plugin slug for the translation text domain.

#### 1.0.8

 * Fixed the Plugin Check LIKE-wildcard error in the upgrade migration by escaping
   the literal prefix with `$wpdb->esc_like()` and passing the wildcard pattern 
   through `$wpdb->prepare()`.

#### 1.0.6

 * Updated WordPress.org readme headers and short description for Plugin Check.
 * Added translator comments and tightened output escaping for internationalized
   strings.
 * Moved AJAX nonce verification directly into each request handler so automated
   security checks can verify it before request data is processed.
 * Hardened custom-table SQL preparation and documented intentional uncached direct
   access to CrawlCue’s short-lived audit tables.
 * Prefixed uninstall-scope variables and hardened table identifier handling.

#### 1.0.5

 * Added **Mark as Working** for Needs Review URLs that an administrator has opened
   and manually confirmed.
 * Added a separate **Verified** report view and bulk Mark Selected Working / Undo
   Verification actions.
 * Manual verification is persisted by resource type and URL across future scans
   when automated checks remain inconclusive.
 * A later confirmed failure such as HTTP 404/410 overrides and removes an older
   manual verification.
 * External fallback GET requests now use HTTP/1.1, normal browser content-negotiation
   headers, and a transparent browser-compatible CrawlCue user-agent to reduce simplistic
   bot-filter false positives without impersonating a specific browser.
 * Administrator-triggered Recheck uses one extended compatibility GET with up to
   a 20-second timeout (bounded by the existing 30-second maximum) when the normal
   check remains inconclusive.
 * CrawlCue still does not execute JavaScript challenges, bypass CAPTCHAs, reuse
   visitor cookies, or attempt to defeat access controls.

#### 1.0.4

 * Reduced false positives by retrying every unsuccessful HEAD request with a small
   GET request before classification.
 * Confirmed Broken now focuses on strong failures such as HTTP 404/410, invalid
   URLs, redirect failures, and invalid image responses.
 * Custom/non-standard 4xx responses such as HTTP 460, most other 4xx responses,
   5xx responses, TLS/SSL verification failures, timeouts, DNS failures, and connection
   failures now go to Needs Review.
 * Added friendlier explanations for verification warnings so server-to-server failures
   are not presented as proof that a visitor-facing link is broken.
 * Grouped repeated URLs into one report row with an occurrence count and a View
   all source-pages detail view.
 * Dashboard Broken/Needs Review counts now represent unique problem URLs rather
   than every repeated occurrence.
 * Added sortable report-column headings.
 * Added row checkboxes and Recheck Selected bulk processing.
 * Group Recheck checks a representative source first. If a shared template/footer
   reference appears to have been removed, the remaining source pages are verified
   in small AJAX batches; otherwise the destination is checked once.
 * Ignore/Unignore now applies to the entire grouped URL.
 * Added an update migration that moves previously saved ambiguous HTTP/TLS results
   into Needs Review.

#### 1.0.3

 * Recheck now reloads the source page first, so removed or replaced broken links/
   images are recognized as fixed.
 * Added persistent confirmation feedback when Recheck clears a repaired occurrence.
 * Added a Needs Review classification for inconclusive automated checks such as
   HTTP 401, 403, 429, 999, timeouts, DNS failures, and temporary 5xx responses.
 * HTTP 999 now receives the same limited GET fallback used for other commonly blocked
   HEAD requests.
 * Added a Needs Review dashboard/report count, filter, amber status styling, and
   Open Link action for manual verification.

#### 1.0.2

 * Renamed the plugin to CrawlCue – Broken Link & Image Auditor.
 * Standardized the slug, text domain, namespace, constants, hooks, options, database
   tables, AJAX actions, script/style handles, selectors, nonce names, and JavaScript
   global around the CrawlCue identity.
 * Updated user-facing branding and outbound crawler user-agent.

#### 1.0.1

 * Hardened redirect handling for crawler HTTP requests.
 * Sanitized all AJAX request values explicitly.
 * Increased JavaScript global-name uniqueness and tightened output escaping.
 * Standardized the plugin folder/main-file naming for WordPress.org packaging.
 * Documented outbound link-check requests.

#### 1.0.0

 * Initial release.
 * Manual batched front-end crawler.
 * Broken link and image reporting.
 * Dashboard health summary and last-scan reminder.
 * Recheck and Ignore actions.
 * No WP-Cron dependency.

## Meta

 *  Version **1.1.1**
 *  Last updated **4 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [broken images](https://wordpress.org/plugins/tags/broken-images/)[broken links](https://wordpress.org/plugins/tags/broken-links/)
   [link checker](https://wordpress.org/plugins/tags/link-checker/)[site audit](https://wordpress.org/plugins/tags/site-audit/)
   [website maintenance](https://wordpress.org/plugins/tags/website-maintenance/)
 *  [Advanced View](https://wordpress.org/plugins/crawlcue-broken-link-image-auditor/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/crawlcue-broken-link-image-auditor/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/crawlcue-broken-link-image-auditor/reviews/)

## Contributors

 *   [ Eliyahna ](https://profiles.wordpress.org/eliyahna/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/crawlcue-broken-link-image-auditor/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://eliyahna.com/donate/)