SEO

How to Find and Fix Broken Links in WordPress

Illustration showing how to find and fix broken links in WordPress using a link audit dashboard.

Broken links are easy to overlook, especially on a WordPress website that has been running for several years.

Pages get renamed. Products disappear. External websites remove resources. Images are replaced. Old URLs are left behind after redesigns and migrations.

The result can be links that lead visitors to missing pages, server errors or resources that no longer exist.

The good news is that you do not need to check every link manually. With the right tools and a sensible process, you can find broken links, work out why they are failing and decide whether to update, remove or redirect them.

This guide explains how to do that properly in WordPress.

What Is a Broken Link?

A broken link is a link that no longer takes the visitor to the intended destination.

It might lead to:

  • A 404 Not Found page
  • A deleted image or file
  • A server error
  • A domain that no longer exists
  • A page that has moved to another URL
  • A website that blocks access to the request
  • A URL containing a typo

Broken links can be either internal or external.

Internal broken links

An internal link points somewhere else on your own website.

For example:

yourwebsite.co.uk/services/ linking to yourwebsite.co.uk/old-service/

If you control both URLs, you can normally fix the link at its source.

External broken links

An external link points to another website.

For example, an old article may link to a report or resource that the publisher later removes.

You cannot control the destination, so the solution may be to find its replacement, use a different source or remove the link.

A 404 Is Not Always a Problem

A missing URL and a broken link are not quite the same thing.

A website can legitimately return a 404 response when a page no longer exists.

That does not automatically mean you need to redirect it.

The problem is more significant when:

  • Your own pages still link to the missing URL
  • The URL should have moved somewhere else
  • It is still included in your sitemap
  • Visitors continue trying to reach it
  • Other websites link to it and a suitable replacement exists

If a page was deliberately removed and there is no relevant replacement, returning a 404 or 410 can be perfectly appropriate.

What you should avoid is leaving visitors clicking links on your site that you already know lead nowhere.

Why Broken Links Are Worth Fixing

Broken links can create unnecessary dead ends for visitors.

Someone reading an article may click a recommended resource only to find it has disappeared. A customer may follow an old product link. A navigation or call-to-action link could point to a page that was renamed months ago.

Regularly checking links can help you:

  • Improve the visitor experience
  • Keep important navigation working
  • Remove outdated references
  • Maintain useful internal linking
  • Find mistakes introduced during migrations or redesigns
  • Spot missing images and downloads
  • Keep important content accurate

You do not need to panic because a crawler finds a handful of old 404s, but links that users are actively being sent through are worth fixing.

How to Find Broken Links in WordPress

There are several ways to find broken links.

For a small site, you may occasionally spot them manually. For anything larger, a crawler is usually much more efficient.

1. Check an Individual Link Manually

If you already know which page contains the problem, start by clicking the link yourself.

Check:

  • Where the link actually goes
  • Which status or error you see
  • Whether the URL contains a typo
  • Whether the destination has moved
  • Whether the page works in a private browser window

A link that appears broken while you are logged into WordPress may behave differently for normal visitors, and the reverse can also happen.

Manual checking is useful for confirming a problem, but it is not practical for auditing hundreds or thousands of links.

2. Crawl the Website with Screaming Frog

Screaming Frog SEO Spider is one of the most practical ways to check a WordPress website for broken links.

It works outside WordPress, so you do not need to install another plugin just to crawl the site.

A basic process is:

  1. Open Screaming Frog.
  2. Enter your website address.
  3. Start the crawl.
  4. Open the response-code reports.
  5. Review URLs returning client or server errors.
  6. Inspect the pages linking to those URLs.
  7. Fix the source link where appropriate.
  8. Crawl the site again after making changes.

The important part is not just finding the broken destination.

You also need to find where the broken link appears.

Screaming Frog’s inlink information can show which page links to a particular URL, making it much easier to locate the content you need to edit.

The free version is suitable for smaller websites, while larger sites may require the paid version.

3. Use Google Search Console as a Supporting Check

Google Search Console can also help identify URLs Google has encountered but could not successfully fetch or index.

Its Page indexing and URL Inspection tools can be useful for investigating:

  • 404 URLs
  • Server errors
  • Redirect problems
  • URLs Google is having difficulty accessing
  • Pages that should be indexed but are not

Search Console is particularly useful when you want to understand what Google has found while crawling your site.

However, it should not be treated as a complete broken-link scanner.

It will not necessarily show every bad internal or external link on your website.

For a systematic link audit, a crawler is usually the better starting point.

4. Consider a WordPress Broken-Link Plugin

If you prefer to work inside WordPress, Broken Link Checker is another option.

It can monitor links from within WordPress, and its cloud-based checking option can perform the scanning away from your own hosting environment.

That can make it useful for site owners who want ongoing checks without running a desktop crawler manually.

However, you do not need a permanent broken-link plugin on every WordPress website.

If you only want to perform periodic audits, an external crawler can often do the job without adding another plugin to maintain.

Choose the approach that suits the size of the site and how often you need to check it.

Check Whether the Link Is Really Broken

A crawler may flag a URL without the page actually being unusable.

Before changing content, look at the response and test questionable links manually.

404 Not Found

A 404 normally means the requested resource does not exist at that URL.

If your site links to it, find out whether the destination moved or whether the link should simply be removed.

410 Gone

A 410 indicates that the resource has deliberately been removed.

If you still link to it, update or remove that link.

403 Forbidden

A 403 means access was refused.

This does not always mean a normal visitor cannot open the page.

Some websites block automated crawlers while continuing to work perfectly in a browser.

Test the URL manually before treating it as broken.

429 Too Many Requests

A 429 response usually means the server has rate-limited requests.

A crawler making many requests quickly can trigger this even though the website itself is working.

Try the link manually or reduce the crawl rate before deciding there is a problem.

5xx server errors

A 5xx response indicates a server-side problem.

The issue may be temporary, so check again before removing or replacing the link.

If the affected URL is on your own website, investigate why the server is failing.

DNS and connection failures

Sometimes a crawler cannot reach the destination at all.

This may happen because:

  • The domain expired
  • DNS is broken
  • The server is offline
  • The connection timed out

Try the URL manually and decide whether the resource is likely to return.

Soft 404s

A soft 404 happens when a page appears to be missing but returns a successful HTTP response instead of a proper 404 or 410.

For example, a website might show a “page not found” message while still returning HTTP 200.

These can be confusing for users and search engines and are worth investigating when they occur on your own site.

How to Fix a Broken Internal Link

Once you find a broken internal link, do not automatically create a redirect.

First work out what happened to the destination.

The page still exists at another URL

If the correct page exists, update the link directly.

For example:

/old-services/

might now be:

/services/

Edit the WordPress page or post containing the old link and point it directly to the correct destination.

This is better than deliberately sending visitors through an unnecessary redirect.

The page permanently moved

If you changed the URL of one of your own pages, there are normally two jobs to do:

  1. Update your internal links to point directly to the new URL.
  2. Add a 301 redirect from the old URL to the new one.

Updating the internal links keeps your site tidy.

The redirect catches visitors, bookmarks and external links that still use the old address.

The old page was replaced by another relevant page

Sometimes content is consolidated rather than simply renamed.

If an old article was absorbed into a newer, genuinely equivalent guide, update internal links to the surviving article and consider redirecting the retired URL to it.

The replacement should make sense to somebody who expected to see the old page.

There is no useful replacement

If the destination no longer exists and there is no suitable alternative, remove the link.

You may also need to rewrite the surrounding sentence so it still makes sense.

There is no benefit in sending visitors to an unrelated page simply to avoid a 404.

How to Fix Broken External Links

You cannot redirect somebody else’s website, so broken external links need a different approach.

Start by checking whether the publisher has moved the content.

If you can find the new location, update the link.

If not, consider whether you can:

  • Link to a current equivalent resource
  • Link to a more authoritative source
  • Remove the link
  • Rewrite the sentence so the external reference is no longer necessary

Do not replace a useful source with a weaker one simply because you want every sentence to contain a link.

Sometimes removing the outdated reference is the best option.

How to Fix Broken Images and File Links

Broken links are not limited to webpages.

WordPress content can also contain links to:

  • Images
  • PDFs
  • Documents
  • Download files
  • Audio
  • Video
  • Other media

If an image or downloadable file is missing, check whether it was:

  • Renamed
  • Moved
  • Deleted
  • Replaced with a new version

If the asset still exists elsewhere, update the reference.

If it was removed accidentally, restore it if appropriate.

If the content no longer needs it, remove the broken reference rather than leaving visitors with a failed download or missing image.

When Should You Use a 301 Redirect?

A 301 redirect tells browsers and search engines that a URL has permanently moved.

It is useful when:

  • You change a page URL
  • You consolidate two pieces of content
  • An old product or service has a genuinely relevant successor
  • A migration changes URL structure
  • An old address still receives useful links or visits and there is a suitable replacement

A 301 redirect should lead to the closest relevant destination.

Do not redirect every missing page to your homepage.

That can confuse visitors because they expected one piece of content and were sent somewhere unrelated.

If no equivalent page exists, a genuine 404 or 410 may be the correct response.

Update Internal Links Even When a Redirect Exists

Redirects are useful safety nets, but your own internal links should normally point directly to the final destination.

Suppose you have:

/old-page/ → /new-page/

If your navigation and articles still link to /old-page/, visitors are taking an unnecessary extra step.

Update those links to /new-page/.

This makes the site’s structure clearer and reduces reliance on redirects.

Avoid Redirect Chains

Redirects can also accumulate over time.

For example:

/page-one/ → /page-two/ → /page-three/

This is known as a redirect chain.

Where practical, update the first redirect so it points directly to the final URL:

/page-one/ → /page-three/

You should also update internal links to use /page-three/ directly.

Long redirect chains create unnecessary requests and make site maintenance harder.

Recheck the Website After Fixing Broken Links

Once you have made repairs, crawl the website again.

Check that:

  • Previously broken internal links now reach the correct page
  • Removed links are no longer present
  • Redirects reach the intended destination
  • No unnecessary redirect chains were created
  • Images and downloads work
  • Important pages still function normally

A second crawl is useful because one fix can occasionally expose another issue.

For example, replacing an old URL with another outdated URL has not solved the problem.

Keep Broken Links Under Control

You do not need to crawl your WordPress site every day.

The right frequency depends on how often the website changes.

Sites that publish frequently, remove products or regularly update content may need checks more often than small brochure websites that rarely change.

Broken-link checks also make sense after:

  • A website migration
  • URL structure changes
  • A redesign
  • Major content cleanup
  • Removing large numbers of products or pages

Link checking should form part of wider site maintenance rather than being treated as a one-off emergency.

Our WordPress maintenance checklist covers the other routine tasks that help keep a site healthy.

A Practical Broken-Link Checklist

When checking your WordPress website:

  • Crawl the site rather than relying only on manual checking
  • Review internal and external links
  • Find the page containing each broken link
  • Verify suspicious crawler results manually
  • Update internal links directly when the correct page exists
  • Use a 301 redirect when your own URL has genuinely moved
  • Do not redirect unrelated missing pages to the homepage
  • Remove external links that no longer add value
  • Check images, downloads and other media
  • Avoid unnecessary redirect chains
  • Crawl the site again after making changes
  • Include link checking in ongoing WordPress maintenance

Fix Broken Links at the Source

Finding broken links is only the first step.

The important part is understanding why each link failed and choosing the correct repair.

Sometimes that means changing a URL in a WordPress post. Sometimes it means replacing an outdated external source. Sometimes a 301 redirect is appropriate. In other cases, removing the link and allowing an old URL to return a genuine 404 is the cleaner solution.

Avoid using redirects to hide every missing page or installing multiple plugins simply because a crawler reports errors.

Keep the process simple: find the bad link, verify the problem, fix the source where possible, then test again.

If your WordPress site has a large number of broken links, redirects or technical errors and you would rather have them investigated for you, our one-off WordPress support service can help.

About the author

Steven Watts

Steven is the founder of Newt Labs and a WordPress specialist with more than 15 years of experience. Since 2010, he has been helping businesses keep their WordPress websites secure, fast, reliable and well supported, with a focus on practical advice and long-term website care.

Related advice

More SEO articles

Need a clearer next step?

Get practical help with your WordPress website

You can start with one issue, a free audit, or an ongoing care plan depending on what your website needs.

WordPress support illustration.