Find and Fix Broken Links in WordPress Without Server Lag

Broken links quietly cost you visitors and rankings. Here's how to scan a WordPress site—one post at a time so it never overloads your server—and fix, recheck or dismiss each dead link.

Broken links are invisible damage. Nobody reports them—a visitor just clicks, hits a 404, and quietly leaves. Meanwhile search engines crawl the same dead URLs and file your site under “not well maintained.” I’ve inherited sites with dozens of broken links the owner had no idea existed, because who re-checks a link they added two years ago? The catch is that finding them has a reputation for hammering your server. It doesn’t have to. Here’s the painless way.

The essentials

  • Broken links cost you visitors, trust and crawl budget—and they accumulate silently as external sites die and URLs change.
  • Most checkers scan the whole site at once and choke big sites; the Broken Links Checker scans post by post over AJAX so it never times out.
  • It checks internal and external links with lightweight HEAD requests and a configurable timeout (10s by default).
  • Each dead link gives you three actions: recheck, edit the source post, or dismiss a false positive.
  • Scans can run manually or on a daily/weekly schedule, with an email alert when a scheduled scan finds something new.

Every dead link has a cost, and they stack up:

  • User experience — someone who lands on a 404 rarely tries again; they bounce.
  • SEO — search engines waste crawl budget on dead URLs instead of your live content, and a mass of broken links reads as a neglected site.
  • Lost paths — a broken internal link is a page nobody can reach, however good it is.

And they appear on their own: an external site goes offline, you restructure your URLs, or you delete a page that other posts still link to. Left alone, a healthy site slowly rots at the edges.

Because they try to scan everything in one pass. On a ten-post blog that’s fine. On a site with thousands of posts and external references, loading every link into a single request either grinds the server to a crawl or simply hits the PHP timeout and dies half-finished—so you never even get a complete report.

The fix is architectural: check one post at a time. The Broken Links Checker sends a separate AJAX request per post, so the work is spread into small, safe chunks the server barely notices. A 10,000-post site scans the same way a 10-post site does—just over more steps. It also uses HEAD requests (wp_remote_head), which ask a server only “does this exist?” instead of downloading the whole page, keeping each check fast and cheap.

To scan for broken links without overloading your server, use a checker that works one post at a time. In Blaminhor Essentials, activate the Broken Links Checker, start a scan, and review each dead link by its HTTP status code—then recheck it, edit the source post, or dismiss a false positive. Step by step:

  1. Open the module and start the scan. Results stream in live as each post is processed, and you can pause or stop at any point.
  2. Review what it finds. Each broken link is listed with its HTTP status code—404 (gone), 403 (forbidden), a timeout, and so on—so you know why it failed, and whether it’s internal or external.
  3. Act on each one:
    • Recheck — maybe the server had a hiccup; one click re-tests the URL.
    • Edit — jump straight to the source post to fix or remove the link.
    • Dismiss — mark a known-good link as a false positive so it stops nagging you.

The status code tells you why a link failed and what to do about it:

HTTP statusWhat it usually meansSensible action
404 Not FoundThe target page is gone—deleted or movedEdit the source post; add a 301 redirect if it moved
403 ForbiddenThe server refuses the request—sometimes it just blocks HEAD checksRecheck; dismiss if the link opens fine in a browser
TimeoutNo response within the limit (10s by default)Recheck—it may be a temporary hiccup
Connection failedThe host is offline or its domain is goneEdit or remove the link

The Broken Links Checker: a list of dead links with their status codes and post of origin, each offering recheck, edit and dismiss. Every dead link with its status code and source post—recheck, fix at the source, or dismiss a false positive.

For a broken internal link where the page genuinely moved, the cleanest fix isn’t just editing the link—it’s a 301 redirect from the old URL, which also rescues any external links you don’t control.

Can you set it and forget it?

Yes. Leave scanning manual, or set it to run daily or weekly on a schedule. Turn on email notifications and a scheduled scan that discovers new broken links will email you the moment it does—so you find out when a link dies, not months later when you happen to open the report. Between scans, a dashboard signal keeps a running count of links still waiting on you.

Broken links never fix themselves, but keeping on top of them is a five-minute habit, not a chore. Scan after any migration or URL change, after bulk-deleting content, and on a light recurring schedule the rest of the time—start, review, fix, done.

Broken Links Checker is one of the 20+ tools in Blaminhor Essentials—free and open-source on WordPress.org.

Download Blaminhor Essentials

– blaminhor

FAQ

Does the broken link checker slow down my visitors?

No. The scan runs in the admin on demand or on a schedule, not on front-end page loads, so visitors are never affected. Each link is checked with a HEAD request and a timeout, and the scanner deliberately refuses to probe private or reserved network addresses for safety.

How can I check for broken links without a plugin, using Search Console or online tools?

You can. Google Search Console's Pages report lists URLs returning errors, and free online crawlers like Dr. Link Check scan your site from the outside. Both work, but they run occasionally and off-site—so a built-in scanner that rechecks on a schedule and links straight to the source post stays far more current.

Does it detect broken images too, or only links?

A broken image is really just a link to an image file that now returns a 404, so the same logic applies. The Broken Links Checker inspects the URLs in your content and reports any that fail—whether they point to a page or a file—so you can swap the reference or re-upload it.

What's the difference between a broken link and a 404 error?

A broken link is any link that fails to reach a working page; a 404 is one specific reason why—the server replying « not found ». A link can also break with a 403, a 500 or a timeout. That's why the checker shows the real HTTP status code, not just a blanket « broken ».

Can broken link scans run automatically?

Yes. You can leave scanning manual or schedule it to run daily or weekly. With email notifications enabled, a scheduled scan that finds new broken links emails you so you can fix them without having to remember to check the report yourself.

How often should I check my site for broken links?

For most sites a monthly scan is plenty; a busy blog with lots of outbound links benefits from weekly. Because external sites die without warning, the safest habit is a scheduled scan with email alerts, so you hear about new dead links instead of relying on your memory to look.

blaminhor Building what's missing.

Comments