link_off Technical SEO

Broken Link Checker

Spot dead internal and external links on a page.

Check a sample of the internal and external links on a page and see which return errors. Fast single-page check that finds 404s, server errors, and unreachable hosts.

build_circle Try the free tool
star

Key takeaways

  • check_circle A broken link is a dead end for visitors and a wasted request for crawlers, and internal ones are fully within your control.
  • check_circle This tool samples up to eight unique links, so it is a fast spot check and not a full-site crawl.
  • check_circle A 404 or 410 means the page is gone, while 401, 403, 405, 429, and 999 often mean a host blocks bots and needs a manual check.
  • check_circle Update internal links to the final URL instead of relying on redirects to carry visitors.
  • check_circle Redirect a removed page to the closest relevant replacement, never blanket-redirect everything to the homepage.
  • check_circle Links inserted by JavaScript and page-relative hrefs without a leading slash are not seen by this checker.
  • check_circle Rerun the check on key pages after migrations, redesigns, and content clean-ups, since links decay over time.
link_off

What is Broken Link Checker?

A broken link checker tests whether the links on a web page still lead somewhere useful. It requests each destination and reads the HTTP status code that comes back. A 200 means the page loaded, a 3xx means the visitor was sent elsewhere, a 404 or 410 means the page is gone, and a 5xx means the server failed. Links to domains that no longer respond at all are the third kind of failure.

The HeyLead Broken Link Checker is a fast single-page check. It reads the served HTML of the URL you enter, gathers the unique links, and tests a sample of up to eight, mixing internal links on your own host with external links to other sites. Each is requested with a HEAD call, redirects are followed, and the result is grouped into working, broken, and could not verify. You see the total found, how many were checked, and a line per link.

Because it is a sample, use it the way you would use a smoke test. It is well suited to a page you are about to publish, a landing page after a migration, or an old resource page. It does not replace a scheduled full crawl, and it cannot see links added by JavaScript or image and script files. A useful routine is to run it on new pages before launch, on top landing pages each month, and on any page touched by a redesign, then hand the flagged links to whoever owns the content so each one gets fixed or removed.

insights

Why broken links matter

Every link on a page is a promise that the destination is there. When it is not, visitors lose trust, and crawlers spend requests on error pages instead of your content. Because the fix is usually small, clearing dead links is one of the safest improvements available.

arrow_forward Visitors who hit an error page often leave instead of continuing their journey.
arrow_forward Broken internal links can leave important pages harder for search engines to discover.
arrow_forward Dead external references make a page look neglected and weaken its credibility.
arrow_forward Regular checks after migrations catch problems while the cause is still easy to trace.
play_circle

How to use this tool

  1. 1

    Enter a page URL

    Use a page with many outbound or internal links.

  2. 2

    We test a sample

    Up to eight unique links are checked, mixing internal and external.

  3. 3

    Fix or remove

    Update dead links to a live page, or remove them.

fact_check

What this tool checks

verified

Unique links found

Counts the distinct links in the page's served HTML after removing fragments, duplicates, and the page's own URL, so you know how large the pool is before the sample is drawn.

verified

Internal and external split

Classifies each link as internal when the host matches the page host with or without www, otherwise external, then samples up to four of each so both kinds of risk get tested.

verified

HTTP status of sampled links

Sends a HEAD request to each sampled link, retries with GET on 405 or 501, follows redirects, and treats final 2xx and 3xx answers as working. Codes such as 404, 410, and 500 are reported as broken.

verified

Unreachable hosts

Links that fail with no HTTP answer at all, for example a dead domain, a refused connection, or a four second timeout, are listed as UNREACHABLE and counted as broken.

verified

Unverifiable responses

Codes 401, 403, 405, 429, 501, and 999 usually mean a host blocks automated checks, so those links are labeled could not verify rather than broken. More than one triggers a warning.

verified

Sample coverage

Reports how many links were checked out of how many unique links exist, so you can see the sample is partial and decide whether a full crawler is needed.

engineering

Technical guide

Signals, standards, and what to fix when checks fail.

code

How the link sample is built

The tool reads the page's served HTML and collects up to 800 anchor tags. It keeps absolute http and https links, root-relative links such as /pricing/, and protocol-relative links. It skips mailto, tel, javascript, and in-page anchors, strips fragments, and de-duplicates by a normalized form that ignores the scheme, www, and trailing slashes. Four internal and four external links are chosen first, and any spare slots are filled from whichever group has more. Working from HTML alone keeps the check fast enough to run on demand. Fragments and duplicates never waste a slot.
code

HEAD requests, redirects, and timeouts

Each sampled link receives a HEAD request with a four second timeout and redirects followed. If the host answers 405 or 501, the checker retries with GET. Other codes such as 403 stay unverified, because a firewall may still allow a browser. A 3xx that resolves to a live page counts as working here, so redirect chains and slow hops still deserve a separate check. If a link matters to you, load it in a browser as well.
code

What counts as broken

Anything outside 200 to 399 that is not on the unverified list is broken. That includes 404 Not Found, 410 Gone, 500 and 503 server errors, and hosts that never answer. A 404 means the server is fine but the page is gone; a 410 says it was removed on purpose. A 5xx can be temporary, so retest before deleting a link. Unreachable domains, often expired or renamed sites, are the most common external failure. Each broken link appears in the results with its status code, so you can sort the fixes by type.
code

Limits of a single-page sample

The checker inspects only the served HTML, so links injected by JavaScript are invisible to it. Page-relative hrefs such as about/ are resolved against the page URL. www and the apex host count as the same site. Images, scripts, and stylesheets are not tested. Results are cached for ten minutes per URL. Treat a clean result as a good sign for the sample, not proof for the whole site. Use a scheduled crawler for complete coverage of images, scripts, and every page.
school

Deep dive

link_off

How links break in the first place

Links rarely break on the day they are published. They decay. External sites restructure, expire domains, or delete articles. Internal links break when an editor changes a slug, deletes a page without a redirect, or a migration alters the URL pattern. Templates can multiply the problem, since one bad menu or footer link appears on every page. Typos are another common cause, especially in hand-typed URLs, and mixed protocol or host versions can send visitors through unnecessary redirects. Knowing the cause tells you the right fix. A removed page needs a redirect or a replacement, a changed slug needs its inbound links updated, and a dead external site needs a new source. Treat the checker as a diagnostic: the status code and label beside each link point to the category of problem, and the category dictates the response you should apply.

Content changes

Editors rename slugs, merge articles, or delete posts, and internal links that pointed at the old URL keep pointing there. Always search for inbound links before removing or renaming a page.

Migrations and redesigns

Platform moves, folder changes, and HTTPS or domain switches rewrite URLs in bulk. Map old URLs to new ones with 301 redirects, then update internal links to the final addresses.

Third-party decay

External sites close, reorganize, or paywall pages. Resource lists and old blog posts accumulate these failures quietly, so review them on a schedule rather than only after complaints.

rule

Reading the status codes correctly

The checker reports what each link answers, and reading those answers well saves time. A 200 to 399 result counts as working, though a redirect still deserves a look if it is one of your own internal links. A 404 or 410 is a confirmed dead page. A 5xx suggests a server problem that may be temporary, so retest before removing the link. A timeout or refused connection means the host may be gone or slow, and this tool allows four seconds per link. The unverified group is the tricky one: 401, 403, 405, 429, 501, and 999 often come from firewalls, login walls, rate limits, or sites that reject HEAD requests. Those links can be perfectly healthy for a person, so open them in a browser before changing anything.

Working and redirected

A final 2xx or 3xx counts as alive. If an internal link redirects, edit it to the final destination so pages load faster and reporting stays clean.

Confirmed broken

404, 410, other error codes, and unreachable hosts are treated as broken. Replace with a live equivalent, redirect the old URL, or remove the link entirely. Fix the ones on busy pages first.

Could not verify

Blocked or rate-limited responses are not proof of failure. Check in a browser, and consider whether the host simply refuses automated traffic such as social platforms and some large publishers.

build

Fixing broken links without creating new problems

The best fix depends on the type of link. For an internal link to a page that still exists at a new URL, update the link to the new address and keep a 301 redirect from the old one for outside visitors. If the page was removed and a close replacement exists, redirect to it. If there is no equivalent, let the old URL return a real 404 or 410 and remove your internal links to it. For an external dead link, find the current version of the source, cite a comparable authority, or rewrite the sentence so it no longer depends on the reference. Avoid mass redirects to the homepage, which hide the problem instead of solving it. After fixing, rerun the checker to confirm the status has changed, and note the fix so the same pattern is not repeated in the next template.

Update the source link

Editing the link itself is the cleanest repair because it removes the failure and any redirect hop. Do this for every internal link you control.

Redirect the retired URL

Use a one-to-one 301 redirect to the closest relevant page so inbound links and bookmarks keep working. Avoid pointing unrelated pages at the homepage. This preserves the value of old links.

Replace or remove references

For dead external sources, cite a current equivalent or remove the claim's dependency. Uncited statements are better than links that lead nowhere.

public

Building a link maintenance habit across regions

Link health is a routine, not a one-off project. Set a review rhythm that matches how often each page type changes. Newsletters and blog posts need a check before publishing, evergreen guides deserve a quarterly look, and resource pages with many external references decay fastest. If you run regional sites for the US, UK, Australia, and Singapore, check each version separately, because local variants often link to region-specific pages, local directories, regulators, and partners that change independently. A US page may link to a state agency, while its en-GB version links to a UK government service and its en-AU version to an Australian one. Confirm that country switchers and hreflang alternates point at live pages. Combine quick single-page checks like this one with a scheduled full crawl, and keep a short log of what was fixed and why.

Match cadence to page type

Check new content before publishing, evergreen pages on a quarterly rhythm, and heavily referenced resource pages more often, since external links there fail sooner. Track the dates. Assign an owner per page group.

Check each regional version

Local pages link to local authorities, directories, and partners. Test the en-GB, en-AU, and en-SG variants separately from the US original. Do not assume one check covers all versions.

Pair spot checks with crawls

Use this tool for fast confirmation on key pages, and a scheduled crawler for site-wide coverage, image and script files, and redirect chain reporting. Together they cover both speed and depth.

compare

Examples

thumb_up Strong examples

Updated internal link

<a href="/services/seo/">SEO services</a>

Points straight at the final, canonical URL with a trailing slash, so there is no redirect hop and no risk of the link breaking when the old path is retired.

Replaced dead source

<a href="https://www.w3.org/TR/wcag22/">WCAG 2.2</a>

Swaps an expired third-party article for the authoritative, maintained standard, which keeps the supporting claim intact and the link likely to last.

Redirect with a relevant target

301 /old-pricing/ to /pricing/

The removed page maps to its closest live equivalent, so old links, bookmarks, and search results still land on something useful.

thumb_down Weak examples

Link to a removed page

<a href="/blog/2019-seo-tips/">SEO tips</a>

The target now returns 404. Visitors reach an error page and crawlers waste a request. Update it to a current article or remove the link.

Blanket homepage redirect

301 /old-service-page/ to /

Sending unrelated URLs to the homepage is often treated as a soft 404 and frustrates people expecting the original topic. Redirect to the closest relevant page instead.

Expired external domain

<a href="http://old-agency-blog.example/report">industry report</a>

The domain no longer answers, so the link shows as UNREACHABLE. Replace it with a live source or delete the reference.

rule

Best practices and common mistakes

check_circle Best practices

  • done Link internally to the final canonical URL so visitors and crawlers never pass through a redirect.
  • done Run the check on your highest-traffic and highest-revenue pages first, since a dead link there costs the most.
  • done Replace a dead external source with a current equivalent rather than deleting the sentence it supported.
  • done Recheck key pages after every migration, redesign, or URL structure change, and again after big content clean-ups.
  • done Open every link flagged as could not verify in a real browser before deciding it is fine or dead.
  • done Serve a helpful custom 404 page with search and navigation, and keep genuinely missing URLs returning a real 404 status.

cancel Common mistakes

  • close Redirecting every dead URL to the homepage, which search engines often treat as a soft 404 and which confuses visitors.
  • close Assuming one clean run means the whole site is clean, when only up to eight links were tested.
  • close Deleting links flagged as unverified without opening them, since many are blocked bot requests rather than dead pages.
  • close Leaving broken links on high-traffic pages because they look minor in a report.
  • close Fixing a broken link by pointing it at an unrelated page just to clear the error.
lightbulb

Common use cases

task_alt

Spot-checking a blog post or landing page just before publishing.

task_alt

Verifying key landing pages right after a CMS migration or URL restructure.

task_alt

Reviewing an old resource page whose external references may have expired.

task_alt

Confirming a fix after a developer says a batch of dead links was repaired.

task_alt

Sampling a competitor or partner page to see how well it is maintained.

groups

Who should use this

person Content editors publishing pages with many references. person SEO managers running quick health checks between full crawls. person Site owners without a paid crawling tool. person Developers verifying template links after a release. person Agencies giving clients a fast, shareable proof point.
dictionary

Glossary

404 Not Found
An HTTP status meaning the server is working but cannot find the requested page. It is the classic signature of a broken link.
410 Gone
An HTTP status meaning a page was removed on purpose and is not coming back. It is treated as a broken destination.
HEAD request
An HTTP request that asks for headers only, not the page body, making link testing light on the target server.
Internal link
A link from one page to another page on the same host. In this tool, www and non-www count as the same host.
External link
A link that points to a different website. Its health depends on a third party you do not control.
Soft 404
A page that shows a not-found message but returns a 200 status, or a redirect that makes a missing page look live.
Redirect chain
Several redirects in a row before the final page, which slows visitors and dilutes clarity for crawlers.
Link rot
The gradual decay of links over time as sites close, move, or restructure their URLs.
quiz

Frequently asked questions

Ready for a deeper audit?

HeyLead reviews your site, competitors, and growth opportunities with no sales pressure.

Get a Free Audit arrow_forward