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 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.
What counts as a link
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.
Terms related to Internal linking
The two separate stages that decide whether a page can be retrieved at all, and the reason a serving rule on a blocked page is never read.
The one URL you nominate as the indexable version of a page, how the rel=canonical hint is actually weighted, and what a split canonical costs you when an agent needs a link to cite.
A machine-readable list of the URLs you want discovered, bounded by the protocol at 50,000 URLs and 50MB per file, and a hint rather than an instruction.
Inbound links from other sites: what search engines actually do with them, what the rel attributes change, and why a link's value to an AI assistant is mostly about being reachable and quotable.