Pages link to #fragment targets that do not exist on the destination page, breaking table-of-contents and deep-link navigation.
By Seoxpert Editorial · Published · Updated
A fragment link like #pricing tells the browser to scroll to the element with id="pricing". If that element is missing, the page loads but the scroll never happens — the user lands at the top with no indication anything went wrong. This quietly erodes navigation confidence and is a common signal of stale content.
Direct: broken anchors defeat table-of-contents, sticky-nav jumps, and deep-links from external sites. Indirect: they signal that the content and the linking structure have drifted out of sync, which is a low-but-real quality signal.
For each crawled page the scanner records every id attribute on the page. It then walks every in-page fragment link (href="#something" or href="/other-page#something") and flags targets that do not resolve to any recorded id.
Broken anchor (link href does not match any id)
<!-- Link in table of contents -->
<a href="#pricing">Pricing</a>
<!-- Target section, renamed without updating link -->
<h2 id="pricing-and-packages">Pricing</h2> <!-- href="#pricing" now fails -->Correct: stable id that matches the link
<a href="#pricing">Pricing</a>
<h2 id="pricing">Pricing</h2>
<!-- id is stable even when heading text is edited; treat it like a URL -->Directly, very little. Broken anchors are primarily a user-experience issue. But they correlate with low-maintenance content, and Google's quality systems are designed to detect signals of neglect.
Stick to lowercase letters, digits, and hyphens. Spaces must be percent-encoded in URLs, and many browsers will not match ids containing slashes or other reserved characters.
Run a scan to see if Broken In-Page Anchor Targets affects your pages.
Scan my website →