Title: Dragon Broken Links &#8211; Broken Link Checker &amp; 404 Fixer
Author: Dragon Core
Published: <strong>5 Settembre 2026</strong>
Last modified: 25 Settembre 2026

---

Ricerca i plugin

![](https://ps.w.org/dragon-broken-links/assets/banner-772x250.png?rev=3682400)

![](https://ps.w.org/dragon-broken-links/assets/icon-256x256.gif?rev=3711719)

# Dragon Broken Links – Broken Link Checker & 404 Fixer

 Di [Dragon Core](https://profiles.wordpress.org/dragoncoreltd/)

[Scarica](https://downloads.wordpress.org/plugin/dragon-broken-links.1.1.11.zip)

 * [Dettagli](https://it.wordpress.org/plugins/dragon-broken-links/#description)
 * [Recensioni](https://it.wordpress.org/plugins/dragon-broken-links/#reviews)
 *  [Installazione](https://it.wordpress.org/plugins/dragon-broken-links/#installation)
 * [Sviluppo](https://it.wordpress.org/plugins/dragon-broken-links/#developers)

 [Supporto](https://wordpress.org/support/plugin/dragon-broken-links/)

## Descrizione

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.

#### 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.

#### 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](https://dragoncore.ltd/plugins/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.

#### What the free version includes

Everything above is free, fully functional and unlimited – no link cap, no cloud
account, no upsell nags.

#### Dragon Broken Links Pro

[Dragon Broken Links Pro](https://dragoncore.ltd/plugins/dragon-broken-links-pro)
is an optional annual add-on that adds:

 * Email and signed-webhook alerts (Slack-compatible) on newly broken links.
 * Bulk fixing and site-wide domain find-and-replace.
 * Scheduled monitoring with history and CSV export.
 * Scanning of links held in custom fields and comments.

Nothing in this plugin is locked or limited without it.

#### 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.

### 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.

## Screenshot

[⌊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.⌉⌊
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.⌉[

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.⌉⌊Scan now runs on your own server with live progress ("Checking
links - 18 remaining") - no cloud, no credits.⌉[

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.⌉⌊Ambiguous answers (bot-blocking 403s, rate
limits, server errors) go to Needs review and are never counted as broken.⌉[

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.⌉⌊Dismissed links
stay out of the report until you restore them.⌉[

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.⌉⌊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.⌉[

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.

## Installazione

 1. Install and activate the plugin from the Plugins screen, or upload the `dragon-
    broken-links` folder to `/wp-content/plugins/`.
 2. Go to **Tools  Broken Links**.
 3. Press **Scan now**. Links are re-checked automatically in the background afterwards.

## FAQ

### 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?

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. Scheduled full scans with history and CSV
export are part of Pro.

### 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?

Not on its own: links in comments and custom fields are covered by Dragon Broken
Links Pro.

### 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.

### 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 every fix creates a revision you can restore
from.

### Does it work on multisite?

Yes, per site: each site keeps its own report, settings and background re-check.

## Recensioni

Non ci sono recensioni per questo plugin.

## Contributi e sviluppo

“Dragon Broken Links – Broken Link Checker & 404 Fixer” è un software open source.
Le persone che hanno contribuito allo sviluppo di questo plugin sono indicate di
seguito.

Collaboratori

 *   [ Dragon Core ](https://profiles.wordpress.org/dragoncoreltd/)

[Traduci “Dragon Broken Links – Broken Link Checker & 404 Fixer” nella tua lingua.](https://translate.wordpress.org/projects/wp-plugins/dragon-broken-links)

### Ti interessa lo sviluppo?

[Esplora il codice](https://plugins.trac.wordpress.org/browser/dragon-broken-links/)
segui il [repository SVN](https://plugins.svn.wordpress.org/dragon-broken-links/),
segui il [log delle modifiche](https://plugins.trac.wordpress.org/log/dragon-broken-links/)
tramite [RSS](https://plugins.trac.wordpress.org/log/dragon-broken-links/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.11

 * Fixed: re-reading a post no longer resets its links’ history, so confirmed broken
   links stay broken and alerts do not repeat.
 * Fixed: a one-time error on the first request after some upgrades.
 * Links caught by a redirect show as redirected, and Create redirect re-checks 
   the link straight away.
 * A link whose host changes (for example after moving from staging) is re-classified
   and checked again.
 * Tab counts match the listed rows. On subdirectory multisite, links to sibling
   sites are no longer reported as broken.
 * Uninstall runs per site on multisite.

#### 1.1.10

 * Internal links and images are no longer held to the per-host limit meant for 
   external sites, so large sites are checked much faster.
 * Links inside synced patterns are found inside layout blocks, and can be fixed
   from the report.
 * Excluded links are reviewed again when an exclusion rule is lifted, and links
   no post contains any more are removed.
 * Tab counts now match the listed links.

#### 1.1.9

 * Every screen, email and alert is now translatable, so community translations 
   from translate.wordpress.org cover the whole plugin. Counts use proper plural
   forms, and numbers and dates follow your site’s language.
 * Scan progress reads naturally in every language.

#### 1.1.8

 * Corrected the readme: Dragon Broken Links Pro is an annual licence, not a one-
   time purchase. No code changes.

#### 1.1.7

 * An “Upgrade to Pro” link on the Plugins screen, a one-line pointer at the foot
   of the plugin’s own screens, and a single dismissible note once the plugin has
   done its job. All three disappear when the Pro add-on is active; nothing in the
   free plugin is locked or changed.
 * The Pro card on the settings screen is hidden once Pro is active.

#### 1.1.6

 * Fixed: when a redirect chain sets a #fragment on one hop and a later hop has 
   none, the fragment is now carried to the final address as RFC 9110 requires (/
   start redirected to /middle#new and then to /target is recorded as /target#new).
   Fragments are never sent to the server.
 * Thanks to Mike Kuketz (kuketz-blog.de) for the report.

#### 1.1.5

 * Fixed: Edit link and Remove link only touch real href and src attributes. Attributes
   such as data-href, data-src and xlink:href were also matched and could be changed.
 * Fixed: Edit link and Remove link match the URL value case-sensitively. Two links
   differing only in letter case are no longer both changed when only one was chosen.
 * Fixed: relative redirect targets (Location headers such as ?x=1, #section, ./
   page or ../page) are resolved per RFC 3986, so the redirect is followed to the
   right address.
 * Fixed: when WordPress refuses to save the updated post, the fix is reported as
   failed instead of as done.
 * Thanks to Mike Kuketz (kuketz-blog.de) for reporting all four.

#### 1.1.4

 * Asks for a WordPress.org review once, only on the Broken Links screen and only
   after a scan has finished or a link has been fixed. “Maybe later” snoozes it 
   for a month and “No thanks” is permanent.
 * Listing title, description and tags now say what the plugin does, so it is easier
   to find in the plugin directory.

#### 1.1.3

 * New: every public post type is scanned – WooCommerce products and custom post
   types included – with a checklist under Settings to narrow it down.
 * New: the background re-check cadence is a setting: daily, weekly, monthly or 
   never.
 * Changed: sites updating from 1.1.2 re-read all content on the next scan so the
   newly covered post types are picked up.

#### 1.1.2

 * Copy: plainer punctuation throughout the report, settings and documentation.

#### 1.1.1

 * Report: the status key is now three labelled pills instead of a paragraph, so
   Broken / Suspected / Needs review are recognisable at a glance.
 * Report: dismissed and not-yet-checked rows get a neutral pill.

#### 1.1.0

 * Fixed: editing or removing a link could corrupt the other blocks in that post(
   JSON escapes in block attributes such as `&`, `--` or backslashes lost their 
   backslash on save). Every fix is now saved exactly as the editor would.
 * Fixed: dismissed links (including those imported from Broken Link Checker) were
   forgotten when the post containing them was next edited.
 * Fixed: a link to a domain that no longer exists was reported as “needs review”
   instead of broken.
 * Fixed: “Remove link” did nothing for URLs containing a query string.
 * Fixed: “Create redirect” on a query-style link (/?p=123) would have redirected
   the homepage; such links now explain why they cannot be redirected.
 * Fixed: switching the weekly re-check back on after turning it off left every 
   already-checked link never re-checked.
 * New: internal links to deleted, trashed, draft or renamed pages are now detected(
   old slugs are followed), and internal images missing from the uploads folder 
   are flagged – all from the database, with no requests to your own site.
 * New: iframes, video, audio, embeds and reusable (synced) patterns are scanned.
 * New: Dismissed view with a Restore action; the report shows counts per view, 
   a plain-English reason for every link, a status legend and a proper first-run
   message.
 * Improved: background re-checks now run every 15 minutes within a fixed time budget,
   so sites with many thousands of links get through them in about a week; “Scan
   now” always re-reads every post, never runs two scans at once, and shows which
   phase it is in.
 * Improved: servers that refuse HEAD get a body-free GET before the answer counts,
   reducing false “needs review” results.
 * Security: the connection is pinned to the address that passed the private-network
   check, closing a DNS-rebinding window; multicast, NAT64, 6to4, Teredo, documentation
   and benchmark ranges are refused; a redirect back onto your own site is never
   followed; no more than 64 KB of any response is read.
 * Housekeeping: the manual scan stays inside PHP’s time limit; the uninstall opt-
   in now removes every trace; the cron event self-heals on sites that never ran
   the activation hook.

#### 1.0.8

 * Critical fix: the admin area could show a fatal error on sites running 1.0.4–
   1.0.7 because the Broken Link Checker import helper was not being loaded. Every
   admin screen now loads correctly. Please update straight away.

#### 1.0.7

 * Reliability: the background re-check now stops within a fixed time budget so 
   a large backlog can never overrun a single cron run.

#### 1.0.6

 * Compatibility: tested up to WordPress 7.1.
 * Housekeeping: corrected the contributor name in the plugin readme.

#### 1.0.5

 * Documentation: clarified that link checking requests external URLs from your 
   server while using no third-party service.

#### 1.0.4

 * Data safety: uninstalling the plugin no longer deletes its data unless you explicitly
   opt in first (new setting under Settings) – a reinstall now picks up exactly 
   where you left off.
 * New: one-click import of your dismissed links from Broken Link Checker, so a 
   site switching over does not have to re-triage.

#### 1.0.3

 * Polish: one-row toolbar (scan, status, filters and search together), always-visible
   row actions, segmented filter control, more breathing room under the admin bar,
   and severity markers that now survive WordPress core’s last-row style. Grammar
   fix in the scan summary.

#### 1.0.2

 * New look: the report and settings now wear the Dragon design system – clearer
   status pills with reason codes, severity markers on rows, monospace URLs, and
   a consistent Dragon Core header. No behaviour changes.

#### 1.0.1

 * Added a filter so Dragon Broken Links Pro can scan additional content sources
   such as custom fields and comments.

#### 1.0.0

 * Initial release.

## Meta

 *  Versione **1.1.11**
 *  Ultimo aggiornamento **1 giorno fa**
 *  Installazioni attive **Meno di 10**
 *  Versione WordPress ** 6.2 o superiore **
 *  Testato fino alla versione **7.1.2**
 *  Versione PHP ** 8.0 o superiore **
 *  Lingua
 * [English (US)](https://wordpress.org/plugins/dragon-broken-links/)
 * Tag
 * [404](https://it.wordpress.org/plugins/tags/404/)[Broken Link Checker](https://it.wordpress.org/plugins/tags/broken-link-checker/)
   [broken links](https://it.wordpress.org/plugins/tags/broken-links/)[dead links](https://it.wordpress.org/plugins/tags/dead-links/)
   [link checker](https://it.wordpress.org/plugins/tags/link-checker/)
 *  [Visualizzazione avanzata](https://it.wordpress.org/plugins/dragon-broken-links/advanced/)

## Valutazioni

Non sono state ancora inviate recensioni.

[La tua recensione](https://wordpress.org/support/plugin/dragon-broken-links/reviews/#new-post)

[Vedi tutte le recensioni](https://wordpress.org/support/plugin/dragon-broken-links/reviews/)

## Collaboratori

 *   [ Dragon Core ](https://profiles.wordpress.org/dragoncoreltd/)

## Supporto

Hai qualcosa da dire? Ti serve aiuto?

 [Chiedi nel forum di supporto](https://wordpress.org/support/plugin/dragon-broken-links/)