Tools › Link Checker
Link Checker: find the dead links before a customer does
Links rot quietly. A supplier changes their site, a page gets renamed, a service is retired, and a link that worked when you published it now sends people to a dead end. Nobody tells you, because the person who hits it simply leaves.
Paste one page here and every link on it, up to 200, gets checked live in parallel, with results appearing as they resolve. Within about 30 seconds you will have a copyable list of genuine 404s with the anchor text beside each one, so you can find them in your content, plus redirect chains worth shortening and the links that merely refuse automated checkers.
What the result means
“Broken” internal links. Something on your own site moved without the links following. Fix the link at the source, or redirect the old address permanently if the page genuinely moved. A cluster of these usually means a URL structure changed. Monthly checks on the pages that matter are part of hosting and care.
“Broken” outbound links. The page you were citing is gone. Replace it with a current source or remove the reference. A page full of dead citations reads as unmaintained to a reader and to a search engine assessing whether your content is trustworthy.
“Redirected” with a long chain. Not broken, but every hop adds delay and loses a little of the ranking value passing through. Redirect Tracer shows the exact path so you can point the link at the final address.
“Blocked.” The link works for a person and refused our checker. Some large sites return unusual status codes to anything automated. We label these honestly instead of calling them broken, because a false alarm is the worst thing a link checker can do. No action needed.
A clean page. Then the next question is whether that page can be found at all. SEO Analyzer audits the same URL for indexability, structure and content.
The real cost of a broken link
Search engines treat broken links as a quality signal, and not a good one. Every 404 a crawler hits on your site burns a little of your crawl budget (the finite attention Google gives your domain on each visit) on a dead end instead of a page that matters. Internal links that 404 also break the flow of “link equity,” the ranking value that flows through your site’s internal linking structure; a broken link to your best landing page means that page gets a little less credit than it should. Outbound links are just as important: linking out to a resource that’s since disappeared makes an otherwise well-researched page look stale and unmaintained, both to readers and to anyone evaluating your site’s trustworthiness (E-E-A-T, in Google’s language). None of this is catastrophic on its own (one dead link won’t tank a page) but broken links accumulate. A site that’s been publishing for a few years without ever auditing its links usually has more of them than its owner expects.
How the parallel checker actually works
Checking a page’s links quickly is harder than it sounds. A page can carry anywhere from a handful of
links to several hundred, and checking them one at a time (waiting for each request to time out or
respond before starting the next) would take minutes for a link-heavy page and give you zero
feedback while you wait. So Link Checker splits the job in two. First, it fetches your page once and
extracts every link: it resolves relative URLs to absolute ones, classifies each as internal or
external, captures the anchor text so you know where each link lives in your content, and dedupes
repeats (a link to your homepage in the header and the footer counts once, with an occurrence count).
Anything that isn’t actually checkable (mailto:, tel:, javascript:, bare # anchors) gets
filtered into a separate skipped list with an honest reason, rather than silently vanishing from the
count.
Then the checking itself happens in small, parallel batches: ten links per request, two requests
running at once, so twenty links are being verified simultaneously at any moment. Each link gets a
lightweight HEAD request first (we don’t need the page body, just the status code), with a strict
timeout so one slow server can’t stall the whole scan; if a site refuses HEAD requests outright
(some do, returning 403 or 405), we retry that one link as a minimal GET. The live counter and
segmented progress bar fill in as each batch resolves: green for OK, amber for redirected, red for
broken, so you can watch the picture assemble in real time instead of waiting for a single verdict
at the end. A “Stop” button lets you bail out early on a huge page without losing the results you’ve
already got.
One deliberate design choice: some sites detect automated link checkers and block them with unusual
status codes: LinkedIn is the classic example, returning 999 to bots instead of a normal response,
and Cloudflare-protected sites sometimes return a challenge page as a 403. A naive checker reports
these as broken links, which is exactly wrong: the link works fine for an actual visitor, it’s the
checker that got turned away. Link Checker recognises these patterns and labels them “blocked” with
an honest explanation, never lumping them in with genuinely dead links. False positives are the
fastest way to make people stop trusting a link checker’s output, so we’d rather under-claim than
over-claim.
Fixing what you find
Once the scan finishes, the “Broken links” shortlist is the one to act on first: it’s every link that returned a real error (404, 410, 500 and friends), with a copy button so you can drop the whole list into a spreadsheet or a ticket. For each one, you generally have three options: redirect it if the destination moved (a 301 to the new location preserves most of the link’s value and fixes the user experience instantly), remove or replace it if the content is genuinely gone and nothing replaces it (better to drop a dead reference than leave a dead end), or fix the source if the link was simply typed wrong to begin with, surprisingly common, especially for internal links. Redirected links that show a long chain (multiple hops before landing) are worth a second look even though they’re not broken: each hop adds latency and a small amount of link-equity loss, and our Redirect Tracer will show you the exact hop-by-hop path if you want to collapse a chain down to a single direct redirect. Broken internal links are worth double-checking against your 404 page, too: if you’re seeing a cluster of them, it’s often a sign a URL structure changed somewhere without updating the links that point at it.
This tool intentionally scopes to a single page, checked thoroughly, rather than promising a full-site crawl: that keeps it fast, keeps it free, and keeps it honest about what it’s actually doing. For the pages that matter most (your homepage, top landing pages, your most-linked blog posts), running this on demand whenever you publish or update content is a fast, cheap habit that catches rot long before it piles up.
For AI agents
This tool exposes a plain-text endpoint designed for language models and agents:
GET https://nitrosites.com/tools/link-checker/scan.php?action=extract&url=<target>&format=agent
It returns a token-cheap digest of the page’s link inventory: every checkable link with its type
(internal/external) and anchor text, plus the skipped list with reasons. Note that this covers the
extract step only: the live liveness checks (status codes, redirects, broken/blocked verdicts) are
interactive-only in v1 and require the batch-checking UI on this page, there’s no single-request
digest for them yet, since checking is itself a multi-request, client-orchestrated process. Soft rate
limits apply; extraction results are cached briefly. No key or login required.
Frequently asked questions
Does this check my whole website?
No, one page, deeply. Run it on the pages that earn you money: home, your main service pages and your most read posts. Whole site crawling is a scheduled job, not something you do while you have a question.
How often should I be doing this?
Whenever you publish or substantially edit a page, and on your top handful of pages every few months. It takes under a minute, which is the only reason anyone actually keeps doing it.
Do broken links really affect my ranking?
Not dramatically on their own. They waste the attention a search engine gives your site, they stop value flowing to the pages you care about, and in volume they signal neglect. It is a cheap fix, not a silver bullet.
Why does a link show as "blocked" instead of broken?
Some sites (LinkedIn is famous for it) refuse automated checkers with special status codes even though the link works in a browser. We label those honestly instead of calling them broken: false alarms are the worst thing a link checker can do.
What's wrong with target="_blank" without noopener?
The opened page gets a window.opener reference back to yours (a phishing vector called tabnabbing) and it can hurt performance. Add rel="noopener" (modern browsers now imply it, but explicit is safer for older ones).
How many links can it check?
Up to 200 per page, checked in parallel batches of twenty. Anything beyond that is listed as skipped so the count always adds up.