Title: LinkSolva &#8211; Broken Link Checker
Author: shahidirfan100
Published: <strong>September 30, 2026</strong>
Last modified: September 30, 2026

---

Search plugins

![](https://ps.w.org/linksolva-broken-link-checker/assets/banner-772x250.png?rev
=3720917)

![](https://ps.w.org/linksolva-broken-link-checker/assets/icon-256x256.png?rev=3720917)

# LinkSolva – Broken Link Checker

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

[Download](https://downloads.wordpress.org/plugin/linksolva-broken-link-checker.1.0.10.zip)

 * [Details](https://wordpress.org/plugins/linksolva-broken-link-checker/#description)
 * [Reviews](https://wordpress.org/plugins/linksolva-broken-link-checker/#reviews)
 *  [Installation](https://wordpress.org/plugins/linksolva-broken-link-checker/#installation)
 * [Development](https://wordpress.org/plugins/linksolva-broken-link-checker/#developers)

 [Support](https://wordpress.org/support/plugin/linksolva-broken-link-checker/)

## Description

LinkSolva – Broken Link Checker is a local WordPress tool for administrators who
need to know what is genuinely broken before changing content.

It discovers URLs in public posts, pages, public custom post types, approved comments,
custom navigation menus, featured images, and optionally scalar custom-field or 
page-builder data. It stores each unique URL separately from the places where it
appears, so the same destination is verified once while all source locations remain
available.

The plugin classifies results instead of treating every failed request as a dead
link:

 * **Healthy** — a successful response was received.
 * **Redirect** — the destination works but reaches another URL.
 * **Broken** — HTTP 404 or 410 provides strong evidence that the destination no
   longer exists.
 * **Blocked** — the destination rejected automated verification, such as HTTP 401
   or 403.
 * **Rate Limited** — the destination returned HTTP 429 and should be checked later.
 * **Temporary Error** — the destination returned a 5xx response.
 * **SSL Error, DNS Error, Timeout, or Unverified** — the scanner could not establish
   enough evidence to call the URL broken.

Every result includes request history, redirect chain, response time, confidence,
explanation, and source locations.

### Local by design

 * No cloud account.
 * No link credits or usage limits imposed by a third party.
 * No telemetry, advertising, or developer tracking.
 * No URLs or site content are sent to a developer service.
 * HTTP requests are made from your WordPress server to the destinations found in
   your content.

### Safe repairs

Supported post content, approved comment content, and custom menu URLs can be replaced,
unlinked, or marked nofollow. Builder metadata is read-only in this release. Each
repair stores the complete before and after source, the user, time, operation, and
checksums. Undo is blocked when the source changed after the repair.

### Resource controls

Scanning runs in small resumable worker requests. Each discovered source batch is
verified before the next source batch is read, and repeated occurrences do not re-
queue a settled URL. Only one worker request processes the scan at a time. HTTP 
request timeouts are capped to the worker’s remaining time budget, and URLs left
unchecked stay queued for the next request. Network failures are recorded without
repeating the same request immediately, so the worker can move on and retry later.
The scanner also uses per-resource deduplication, redirect limits, response-size
limits, and safe retry scheduling. Manual scanning remains available when WordPress
cron is delayed.

### Privacy

This plugin does not create a remote account or transmit data to the developer. 
The server running WordPress may make requests to external URLs found in your content.
The request destination, response status, timing, and limited diagnostic categories
are stored in your WordPress database.

### Limitations

 * Some websites intentionally reject automated verification. A successful browser
   visit cannot always be reproduced by a server-side request.
 * Redirects to private, loopback, link-local, metadata, or otherwise reserved addresses
   are stopped for SSRF protection.
 * Structured page-builder data is review-only until a source-specific safe editor
   is available.
 * WordPress cron may be delayed or disabled by hosting configuration. The findings
   screen provides manual worker progress.

## Screenshots

[⌊Findings dashboard with URL status, source counts, and filters for link scope 
and resource type.⌉⌊Findings dashboard with URL status, source counts, and filters
for link scope and resource type.⌉[

Findings dashboard with URL status, source counts, and filters for link scope and
resource type.

[⌊Broken-link evidence with the HTTP result, request history, and source location.⌉⌊
Broken-link evidence with the HTTP result, request history, and source location.⌉[

Broken-link evidence with the HTTP result, request history, and source location.

[⌊Redirect evidence showing the final destination and each redirect hop.⌉⌊Redirect
evidence showing the final destination and each redirect hop.⌉[

Redirect evidence showing the final destination and each redirect hop.

[⌊Settings for bounded work, parallel checks, timeouts, content sources, and scan
scheduling.⌉⌊Settings for bounded work, parallel checks, timeouts, content sources,
and scan scheduling.⌉[

Settings for bounded work, parallel checks, timeouts, content sources, and scan 
scheduling.

## Installation

 1. Upload the `linksolva-broken-link-checker` folder to `/wp-content/plugins/`, or
    install the ZIP from **Plugins  Add New  Upload Plugin**.
 2. Activate the plugin.
 3. Open **Link Checker  Findings**.
 4. Review **Link Checker  Settings** before starting a large scan.
 5. Run a scan and open **Evidence** on any result that needs review.

## FAQ

### Does it use a cloud service?

No. All discovery, storage, classification, and repair operations are local to your
WordPress installation. The server still requests the URLs it is checking, as any
link checker must.

### Is a 403 link reported as broken?

No. A 401 or 403 response is classified as **Blocked** because automated access 
was rejected. Other inconclusive failures remain in a review state instead of being
called broken.

### Is a 429 link reported as broken?

No. HTTP 429 is classified as **Rate Limited** and scheduled for a later check.

### Can it edit page-builder data?

The plugin can read scalar metadata when enabled, but it does not rewrite serialized
or builder data automatically. This avoids corrupting Elementor, ACF, or other structured
content.

### Can I remove all data on uninstall?

Data is retained by default. Enable **Delete findings when the plugin is uninstalled**
in Settings if you explicitly want plugin-owned tables and options removed.

### Does it add scripts to the public website?

No. Styles and scripts are loaded only on the plugin’s WordPress admin screens.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

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

Contributors

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

[Translate “LinkSolva – Broken Link Checker” into your language.](https://translate.wordpress.org/projects/wp-plugins/linksolva-broken-link-checker)

### Interested in development?

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

## Changelog

#### 1.0.10

 * Updated the plugin name, directory slug, translation domain, and matching directory
   graphics for the WordPress.org resubmission.

#### 1.0.9

 * Cleared the scan worker lock when the plugin is deactivated or uninstalled, including
   when findings are retained.
 * Required the relevant WordPress source-edit capability before applying or undoing
   a repair.
 * Reused the initial URL safety decision within a parallel batch to avoid an extra
   DNS validation for each result.
 * Paginated navigation-menu discovery so each worker loads only the current small
   batch of menu items.

#### 1.0.8

 * Stopped issuing an immediate GET request after a HEAD network failure or timeout;
   the URL is recorded as unverified and retried later so the scan can continue.
 * Kept batch transport failures and missing responses from triggering a second 
   sequential network attempt.

#### 1.0.7

 * Capped each HTTP request to the remaining worker time budget so slow destinations
   cannot hold a scan request beyond its configured work window.
 * Kept unchecked URLs queued for the next worker request when the time budget expires.
 * Serialized worker requests so cron and admin polling cannot issue duplicate checks
   for the same batch.

#### 1.0.6

 * Added bounded parallel URL verification with a configurable 1–8 request limit
   to reduce scan time on large sites.
 * Avoided redundant GET requests for definitive 404 and 410 responses while retaining
   GET fallback for inconclusive HEAD responses.
 * Reindexed replacement URLs immediately, verified them before returning success,
   and retired orphaned old findings.
 * Restored the original occurrence/resource mapping on undo and kept replacement
   and unlink operations auditable.

#### 1.0.5

 * Serialized discovery and verification so each discovered batch is classified 
   before more source URLs are fetched.
 * Prevented repeated occurrences from resetting an already verified URL to Queued
   during the same scan.
 * Kept ignored resources out of the verification queue while preserving their current-
   scan visibility.
 * Added progress messages and resilient REST polling so active scans continue updating
   after transient browser requests fail.

#### 1.0.4

 * Prevented a scan from completing while current-scan resources remain queued.
 * Normalized legacy nullable queue markers during upgrade.
 * Removed the stale empty-table row when live results arrive.

#### 1.0.3

 * Added Internal links, External links, and All links filtering on the Findings
   screen.
 * Added separate settings to include or exclude internal and external links from
   scans.
 * Reset rediscovered URLs to Queued until their current verification request finishes.
 * Updated individual result rows without replacing the complete table body during
   scan progress.

#### 1.0.2

 * Updated scan progress, counters, filters, and result rows in place to prevent
   dashboard blinking during active scans.
 * Preserved the dashboard shell and filter controls while new findings are added.
 * Added bounded GET verification when a server rejects or fails a HEAD request.
 * Distinguished URLs waiting in the scan queue from completed unverified results.
 * Made every new manual or scheduled scan retry previously inconclusive URLs instead
   of silently skipping them.

#### 1.0.1

 * Fixed admin REST requests on sites using plain permalinks.
 * Improved DNS failure classification and nonstandard-port URL resolution.
 * Preserved every repeated source occurrence while checking each unique URL once.
 * Hardened repair auditing, undo behavior, recheck scheduling, translations, and
   admin asset loading.
 * Added a one-minute bounded worker continuation and refreshed WordPress.org release
   assets.

#### 1.0.0

 * New local-only broken link and image checker.
 * Added evidence-based HTTP classifications, URL deduplication, bounded scanning,
   safe repairs, and conflict-aware undo.

## Meta

 *  Version **1.0.10**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [broken images](https://wordpress.org/plugins/tags/broken-images/)[broken links](https://wordpress.org/plugins/tags/broken-links/)
   [link checker](https://wordpress.org/plugins/tags/link-checker/)[redirects](https://wordpress.org/plugins/tags/redirects/)
 *  [Advanced View](https://wordpress.org/plugins/linksolva-broken-link-checker/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/linksolva-broken-link-checker/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/linksolva-broken-link-checker/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/linksolva-broken-link-checker/)