In short

  • A broken link points to an address that answers with an error (404, 410, 5xx) or does not answer at all; a missing image is a broken link too.
  • Check the finished pages, not only the post content: menus, footers, widgets and page builders hold many links.
  • Fix each link where it is written: update it, link to the final address of a redirect, or remove it.
  • Use a 301 redirect when other sites link to a page you moved; never redirect everything to the home page.

Every site collects broken links. Pages are renamed, other sites close or reorganise, images are deleted, and a link that worked when you wrote the post leads to “Page not found” two years later. Visitors hit a dead end, and search engines waste time on addresses that no longer exist. This guide explains how to find broken links in WordPress, how to fix each kind, and how to keep them from coming back.

What Counts as a Broken Link

When a browser follows a link, the server answers with a status code:

  • 404 Not Found and 410 Gone: the page is not there. These are the classic broken links.
  • 5xx server errors: the other site has a problem. Often temporary, so check again before you act.
  • No answer: the domain no longer exists, or the server does not answer in time.
  • 301 and 302 redirects: the link still works but takes a detour to a new address. Not broken, but worth updating.
  • 401, 403 and 429: the other site refused an automated check or asked it to slow down. These links usually work for people.

Images, videos and downloadable files are links too. A missing image leaves a hole in the page and is easy to miss when you only check text links.

Why Broken Links Matter

A few broken links will not ruin a site, but they cost you in small ways. A visitor who clicks a dead link leaves the path you planned for them. Internal links that point to deleted pages stop passing value to the page you meant. A resource page full of dead outbound links looks abandoned. And a shop with a broken image on a product page sells less. The good news: broken links are among the quickest problems to fix.

Option 1: Google Search Console

If your site is verified in Google Search Console, open Indexing → Pages and look for Not found (404). It lists addresses on your site that Google tried and could not find, including ones that other websites link to. Inspect an address to see where Google found it.

Search Console is free and shows what Google sees, but it only covers links to your own site, it updates with a delay, and it does not tell you which of your pages contains a dead link to another site.

Option 2: Crawl the Site From the Outside

A desktop crawler or an online link checker follows every link from your home page, like a search engine does, and lists the addresses that fail. This works for any website and sees the finished pages, menus and footers included. It does not know where a link is stored in WordPress, so you still have to find the post, menu or widget and change it by hand.

Option 3: A Broken Link Checker Plugin

Disclosure: Clearyvo Broken Link Checker is our own free plugin. The best-known plugin for this job is Broken Link Checker by WPMU DEV; our comparison of the two shows the differences.

A plugin knows where each link is written, so it can fix it there. Clearyvo Broken Link Checker opens every published page in your browser, like a visitor, so it also finds links in menus, headers, footers, widgets, shortcodes and page builders. Links to your own site are checked by your browser, links to other sites by your server, ten at a time, each address once. Results are split into Broken, Redirects and “Could not check”, so a site that refuses automated checks does not show up as broken.

  1. Install the plugin. It is not in the WordPress.org directory yet: download it from its page and upload it under Plugins → Add New Plugin → Upload Plugin.
  2. Open it and click Check links. Keep the page open while the pages are scanned; one check covers up to 10,000 links on your own site.
  3. Work through Broken: type the new address, or remove the link and keep its text. The plugin changes it in the block editor content, the classic editor, Elementor data or the custom menu link, and keeps a revision of every changed page.
  4. Open Redirects and use “Link to the final address” to skip the detours.
  5. Check the Could not check list in your browser and mark the links that work as fine.

Links that your theme prints, for example in a footer built into the theme, are reported with the page they are on; change them in the theme’s settings. Want an e-mail when new broken links appear? Clearyvo Pro, the paid all-in-one plugin of the family, sends a weekly e-mail of new broken links from these checks; after buying it, see Install your Pro plugin.

How to Fix Each Kind of Broken Link

A link to a page you moved or renamed

Change the link to the new address. If other websites or old newsletters link to the old address, also add a 301 redirect from the old address to the new one, so those visitors arrive too.

A link to another site that has gone

Look for the page’s new address on that site, or for an equally good source. If neither exists, remove the link and keep the text, or link to an archived copy if the page is worth citing.

A missing image or file

Upload the file again and update the link, or remove the image from the page. If you recently cleaned up the uploads folder, restore the file from your backup or quarantine.

A link that redirects

Replace it with the address the redirect ends at. This is especially worth doing for internal links after a change of permalinks.

A link in a menu or widget

Change it in Appearance → Menus, the Site Editor’s navigation, or the widget settings.

When to Use Redirects

Redirects are for addresses that people or search engines still request: a page you moved, a product you replaced, a post you merged into another. Use a 301 redirect for a permanent move and a 410 for content that is gone for good. Do not send every missing address to your home page: search engines treat that like a “not found” page anyway, and visitors land somewhere they did not expect. Clearyvo SEO includes a redirect manager and a 404 log; many hosts and other SEO plugins offer redirects as well.

Keep Broken Links From Coming Back

  • Check once a month, and after every migration, redesign or bulk delete.
  • When you change the permalink structure, test that old addresses still lead somewhere; our Permalink Checker finds the causes of sudden 404 errors.
  • Before you delete or rename a page, search for links to it and update them.
  • Prefer linking to stable pages on other sites (the main article, not a temporary campaign page).

Frequently Asked Questions

How often should I check a WordPress site for broken links?

Once a month suits most sites, and always after a migration, a redesign, a change of permalinks or a bulk delete of posts. Sites that link to many outside sources, such as resource lists and news sites, benefit from a more frequent check.

Do broken links hurt SEO?

A few broken links will not sink a site, but they waste visitors’ time and the links search engines follow. Broken internal links also stop link value from reaching the page you meant, and a page full of dead outbound links looks unmaintained. Fixing them is quick and helps visitors first.

Why does a link checker say 403 or 429 for a link that works in my browser?

Some sites refuse automated requests (403 Forbidden) or ask the checker to slow down (429 Too Many Requests). The link usually works for people. Open it once in your browser; if it works, mark it as fine instead of removing it.

Should I replace links that redirect?

Yes, when you can. A link that goes through a redirect still works, but every hop adds a little time, and redirect chains break more easily later. Writing the final address into the page removes the detour.

Why do all my pages return 404 after changing permalinks?

The rewrite rules WordPress saved no longer match. Open Settings → Permalinks and press Save Changes without changing anything; WordPress rebuilds the rules. If that does not help, the server’s rewrite setup (.htaccess or nginx) is the next place to look; Permalink Checker tests both.