Internal link checker

Check the internal links on a page for 404s, timeouts and empty anchor text

Enter a URL to check its links

Up to 20 internal links per page, checked for 404s, timeouts and empty anchor text.

The cheapest fix on any technical audit

Broken internal links are unusual among SEO problems: they are entirely self-inflicted, entirely within your control, and unambiguous. There is no judgement call about whether a 404 is bad.

Each one wastes crawl budget on a dead URL, discards whatever authority the linking page was passing along, and drops a reader who was following your own navigation. They accumulate quietly - a slug edited here, a page retired there - and nobody notices because nobody clicks their own footer.

Empty anchor text, the quieter problem

A link with no anchor text passes no context about its destination. Usually it is an image or icon link with no accessible label, which means a screen reader announces "link" and nothing else. That is an accessibility failure first, and a wasted relevance signal second.

What this checks, and what it does not

One page, up to twenty unique internal links, HEAD first with a GET retry for servers that reject HEAD. Deliberately capped: this endpoint is open to anyone, and each check is a request we make to a host someone else named. An uncapped crawler behind a free form is a denial-of-service tool.

When the cap truncates, the result says so. A tool that quietly checks a subset and reports "no broken links" is worse than no tool.

Whole-site link graphs

Finding orphan pages, redirect chains and the pages nothing links to needs a full crawl with permission and time. That is what DraftCamp does once a site is connected - and it is where the interesting answers are, because the worst internal-linking problems are invisible from inside any single page.

Common questions

Why only 20 links?
Because this is an open endpoint and each check is a request we make on your behalf to whatever host you name. Twenty with a short timeout is a real sample; an uncapped crawl would be a denial-of-service amplifier. When the cap truncates, the result says so rather than implying it checked everything.
Does this crawl my whole site?
No. It reads one page and checks the internal links found on it. For a whole-site link graph you need a crawler with permission and time, which is what the DraftCamp app does once you connect a site.
How bad is a broken internal link?
Worse than most people assume. A 404 wastes crawl budget, drops whatever authority that link was passing, and sends a reader to a dead end. Broken internal links are also entirely your own fault and entirely within your control, which makes them the cheapest thing on any audit to fix.
Why does empty anchor text matter?
Anchor text is how you tell search engines and readers what the destination is about. An empty anchor - a bare image link, or an icon with no label - passes no context and is invisible to a screen reader. It is an accessibility problem before it is an SEO one.
A link works in my browser but shows as broken here.
Usually one of three things: the destination blocks unknown user agents, it rejects HEAD requests in a way our GET retry cannot get past, or it is slower than the six-second timeout. Cloudflare and similar protection layers are the most common cause.