WordPress has a plugin for everything. That’s a blessing, and also how you end up with a site that loads like it’s powered by a lemon.
If you’re trying to find broken links on a WordPress site, you have two main options: scan from inside WordPress (plugin) or scan from outside (web tool / crawler). Here’s the honest comparison.
My mental model: plugins can feel like bolting extra weight onto a race car. Pit‑crew rule: keep the site light, do diagnostics off-track, and only add dashboard tooling when it earns its keep.
TL;DR
- Want the simplest and safest for performance? Use an external web tool.
- Want in-dashboard editing and scheduled scans? A plugin can help (but watch load).
- Running a big audit? External scan first, then fix internally.
WordPress broken link checker plugins
Pros
- Runs inside WordPress (can see internal content and sometimes draft areas).
- Convenient editing (fix links right from the dashboard).
- Scheduling (runs periodically without you thinking about it).
Cons
- Performance overhead (crawling is work, and your server pays the bill).
- Hosting limits (shared hosts and managed WP can throttle long scans).
- WP cron weirdness (scheduled tasks are not always reliable).
- False positives (rate limits, temporary 403/429s, or flaky third-party sites).
- More moving parts (one more plugin to keep updated, compatible, and secure).
Web tools / external crawlers
External tools scan your site like a user/bot would: from the outside. That means no plugin install and no server load from crawling.
Pros
- No install (you can run it today).
- No WP performance hit (the crawling happens externally).
- Exports (CSV results are perfect for fixing or delegating).
Cons
- Public access required (if content is gated behind login, it may be missed).
- Some JS-heavy links can be missed unless the crawler renders JS.
If you want a simple external scan with exportable results, use TinyUtils Dead Link Finder.
What each approach actually scans
This is the part people miss, and it explains a lot of “why are our reports different?” arguments:
- Plugins often scan your WordPress database: posts, pages, and sometimes custom fields. They can catch links that aren’t publicly crawlable yet (drafts, private pages).
- External tools crawl what a visitor can reach. They’re better at catching real-world problems (template links, nav/footer issues, redirects/404s), but they won’t see content behind a login wall.
They answer slightly different questions. Pick the one that matches the problem you’re trying to solve: “what’s broken for visitors” vs “what links exist in our WP content.”
What to look for in any report (plugin or web)
A good broken-link report tells you exactly what to fix and where to fix it. If the report is vague, the fix-work becomes vague. Look for these fields:
- Broken URL + status code (404, 410, 500, timeout).
- Found on (the page/post where the link lives).
- Link text (optional, but useful when the same URL appears 50 times).
- Final URL (helpful when there are redirects or chains).
- Export (CSV at minimum, so you can sort by impact and delegate).
When to pick each (quick guide)
| Your situation | Pick | Why |
|---|---|---|
| Small blog, occasional checks | Web tool | Fast, no overhead, easy exports |
| You need in-dashboard fixing | Plugin | Convenient editing inside WP |
| High-traffic site, performance sensitive | Web tool | No server load from crawling |
| Agency doing audits + handoff | Web tool + exports | CSV handoff is cleaner than screenshots |
A workflow that doesn’t make you hate your life
If you have more than a handful of broken links, treat it like a bug triage problem:
- Scan externally first to catch the high-impact stuff (nav/footer, popular pages, obvious 404s).
- Export the report so you can sort by “where it’s found” and fix in batches.
- Fix inside WordPress (or your editor) so internal links don’t rely on redirects long-term.
- Re-scan to confirm you didn’t create new issues while fixing old ones.
- Only then consider a plugin if you want ongoing monitoring inside the dashboard.
The big win is avoiding “hero mode.” Fix the worst offenders first (nav/footer, top pages), then chip away in batches. A weekly 20‑minute cleanup beats a single exhausting weekend once a year.
If you want my bias in one sentence: I start outside, because it matches what users (and Google) experience. Then I fix inside WordPress, because that’s where the content actually lives. Plugins are worth considering after the site is already healthy. For a 2am crisis, start with an external scan and a focused fix list.
Migration tips (so you don’t make it worse)
Treat broken links like a bug list: sort by impact, fix the obvious stuff first (nav/footer/top pages), then re-scan. Aim for momentum: the backlog shrinks, and new broken links get caught before they rot for months.
- Don’t scan during peak traffic. Crawls can spike CPU and DB load.
- Export results. Treat it like a bug list, not a one-time report.
- Fix internal links directly. Redirects are useful, but internal links shouldn’t rely on them forever.
- Re-scan after fixes. Broken links are a regression-prone feature.
- Watch redirects vs 404s. A 301 isn’t “broken,” but it’s still worth fixing internal links so you don’t chain redirects forever.
- Expect some false alarms. Some sites rate-limit crawlers and respond with 403/429 even though the page is “fine” for normal users.
Common WordPress link traps
- Menus + footer widgets: one broken link here replicates across every page.
- Old embeds: YouTube/Vimeo/Twitter embeds that changed URLs or got removed.
- Media library moves: images and PDFs that got reorganized during a migration.
- Button shortcodes: old builders and shortcode plugins that left hard-coded URLs behind.
- Author bio / sidebar blocks: sneaky “set it once in 2019” content that still ships everywhere.
If you do run a plugin, keep it gentle
- Run scans off-hours (late night / early morning) so you don’t punish real visitors.
- Throttle if possible (fewer simultaneous checks, longer delays).
- Disable features you don’t need (email alerts can turn into spam fast).
- Remove it later if it’s a one-time cleanup. Fewer plugins, fewer surprises.
Next steps
If you want the lowest-friction option, start with TinyUtils Dead Link Finder. Export the results and fix the top issues first (nav, footer, top pages). That’s usually 80% of the payoff.
Plugin-free broken link checking for WordPress
No installation, no server load – just paste your URL and check
Check Your WordPress Site →