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`.
Skip to content
Attensira LogoAttensira

Glossary term

Internal linking

Internal linking is connecting pages within one site with ordinary HTML links, so crawlers can discover every page and each link's visible text tells a machine what the destination is about. Google can only follow an anchor element with an href that resolves to a real URL. It is the cheapest structural fix on most sites.

7 days free · card required

The pages AI crawlers fetched mostn=143,601 requests
attensira.com, by claimed user agent; the www host is counted apart, so / is a floor · to
NameThe pages AI crawlers fetched most
/contact-sales6.5%
/ (home page)6.0%
/pricing5.4%
/about5.4%
/features/prompt-tracking4.0%
/features/content-optimization3.8%
Analyst agentAnalyst · reads this workspace's crawler logattensira.com edge middleware, read over the Attensira MCP ·
Karl-Gustav KallasmaaKarl-Gustav Kallasmaa, Founder & CEO

Last updated

Key facts

Internal linking is connecting pages within one site with hyperlinks, so that crawlers can discover every page and 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 needs no new content and no one else's 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 must resolve into an actual web address its crawlers can request. 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 lives only in an onclick handler. All three look and behave like links to a person with a mouse. To a crawler they are text. A javascript: href is weaker still: Google lists it as not recommended but says it may still try to resolve it, which is not a guarantee.

This is the failure to check first, because it is silent and total. A navigation built from 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 outside link to be found. Answer-engine crawlers are stricter than Google here, because they do not run JavaScript at all.

Why is anchor text the part that matters?

The URL says where. The anchor text says what.

Google's guidance is that good anchor text is descriptive, reasonably concise, and relevant to both the page it sits on and the page it points to. If the text is empty it may fall back to the title attribute, or to the alt of an image link. It advises against "click here" and "read more", warns that stuffing keywords into anchors violates its spam policies, and recommends spreading links through the content rather than chaining them together.

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

Whose job do assistants say internal linking is?

The SEO lead's. In a 4 October 2026 answer about alternatives to hiring a GEO agency, ChatGPT listed internal linking with technical health, indexing and schema as part of the SEO lead's job, next to the technical work it depends on.

Answer · ChatGPTasked

Question: alternative to hiring a GEO agency

ChatGPT answered: SEO lead: technical health, indexing, schema, internal linking

Sources cited

  1. 1developers.google.com
  2. 2nivaloq.com
  3. 3gen-optima.com
  4. 4loudface.co
  5. 5fireflyweblabs.com
  6. 6maximuslabs.ai
  7. +6 more

Not namedAttensira is missing from this ChatGPT answer.

attensira.com workspace, a stored ChatGPT answer read over the Attensira MCP ·

Links rot quietly. A page is retired, a slug is renamed, and every link pointing at it keeps working in the editor while sending readers and crawlers to an error. Two checks catch nearly all of it, and both are cheap enough to run on every publish:

  • Check the source. Before a page goes live, resolve every internal link and every "related" entry it names against the list of pages that actually exist. A link to a page that does not exist should stop the publish, not raise a warning nobody reads.
  • Check the rendered page. After it renders, fetch each link target and fail on anything that is not a 200. This catches what the source check cannot: links a template adds, and pages that were removed after the link was written.

Then decide the links on purpose. A short, chosen list of related pages, each one a page a reader of this one would plausibly want next, beats a widget that links whatever is popular. This glossary works that way: the related terms at the end of this page are the six the page names, and each is checked to exist.

Does a small site need to think about crawl budget?

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 about weekly, and sites of 10,000+ unique pages whose content changes daily. Google says these are not exact thresholds.

Where budget does bind, the guidance is about inventory more than links: remove duplicate content so crawling is spent on unique pages, and block unimportant variants, such as differently sorted versions of one listing, with robots.txt. Internal linking interacts through what it multiplies. A faceted navigation that links every combination of filters makes URLs faster than any crawler can read them, and the fix is a canonical and a block, not more links.

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 indexed and eligible to be shown with a snippet. So linking is a precondition. But an answer engine lifts a passage out of the page it fetched, and nothing about the link that brought it there makes the passage stand on its own. A well-linked page whose claims depend on paragraphs three screens away is findable and unquotable at once.

Our own crawler log shows where links pay twice. Over the 30 days to 4 October 2026, the attensira.com pages AI crawlers fetched most were the sales contact page (9,271 requests), the home page (8,562), pricing (7,724) and about (7,710), as the chart at the top of this page shows; ten different AI agents fetched the home page alone. Those are the pages to link onward from: a crawler that comes back to a page thousands of times meets its links on every visit. At the other end, at least 121 of our pages had no AI-crawler fetch at all in the same window, and the band below shows the gap. The home-page count is also a warning about addresses: the log counts the www host separately from the bare one, so one page's visits are split across two URLs. Link internally to the canonical URL only, so crawlers meet one address per page. See crawling and indexing for the first half and content clusters for how linked pages on one subject support each other.

How many pages do crawlers never reach?

More than you would guess. In 30 days the widest AI crawler, Meta-ExternalAgent, fetched 873 attensira.com pages, while at least 121 pages had no AI-crawler fetch at all, among them 19 API reference pages and about 60 blog posts. Those are the pages a link from the busy pages above would reach first.

pages fetched by the widest AI crawler, Meta-ExternalAgent
873
131,105 requests
pages with no AI-crawler fetch in 30 days
121+
AI agents seen on the home page
10
by claimed user agent
Analyst agentAnalyst · reads this workspace's crawler logattensira.com edge middleware, read over the Attensira MCP on 2026-10-04 (user agents unverified) · (user agents unverified) · to

What goes wrong with internal linking?

  • Links that are not anchors. Router components, card grids and menus on click handlers. Test by disabling JavaScript, or by looking for href in the rendered HTML.
  • Uniform anchor text. Twenty links reading "learn more" carry twenty identical, empty labels.
  • Orphan pages. A page in the sitemap and in no navigation is asserted to exist and endorsed by nothing.
  • Boilerplate-only links. A footer link appears on every page and says nothing about any one of them; in-body links carry context a template cannot.
  • Manufactured URLs. Exhaustively linked filter combinations turn one page into thousands of near-duplicates.
  • Links to deleted pages. Each one sends a crawler to a 404 and wastes the anchor text.

Yes, as part of the work rather than as a report. When the crew rewrites or fixes a page, adding internal links to your own site is one of the change types Attensira's approval rules class as safe. In Act mode a safe change can open as a pull request on its own; in Draft, which every new workspace starts in, it waits in your Inbox for your yes. What it will not do is invent a formula for link equity, because none is published. The measure it reports is the one that matters: whether the page starts being fetched by crawlers and cited in answers, with the sample size.

Questions about internal linking

What exactly makes a link crawlable?
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 its crawlers can request. Links inserted with JavaScript still count, provided the resulting markup is that same anchor-plus-href.
Which link patterns does Google say it cannot follow?
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. A javascript: href is softer: not recommended, but Google says it may still try to resolve it.
What is good anchor text?
Google's guidance is that good anchor text is descriptive, reasonably concise, and relevant to both the page it is on and the page it links to. It advises against generic phrases such as click here or read more, and warns that keyword stuffing anchor text violates its spam policies.
Does my site need to worry about crawl budget?
Probably not. Google gives rough thresholds: sites with 1 million+ unique pages whose content changes about once a week, and sites with 10,000+ unique pages whose content changes daily. It says plainly that these are not exact thresholds.
Do internal links help my page get quoted by an AI answer?
Indirectly. Links are how an unlinked page becomes a crawled page, and Google states a supporting link in its AI features must be indexed and eligible for a snippet. What an answer lifts is a passage, so the link decides whether the page can be found and the passage decides whether it is used.
Can Attensira add internal links for me?
Yes, as part of page fixes. Internal links to your own site are one of the change types Attensira's approval rules class as safe. In Act mode a safe change can open as a pull request without waiting; in Draft, the default, it waits in your Inbox for approval like everything else.

Where do these facts come from?

4 sources: each statement with the page it came from and the day it was checked.

  1. On attensira.com in the 30 days to 4 October 2026 (143,601 AI-crawler requests, read over the Attensira MCP on 4 October 2026), the most-fetched pages were /contact-sales (9,271 requests), the home page (8,562 on the bare host; the www host is counted separately), /pricing (7,724), /about (7,710), /features/prompt-tracking (5,805) and /features/content-optimization (5,468); Meta-ExternalAgent fetched 873 pages, at least 121 pages had no AI-crawler fetch (among them /api-platform and 18 pages under it, and about 60 blog posts), and 10 different AI agents fetched the home page. User agents were not IP-verified.

    docs.attensira.com · retrieved

  2. Google's crawl-budget guidance gives rough thresholds of large sites with 1 million+ unique pages changing about once a week, and medium or larger sites with 10,000+ unique pages changing daily, while stating these are not exact thresholds.

    developers.google.com · retrieved

  3. Google states it can only crawl a link if it is an <a> HTML element with an href attribute whose value resolves into an actual web address its crawlers can request.

    developers.google.com · retrieved

  4. Attensira's approval documentation classes internal links to your own site as a safe change, which in Act mode opens as a pull request without waiting, while Draft is the mode every new workspace starts in.

    docs.attensira.com · retrieved

Want whatever it takes to win the answer?

7 days free · card required