About this plugin
Tidy Broken Link Scan is a lightweight broken link checker. It checks every published post, page and public custom post type on your WordPress site for broken links and images. It checks <a href>, <img src>, <img srcset>, and <source srcset> — all natively, using the WordPress HTTP API.
No SaaS, no API key, no external dependency.
Features:
- Detects broken links (4xx, 5xx, timeouts)
- Checks images including srcset and <picture> elements
- Automatic daily scan via WP-Cron
- Instant re-scan when you save a post
- Admin dashboard with filtering (all / broken / ok)
- Direct link to edit the source post
- Works on any WordPress hosting
Need a full-site crawl? This plugin checks the links and images inside your published posts, pages and custom post types. com.
It runs in your browser, needs no installation, and is made by the same author.
More from Tidy Plugins
If you like this plugin, take a look at the rest of the Tidy suite:
- Tidy Table of Contents — automatic, accessible table of contents
- Tidy Draft Share — share drafts via secure, expiring preview links
- Tidy Author Box — author bio box with avatar and social links
External services
This plugin sends HTTP requests to third-party URLs as its core functionality (broken link checking). The list of contacted URLs is dynamic: it consists of the external links and image sources found in your own published posts, pages, and custom post types.
- What is sent: HTTP HEAD (with GET fallback) requests using the WordPress HTTP API. The plugin does not transmit any user-identifying data; only the URL itself is requested.
- When: requests are issued during a scan, which is triggered manually from the admin dashboard, automatically once per day via WP-Cron, or when you save a post (re-scan of that post only).
- Why: to determine whether each link returns a 2xx/3xx response (OK) or a 4xx/5xx/timeout response (broken).
Because the contacted URLs are entirely determined by the content of your own site, the plugin does not rely on any single fixed third-party service. ) is skipped from scanning to avoid noise; no data is sent to those domains by the plugin itself.