Every WordPress website accumulates broken links over time. A page gets deleted, an external website goes offline, a URL structure changes, a plugin gets removed — and suddenly you have links scattered across your site that lead nowhere.
Visitors click them and hit a 404 page. Google crawls them and wastes its crawl budget. Your site's authority slowly leaks away.
Broken links are one of the most overlooked maintenance problems in WordPress — quietly damaging your SEO, your user experience, and your credibility. The good news is that finding and fixing them is entirely manageable with the right tools and a systematic approach.
This step-by-step guide covers everything: what broken links are, why they matter, how to find every broken link on your WordPress site, and how to fix them permanently.
What Are Broken Links — and Why Do They Matter?
A broken link (also called a dead link) is any hyperlink on your website that leads to a page or resource that no longer exists or can't be reached. When clicked or crawled, it returns an error — most commonly a 404 Not Found response.
Broken links fall into two categories:
Internal broken links — Links within your own site that point to pages, posts, images, or files that have been deleted, moved, or renamed.
External broken links — Links to other websites where the destination page has been removed, the site has gone offline, or the URL structure has changed.
Why broken links are a serious problem
- SEO damage. Google's crawlers follow every link on your site. When they hit broken links repeatedly, it signals poor site maintenance and wastes crawl budget on dead ends. While a handful of broken links won't tank your rankings overnight, a site riddled with them sends a clear quality signal to search engines.
- Lost link equity. Internal links pass PageRank and link equity between your pages — a core part of how WordPress SEO works. A broken internal link is a broken equity chain, meaning the authority that should flow to that page simply disappears.
- Poor user experience. Nothing frustrates a visitor more than clicking a link and landing on a 404 page. It breaks trust, interrupts the reading experience, and dramatically increases your bounce rate.
- Lost conversions. If a broken link sits on a product page, a pricing page, or a call-to-action button, it's directly costing you leads and revenue.
- Crawl budget waste. For larger sites, Google allocates a specific crawl budget. Every broken link Googlebot crawls is a wasted allocation that could have been spent indexing your valuable content.
Common Causes of Broken Links in WordPress
Understanding why broken links occur helps you prevent them from forming in the first place:
- Deleting a page or post without setting up a redirect — The most common cause. When you delete or unpublish content, every link pointing to it instantly breaks.
- Changing a post slug or permalink structure — Renaming a post's URL slug or changing your global permalink structure creates broken links everywhere that URL was referenced.
- Migrating to a new domain — After a domain change, all internal links pointing to the old domain become broken if not updated.
- External sites going offline or restructuring — Links to third-party resources break whenever those sites change their URL structure, delete content, or shut down entirely.
- Removing a plugin that created its own pages — Some plugins (membership systems, LMS platforms, etc.) create their own pages. Deactivating or uninstalling them can leave behind broken links across your content.
- Typing errors in manually added links — Simple human error — a mistyped URL, a missing slash, or an accidental space — creates an instant broken link.
- Moving images or media files — Links to images, PDFs, or downloadable files break when those files are deleted from the Media Library or moved to a different location.
Step 1: Find All Broken Links on Your WordPress Site
You can't fix what you haven't found. Here are the best tools and methods for discovering every broken link on your WordPress site.
01
Broken Link Checker Plugin (Best for Ongoing Monitoring)
The Broken Link Checker plugin (by WPMU DEV, free on wordpress.org) is the most popular tool for finding broken links directly inside WordPress. It continuously monitors all links across your posts, pages, comments, and custom fields — and alerts you when broken links are detected.
How to set it up:
- Go to Plugins → Add New and search for Broken Link Checker
- Install and activate it
- Go to Tools → Broken Links (or the dedicated Broken Link Checker menu item)
- The plugin will begin scanning your site — this may take a few minutes on larger sites
- Once complete, you'll see a list of all broken links, including the URL, HTTP status code, the post/page where it lives, and the anchor text
Features worth knowing:
- Broken links are highlighted in your post editor so you can see them while editing
- You can edit the URL directly from the broken links list without opening the post
- You can set the plugin to email you when new broken links are detected
- Links can be marked as "not broken" if they're false positives
Important note: Broken Link Checker continuously makes HTTP requests in the background to check links. On shared hosting with tight resource limits, this can slow down your site. Consider running it periodically rather than leaving it permanently active — or use the hosted version (WPMU DEV) which runs the checking off-site.
02
Screaming Frog SEO Spider (Most Comprehensive)
Screaming Frog SEO Spider is the industry-standard desktop tool for crawling websites and identifying technical SEO issues — including broken links. The free version crawls up to 500 URLs.
How to use it:
- Download and install Screaming Frog from screamingfrog.co.uk
- Enter your WordPress site's URL and click Start
- Wait for the crawl to complete (speed depends on site size)
- Click the Response Codes tab at the top
- Filter by Client Error (4xx) to see all 404 responses
- Click any URL to see which page(s) contain a link to it (shown in the Inlinks tab at the bottom)
Screaming Frog gives you the most thorough broken link audit available — it finds broken links in body content, navigation menus, image src attributes, canonical tags, and more.
Export the results: Go to Reports → Response Codes → Client Error (4xx) to export a full list to CSV. This gives you a complete working document to fix broken links systematically.
03
Google Search Console (Free, Google-Verified Data)
Google Search Console shows you exactly which pages on your site are returning 404 errors — from Google's perspective. This is the most authoritative source because it tells you which broken links Google has actually crawled and indexed.
How to check:
- Log in to Google Search Console (search.google.com/search-console)
- Select your WordPress site
- Go to Indexing → Pages in the left sidebar
- Click Not indexed
- Look for "Not found (404)" in the reason list — click it to see all affected URLs
- Also check Coverage → Excluded for soft 404s
For broken links (not just broken pages):
Go to Links → External links and Internal links to see the full link profile Google has mapped. URLs with many inbound links that are returning 404s are your priority fixes.
04
Ahrefs, Semrush, or Moz (For Sites Focused on SEO)
If you use a premium SEO tool, all of them include broken link audit features:
- Ahrefs: Site Audit → Issues → Broken pages / Broken links
- Semrush: Site Audit → Issues → Errors → Broken internal links
- Moz Pro: Site Crawl → Crawl Issues → 404 Pages
These tools are the most comprehensive for finding broken backlinks — links from other websites pointing to pages on your site that no longer exist. Fixing these (by setting up 301 redirects to the correct page) is especially valuable for SEO because it recovers link equity from external sites.
Step 2: Fix Broken Internal Links
Once you have your list of broken links, work through them systematically. Internal links (links within your own site) are always your top priority because you have full control over them.
05
Fix A: Update the Link URL Directly
The simplest fix. If a link points to an old URL that has since changed, update the link to the new URL.
In the WordPress Block Editor (Gutenberg):
- Open the post or page containing the broken link
- Click on the linked text
- Click the Edit (pencil) icon in the link toolbar
- Update the URL to the correct, working destination
- Click Save or update the post
In the Classic Editor:
- Highlight the linked text
- Click the Insert/Edit Link button in the toolbar
- Update the URL
- Click Update and save the post
Via the Broken Link Checker plugin:
From Tools → Broken Links, hover over the broken link and click Edit URL. Update it directly without opening the post — much faster when you have many links to fix.
06
Fix B: Set Up a 301 Redirect (Best for Deleted or Moved Pages)
If a page has been permanently moved or deleted, setting up a 301 redirect from the old URL to a relevant replacement page is the best fix. This:
- Automatically fixes every link pointing to that old URL — in your content, in comments, in external sites
- Passes link equity (SEO value) from the old URL to the new one
- Shows visitors the correct content instead of a 404 page
Using the Redirection Plugin (free, recommended):
- Install and activate the Redirection plugin
- Go to Tools → Redirection
- Click Add New
- In Source URL, enter the broken/old URL (e.g.,
/old-page-slug/)
- In Target URL, enter the destination URL (e.g.,
/new-page-slug/)
- Set type to 301 – Moved Permanently
- Click Add Redirect
Using .htaccess (Apache servers, for developers):
# Redirect a single old URL to a new one
Redirect 301 /old-page-slug/ https://yourdomain.com/new-page-slug/
# Redirect an entire old directory
RedirectMatch 301 ^/old-section/(.*)$ https://yourdomain.com/new-section/$1
Which approach to use: Redirection plugin — Best for most site owners; easy to manage, no risk of server errors. .htaccess — Better for bulk redirects or performance on high-traffic sites (no plugin overhead).
07
Fix C: Remove or Replace the Link
If the content the link was pointing to is genuinely gone and there's no suitable replacement:
- Remove the link entirely — Delete the hyperlink but keep the anchor text if it's still relevant
- Link to a related page — Find the most relevant existing page on your site and update the link to point there instead
- Delete the sentence or paragraph — If the surrounding content is outdated and no longer adds value, consider removing it entirely and updating the section
Step 3: Fix Broken External Links
External links — links to other websites — break when those third-party pages change or disappear. You have no control over the destination, so your options are:
- Update to the new URL. Many sites simply restructure their URLs. Search for the content on the destination site to find its new URL, then update your link.
- Link to an archived version. If the original page is gone forever, the Internet Archive's Wayback Machine (web.archive.org) may have a saved version. You can link to the archived copy — especially useful for citing sources, statistics, or research.
- Find an equivalent replacement source. Search for a different, current, authoritative source covering the same topic and update your link to point there instead.
- Remove the link. If the external resource is no longer relevant or replaceable, simply remove the link. A paragraph without an external link is better than one with a broken link.
- Mark as intentional (no-fix). In the Broken Link Checker plugin, you can mark certain links as "not broken" to remove them from your working list if you've decided not to fix them.
Step 4: Fix Broken Image Links
Broken image links — where an <img> tag's src attribute points to an image that no longer exists — are a special category. They don't show as clickable broken links but they do show as missing images (broken image icons) on your pages.
Find broken image links:
- Screaming Frog: Filter by Images tab → Client Error (4xx)
- Broken Link Checker plugin: It also scans image links — look for broken links with image file extensions (.jpg, .png, etc.)
Fix options:
- Re-upload the image to the Media Library if the file was accidentally deleted
- Update the image URL in the post if it was moved to a different location
- Replace with a new image if the original is lost
- Run Better Search Replace if the issue is a URL structure change after migration
Step 5: Monitor for New Broken Links Automatically
Finding and fixing broken links is a one-time cleanup. Keeping them fixed requires ongoing monitoring.
Set up Broken Link Checker for automatic alerts:
- Go to Settings → Link Checker
- Under Email Notifications, check "Send me email notifications of new broken links"
- Enter your email address
- Set the notification frequency (daily or weekly is recommended)
Now you'll be automatically alerted whenever a new broken link appears — so you can fix it before Google crawls it or visitors encounter it.
Add broken link checking to your monthly WordPress maintenance routine:
- Run a Screaming Frog crawl monthly on larger sites
- Review Google Search Console's 404 report weekly
- Audit your most important landing pages manually every quarter
Use a redirect plugin to catch future URL changes: Install Redirection and enable its 404 Monitor feature. It logs every 404 error that occurs on your site — giving you a running list of broken URLs being hit by real visitors and search engine bots — so you can create redirects for them.
Best Practices to Prevent Broken Links
- Always set up a redirect when you delete or rename a page. This is the single most important habit. Before deleting any post, page, or custom post type, create a 301 redirect from its URL to the most relevant replacement.
- Use the Redirection plugin's auto-redirect feature. Enable automatic redirects when post slugs change — Redirection can detect when a post's URL changes and create a redirect automatically.
- Use relative URLs for internal links. Instead of linking to
https://yourdomain.com/blog/my-post/, link to /blog/my-post/. Relative URLs don't break when you move domains or switch between HTTP and HTTPS.
- Audit external links periodically. External sites change without warning. Include an external link audit in your quarterly site maintenance checklist.
- Avoid deep nesting of pages. The more levels deep a page is (e.g.,
/category/subcategory/topic/post/), the more links break when you restructure your content. Keep URL structures as flat as practical.
- Test links before publishing. Before publishing any post with multiple links, click each one to verify it opens correctly. A quick manual check catches typos and accidental broken links before they go live.
Quick Reference: Broken Link Fix Summary
| Link Type |
Best Fix Tool |
Fix Method |
| Internal link — page still exists at new URL | Broken Link Checker / Block Editor | Update the link URL directly |
| Internal link — page permanently deleted | Redirection plugin | Create 301 redirect to relevant replacement |
| Internal link — content no longer relevant | Block Editor | Remove link or replace with better resource |
| External link — new URL exists | Block Editor | Update to new URL |
| External link — page gone forever | Block Editor | Link to Wayback Machine archive or find replacement |
| Broken image link | Better Search Replace / FTP | Re-upload image or update src URL |
| Site-wide URL change after migration | Better Search Replace | Run database URL replacement |
| Multiple redirects needed at once | Redirection plugin / .htaccess | Bulk redirect setup |
Frequently Asked Questions
Q: How many broken links are too many for SEO?
A: There's no hard threshold, but as a rule: zero is the goal for internal broken links. A handful of external broken links on a large site is normal and manageable. What hurts SEO most is a pattern of neglect — dozens or hundreds of broken internal links, or important pages returning 404s that receive significant inbound links.
Q: Do broken external links hurt my SEO more than broken internal links?
A: Broken internal links generally have more direct SEO impact because they disrupt your site's internal link equity flow and waste Googlebot's crawl budget on your own domain. Broken external links are less critical from a direct ranking perspective but still harm user experience and site credibility.
Q: Will setting up 301 redirects pass link equity to the new page?
A: Yes. A 301 (permanent) redirect passes the vast majority of link equity from the old URL to the destination. This is why 301 redirects are almost always preferable to simply removing a page — especially if the old page had inbound links from other sites.
Q: The Broken Link Checker plugin is slowing my site. What should I do?
A: This is a known issue on resource-limited shared hosting. Options: (1) Run the plugin temporarily for an audit then deactivate it; (2) Use the hosted WPMU DEV version which runs checks off your server; (3) Use Screaming Frog for periodic audits instead of a continuously active plugin.
Q: Should I fix 410 (Gone) errors the same way as 404 errors?
A: A 410 means a page is permanently gone (as opposed to a 404 which could be temporary). For intentionally deleted pages where you don't want a redirect, a 410 is actually better than a 404 — it tells search engines to de-index the URL faster. But if the page had value or inbound links, set up a 301 redirect to a relevant replacement regardless of whether it returns 404 or 410.
Final Thoughts
Broken links are a maintenance reality for every WordPress website. The key is to have a system: find them regularly, fix them systematically, redirect deleted pages, and monitor for new ones automatically.
Start with a full audit using Broken Link Checker or Screaming Frog, work through your list of internal broken links first, set up 301 redirects for any deleted pages that had traffic or links, and then put automatic monitoring in place so the problem doesn't silently build up again.
Your site's SEO, user experience, and credibility will all benefit — and the whole process is far less daunting than it sounds once you have the right tools in place.
Need help conducting a full WordPress SEO audit or setting up a proper redirect and broken link management system? Our WordPress development team handles exactly this kind of work.
Get in touch with us today