Dead Link Checker: Fetch One Page, Flag Broken Hrefs
By the SEO Health Team · Last updated: 2026-08-16 · We build the SEO Health checker at aimeetup.center. Methods below come from the product’s page audits, dead-link scans, and sitemap samples — not from a claimed Google score.
Table of Contents
- TL;DR
- What a page-href check returns
- Signals you can read from one page
- How a paste-URL check should work
- Adjacent work after the href pass
- Implementation order
- Failure modes
- Frequently Asked Questions
- Conclusion
TL;DR
Direct answer: A dead link checker fetches one live address, or every href on that page, and reports the status of each destination — 4xx, 5xx, redirect hops, and ignored schemes — before you open a backlink index or a site spider.
What you'll learn
- A 46-word definition of a dead link checker you can quote
- The five signals a page-href fetch should return
- Why a 200 on the source page is not a healthy link set
- How mailto, javascript, and hash-only hrefs waste a scan
- When to stop at one page and when to open a speed or sample pass
If you already have an address, paste the URL into a free page check. Read broken hrefs first. Do not buy a backlink report to explain a 404 you shipped yourself.
What a page-href check returns
Key Definition: A dead link checker is a single-page fetch that requests one URL or every href on that page and reports HTTP status, redirect hops, and broken destinations so you can tell which links fail before you open a backlink index or a site crawl.

Quick answer: A dead link checker fetches one live address, or every href on that page, and reports the status of each destination — 4xx, 5xx, redirect hops, and ignored schemes — before you open a backlink index or a site spider. Key terms
| Term | Meaning |
|---|---|
| Href | An a[href] destination the HTML already ships. |
| Traffic light | Green / amber / red per destination instead of one vanity 100. |
| Soft 404 | A 200 that serves a not-found body at the destination. |
| Desk sample | One pasted URL, not a million-page crawl, on this page. (#564) |
People type dead link checker when they want a verdict on one address: which outbound and internal hrefs fail, which hop, and which status. That is a fetch job. It is not a backlink index and it is not a domain spider.
A useful dead link checker answers three questions. Can a client retrieve this source URL. Which hrefs does the document actually contain. What status does each destination return. If the output is only “page is 200,” you still have the original problem.
Key definition, applied
The unit of work is one page’s href list. Not a domain average. Not a backlink graph. You paste the URL, request the live HTML, extract a[href], and request each destination with a hop cap. Software can run the fetches. A person still has to decide whether to fix, drop, or replace the link. Write the findings as destination, status, light, and next edit. If you cannot name the edit, the dead link checker is not finished.
Page hrefs versus a backlink index
“Which links on this page are dead” is a different question from “who links to me.” Use this page when a nav item 404s, a citation hops to a parked host, or a PDF href 410s. Return to technical SEO tools when you need a sample/crawl/index shortlist. The free-stack frame around this href job lives in best free SEO tools. A dead link checker that sells you referring domains is doing a different job.
We run a dead link checker on URLs we paste into the web form. What follows is from page-href fetches, not from a backlink index we do not run.
Signals you can read from one page
Walk the signals in this order so destination failures surface before polish. A dead link checker that opens on keyword density and hides a 404 in the footer is entertaining you.
| Order | Signal | Pass when | Fail when |
|---|---|---|---|
| 1 | Source fetch | 200 on the URL you meant to scan | Source 4xx, 5xx, or a soft-404 body |
| 2 | Href inventory | Every a[href] listed, scheme visible | Hidden, hashed, or “helpful” collapse of http/https |
| 3 | Destination status | 200 on the URL you meant to keep | 4xx, 5xx, or a 200 that serves “not found” |
| 4 | Redirect chain | One hop to a keep URL you own or trust | Loops, mixed-host hops, or a chain you cannot explain |
| 5 | Ignored scheme | mailto, tel, javascript, # marked skip | Counted as dead, or silently dropped from the report |
Status codes on each href
Status is the first light. Mozilla’s HTTP response status codes are the primer a checker should print next to each destination: 2xx keep, 3xx hop, 4xx client miss, 5xx server miss. IANA’s HTTP status code registry is the numbered list we match against so “418” is not a mystery badge.
A 404 or 410 is a clear miss. Wikipedia’s HTTP 404 page is the everyday name for that miss. A 5xx is a fetch miss you should retry once, then date. A dead link checker that collapses every non-200 into “broken” will make you rewrite a deliberate 301.
Redirect hops and loops
RFC 9110 is why a 301 and a 302 are not the same claim: one says the resource moved, the other says try this URI for now. A checker should show the request URL and the final URL as two rows. Follow hops with a cap. Record status at each hop. A loop is a red. A single hop to the keep URL is a pass.
Redirects also change host. If the hop leaves a host you do not mean to keep, write that as amber even when the final status is 200. A dead link checker that hides the hop list will green-light a loop you cannot see.
Anchor context and dest host
The HTML 5.2 links chapter is the definition of href: a hyperlink destination, not a vibe. Print the visible anchor text next to the destination. A “Learn more” that 404s is a different ticket from a named citation that 404s. Internal versus external is a column, not a moral score. Same-host 404s are usually templates you can fix once. Cross-host 404s are citations you replace or drop.
A dead link checker should not rewrite the href. It should show what the document shipped. If the CMS injects tracking parameters, show those parameters. If you cannot reproduce the request, you cannot assign the edit.
Soft failures and ignored schemes
A destination can 200 and still be dead: a not-found template, an empty shell, or a parked “buy this domain” page. Status is green. The document is not. Flag a title or H1 that says “not found,” or a body that matches your real 404. This is still a link job. It is not a density job.
mailto:, tel:, javascript:, and bare # are not HTTP fetches. Mark them skip. Do not file them as 404s. The W3C Markup Validation Service is useful when the href itself is malformed — missing quote, unescaped space, or a scheme the HTML never meant. A dead link checker that “fixes” those strings without showing the original is inventing a page you did not ship.
After you change an href, paste the same URL into the free page check and read the destination list again against the live HTML.
How a paste-URL check should work
A finished dead link checker is a punch list for one page, not a screenshot of a 200. Sort by light. Fix reds before ambers. Leave greens alone.
What you paste
Paste the exact page whose hrefs you will fix: scheme, host, path, and query if the query is part of the document. Do not paste a homepage and hope the checker invents the article's href list. Do not strip parameters if the parameters change the href list. The dead link checker should not “helpfully” collapse http and https into one row without showing the hop.
If you are choosing a stack — free page check versus a paid crawl seat — that is a best free SEO tools question. The fetch rules should stay the same. Only the place you paste should change.
What the checker requests
Request the source URL. Follow redirects with a hop cap. Parse a[href]. Request each destination with the same hop cap. Record status, final URL, and whether the scheme was skippable. Compare the destination body against a thin / not-found heuristic when status is 200. That is the whole fetch. A dead link checker that also dumps a keyword cloud is mixing jobs.
We do not claim a Google link graph. We report what the document declared and what each destination returned. If Search Console later shows a different crawl error, believe Search Console for “did Google fetch it” and believe a dead link checker for “what did we ship.”
What you do with the lights
| Light | Meaning | Typical action |
|---|---|---|
| Green | Destination passed | Do not reopen the file for this href |
| Amber | Weak or borderline | Fix after the reds — long chain, odd host hop |
| Red | Missing or broken | Fix or drop before you edit copy |
Treat any single number as a qualitative estimate. If the report cannot name the destination, you are buying a vibe. A dead link checker that files a PDF and never changes the href is theatre.
Adjacent work after the href pass
The five signals are the core. Two adjacent jobs sit next to them. They are not substitutes.
When speed is the next question
Once destinations are green, a slow LCP can still make the page feel broken. That pass is a core web vitals checker. If you only needed to know which hrefs fail, stop at the dead link checker. If you needed a page you would ship, keep going.
A footer full of 404s and a hero that shifts on load are different tickets. Do not merge them into one “tech score.”
When you need a sample, not one URL
One paste tells you about one page. If the same broken nav is likely on a template, sample from the sitemap instead of opening forty tabs. That seed is still a page-level dead link checker on each sampled URL. It does not become a million-page crawler because you are bored. For the sample/crawl/index shortlist, stay on technical SEO tools.
Run the free page check on the URL you will fix today. Then open a vitals or sample pass only after this page's hrefs are clean.
Implementation order
Use this sequence on every address so a dead link checker stays a page-href fetch.
- Paste the exact URL. Confirm scheme and host.
- Confirm the source fetches. Stop if the source itself is a 404.
- Extract every
a[href]. Mark skippable schemes. - Request each destination. Record status and hops.
- Flag soft-404 bodies on a 200.
- Assign every red. Edit. Re-paste. Compare the same destination list.
If step 6 does not change the live hrefs, you filed a link report, not a check. A dead link checker that skips the href inventory will miss footer links the hero never shows. Keep the punch list next to the tab. Close the tab only when the reds are gone or dated.
Failure modes
These are link failures, not scoring-theater failures.
- Counting skippable schemes as dead.
mailto:and#topare not HTTP 404s. A dead link checker that inflates the red count with them trains the team to ignore the report. Mark skip. Show the scheme. - Treating a 301 as a miss. One hop to the keep URL is a pass. A loop, a hop to a host you do not own, or a chain you cannot explain is the miss. Print the hop list.
- Scanning referring domains instead of this page. A backlink index answers “who points here.” This page answers “what we pointed at.” Mixing the two is how a 404 in your own nav survives another quarter.
None of these are “the model was unreliable.” They are href failures. Fix the href.
Frequently Asked Questions
Does a 200 on the source page mean the links are fine?
Bottom line: dead link checker: No. A 200 means the source answered. Destinations can still 404, 410, 5xx, loop, or serve a not-found body on a 200. Read the href list.
Should I treat every redirect as broken?
Bottom line: No. One deliberate hop to a keep URL is a pass. Fail loops, mixed-host hops you cannot explain, and chains that land on a soft 404. Print request URL and final URL as two rows.
What about mailto, tel, and hash-only hrefs?
Bottom line: Mark them skip. They are not HTTP fetches. Filing them as 404s inflates the red count and trains people to ignore the report. Fix malformed hrefs in the HTML instead.
Is this the same as a backlink checker?
Bottom line: No. A backlink index lists inbound URLs. A dead link checker lists destinations this page already ships. Use the inbound tool when you care who links to you. Use this page when your own hrefs fail.
Do I need a full-site crawl first?
Bottom line: Not first. Finish the page you will edit today. Then sample from the sitemap if the same template is likely elsewhere. A full crawl is a later luxury, not a prerequisite for a dead link checker.
Conclusion
A dead link checker is a fetch-and-status pass for one page’s hrefs. Read source status, the href inventory, destination codes, hops, and skippable schemes. Believe the reds. Ignore a decorative 200 on the source. Edit the href before you polish the copy. Start with a free page check. For the free-stack frame around the same href pass, stay on best free SEO tools.
About the author — SEO Health Team. Reviewer: William Zhu (GitHub). Published and updated 2026-08-16. Credentials appear only here.