For the complete documentation index, see llms.txt. Every page on this site is also served as Markdown: append `.md` to any URL, or send `Accept: text/markdown`.
Attensira Logo
Attensira
SEO Glossary

Internal linking

Links from one page of a site to another: how crawlers discover pages, what makes a link machine-readable at all, and why the anchor text is the part that carries meaning.

Karl-Gustav KallasmaaKarl-Gustav Kallasmaa, Founder & CEOLast updated

Internal linking is the practice of connecting pages within one site with hyperlinks, so that crawlers can discover every page and so that each link's visible text tells a machine what the destination is about. It is the cheapest structural work available on a site, because it requires no new content and no external cooperation.

Google is unusually literal here. It states that it can only crawl a link if it is an <a> HTML element with an href attribute, and that the href value must resolve into an actual web address that its crawlers can send requests to. Links inserted with JavaScript are fine, as long as what ends up in the document is that same anchor-plus-href markup.

Three patterns are named as ones Google cannot reliably parse: an element carrying a framework routing attribute such as routerLink in place of href, a <span> carrying an href, and an anchor whose destination is held only in an onclick handler with no href at all. All three look and behave like links to a person using a mouse. To a crawler they are text. A javascript: href is a weaker case: Google lists it as not recommended, but says it may still attempt to resolve it — which is not the same as a guarantee.

This is the failure worth checking first, because it is silent and total. A navigation component built as click handlers does not link weakly; it does not link at all, and every page reachable only through it depends on a sitemap or an external link to be found.

Anchor text is the payload

The URL says where. The anchor text says what.

Google's guidance is that good anchor text is descriptive, reasonably concise, and relevant to the page that it's on and to the page it links to, and that the text belongs between the anchor tags. Where the text is empty, it may fall back to the title attribute, and for an image link to the alt attribute of the img element. It advises against generic phrasing such as "click here" or "read more", warns that stuffing keywords into anchor text violates its spam policies, and recommends spacing links naturally through the content rather than running them together in chains.

The reason to care is not a ranking formula. It is that the anchor text is a short, human-written description of the destination written by someone who read both pages — one of the few labels on the open web that is cheap to produce and hard to fake at scale. "Read more" throws that away.

Discovery, and the crawl-budget question

Most sites do not have a crawl budget problem. Google's own thresholds are rough and large: sites of 1 million+ unique pages whose content changes moderately often, about once a week, and medium or larger sites of 10,000+ unique pages whose content changes daily. Google states explicitly that these are not exact thresholds.

Where the budget does bind, the guidance is about inventory rather than links: eliminate duplicate content so crawling is spent on unique content rather than unique URLs, and block unimportant variants — differently sorted versions of the same page is Google's own example — with robots.txt. Internal linking interacts with that through what it multiplies. A faceted navigation that links every combination of filters manufactures URLs faster than any crawler will consume them, and the fix is a canonical and a block, not more links.

What it does and does not do for AI answers

Links decide eligibility, passages decide use.

An unlinked page is an undiscovered page, and Google's AI-features documentation states that a supporting link must be a page that is indexed and eligible to be shown in Google Search with a snippet. So the linking is a precondition. But a system that reads sources and writes an answer selects a passage out of the page it fetched; nothing about the link that brought it there makes the passage self-contained. A well-linked page full of claims whose qualifiers live three paragraphs away is discoverable and unquotable at once. See crawling and indexing for the first half and source citation for the second.

Failure modes

Links that are not anchors. Router components, card grids and menus built on click handlers. Test by disabling JavaScript, or by looking for href in the rendered HTML rather than in the source.

Uniform anchor text. Twenty links reading "learn more" carry twenty identical, contentless labels. The cost is not a penalty; it is a description you declined to write.

Orphan pages. A page in the sitemap and in no navigation is asserted to exist and endorsed by nothing on the site.

Boilerplate-only linking. A link that appears in every footer says nothing about any particular page. In-body links from a page about a related subject carry the context that a global template cannot.

Manufacturing URLs. Filter and sort combinations linked exhaustively turn one page into thousands of near-duplicates. This is the one case where adding internal links actively harms discovery of everything else.

Assuming a formula. The arithmetic of how link equity splits across a page's outbound links is folklore, not published behaviour. Structuring a site around a number nobody has documented is how sites end up with hidden link blocks and no benefit.

Frequently Asked Questions about Internal linking

Google states it can only crawl a link if it is an <a> HTML element with an href attribute, and that the href value must resolve into an actual web address that its crawlers can send requests to. Links inserted dynamically with JavaScript still count, provided the resulting markup is that same anchor-plus-href.

Google's not-recommended examples name three it cannot reliably parse: an element using a framework routing attribute such as routerLink instead of href, a span carrying an href, and an anchor whose destination lives only in an onclick handler with no href. A javascript: href sits in a softer category — Google lists it as not recommended but says it may still attempt to resolve it.

Google's guidance is that good anchor text is descriptive, reasonably concise, and relevant to the page that it's on and to the page it links to. It advises against generic phrases such as click here or read more, warns that keyword stuffing anchor text violates its spam policies, and recommends spacing links naturally through the content rather than chaining them together.

Probably not. Google gives rough thresholds: large sites with 1 million+ unique pages whose content changes moderately often, about once a week, and medium or larger sites with 10,000+ unique pages whose content changes daily. It is explicit that these are not exact thresholds.

Indirectly, and only via discovery and context. Links are how an unlinked page becomes a crawled page, and Google states that a supporting link in its AI features must be indexed and eligible to be shown in Search with a snippet. What the extractor lifts is a passage, so the link decides eligibility while the passage decides whether it is used.
Share this term

Track how your brand shows up in ChatGPT, Claude, and Google AI

Attensira monitors your visibility across AI search platforms so you know exactly when and how you're being recommended.