Dragon Broken Links is a broken link checker that scans your posts, pages and every other public post type (WooCommerce products included) for links, images, embeds and media that no longer work, and lets you fix them without leaving WordPress. The checking runs on your own server – there is no thir
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 6.2 and PHP 8.0.
SourceWordPress plugins · Oct 21, 2026
01 / Source details
Aboutthistool.
Dragon Broken Links is a broken link checker that scans your posts, pages and every other public post type (WooCommerce products included) for links, images, embeds and media that no longer work, and lets you fix them without leaving WordPress. The checking runs on your own server – there is no third-party checking service, no account, no per-link credits and no monthly quota.
Why this one
Most broken-link plugins either meter the free version to a few hundred links a month or push the real checking into a paid cloud subscription. Dragon Broken Links does the opposite: internal and external checking is free and unlimited , and it is built to be a good citizen on your server and on the sites it checks.
What it checks
Links, images, embeds and media in every published post, page, product and custom post type – including inside reusable (synced) patterns, wherever they sit in the layout – with no link limit. Narrow the list of post types under Settings if you want to.
Internal links without touching your site – resolved against your database: links to deleted, trashed, unpublished or renamed content, and images missing from your uploads folder, are flagged instantly with no requests to your own server.
External links politely – one request per unique URL no matter how many posts use it, a few at a time, never more than a handful to the same site in one go.
Custom fields and comments, if you want them – tick Custom fields or Approved comments under Settings to also check web addresses in public custom fields and links in approved comments. Both are off by default because each adds a database query for every post read. A post is read again when one of its comments is approved, edited or removed.
No false alarms
A link is only marked Broken after a hard failure (404, 410, dead domain, connection refused) is confirmed on three separate checks.
A first failure shows as Suspected and is re-checked before it counts.
Ambiguous answers (bot-blocking 403s, rate limits, timeouts, server errors) go to Needs review , never counted as broken.
Servers that refuse HEAD requests get a second, body-free GET before the answer counts.
Fix in place
Edit a link’s URL or remove the link (keeping its text) straight from the report – block-editor aware, so both the block data and the rendered HTML are updated together and the editor never reports invalid content.
Dismiss a URL everywhere it appears, and restore it later from the Dismissed view.
Re-check any single link on demand.
Scan now with live progress, plus a background re-check every 15 minutes that works through every link on the cadence you choose – daily, weekly, monthly or never (a very large site, or slow hosts, can take longer).
WP-CLI : wp dragon-broken-links scan , list and recheck for large or headless sites.
Bulk tools
Replace a domain across every broken, suspected and needs-review link at once – for a site that moved, or a linked site that changed its address. Only the domain changes; the rest of each link stays as written, and on posts and pages each change creates a revision you can restore. Links it cannot change (in custom fields, comments, synced patterns, posts you cannot edit, or pages built with Elementor, Beaver Builder or Bricks) are counted, and page-builder pages are named so you can fix them in the builder.
Dismiss all needs-review links in one click.
Export to CSV : the broken and needs-review links, one row for each place a link is used, with status, type and post.
Alerts and scheduled scans
Email alerts (off until you switch them on): when a scan finds links that have newly become broken, one email lists them. It goes to the site admin email, or to the addresses you enter. No email is sent when nothing new broke.
Scheduled full re-scan : every post is read again in the background, weekly by default (or daily, or off), so links that reach a post without it being saved – imports, custom fields, changes made outside the editor – are found too.
Secure by design
External checks refuse to reach private, internal, link-local, cloud-metadata and reserved addresses, re-validate every redirect hop, pin the connection to the address that was validated, and never read more than the first few kilobytes of a response.
Works with Dragon Redirect Manager
If Dragon Redirect Manager is active, a broken internal link gets a one-click Create redirect action, so you can point the old address somewhere sensible without leaving the report.
Free and unlimited
Everything above is free and unlimited – no link cap, no cloud account, no credits.
Multisite
Works per site. Each site has its own report, settings and background re-check; there is no network-wide view.
External services
This plugin makes no connection to Dragon Core or any third-party checking service, and sends no data about your site anywhere.
To test an external link it sends an HTTP HEAD request (then a GET, if HEAD is refused) to that URL from your own server, once per unique URL, with the User-Agent Mozilla/5.0 (compatible; DragonBrokenLinks/<version>; +https://dragoncore.ltd/plugins/dragon-broken-links) . The linked site therefore sees a normal request for that page coming from your server’s IP address; nothing about your site, its content or its users is included. Internal links are checked against your database and are never requested. Requests to private, loopback, link-local and reserved addresses are refused.
If you switch on email alerts, the alert email is sent with WordPress’s own mail function ( wp_mail() ) to the addresses you enter (or the site admin email), through whatever mail setup your site already uses. It contains your site’s name, the broken links and a link to the report. The plugin itself makes no other connection for it.
Credits
The WordPress.org listing icon is drawn with glyphs from Lucide (https://lucide.dev), ISC License. Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (https://feathericons.com, MIT License). All other copyright (c) for Lucide are held by Lucide Contributors 2022. The plugin itself does not include these icons.
See it in action
Screenshots & previews.
The report: every broken link, where it was found and a plain-English reason - with Re-check, Edit URL, Remove link, Dismiss and Create redirect on each row.Scan now runs on your own server with live progress ("Checking links - 18 remaining") - no cloud, no credits.Ambiguous answers (bot-blocking 403s, rate limits, server errors) go to Needs review and are never counted as broken.Dismissed links stay out of the report until you restore them.Settings: which post types are scanned, how often links are re-checked, the request timeout and the data-retention opt-in; a Broken Link Checker import appears here when that plugin's data is present.
02 / Source details
Gettingstarted.
01Install and activate the plugin from the Plugins screen, or upload the dragon-broken-links folder to /wp-content/plugins/ .
02Go to Tools → Broken Links .
03Press Scan now . Links are re-checked automatically in the background afterwards.
03 / Source details
Frequently asked questions.
Does it use an external service?
No. There is no cloud account, no API key, no per-link credits, and nothing is reported to Dragon Core or anyone else. The only outbound traffic is the request your server makes to each external link to see whether it still works (see “External services” above).
Is there a limit on links or scans?
No. Every unique URL is checked once per cycle, however many posts link to it, and there is no cap on links, posts or scans.
What is the difference between Broken, Suspected and Needs review?
Broken – failed on three separate checks with a hard error (404, 410, no such domain, connection refused). Suspected – failed once; it is re-checked before it counts as broken. Needs review – the site answered but ambiguously (403, 429, timeout, server error), which is often bot-blocking rather than a dead page; open it, and dismiss it if it works.
Why is a working link shown as “Needs review”?
Some servers answer automated requests with a 403, 429 or a timeout even though the page is fine for real visitors. Rather than cry wolf, Dragon Broken Links flags those for you to decide, and never counts them as broken automatically.
Will checking links slow down or overload my site?
No. External links are checked in small, throttled batches within a fixed time budget, and each unique URL is checked only once. Internal links are resolved from the database rather than by making requests to your own site.
Does it check images?
Yes – <img> sources, plus iframes, video, audio and embeds in your posts and pages. Internal images are checked against the uploads folder (including resized variants); external ones are requested like any other link. Gallery thumbnails and srcset variants of an image that exists are not checked separately.
Can I schedule scans?
Yes. Links are re-checked automatically in the background (every 15 minutes, working through every link daily, weekly or monthly – your choice under Settings), and a post is re-scanned whenever you save it. On top of that, every post is read again on a schedule – weekly by default, or daily, or off – under Settings → Full re-scan .
Does it scan WooCommerce products and custom post types?
Yes. Every public post type is scanned by default – posts, pages, WooCommerce products and any custom post type your theme or plugins register. Untick the ones you do not want under Settings → Content scanned .
Does it scan comments or custom fields?
Yes, if you switch it on: tick Custom fields and/or Approved comments under Settings → Also scan . Links found there are reported with the post they belong to. Edit URL, Remove link and domain replace only change post content, so fix those links where they are stored (the report tells you when a link is in a custom field or comment).
Can it email me when a link breaks?
Yes. Tick Email alerts under Settings. When a scan finds links that have newly become broken, you get one email listing them, sent to the site admin email or to the addresses you enter. Links that were already broken are not sent again, and no email goes out when nothing new broke. A link that breaks when you re-check it by hand is sent straight away, or with the running scan’s email if a scan is in progress. The email uses your site’s normal mail setup, so if other WordPress emails reach you, these will too.
Can I change a domain in all my links at once?
Yes: Tools → Broken Links → Bulk tools → Replace a domain points every broken, suspected and needs-review link on the old domain at the new one. Working links are left alone. Links it cannot change are counted in the result, and pages built with a page builder are named.
Can I export the report?
Yes: Bulk tools → Export findings (CSV) downloads the broken and needs-review links, one row for each place a link is used.
I’m coming from Broken Link Checker – can I keep my dismissed links?
Yes. If Broken Link Checker’s data is still in your database, Settings → Import from Broken Link Checker carries your dismissed links over so you do not have to re-triage them. Nothing is removed from Broken Link Checker.
My scan does not seem to run on its own.
Background scanning uses WP-Cron, which only runs when your site gets traffic. On a quiet site, click Scan now , or run wp dragon-broken-links scan from WP-CLI. If WP-Cron is turned off on your site, the report says so: background checks then run only when your server calls wp-cron.php on a schedule.
Does editing a link change my content safely?
Yes. Fixes are applied through the block parser, updating both the block data and the rendered HTML together, so the editor never reports invalid content. Classic (non-block) content is handled too, and on posts and pages every fix creates a revision you can restore from (some post types, such as WooCommerce products, keep no revisions). Removing a link from a button keeps the button and its text. Pages built with Elementor, Beaver Builder or Bricks keep their own copy of the content, so their links are fixed in the builder; the report says so and offers to open the page.
Does it work on multisite?
Yes, per site: each site keeps its own report, settings and background re-check.
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati