When SEOs say “the first link,” the phrase hides two questions. Do we mean the first anchor in the HTML source, or the link a person sees first after CSS lays out the page? And when one link points to a page while another points to a section on that page, are those truly separate destinations? I built this article to make both questions testable without expanding the study into dozens of pages.
HTML order is the document’s reading order
The browser starts with a document tree. Screen readers, keyboard navigation, copy-and-paste behavior, and many parsers generally encounter elements in that source order. CSS Grid and Flexbox can move an element visually without moving it in the DOM. The page may therefore present one sequence to sighted mouse users and another to keyboard or assistive-technology users.
In normal production work, I try to keep those orders aligned. A layout that jumps around during keyboard navigation is confusing, and visual reordering can conceal structural problems instead of solving them. The controlled block in this study is intentionally small because the mismatch is an experimental variable, not a recommended design technique.
What the visual-order test changes
The source page contains two ordinary server-rendered anchors to this exact canonical URL. Link A appears first in the HTML but is displayed below Link B. Link B appears second in the HTML but CSS places it above Link A. The anchors use similar-length, equally unusual phrases so the test is not simply comparing a descriptive label with a generic one.
The primary observation is the link text reported by Search Console after the target is crawled, indexed, and grouped under the expected canonical. If only the DOM-first phrase appears, the result is consistent with source-order priority. If only the visually upper phrase appears, rendered placement may affect selection. Both and neither are valid outcomes; neither would be treated as inconclusive unless the canary has already proven the reporting path.
Why fragment links are a separate problem
A fragment identifier is the portion after a hash, such as #fragment-test. For a conventional document, it tells the browser to jump to an element with a matching id. The server does not receive the fragment in the HTTP request, and the underlying HTML document is usually the same. That makes fragments excellent for tables of contents and deep links to a relevant section.
Google’s current URL guidance says fragments generally should not be used to make different page content indexable, and its Search Console documentation says anchor fragments can be omitted when target URLs are grouped. Those statements make consolidation the sensible preregistered hypothesis: a base URL and the same URL with a section fragment will probably be treated as one destination in the Links report.
The reversed-order fragment crossover
Two source pages each link here twice. On the homepage, the base URL comes first and the fragment URL comes second. On the navigation article, the fragment URL comes first and the base URL comes second. This reversed order is valuable because a single source could not distinguish “the first anchor won” from “the base URL won.”
| Observed pattern | Most cautious interpretation |
|---|---|
| First phrase from each source | The URLs were likely consolidated, with source order associated with the reported text. |
| Base-URL phrases from both sources | The reporting or normalization layer may favor the document URL. |
| Fragment phrases from both sources | The section form may be retained or preferred in this configuration. |
| All four phrases | Multiple anchor labels can survive even when targets normalize to one page. |
| No stable rows | The condition is not measurable with this instrument. |
What “both links count” could mean
The phrase can refer to several different systems. A browser exposes both anchors to users. A crawler can discover both anchor elements. Search Console may normalize their destinations but still retain multiple link-text rows, because its duplicate rules for the link-text report are based on text as well as normalized URLs. A ranking system could process signals in a way the report never reveals. This experiment observes the report; it does not collapse all of those layers into one claim.
I will therefore avoid saying that a missing fragment anchor “does not count.” The defensible statement is narrower: the phrase was not observed in the preregistered report after the measurement gate passed. That distinction matters because Search Console is sampled, historical, canonicalized, and not a complete transcript of Google’s internal link processing.
Practical guidance before the results
Keep meaningful reading order in the DOM, then use CSS to style rather than rewrite that order. Use fragment links when they help people land on a relevant section, not as a way to manufacture extra indexable URLs. Write the anchor as though it may be the only label retained for the destination. Finally, inspect the rendered DOM for duplicated responsive menus and card links before diagnosing a selective-link problem.
Those recommendations do not depend on the outcome. The experiments may refine how I interpret competing anchors, but they should not override accessible structure or useful navigation.
Method references: Google Search URL structure guidance, Search Console Links report documentation, and Google’s fragment-URL explanation.