Broken Anchor Text Finder

Structural link faults you can detect without leaving the page — and an honest note about the ones you cannot.

This checks link structure, not whether destinations are alive. A browser cannot fetch other sites' pages to test them — cross-origin rules block it — so any client-side tool claiming to find dead external links is guessing. What this does find is links that are broken in the HTML itself, which no external checker will tell you about.

View the page source in your browser (Ctrl+U or ⌘+U) and paste the whole thing. Nothing is uploaded.

0Anchors
0Structurally broken
0Dead fragments
0No accessible text
Verdict

Problems

AnchorhrefProblem

Summary by type

    External links to check manually

      These cannot be tested from a browser. Copy them into a server-side crawler, or open the ones that matter.

      Runs in your browser. The HTML you paste is parsed in this tab with the browser's own DOMParser, which builds an inert document — scripts in your markup never run and nothing is requested from the pages it references. That means you can safely audit a staging site, a client page behind a login, or an unpublished draft.

      What the broken Anchor Text Finder does

      Most link checkers test whether destinations are alive. This one tests whether the links are properly formed in the first place — a different set of faults, and one that external crawlers routinely miss because a structurally broken link often never gets crawled at all.

      Six problems are detected. An anchor with no href is not a link: it is not focusable, cannot be activated by keyboard, and is skipped by crawlers. An empty href resolves to the current page. href="#" is a placeholder that jumps to the top of the page and almost always indicates something that should be a <button>. A javascript: pseudo-link is invisible to crawlers and fails entirely when scripts do not run. A missing protocolhref="www.example.com" — resolves as a relative path on your own site, producing a 404 that looks baffling in the logs. And a dead fragment is a #section link pointing at an ID that does not exist on the page, which does nothing at all when clicked.

      Links with no accessible text are reported separately. A link's accessible name can come from its text, an aria-label, or the alt text of an image inside it; when all three are absent, a screen reader reads the URL aloud character by character. Icon links are the usual culprit.

      What this cannot do is check whether external destinations are alive, and the page says so rather than pretending otherwise. Browsers block cross-origin requests, so a client-side tool cannot fetch another site's pages — any that claim to are either failing silently or routing your links through someone's server. The external links found are listed for you to check with a server-side crawler or by hand.

      How to use it

      1. Paste your page's HTML source.
      2. Work through the problems table — every row is a link that does not work as intended.
      3. Fix dead fragments first; they are silent failures that look fine until someone clicks.
      4. Copy the external links list into a server-side crawler if you need destination checking too.

      A worked example

      A page with four faulty links:

      MarkupProblem
      <a href="">Empty link</a>Empty href — reloads the current page
      <a href="/shop"></a>No accessible text — screen readers read the URL
      <a href="#pricing">Pricing</a>No element with id="pricing" exists
      <a href="www.partner.com">Partner</a>Missing protocol — resolves to yoursite.com/www.partner.com

      The third one is the most instructive. The link looks correct, the page loads, and clicking it simply does nothing — no error, no navigation. It usually happens when a section is renamed or removed and the menu is not updated, and it can sit on a page for years because nothing ever reports it. This is the class of fault a link checker crawling your site from outside will never find.

      Frequently asked questions

      Why can't this check whether external links are dead?

      Browsers enforce a same-origin policy: JavaScript on this page cannot fetch pages from other domains. Any browser-based tool claiming to test external links is either failing silently or sending your list to a server. For real destination checking you need a server-side crawler.

      What is a dead fragment?

      A link like #pricing pointing at an element with id=\"pricing\" that does not exist on the page. Clicking it does nothing at all — no error, no navigation — so it can go unnoticed indefinitely. It happens whenever a section is renamed or removed.

      Is href="#" actually a problem?

      It is a placeholder that scrolls to the top of the page when clicked. If the element performs an action rather than navigating, it should be a <button>, which is focusable, keyboard-activated and correctly announced by assistive technology.

      Are javascript: links bad for SEO?

      Crawlers do not follow them, so any page reachable only through one is effectively invisible. They also fail entirely when JavaScript does not run. Use a real href and attach behaviour with an event listener instead.