how do i find and fix broken links on my website

web · 2026-09-23 · 3 min

crawl the site with a free checker, fix or redirect what it finds, then update the link at its source so it does not come back. a broken link is rarely a disaster; a broken link in the main navigation is.

find them

google search console, under indexing, pages, lists the urls google tried and could not reach, including 404s. it is not complete and only covers pages google knows, but it is the closest thing to an official source.

for everything else, a crawler: screaming frog has a free tier up to 500 urls, which covers most small business sites. there are also online checkers for a single page, and the w3c link checker. if you run wordpress, broken link checker is a plugin that scans in the background — convenient, and it does add load to the admin.

check the links people actually use: navigation, footer, buttons, the links in your most visited posts. a dead link in a paragraph nobody reads matters less than one in the menu.

fix or redirect

if the target moved and you know where, set a 301 redirect from the old url to the new one. in wordpress that is usually a redirect plugin; on a static host, a line in the config file.

if the target is gone for good, remove the link or replace it with something useful. and do not redirect everything to the home page: someone who clicked "prices" and landed there has been told, politely, that you do not care.

for an external link that died, check the wayback machine before deleting it. the page may exist under a new url, and the sentence around it probably still makes sense.

stop them coming back

the usual cause is a slug change. every time you rename a page, the old url becomes a 404 unless a redirect is added in the same operation. make it one action, not two.

use relative links for internal pages, so a domain change does not break the whole site at once. and after a migration, crawl again: the redirects you wrote by hand are exactly the ones with a typo in them.

what counts as a broken link

a broken link is a link that points to an address which no longer returns a page: a 404, a 410, a server error, a timeout, or a chain of redirects that ends nowhere. from the outside it looks like any other link. the failure happens after the click.

why it matters, in order of size: the person who clicked. then the crawler, which follows internal links and spends its time in dead ends instead of pages you want found. then the pattern: one dead link in an old post is housekeeping, a dead link in the menu is a door that does not open.

404 and 410. 404 means not found, and can be temporary. 410 means gone and not coming back, and search engines can drop it sooner. for the visitor nothing changes; the 410 saves a little crawling. many sites return a soft 404 instead: a 200 status with a page saying "not found", which confuses crawlers more than a plain 404.

the three kinds you actually find. internal links, usually from a changed slug or a page deleted in a redesign, and the ones that matter most. external links, which rot when the other site reorganises and which you cannot control, only replace. images, which fail silently: no error page, just the alt text or an empty box, and a page that looks broken without telling anyone.

a link to an email address or a phone number breaks too, and nobody reports it.

faq

do broken links hurt seo?

a few 404s are normal and google handles them. what hurts is a pattern: hundreds of dead internal links, or a navigation that sends people nowhere. fix the ones users touch first.

what is the difference between 404 and 410?

both mean the page is not there. 410 says it is gone on purpose and may be removed from the index faster. in practice, for a small site, a 404 with a useful page is enough.

how often should i check?

after every structural change, and otherwise every few months. a quarterly crawl takes minutes and catches the link that broke when a partner redesigned their site.

what is a broken link?

a link that points to an address which no longer returns a page: a 404, a 410, a server error or a redirect that ends nowhere. it looks normal until someone clicks it. the ones worth fixing first are in the menu, in the footer and in the images, because nobody reports them.