Title: Linkmender – Broken Link Scanner
Author: prayasa
Published: <strong>سپتامبر 17, 2026</strong>
Last modified: سپتامبر 23, 2026

---

Search plugins

![](https://ps.w.org/linkmender/assets/banner-772x250.png?rev=3699584)

![](https://ps.w.org/linkmender/assets/icon.svg?rev=3699584)

# Linkmender – Broken Link Scanner

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

[Download](https://downloads.wordpress.org/plugin/linkmender.1.1.0.zip)

 * [Details](https://azb.wordpress.org/plugins/linkmender/#description)
 * [Reviews](https://azb.wordpress.org/plugins/linkmender/#reviews)
 *  [Installation](https://azb.wordpress.org/plugins/linkmender/#installation)
 * [Development](https://azb.wordpress.org/plugins/linkmender/#developers)

 [Support](https://wordpress.org/support/plugin/linkmender/)

## Description

Linkmender scans the published content on your site, checks every link and image
it finds, and shows you what is broken, what redirects, and what needs a second 
look. Then it lets you fix things without leaving the results screen.

Everything runs on your own server. There is no account to create, no API key, no
usage quota and no data sent to a third party.

**What it checks**

 * `<a href>` links (internal and external) and `<img src>` images in posts, pages
   and public custom post types
 * Optionally, links stored in custom fields (post meta)
 * In-page anchors (`#section`) are recorded but not fetched

**What you get**

 * A dashboard with counts of broken links, redirects, warnings and orphan pages
 * An **Orphan pages** tab listing published pages that nothing on your site links
   to
 * A sortable, searchable results table with status and type filters
 * Row and bulk actions: **Recheck**, **Edit URL** (replaces the URL inside the 
   post), **Unlink** (removes the tag, keeps the text), **Ignore / Unignore**
 * A WordPress Dashboard widget with the current link health
 * A “Last full scan” indicator and a progress bar while a scan runs

**How it stays lightweight**

 * Scans run in the background in small batches (20 URLs per run by default) using
   WP-Cron single events
 * Keeping the Linkmender screen open acts as a keep-alive so scans progress even
   on sites where WP-Cron is slow
 * Each URL is checked once per scan even if it appears in many posts
 * `HEAD` requests first, with a small ranged `GET` fallback for servers that refuse`
   HEAD`
 * Network errors are retried with exponential back-off before a link is marked 
   broken
 * Content is re-parsed automatically when a post is saved, so results stay current
   between scans

**Orphan pages**

An orphan is a published post or page that no other post on your site links to. 
Readers and search engines can usually only reach it through your sitemap, so it
tends to be overlooked no matter how good it is. Linking to it from a relevant post
is normally all it takes.

Linkmender builds this from the internal links it already found during a scan, so
finding orphans costs no extra requests — it is a query, not a crawl.

Be aware of one limit: Linkmender reads links from post content and, when enabled,
custom fields. Navigation menus, widgets and theme templates are **not** scanned,
so a page linked only from your menu is still listed as an orphan. Add such pages
to **Settings  Exclude post IDs** to silence them. Your front page and blog posts
page are excluded automatically.

**Statuses**

 * **OK** — 2xx response
 * **Redirect** — 3xx response; the redirect target is recorded
 * **Broken** — 4xx/5xx response, or unreachable after 3 attempts
 * **Warning** — a network error that will be retried

**Privacy**

Linkmender only ever contacts the URLs that appear in your own content, from your
own server, with a clear user agent. It does not phone home, does not collect analytics
and does not display promotional notices.

**Extending**

Developers can hook into the plugin: `lmnd_parsed_links`, `lmnd_pre_check_url`, `
lmnd_check_result`, `lmnd_http_args`, `lmnd_scan_complete`, `lmnd_link_checked`,`
lmnd_bulk_action`, `lmnd_row_actions`, `lmnd_admin_tabs`, `lmnd_pro_features`, `
lmnd_link_target_post_id`, `lmnd_orphan_excluded_posts`, `lmnd_orphan_row_actions`
and more.

## Screenshots

[⌊Dashboard: link health cards, scan controls and the results table.⌉⌊Dashboard:
link health cards, scan controls and the results table.⌉[

Dashboard: link health cards, scan controls and the results table.

[⌊Row actions: Recheck, Edit URL, Unlink, Ignore.⌉⌊Row actions: Recheck, Edit URL,
Unlink, Ignore.⌉[

Row actions: Recheck, Edit URL, Unlink, Ignore.

[⌊Settings: batch size, pause, timeout, exclusions.⌉⌊Settings: batch size, pause,
timeout, exclusions.⌉[

Settings: batch size, pause, timeout, exclusions.

[⌊Orphan pages: published pages that nothing on your site links to.⌉⌊Orphan pages:
published pages that nothing on your site links to.⌉[

Orphan pages: published pages that nothing on your site links to.

## Installation

 1. Upload the `linkmender` folder to `/wp-content/plugins/`, or install it from the
    Plugins screen.
 2. Activate the plugin.
 3. Go to **Tools  Linkmender** and click **Scan now**.

## FAQ

### Does this send my links to an external service?

No. Every request is made from your own server with the WordPress HTTP API. The 
plugin never contacts any server other than the URLs found in your content.

### Will scanning slow down my site?

Scans run in small batches with a configurable pause between them, and never run
longer than about 40 seconds in one go. You can lower the batch size on shared hosting.

### A working site is reported as broken. Why?

Some sites block automated requests (LinkedIn, some CDNs, some bot-protection services).
Add such domains to **Settings  Exclude domains**, or set a browser-like user agent
under **Settings  User agent**.

### What does “Unlink” do?

For a text link it removes the `<a>` tag and keeps the link text. For an image it
removes the `<img>` tag. The change is saved to the post like a normal edit, so 
it appears in the post’s revision history.

### Does it check links inside page builders or widgets?

It checks the rendered HTML stored in `post_content`, which covers the block editor,
the classic editor and most page builders that store HTML. Builders that store their
layout only as shortcodes or JSON in post meta are covered by the “Also scan custom
fields” option when the meta contains HTML or a bare URL.

### What is an orphan page, and why does it matter?

An orphan page is a published post or page that nothing else on your site links 
to. Search engines discover pages largely by following links, so an orphan is crawled
less and ranks worse than its content deserves. The fix is editorial: link to it
from a post where it is genuinely relevant.

### Why is a page listed as an orphan when it is in my menu?

Linkmender reads links from post content (and custom fields, when that option is
on). It does not scan navigation menus, widgets or theme templates, so a page reachable
only from your menu still counts as an orphan here. Add its ID to **Settings  Exclude
post IDs** to hide it. The front page and the blog posts page are excluded for you.

### The Orphan pages tab says to run a scan first.

Orphan detection is built from the internal links recorded during a scan. Before
the first full scan finishes there is no link graph, so every page would look orphaned—
the tab asks you to scan rather than show you a misleading list. This also applies
right after upgrading from 1.0.x, which did not record the link graph.

### Is there a Pro version?

Not yet. The **Pro** tab lists what is planned. The free version is complete and
will stay free.

### What happens when I delete the plugin?

Scheduled events are removed. The results table and settings are kept unless you
enable **Settings  Delete the links table and all settings when the plugin is deleted**.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Linkmender – Broken Link Scanner” is open source software. The following people
have contributed to this plugin.

Contributors

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

[Translate “Linkmender – Broken Link Scanner” into your language.](https://translate.wordpress.org/projects/wp-plugins/linkmender)

### Interested in development?

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

## Changelog

#### 1.1.0

 * New: **Orphan pages** tab listing published pages that no other post links to,
   with a count on the dashboard. Built from the links already collected during 
   a scan, so it costs no extra requests.
 * New: internal links are now resolved to the post they point at, giving Linkmender
   an internal link graph.
 * Fixed: internal images were classified only as images, so they were missing from
   internal-link reporting. They are now tracked as both.
 * Fixed: editing a link’s URL did not update whether it was internal or which post
   it pointed at, which could leave stale internal-link data behind.
 * Developers: new `lmnd_link_target_post_id`, `lmnd_orphan_excluded_posts` and `
   lmnd_orphan_row_actions` filters.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.1.0**
 *  Last updated **1 گؤن ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/linkmender/)
 * Tags
 * [404](https://azb.wordpress.org/plugins/tags/404/)[broken links](https://azb.wordpress.org/plugins/tags/broken-links/)
   [link checker](https://azb.wordpress.org/plugins/tags/link-checker/)[orphan pages](https://azb.wordpress.org/plugins/tags/orphan-pages/)
   [redirects](https://azb.wordpress.org/plugins/tags/redirects/)
 *  [Advanced View](https://azb.wordpress.org/plugins/linkmender/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/linkmender/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/linkmender/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/linkmender/)