WordPress Broken Link Checker Guide (2026): The Free Options Compared, and How to Fix Links Without False Positives
Every WordPress site collects dead links, and the usual broken link checker answer comes with a catch: a cloud account, a monthly link cap, or a report full of links that work fine when you click them. Here's an honest comparison of the free options in 2026, why checkers report working links as broken, and how to find and fix broken internal links in WordPress without deleting good ones.
On this page· 9 sections
Every WordPress site collects dead links. You delete a post, rename a slug, retire a product, merge two pages, and every link pointing at the old address keeps pointing at nothing. Nobody notices until a visitor clicks one, or until a crawler does.
A broken link checker is supposed to find them for you. In 2026 the choice is more complicated than "install Broken Link Checker": the popular plugins have moved their scanning into cloud accounts with caps, and the most common complaint about all of them isn't the links they miss. It's the links they report as broken that work perfectly when you click them.
This guide compares the free options, explains where the false positives come from, and walks through finding and fixing broken internal links without deleting good ones.
Internal vs external broken links
Two different problems hide under one name.
- Internal links point at your own pages:
/pricing/,/blog/old-post/. When one breaks, it's because you changed something. You control both ends, so you can always fix it, and it's how crawlers find their way through your site. - External links point at other people's sites. They break when someone else deletes or moves a page, and you can only swap them for a different source or remove them.
The distinction matters for checking, too. Whether an internal page exists is a fact your WordPress database already knows. Whether an external page exists can only be learned by requesting it from someone else's server, and that server doesn't have to tell a robot the truth.
The free WordPress broken link checkers in 2026
Broken Link Checker (WPMU DEV): the name everyone knows, 500,000+ active installs. It scans posts, pages, comments and custom fields for broken internal and external links and missing images, with email alerts and edit, unlink and ignore actions from one dashboard. It's free, with two engines: a local one that runs on your own server, and a cloud engine on WPMU DEV's servers that they bill as about 20× faster, which needs a free WPMU DEV Hub account.
Broken Link Checker by AIOSEO: 200,000+ installs, and the most thorough at finding things: internal and external links, images, videos that were deleted while the page still loads, and links inside Elementor, Divi and other page builders. It runs entirely in the cloud, so it needs an AIOSEO account, and the free plan scans 250 internal links a month. External links and more volume are on the paid plans.
Ahrefs' free broken link checker and Dead Link Checker: online tools that crawl any site from outside, no install. Good for a one-off look or a site you don't own; not a substitute for a check that runs on its own.
Screaming Frog SEO Spider: the desktop crawler SEO people already have. Free up to 500 URLs, it reports every 4xx and 5xx it meets and which pages link to it. Thorough, but it's a manual job you have to remember to run.
The free AuditAE plugin: deliberately narrower. Its Links tab checks internal links only, with no account, no cap and no network requests, and it's built around one rule: never report a working link as broken. More on how below.
Why checkers report working links as broken
If you've run a checker and found a list of "broken" links that open fine, you're in good company. The usual causes:
- The other site blocks robots. Plenty of servers answer automated requests with 403 Forbidden, 429 Too Many Requests, or a Cloudflare-style challenge page, while serving the same URL normally to a person. LinkedIn famously answers bots with a made-up 999 status.
- Timeouts. A slow server, or a checker firing many requests at one host, turns a working page into a "connection failed."
- HEAD requests. Some checkers ask only for a page's headers to save time, and some servers answer that differently from a normal page load.
- WordPress URLs that don't map to a post. Category and tag archives, author pages, date archives,
/page/2/, feeds, custom post type archives and uploaded files all resolve fine without being a post or page. A checker that only asks "is there a post at this address?" calls every one of them broken. - Redirects it can't see. If another plugin redirects the old URL, the link works for every visitor, and a checker that doesn't know about the redirect still flags it.
This matters more than it sounds, because of what people do with the report. The fix for a broken link is editing or deleting it, and the "fix" for a false positive is deleting a link that was working. Open every reported link in a private window before you touch it.
How to find broken links in WordPress
- Start with internal links. They're the ones you can always fix, they matter most for how crawlers move through your site, and they can be checked with certainty.
- Check Search Console's Pages report. Under "Not found (404)", Google lists URLs it tried and couldn't load. Inspecting one shows where Google found the link, which is often an old post of yours.
- Run a plugin or crawler for the full list. Pick from the options above depending on whether you need external links and whether you're happy creating an account.
- Confirm before fixing. Open each link logged out. Separate "truly gone" from "blocked a robot".
How to fix them, in order of preference
- Point the link at the page that replaced it. Most broken internal links have an obvious successor: the renamed post, the new pricing page, the merged guide.
- If many posts link to the same dead URL, redirect it instead. One 301 from the old address to its closest living equivalent fixes every link at once and keeps the credit any backlinks earned. Don't redirect everything to the homepage; Google treats that as a soft 404. Our redirect plugin guide covers doing it right.
- If nothing replaces it, unlink and keep the text. The sentence still reads; it just stops pointing at nothing.
- For a link to a draft or trashed post, decide about the post, not the link. It works for you while you're logged in, which is why it survives, but every visitor gets a 404. Publish it, restore it, or retarget the link.
A broken link checker that won't cry wolf
The free AuditAE plugin takes the opposite trade-off to the cloud checkers. Instead of checking everything and leaving you to sort the false alarms, it checks only internal links, and reports one only when it can prove the target is gone.
- Offline. It resolves every link against your own database, so it makes no network requests at all, needs no account and has no monthly cap. The scan runs in short slices in the background, so it finishes even on busy shared hosting, and refreshes itself daily and after you edit content.
- Conservative. Your homepage, the blog index, category, tag, author and date archives, custom post types,
/page/2/and feeds,?p=shortlinks and real files on disk are all resolved before anything is called dead. Anything it can't positively classify stays out of the report. - Aware of your redirects. A link whose old address is redirected by AuditAE, Redirection, Rank Math or Yoast SEO Premium isn't reported, because it works.
- Drafts listed separately. Links to drafts, private, scheduled or trashed posts get their own list, since the fix is a decision about that post.
- Built for page builders. Elementor pages are read from Elementor's own widget data, so the checker sees the links your visitors see.
- Redirects one click away. From a dead path on the Links tab you can start a 301, and the same tab lists orphaned content, the published pages nothing links to, with one-click internal links from pages that already mention them.
The honest limit: it doesn't check external links. If you need those checked automatically, run one of the cloud checkers alongside it; they don't conflict.
Let an AI agent fix them
Finding broken links is the easy half. Fixing them means opening each post, finding the link, choosing the right page and saving, for every row in the report.
Pair the plugin with an AuditAE account and Claude, ChatGPT, Cursor or any MCP client can do that half. Ask your assistant for the site's broken links and it lists them for free, with the post, the dead address and the link text. It then proposes a fix for each, using your own pages to choose the replacement the link text means, and applies the ones you approve: point the link at the right page, or remove the link and keep its text. Only the links with that exact address change, inside Elementor widgets too, and a target that isn't a published page is refused before anything is written.
Each fix is 5¢, charged only when the post actually changed. Every fix keeps a restore point, and undoing one is free. When many posts link to the same dead URL, the assistant can add one redirect instead.
Choosing in one paragraph
Need external links, images and email alerts? Install WPMU DEV's Broken Link Checker and use its free cloud engine. Run a lot of video or page-builder content and don't mind an account? Broken Link Checker by AIOSEO checks the most, within its free 250-link monthly cap. Want a one-off look at any site? Ahrefs' online checker. And for the internal links you can always fix, the free AuditAE plugin checks every one offline, with no account, no cap, and no working links reported as dead.
FAQ
It depends which links you need checked. For internal and external links with email alerts, WPMU DEV's Broken Link Checker is the most installed option and is free, with a faster cloud engine that needs a free WPMU DEV Hub account. Broken Link Checker by AIOSEO adds video and page-builder checks but needs an AIOSEO account and caps the free plan at 250 internal links a month. If your priority is internal links with no account, no cap and no false positives, the free AuditAE plugin checks them offline against your own database. For a one-off look at any site, Ahrefs' free online checker needs no install.
Because a checker isn't a browser. Many sites answer automated requests with a 403 (forbidden), a 429 (too many requests), a bot challenge page or a timeout, while serving the same page normally to you. LinkedIn famously returns a non-standard 999 status to bots. Some checkers also send a quick HEAD request that a server handles differently from a normal page load. Before you edit anything, open each reported link in a private browser window. If it loads, it isn't broken, whatever the report says.
The old version had that reputation because it checked links from your own server on a schedule, which could pile up on cheap shared hosting. WPMU DEV's answer was a cloud engine that does the checking on their servers instead, and AIOSEO's checker runs entirely in the cloud. A checker that only verifies internal links can avoid the problem another way: it never has to make a network request, because your own database already knows which pages exist.
A few broken links won't sink a site, and Google has said 404s on their own are a normal part of the web. The real costs are indirect: an internal link to a dead page is a dead end for visitors and for crawlers moving through your site, it wastes the link from a page you control, and a page that once earned backlinks loses that credit when it 404s. For AI search there's a newer cost: retrieval bots like ChatGPT-User fetch specific URLs to answer a question, and a dead link is a page they can't read.
First confirm it's really broken by opening it logged out. Then pick one of three fixes. Point the link at the page that replaced the old one, which is the right fix most of the time. Remove the link and keep its text if nothing replaces it. Or, if many posts link to the same dead URL, add a 301 redirect from that URL to its closest living equivalent, which fixes every link at once and keeps any backlink credit the old URL earned. Avoid redirecting dead URLs to your homepage; Google treats that as a soft 404.
Yes, with the free AuditAE plugin paired to an AuditAE account. Claude, ChatGPT, Cursor or any MCP client can list the site's broken internal links for free, and with your approval point each one at the right page or unlink it, at 5¢ per fix, charged only when the post actually changed. Only the links with that exact address change, Elementor widgets included, and every fix keeps a restore point you can undo for free.
Run the citation report on your own brand.
See which prompts cite you on ChatGPT, Perplexity, Gemini, and Google AI Overviews — the first one’s free, no card.
Aaron is the founder of AuditAE. He has run AI-visibility audits for SEO agencies and in-house brand teams, and writes about how generative answer engines are reshaping the practice of search marketing.
Related reading
- 7 min readWordPress Redirect Plugin Guide 2026: Best Free Options, 301s Done Right, and the 404s AI Bots SeeEvery WordPress site accumulates broken URLs, and a redirect plugin is how you keep the link credit when they move. Here's an honest 2026 comparison of Redirection, Rank Math, Yoast Premium and the rest, how to set up a 301 with or without a plugin, and the blind spot they all share: none of them picks out the 404s AI crawlers are hitting.
- 9 min readAI Crawlers Explained: What ClaudeBot, GPTBot, OAI-SearchBot, and 27 Other Bots Want From Your WebsiteStrange user agents in your server logs, like ClaudeBot, GPTBot, OAI-SearchBot or PerplexityBot? Here's what every major AI crawler actually does with your content, which ones feed citations versus training data, how to verify the real thing, and how to decide bot-by-bot whether to block or allow.
- 13 min readWordPress robots.txt: The Complete 2026 Guide (Find It, Edit It, and Stop Blocking AI Search)WordPress generates a robots.txt you've probably never edited, and in 2026 one stale rule in it can make you invisible to ChatGPT, Perplexity, and Gemini. Here's where the file lives, how to edit it safely, what a good one looks like, and how to audit it against every AI crawler for free.
