A link points to a place missing from the page's HTML
In the reportInternal link fragments absent from captured target HTML
internal_link_broken_fragment · Review item
This appears when a link on your site points to a place on a page, such as /menu/#cakes, but that target page's captured HTML has no matching id or <a name>. The audit does not test whether a browser opens or scrolls to the page. Fix the link or give the target the missing anchor.
Severity: Notice. It is a notice: the captured target lacks the named anchor; browser navigation and scrolling were not tested.
Why it matters
The HTML standard defines how a browser finds the place a fragment names: an element whose id matches it, or an <a> element with that name. Google's JavaScript basics add that what a page shows after scripts run can differ from its first HTML, so an anchor may also come from a script.
What to do
- Look at the finding: it shows the target page, the fragment, up to ten pages that link to it and the first anchors the target has.
- If the section was renamed, update the links to its current
id. - If the section should have that name, add
id="…"to its heading or element.
When to leave it as it is: if a script on the target page creates the anchor, for example a table of contents, you can leave it once you have checked the link lands in the browser; the check reads the HTML before scripts run.
What we read
We read the <a href> and <area href> links in the HTML of each crawled page, without running JavaScript, resolve them against a <base href> if there is one, and keep the links to your own host, with or without www.; other hosts and subdomains are left out. This rule makes no extra request for a linked URL; it uses the target page only if the audit already captured it. We keep the links that carry a fragment after #.
For each fragment we look at the same audit's copy of the target page and list every id and every <a name> in its HTML. When the link's address redirected, the page it reached is used; if the audit holds more than one copy of the target, for example the address and another one redirecting to it, their anchors must agree, otherwise the link is marked as not checked. A link from a page to a place on the same page counts too. The link is reported when the fragment, as written or decoded, matches none of them, in the same letter case. #top, empty fragments, routes such as #/cart or #!/cart, and text fragments are not judged, and targets the audit did not read in full are marked as not checked.
Only pages that answered 200 with complete HTML are read. A page we cannot read reliably without a browser, for example one with unsupported SVG markup or a <select> menu, and a page with a link we cannot resolve, such as one with a space in it, are marked as not checked for all the address checks.
Example & evidence
Illustrative example — one link and the page it points to, not a live audit.
https://bakery.example/ contains:
<a href="/menu/#birthday-cakes">Birthday cakes</a>and https://bakery.example/menu/ has:
<h2 id="celebration-cakes">Celebration cakes</h2>No element on the menu page has id="birthday-cakes", so the link is reported with the target and the page that links to it.
A possible correction: link to /menu/#celebration-cakes, or rename the heading's id back.
Confirm & check again
Check for yourself: open the target page, view its source and search for id=" followed by the fragment; or click the link and see whether the page scrolls to the section.
Check again: Full audit — run a new audit of the site. The finding closes when every page that had the link is crawled again, read in full, and either no longer links to that fragment, or the target now has the id or <a name>. If a link to that fragment remains, an unavailable or incomplete target prevents confirming the fix. An unread prior referring page also prevents confirmation.
Limits & sources
The check reads the server's HTML before scripts run, so anchors that JavaScript adds are not seen and can cause a finding. It does not scroll or render the page, and only targets read in full in the same audit are judged.
Confidence: Medium because anchors added by scripts are not seen.
Sources
- WHATWG, HTML Standard — defines the element a fragment points to as the one whose id matches it, or an a element whose name matches it. Checked 28 September 2026.
- Google, Understand the JavaScript SEO basics — explains that Googlebot renders pages and reads the rendered HTML, which can differ from the HTML first served. Checked 28 September 2026.
Editorial review: 29 October 2026