How to Find and Fix Broken Links in WordPress

Checked for accuracy and updated on August 14, 2026.

Broken links accumulate quietly. A page gets restructured, an external site goes offline, a plugin is removed — and suddenly visitors are clicking links that lead nowhere. You often don’t notice until someone emails to say a link is dead, or until a crawl tool surfaces a list of 404 errors that have been building for months.

In my experience, most WordPress sites have at least a handful of broken links by the time they’ve been live for a year or two. They’re not a crisis, but they do quietly damage user trust and give search engines dead ends to crawl. A systematic sweep, run every few months, keeps things clean. Working through the step-by-step process of building and maintaining a WordPress website means this kind of routine maintenance should be part of the plan from early on.

How to Find and Fix Broken Links in WordPress

1. Scan your site for broken links

Broken Link Checker is the long-standing default recommendation for this job — checked directly against the WordPress.org plugin directory, it’s sitting at 500,000+ active installs and installs the normal way from Plugins → Add New. Once active, it scans posts and pages for broken internal and external links in the background and reports them in the dashboard. Broken Link Checker by AIOSEO is a newer, actively maintained alternative worth knowing about too — around 300,000 active installs, built by the AIOSEO team, and a reasonable pick if you’re already running other AIOSEO tools and would rather keep everything under one vendor.

Either way, whichever scanner you use, be aware it can be resource-intensive on shared hosting if left running continuously. On a smaller site this is usually fine; on a larger site or if your host flags the load, consider running it periodically rather than always-on, or use it for an initial audit and then disable it.

For a one-off audit — particularly after a migration or a major site restructure — a crawler like Screaming Frog (free up to 500 URLs) gives you a full picture of every link on the site and its HTTP status without depending on any WordPress plugin at all.

2. Triage the results

Not every flagged link needs the same treatment. Work through the list by type:

  • Internal broken links — links within your own site pointing to pages that no longer exist or have changed URL. These are the highest priority.
  • External broken links — links to third-party sites that have moved or gone offline. Worth fixing but lower urgency than internal ones.
  • Temporary errors (503, timeouts) — may resolve on their own. Recheck before acting.

3. Fix internal broken links

For internal links, you have two options: update the link to the correct URL, or remove it entirely if the content no longer exists and there’s nothing equivalent to point to.

If the page still exists but has moved to a new URL, the cleanest fix is a 301 redirect from the old URL to the new one — this handles any external links pointing at the old address as well, not just internal ones. Then update the internal links in your content to point directly to the new URL, so you’re not relying on redirect chains.

4. Fix or remove external broken links

For external links that return a 404, check whether the destination page has moved. A quick search for the page title often surfaces the new URL. If the page no longer exists at all, either remove the link or replace it with a current authoritative source on the same topic.

The Wayback Machine (web.archive.org) is useful here — it often has a cached version of the original page, which helps you understand what the link was pointing to and find a replacement.

5. Check Google Search Console

In Google Search Console, go to Indexing > Pages and look at the “Not found (404)” list. These are pages on your own domain that Google has tried to crawl and found missing. Any that appear here with inbound links — internal or external — are worth creating a redirect for, not just leaving as dead ends.

6. Set up a custom 404 page

Even after a thorough cleanup, some 404s will always slip through — old bookmarks, cached external links, typos in comments. A well-designed custom 404 page keeps visitors on the site when they do hit a dead end, with navigation options and a search bar rather than a generic error screen.

Broken links are an ongoing maintenance task, not a one-time fix, and the real research on how fast this happens is worth knowing rather than guessing at. A 2024 Pew Research Center study tracking a decade of webpages found that 38% of pages that existed in 2013 were no longer accessible ten years later, with the erosion measurable even over much shorter windows — 15% of pages from 2022 were already gone within a year, 8% of pages from 2023. Separately, a longitudinal study out of Old Dominion University sampling 27 million URLs from the Wayback Machine found about 65% of sampled URLs were dead when rechecked. Link rot also isn’t evenly distributed: the same research found broken links in 54% of Wikipedia reference sections and 23% of news webpages, so a site that links out to news coverage or reference material should expect a higher external-link decay rate than one linking mostly to stable documentation. Set a reminder to run a link check every three to six months, or after any major update to the site structure. Including this in a broader site audit alongside security and performance checks makes it easier to keep on top of.

Practical Tips

  • Run a full link check after any site migration — URL structures almost always change and bring a wave of internal 404s with them
  • Check after major WordPress, theme, or plugin updates — occasionally these restructure URLs or remove pages
  • In Screaming Frog, filter by status code 404 and sort by inlinks descending to prioritise the most-linked broken pages first
  • In Google Search Console, the Linked externally filter in the Pages report shows which 404 pages are being linked to from other websites — these are the highest priority to redirect

Common Mistakes

  • Only checking internal links and ignoring external ones — outgoing links that go nowhere still reflect poorly on the site
  • Removing a broken link when the correct approach is a redirect — if the page has moved, a redirect preserves any link equity and provides a better user experience
  • Not rechecking after a site update — a single plugin update or URL change can introduce new broken links across dozens of posts
  • Installing a broken-link plugin without checking whether it’s still actively maintained first — an abandoned checker can silently miss new categories of broken links or stop being compatible with a current WordPress version

Plugin vs. Crawler: Which to Use

Use a maintained broken-link-checking plugin for ongoing monitoring — it runs in the background and surfaces new broken links as they appear. It’s the lowest-effort option for a site that changes regularly, as long as you check periodically that the plugin you’ve chosen is still actively maintained.

Use a crawler like Screaming Frog for a one-off deep audit — before a launch, after a migration, or when you want a complete picture of every URL and link on the site at a point in time. Crawlers also pick up issues a plugin can miss, such as broken image links or redirect chains, and they don’t depend on any single plugin’s availability at all.

For most WordPress sites, a plugin handles day-to-day monitoring well. Add a manual crawl once or twice a year to catch anything it might have missed.

Conclusion

Run a scan now if you haven’t already — the real research above shows broken links build up faster than most site owners expect. An hour or two spent cleaning up 404s and updating stale external links pays off in better crawlability, cleaner user journeys, and a site that simply feels more professional to anyone who uses it.