

Findings dashboard with URL status, source counts, and filters for link scope and resource type.
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. Findings are grouped by normalized URL, and every matching source location is retained. A check may make more than one HTTP request when it follows redirects or needs a limited GET fallback after HEAD.
The plugin classifies results instead of treating every failed request as a dead link:
Every result includes request history, redirect chain, response time, confidence, explanation, and source locations.
Completed and stopped scan results can be kept locally for later review. Choose to retain 5, 10, or 25 runs, or turn history off. Saved runs include their URL results and source locations; stopped runs are marked incomplete. The oldest saved run is removed when the selected limit is exceeded. On upgrade, the latest completed run is saved from the findings still stored by the plugin. Results overwritten by earlier scans cannot be restored.
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.
Scanning runs in small resumable worker requests. The scanner checks discovered URLs in small batches as it continues finding more. During discovery, the percentage shows the share of URLs found so far that have been checked; it can change as new URLs are found. Repeated occurrences do not re-queue a settled URL. Only one worker request processes the scan at a time. Worker duration follows PHP’s execution-time limit. Batch size and parallel requests adjust to available PHP memory; no more than four URLs are checked at once. URLs wait for another worker when too little time remains to start a check. Timeouts are retried up to the configured limit; URLs that remain inconclusive are shown for review. Hosting execution limits can shorten the effective request timeout. PHP does not reliably expose shared-host CPU quotas, so the plugin uses conservative concurrency limits rather than claiming to measure CPU availability. Manual scanning remains available when WordPress cron is delayed.
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.