Dragon Broken Links
A quiet pointer to the Pro add-on: an Upgrade to Pro link on the Plugins screen, a one-line note at the foot of the plugin's screens, and a single dismissible notice once the plugin has done its job. Nothing in the free plugin is locked or changed, and all three disappear when Pro is active.
- The Pro card on the settings screen is hidden once Pro is active.
The recorded final address of a redirect chain now keeps its #fragment as RFC 9110 requires.
What's fixed in 1.1.6
- Fragments survive redirect chains. When one hop of a redirect sets a
#fragmentand a later hop'sLocationhas none, the fragment is inherited by the final address, so/startredirected to/middle#newand then to/targetis recorded as/target#new. Fragments are never sent to the server; the checker's verdict is unchanged.
Thanks to Mike Kuketz (kuketz-blog.de) for the report.
No settings or data changes.
Four edge-case fixes in link fixing and redirect following, reported by Mike Kuketz.
What's fixed in 1.1.5
- Only real links and images are touched. Edit link and Remove link matched
data-href,data-srcandxlink:hrefattributes as well ashrefandsrc, so a broken URL inside one of those could be changed too. Both actions now touch realhref/srcattributes only. - URLs are matched case-sensitively. Two links that differ only in letter case (
/Fooand/foo) were both changed when you edited or removed one of them. Only the exact URL you chose is changed now. - Redirect targets with
..or.segments are tidied. A redirect tohttps://example.com/a/../bis now recorded ashttps://example.com/b. - Relative redirects resolve correctly. A redirect to
?x=1,#section,./pageor../pagewas resolved against the site root rather than the current page, so a few redirects were followed to the wrong address. Resolution now follows RFC 3986. - A failed save is reported as a failure. If WordPress refuses to write the updated post, the fix is no longer shown as done.
Thanks to Mike Kuketz (kuketz-blog.de) for reporting all four with clear examples.
No settings, data or behaviour changes otherwise.
Dragon Broken Links now asks for a WordPress.org review once, on its own screen, after your first scan or fix.
What's new in 1.1.4
- One-time review prompt. After a scan finishes or you fix a link, the Broken Links screen shows a short request for a WordPress.org review. "Maybe later" hides it for a month and "No thanks" hides it for good. It never appears anywhere else in wp-admin.
- The plugin directory listing now describes what the plugin does in its title and tags, so it is easier to find.
No behaviour, settings or data changes otherwise.
Every public post type is now scanned - WooCommerce products and custom post types included - and you choose how often links are re-checked. Click Scan now once after updating.
= 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.
Copy polish across the report, settings and documentation. No functional changes.
= 1.1.2 =
- Copy: plainer punctuation throughout the report, settings and documentation.
Report polish: the status key is now three labelled pills — Broken, Suspected, Needs review — instead of a paragraph of text.
= 1.1.1 =
- Report: the status key is now visual, so the three states are recognisable at a glance.
- Report: dismissed and not-yet-checked rows get a neutral pill.
Important fix: editing or removing a link could corrupt other blocks in the same post — update now. Also detects deleted pages and missing images, keeps your dismissals, and re-checks links far faster in the background.
= 1.1.0 =
- Fixed: editing or removing a link could corrupt the other blocks in that post (JSON escapes such as
&,--or backslashes in block attributes 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; "Remove link" did nothing for URLs with a query string; "Create redirect" on a /?p= link would have redirected the homepage; re-enabling the weekly re-check left old links unchecked.
- New: internal links to deleted, trashed, draft or renamed pages and internal images missing from uploads are detected from the database — no requests to your own site. Iframes, video, audio, embeds and synced patterns are scanned.
- New: Dismissed view with Restore, counts per view, plain-English reasons, a status legend and a proper first-run message.
- Improved: background re-checks every 15 minutes within a time budget; "Scan now" re-reads every post, never overlaps another scan, and shows its phase; HEAD-refusing servers get a body-free GET before counting.
- Security: connections are pinned to the validated address (closes a DNS-rebinding window); multicast/NAT64/6to4/Teredo/documentation ranges refused; redirects back onto your own site are never followed; responses capped at 64 KB.
Critical fix: a fatal error could break your WordPress admin on versions 1.0.4–1.0.7. Please update right away — every admin screen loads normally again.
What happened
The one-click "import from Broken Link Checker" helper added in 1.0.4 was referenced but never loaded. On any site running 1.0.4 through 1.0.7 with Dragon Broken Links active, this could throw a fatal error on every wp-admin page, not just the plugin's own screens.
The fix
1.0.8 loads the import helper correctly. No settings, data, or scan history are affected — updating restores the admin immediately.
Also in this release: the background re-check now stops within a fixed time budget (rolled up from 1.0.7) so a large backlog can never overrun a single cron run.
Reliability: the background link recheck can no longer stall on slow/dead hosts.
= 1.0.7 =
- Reliability: the recheck cron now stops within a time budget instead of waiting on a run of unreachable URLs, so it never ties up WP-Cron for minutes.
Tested and verified on WordPress 7.1.
- Compatibility: tested up to WordPress 7.1.
Documentation update: the readme now spells out exactly what leaves your server during link checks (requests to the URLs you link to — nothing else) while confirming there is no third-party service involved.
Import your Broken Link Checker dismissals, and data that survives uninstall.
Switching from Broken Link Checker? One click under Settings carries your dismissed links across so you don't re-triage them. Uninstalling also no longer deletes your link database unless you explicitly opt in.
A refined report: one-row toolbar, always-visible row actions, and sharper spacing.
The report's controls now live on a single line — scan, status, filters, and search together — row actions are always visible instead of appearing on hover, the active filter is a clear segmented control, and severity markers no longer vanish on the last table row. Purely visual.
A cleaner, faster-to-scan report: the new Dragon design system arrives.
The report and settings screens now wear Dragon Core's design system: status pills with clear reason codes, severity markers down the edge of the table so broken rows jump out, monospace URLs, and a consistent header across every Dragon plugin. Purely visual — scanning and fixing behave exactly as before.
No notes for this release.
No notes for this release.