Description
LinkSentinel keeps your site healthy by scanning internal links in your posts and pages. It detects redirects and broken destinations without following all hops blindly, letting you focus on what matters:
- Auto-fixes links that are permanently redirected (HTTP 301/308) while leaving temporary redirects and broken links for review.
- Runs scheduled scans (daily/twice daily/weekly) with timezone-aware cron control and live progress feedback.
- Provides a full dashboard under Tools → LinkSentinel for resolved links, pending redirects, broken links, CSV export and settings.
- Customizable Resolve All batching with cooldown controls keeps bulk fixes stable even on rate-limited hosts.
Installation
- Upload the
link-sentinelfolder to the/wp-content/plugins/directory, or install via the WordPress Plugins screen. - Activate the plugin through the ‘Plugins’ menu in WordPress.
- Navigate to Tools → LinkSentinel and click Scan Now to scan existing content. Configure automatic scans in the Settings tab to run on your preferred schedule.
FAQ
-
Does this plugin scan external links?
-
Not yet. The plugin currently focuses on internal links within your site’s domain. External link scanning is on the roadmap.
-
What about images and media files?
-
Currently only anchor (
<a>) tags are scanned. Support for images (<img>tags) and other media is planned for a future release. -
Can I disable automatic scans?
-
Yes. Go to Tools → LinkSentinel → Settings and uncheck “Enable automatic scheduled scans”. You can also adjust the frequency and time to suit your needs.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“LinkSentinel – Internal Link and Broken Link Scanner” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “LinkSentinel – Internal Link and Broken Link Scanner” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
5.8
- Naming: Renamed all stored options, transients, the custom database table, cron events, AJAX/admin-post actions, nonces, and the localized admin script object to the unique
link_sentinel_/LinkSentinelprefix. Existing installs begin with a fresh scan history; re-run a scan to repopulate. - Developer: Removed the legacy hook aliases retained in 5.6 — use the
link_sentinel_*names. - Compliance: Removed runtime
error_reporting()adjustments in the scanner.
5.7
- Renamed the plugin to “LinkSentinel – Internal Link and Broken Link Scanner” for a clearer, more descriptive listing. No functional changes.
5.6
- Compliance: Addressed WordPress Plugin Check findings — escaped remaining admin output, added translators comments and ordered i18n placeholders, and unslashed/sanitized all request input.
- Developer: Public hooks renamed to the
link_sentinel_*prefix (e.g.link_sentinel_follow_external_redirects); legacy aliases were retained for back-compat (removed in 5.8). - Developer: Debug logging is now only written when
WP_DEBUGis enabled. - Removed the manual
load_plugin_textdomain()call; WordPress loads translations automatically.
5.5
- Bug Fix: Redirects to a different domain with an identical path are no longer misclassified as self-redirects; they are now logged for review.
- Bug Fix: Starting a manual scan no longer resets a scan already in progress (e.g. one started by another admin).
- Bug Fix: The Change Link form now accepts site-relative paths (e.g.
/about-us/) in addition to full http(s) URLs. - Stability: The scan progress loop now stops with a clear message after repeated batch failures instead of retrying indefinitely.
5.4
- First public, open-source release under GPL-2.0-or-later.
- Security: reviewed and hardened AJAX handlers and database queries.
- Added a translation template (
languages/link-sentinel.pot) and tidied translatable strings for full internationalization support. - Hardened files against direct access and improved inline documentation.
5.2.2
- Critical Bug Fix: Fixed race condition where manually fixed broken links would become “stuck” in the pending queue during subsequent scans.
- Improved Duplicate Detection: Enhanced scanner logic to prevent re-logging manually resolved links regardless of resolution status.
- Database Efficiency: Optimized duplicate detection queries for better performance.
- Stability: Prevented infinite redirect loops with improved URL normalization.
5.0.1
- Batch processing for manual scans.
- Auto-fix permanently redirected links (301/308).
- Queue temporary redirects and broken links for review.
- Scheduled scans with timezone-aware cron control.
- Dashboard with progress indicators and CSV export.
4.6 – 2025-11-17
- Added: Resolve All batching controls in settings with checkbox gating, custom links-per-batch, and cooldown inputs to prevent rate limits.
- Added: Shared preference helper so PHP and JavaScript stay in sync when honoring user pacing choices.
- Improved: Resolve All localization, timers, and AJAX handler now respect saved batch/cooldown limits to avoid regressions.
4.4 – 2025-11-17
- Added: A throttled mode for hosts with strict rate limits — single-item batches, longer pacing, and tighter server-side throttles to prevent 429 errors.
- Added: Resolve All diagnostics in the browser console for fast root-cause analysis.
- Improved: Resolve All batching now self-tunes based on step durations and memory ceilings; logging hardened with safer output buffering.
- Updated: Documentation and admin UI messaging for the throttled workflow and recommended troubleshooting steps.
3.5 – 2025-11-12
- Introduced timezone-aware scheduled scans with daily/twice daily/weekly frequency controls.
- Added progress indicators, scan history, and concurrency protection between manual and scheduled runs.
1.9 – 2025-10-22
- Added “Resolved By” tracking for manual actions plus table wrapping fixes and accountability improvements.