Description
Links stop working without warning. A page you cited gets moved, a plugin you recommended is closed, an agency’s domain expires, and your posts keep sending visitors to a dead end until someone notices.
BuildWithHumza Broken Link Checker finds broken links in WordPress for you. It reads your published posts and pages, checks every link and image in the background, and lists the dead links, 404 pages, broken images and redirects under Tools > Broken Links. You fix each one from that screen without opening the post.
It runs entirely on your own server. There is no account to create, no external service, no link limit and no paid tier needed to see your results.
Built not to cry wolf
A report full of false alarms is hard to trust, so a link is only called broken after three failed checks in a row, an hour and then six hours apart. That keeps a brief outage at the wrong moment out of your report.
It also knows the difference between “this page is gone” and “this site will not talk to robots”:
- Broken – a 404 or 410, a server error that persists, or a domain that no longer exists
- Redirect – the address has permanently moved; update the link and save visitors a hop
- Unverified – a login wall, a rate limit, or a redirect to a home page or search page, which usually means the page was removed but cannot be proven
- Blocks checkers – sites that turn automated requests away, including any site that answers with a bot challenge, and a short list of large sites that commonly do. Open the link to confirm it works
- Working, and Retrying for links that failed a check and wait for the next attempt
Each link shows the response code or the reason (a DNS failure, a timeout, a certificate problem), when it was last checked and how long it took to answer.
Fix it where you find it
Open a row to see every post the link appears in, with its anchor text, then:
- Replace the address in every one of those posts at once. For a redirect, the new address is filled in for you.
- Remove the link and keep the text, for sources that are simply gone.
- Ignore a link you know is fine, and restore it later.
- Check again after you have fixed something on the other end.
Every change saves a revision first, so anything can be undone from the post editor. Links inside code examples are left alone.
Works with your page builder
A page made with a builder is built from the builder’s own data, not from the post content. So this plugin reads each page where it is really built, and writes a fix back there in the builder’s own format, then clears the builder’s cache so the live page changes.
- Find and fix: the block editor (including block plugins that keep links in block settings, such as Kadence Blocks), the classic editor, Elementor (background images included), Beaver Builder, SiteOrigin Page Builder, and shortcode builders such as Divi 4, WPBakery and Avada.
- Find and check, fix in the builder: Bricks, Breakdance, Oxygen, Thrive Architect and Brizy. Their links are checked like any other; the report names the builder and links straight to it, instead of changing something the live page does not use.
After every fix the page is read again. If the address is still there, the report says so rather than counting it as fixed.
Light on your server
Checks run in small batches from a one-minute WP-Cron event, at most ten links and 25 seconds of checking per batch, so a batch fits inside a shared host’s time limit. While the Broken Links screen is open during a scan, it starts the next batch as soon as one ends, so a scan you are watching finishes sooner; the batches never overlap. The same site is never asked twice within two seconds. Each address is checked once, however many posts use it, and nothing but the address, its status and where it appears is stored. No page content is ever saved.
It asks for the headers of a page first, and only reads the first kilobyte when a server answers that with an error, so a link to a large PDF or video is never downloaded.
Settings
Under Tools > Broken Links > Settings (administrators only):
- What to scan – which content types, whether to check images, and addresses to skip. A domain such as example.com also skips its subdomains; a full address starting with https:// skips every link that begins with it. Changes apply at once.
- How often – check working links again every 1, 3, 7 or 14 days.
- Weekly email – off by default. When switched on, one email a week to one address, sent only if new links have broken since the last one, listing each link and the posts it is in.
For developers
wp bwh-blc scan --check
wp bwh-blc list --status=broken --format=csv
wp bwh-blc status
wp bwh-blc fix 42 --to=https://example.com/new-page --user=admin
wp bwh-blc fix 42 --unlink --user=admin
scan --check reads all content and checks every link that is due, at the same polite pace as the background checks, and stops after `--max-time` seconds (default 600).
Filters:
bwh_blc_post_types– the content types scannedbwh_blc_blocking_hosts– domains that block automated checksbwh_blc_parsed_links– the links found in a piece of content, before they are stored
Privacy
To check a link, the plugin sends a request from your server to the address the link points to, as a browser would when a visitor clicks it. The request identifies itself as “BuildWithHumza Broken Link Checker” followed by your site’s address, so the owner of that site can see who is checking. Addresses in private networks, such as localhost or 192.168.x.x, are never requested.
Nothing is sent to the plugin’s author or to any other service. There is no tracking. The plugin stores its findings in two database tables and a few options, and removes all of them when you delete it. The weekly email, if you switch it on, goes through your site’s own mail setup to the address you give.
Screenshots




Installation
- Install through Plugins > Add New, or upload the folder to
/wp-content/plugins/. - Activate it.
- Go to Tools > Broken Links. The first scan starts on its own, with a progress bar showing how far it has got and roughly how long is left. Scan now reads your content and checks every link again at any time.
Editors and administrators can see the report and fix links. Only administrators can change the settings.
FAQ
-
Why does it say a link is unverified or blocked when it opens fine in my browser?
-
Some sites refuse requests that do not come from a browser, or answer them with a login page or a challenge. The plugin cannot tell whether the page behind that exists, so it says so instead of guessing “broken”. Open the link from the report to confirm it, and ignore it if you like.
-
Why is a failing link shown as “Retrying” and not “Broken”?
-
Because one failure proves very little. A link is retried after an hour and again after six hours, and only the third failure in a row marks it broken. This is what keeps a brief outage out of your report.
-
What does it scan?
-
The content of published posts, pages and other public content types, including layouts made with the page builders listed above. Menus, widgets, comments, excerpts and custom fields are not scanned in this version. Drafts and private posts are skipped, because visitors cannot see them.
-
Does it work with Elementor?
-
Yes. It reads an Elementor page’s own data, so it finds links in its widgets, background images included, and a fix changes the page Elementor shows, not only the plain copy Elementor keeps for search. Elementor’s CSS for the page is cleared so it is built again with the new address.
-
My site gets little traffic. Will the checks still run?
-
WP-Cron runs when someone visits the site, so on a very quiet site the checks may pause. While the Broken Links screen is open it keeps them moving. For a steady pace, point a real server cron job at
wp-cron.php, or runwp bwh-blc scan --checkfrom a scheduled task. -
How many links can it handle?
-
The plugin sets no cap. Each unique address is stored and checked once, however many posts link to it, so large sites with many repeated links stay small.
-
Can I undo a fix?
-
Yes. Before any post is changed, WordPress saves a revision of it. Open the post, go to Revisions, and restore the earlier version.
-
Does it slow my site down?
-
Nothing runs for visitors on the front end. The checks run in the background in batches small enough for shared hosting, and the admin screen loads its files only on its own page.
-
Does it find broken images too?
-
Yes. Images in your content are checked like links, so a missing or moved image shows up in the report with the posts it is in. You can switch image checks off under Settings.
-
Does it fix 404 errors on my own site?
-
It finds links in your content that lead to a 404 page, on your site or anyone else’s, and lets you replace or remove them. It does not log the 404s that visitors hit by typing a wrong address; that is a job for a redirect plugin.
-
Will a new content type from another plugin be scanned?
-
Every public content type is listed under Settings, including new ones such as products or events. Until you save the settings, all of them are scanned. Once you have saved your own choice, a new type appears unticked; tick it to include it.
-
Where do I get help or report a bug?
-
In the plugin’s support forum on WordPress.org. Every thread gets a reply. If the plugin saved you time, a review there helps other site owners find it.
-
Does it work on multisite?
-
It has been tested on single sites only so far.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“BuildWithHumza Broken Link Checker” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “BuildWithHumza Broken Link Checker” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- First release.
- Scans published content for links and images and checks each unique address in the background, at a pace shared hosting can take.
- Broken only after three failed checks, hours apart. Separate statuses for redirects, unverified links and sites that block checkers.
- Replace or remove a link in every post at once from the report, with a revision saved first. Ignore, restore and check again.
- Settings for content types, images, addresses to skip and how often to recheck.
- Optional weekly email when new links break.
- Reads and fixes pages made with Elementor, Beaver Builder, SiteOrigin, block plugins and shortcode builders; checks Bricks, Breakdance, Oxygen, Thrive Architect and Brizy pages and sends you to the builder to fix them.
- WP-CLI:
wp bwh-blc scan,list,statusandfix.
