Skip to content
Rankora
Free · runs in your browser

Broken Anchor Checker

Paste a page's HTML: the tool checks every in-page anchor link (#section) and flags those whose target does not exist, plus duplicated ids.

Privacy and cost

This tool runs in your browser. What you type or paste is not sent to our servers and it costs nothing to use.

How it works

  1. Paste the full HTML of the page (optionally its URL, so /page#section links are checked too).
  2. The tool lists every id and <a name> in the document, then compares each link fragment case-sensitively.
  3. Fix missing targets, case differences, empty "#" links and duplicate ids.

Example

A page with 5 anchor links (#features, #pricing, #Contact, #faq, #) and the ids features, pricing-plans and contact gives: 1 target found, 2 missing (#pricing because the id is pricing-plans, and #faq), 1 case mismatch (#Contact instead of #contact) and 1 empty "#".

What the result means

A #id link never produces a 404: when the id does not exist the browser simply stays where it is, so the bug is easy to miss. Ids are case-sensitive. A bare "#" scrolls to the top and is often a fake link for JavaScript; #top is valid even without an element. The check covers static HTML: ids added by JavaScript after load are not detected.

Common problems this tool helps with

  • A table of contents where some links go nowhere after a heading or id was renamed.
  • Editor-generated ids that no longer match hand-written links.
  • Duplicate ids, which always send the browser to the first element only.
  • href="#" links used as buttons, which hurt keyboard accessibility.

Frequently asked questions

Does a broken anchor hurt SEO?

There is no known penalty, but it is a poor experience: the reader cannot find the promised section. Google can sometimes show links to page sections, and reliable ids help.

Do I need an id or a name attribute?

An id is enough in HTML5. The tool also accepts <a name="…">, still found on many older pages.

What does #:~:text= mean?

It is a text fragment that highlights a passage. It is not an id, so the tool reports it but cannot verify it.