Awlware Link Checker finds links and images that are really broken and helps you fix them where they are used. Everything runs on your own server: there is no account, no cloud service and no limit on the number of links.
It tells “broken” apart from “the site refuses robots”. Social networks, marketplaces and job boards often answer automated requests with 403, 429, 999 or a captcha page while the page works fine in a browser. Those links are shown as Blocked (verify manually) instead of cluttering the Broken list. Server errors (5xx) and timeouts are rechecked later and reported as broken only if they repeat.
It looks where links actually are: posts, pages and public post types (content and excerpts), classic menus, block theme navigation, synced patterns and templates, custom fields you choose, Text, Custom HTML and Block widgets, pages built with Elementor, and (optionally) approved comments and commenters’ websites. Images (including srcset), iframes, video and audio sources are checked too.
Fix links from the report: Edit URL or Unlink in one or all places (menu items and navigation links stay as plain text), Remove image, Recheck, Dismiss. Posts keep a revision, every change is written to a log and can be undone. Elementor layouts are shown with a link to the Elementor editor.
Light on your site: checks run in short background slices (WP-Cron, 20 seconds every 5 minutes), one request at a time per external site with a pause between requests. Links to your own content are verified from the database instead of over HTTP. Nothing runs on visitor page views. Database tables are created and updated only through dbDelta under a lock, never on visitor requests.
wp awlware-lc scan, `index`, `report --format=table|json|jsonl`, `where <url>`, `stats`, `reset`.
Actions and filters start with awlwlc_, for example awlwlc_user_agent, awlwlc_request_args, awlwlc_post_types, awlwlc_meta_keys, awlwlc_exclude_url, awlwlc_classify_result, awlwlc_verdict_changed, awlwlc_results_saved, awlwlc_report_tablenav, awlwlc_admin_tabs.
Checking links means requesting them, so this plugin makes outgoing HTTP requests. Here is exactly what it does:
Mozilla/5.0 (compatible; AwlwareLinkChecker/1.0.0; +https://awlware.com/link-checker/), so site owners can see who is checking. It can be changed with the awlwlc_user_agent filter. The plugin never pretends to be a browser.WP_HTTP_BLOCK_EXTERNAL, WP_ACCESSIBLE_HOSTS and HTTP filters apply.The plugin stores the list of links, where they are used, their check results and a log of fixes (who changed what, kept 90 days) in its own database tables on your site. No data leaves your site except the link-check requests described above. It does not use cookies and adds nothing to the public side of your site.