Internal links do two different jobs, and the second one is where most sites lose. For traditional rankings they move authority and control discovery, and Google’s own patents make clear that links are not weighted equally: position, prominence, anchor wording, and the relationship between source and target all change how much a link is worth. For AI search the mechanics differ, because answers are assembled from passages rather than pages, which makes the sentence around a link and the words inside it part of how a passage gets understood. Both systems share one non-negotiable requirement: the link has to be an anchor element with an href attribute, or it does not exist at all.
Internal linking for AI search and for classic rankings starts from the same place: the cheapest lever in search, and the least maintained. Nobody buys them, nobody negotiates for them, and every one of them is fully under your control, which is precisely why they get neglected in favor of work that feels harder. Most sites are running a link structure that was decided by whoever built the navigation four years ago and has never been revisited.
That was survivable when links only had to move authority around. It is more expensive now, because answer engines read pages in a different unit than search engines rank them in, and the linking patterns that satisfy one do not automatically satisfy the other. This piece covers what actually determines a link’s value, what changed with the arrival of passage-level retrieval, and the audit worth running before touching anything.
The two jobs a link has always done
Long before internal linking for AI search was a question, links did two things. The first job is discovery. A page nobody links to is a page a crawler has to be told about some other way, and Google’s guidance is explicit that every page you care about should be linked from at least one other page. Orphaned pages are not penalized so much as unnoticed.
The second job is weight. The idea underneath it is old and still load-bearing: the original PageRank work modeled a web surfer following links at random, with a probability of getting bored and jumping to an unrelated page instead. That probability is what the damping factor represents.
The damping factor used in the original PageRank formulation from Stanford, representing the probability that a random surfer keeps following links rather than jumping elsewhere. Search has been rebuilt many times since, but the underlying intuition survives: authority flows along links, it diminishes as it travels, and a page’s standing depends partly on what points at it.
Modern ranking is vastly more complicated than that formula, and nobody outside Google knows the current weighting. What has not changed is the shape of the idea, which is why a page buried six clicks from anything important tends to underperform a page linked from a hub, regardless of which page is better written. We publish our own work with that structure in mind, including the articles we keep on our blog, where the point of a hub is to shorten the path to everything under it.
Not every link on a page carries the same value
The connection between internal links and rankings is not a flat division. The assumption that a page divides its authority evenly among its outgoing links is the most common misconception in this area, and Google filed a patent describing a different model well over a decade ago.
Filed in June 2004 and granted in May 2010, the patent describes weighting links by the probability that a user would actually select them, rather than treating them as interchangeable. A link a reasonable person is likely to click is worth more than one they would ignore. The features the patent names as influencing that probability are unusually concrete.
| Feature named in the patent | What it implies for your site |
|---|---|
| Position in the document, top versus bottom | A link in the body outranks the same link in a footer |
| Font size, color, and attributes such as italics | Visually de-emphasized links read as less important |
| Whether the link sits inside a list | A link in a stack of twenty is diluted by its neighbors |
| Number of words in the anchor text and the words themselves | Specific descriptive anchors beat one-word generic ones |
| Topical relationship between source and target | Relevant links carry more than arbitrary cross-links |
A patent is a description of an approach rather than proof of what runs in production today, and it should be read that way. What makes it worth attention is how well it matches observed behavior: the sitewide footer link that never moves anything, the contextual link inside a well-read article that does. That pattern repeats often enough across engagements that it shapes where we spend effort, and it shows up in the client work we document publicly more consistently than almost any other structural change.
A link that is not an anchor element is not a link
Before any of the weighting matters, and before internal linking for AI search enters into it, the link has to be one. Google states the requirement without hedging.
“Google can only crawl your link if it’s an <a> HTML element with an href attribute.”
The documentation then lists what fails, and every item is something a component library produces by default somewhere. Anchor elements without an href. Non-anchor tags wired up with click handlers. Framework-specific routing attributes standing in for href. Span elements carrying an href that browsers ignore. Links whose destination lives in a JavaScript function call rather than the attribute. All of these navigate perfectly for a user and are invisible as links to a crawler.
This is a single-component bug with sitewide consequences, because one shared link component compiles into every template. Auditing it takes one look at rendered HTML for the main navigation and a representative content page, checking that each destination appears in an href attribute. On large properties this is exactly the sort of defect that hides for years behind good analytics, which is why it sits early in the technical review for the enterprise search programs we manage.
Anchor text is a description, not a slot for a keyword
Anchor wording is where internal links and rankings meet plain editorial craft, and Google’s published guidance on it is more specific than most internal linking best practices circulating in the field, and it cuts against two habits at once.
The stated qualities of good anchor text are that it is descriptive and specific rather than generic, reasonably concise without being stuffed with keywords, relevant to both the source and the destination, and readable out of context. The named failures are equally clear: generic phrasing like “click here” or “read more,” keyword stuffing, chaining several links together consecutively, and anchors so long they stop being labels. Where the anchor is empty, Google may fall back on the title attribute; where the link is an image, the alt text does the job, and an image link with empty alt text and no anchor text is doing nothing at all.
The readable-out-of-context test is the most useful of these and the easiest to apply. Copy the anchor text on its own and ask whether it still says where the link goes. “Read more” fails instantly. “Our pricing” passes weakly. “What a monthly SEO retainer includes” passes cleanly. The habit costs nothing and improves accessibility at the same time, which is one reason it is usually the first change we recommend for the smaller businesses we work with, where there is no budget to spend on anything more elaborate.
What changes when the reader is an answer engine
Here the mechanics diverge, and the divergence is not the one most people expect. Internal linking for AI search rewards different qualities than the link graph does, because generative systems assemble answers from passages rather than ranking whole documents.
Three consequences follow. First, a link’s surrounding sentence travels with it, so the words immediately around an anchor become part of how that passage is understood, which makes lazy phrasing more expensive than it used to be. Second, anchor text for AI search doubles as an entity label: naming the destination as a thing, in the words your market uses, states a relationship in plain language rather than only as a graph edge. Third, discovery still matters enormously, because a page that no link points at is a page unlikely to be crawled and therefore unavailable to be quoted.
What this rules out is the old habit of optimizing anchors for a target keyword regardless of how the sentence reads. A passage containing an awkwardly bolted-in phrase is a worse passage, and passage quality is exactly what the retrieval step is grading. The two goals converge on the same instruction, which is a relief: write the sentence a person would write, and put the specific name of the destination in it. That convergence is a recurring theme in how we think about optimizing for AI engines, where most apparent conflicts between old and new practice dissolve once the mechanism is understood.
Two panels showing one paragraph containing one internal link. On the left, the search engine’s reading: the paragraph is scenery, the link is an edge in a graph, and what travels is authority from source page to target page, drawn as an arrow with a thickness set by position and prominence. On the right, the answer engine’s reading: the graph is faint, and what stands out is the paragraph itself as a retrievable passage, with the anchor text and the words touching it highlighted as part of the passage’s meaning. The same markup produces both readings, and only the right-hand panel is affected by whether the sentence is well written.
Nofollow stopped doing what people still use it for
A surprising number of sites still carry internal nofollow attributes applied years ago to steer authority toward important pages. That technique has not worked for a long time, and the change is documented.
Google announced on September 10, 2019 that it was introducing rel=”sponsored” for paid placements and rel=”ugc” for user-generated links, and that beginning in March 2020 nofollow and its two new siblings would be treated as hints rather than directives, for ranking as well as for crawling and indexing. The stated reasoning was that treating the attribute as an absolute instruction to ignore a link discarded useful information about why one page points at another.
The practical instruction is short. Stop using nofollow on internal links; if a page should not accumulate authority or be indexed, control that with noindex or by not linking it prominently, not with an attribute Google now reads as a suggestion. Keep sponsored and ugc for their actual purposes on outbound links. Legacy attributes surviving from an old strategy are worth finding and removing, and they turn up surprisingly often on pagination and filtered views in the national campaigns we run where someone once tried to sculpt crawl paths by hand.
Navigation is not an internal linking strategy
Internal linking for AI search and for rankings both depend on links that mean something, and most sites have exactly one linking system: the menu. Menus are template-level, identical everywhere, and by the patent’s own logic the least differentiated links on any page, because a link that appears on all ten thousand pages says nothing about the specific page it sits on.
Contextual links do the work menus cannot. A link inside a paragraph carries the topical relationship between the two pages, sits in the body rather than a footer, and comes with anchor text written for that particular sentence. A site with a good menu and no contextual linking has told search systems how it is organized while telling them nothing about how its topics relate.
Multi-location businesses feel this acutely, because every location page tends to be reachable only through a dropdown and never referenced from the content that would make it meaningful. Linking a service article to the specific markets where that service is offered, in the sentence where the market is named, is the version of this that does something. We keep a dedicated section for each market we serve for that reason: those pages have to be linkable from prose, not just reachable from a menu.
The audit worth running before you change anything
Four checks account for most of the recoverable value in internal linking for AI search and traditional rankings alike, and none requires a tool you do not already have.
Find the orphans. Compare the URLs in your sitemap against the URLs your crawler reaches by following links only. Anything in the first list and not the second is a page nothing points at, and it is usually a page someone was paid to produce.
Check click depth to revenue pages. Count the minimum number of clicks from the homepage to each page that actually earns money. Anything past three deserves a justification, and the fix is usually one contextual link from a well-linked page rather than a navigation change.
Read your anchors as a list. Export every internal anchor phrase and read the column on its own. The proportion of “read more,” “learn more,” and bare page titles is usually startling, and it is the cheapest thing on this list to fix.
Those three checks are diagnostic. The fourth is the one that determines whether the other three were worth running at all, and it takes about a minute.
Verify the links exist in rendered HTML. One check of the navigation component and one content template, confirming destinations appear in href attributes rather than click handlers, settles whether any of the rest matters. Running these four in order, before rewriting anything, is how we scope internal linking work inside our Generative Engine Optimization engagements, since the same structure feeds both the ranking and the retrieval side.
Frequently Asked Questions
Do internal links still affect rankings?
Yes, in two ways. They determine which pages get discovered and crawled, and they distribute authority through the site. Google’s guidance states that every page you care about should be linked from at least one other page. The weighting is more sophisticated than an even split among outgoing links, but the basic relationship between what points at a page and how that page performs has not gone away.
Are all internal links weighted equally?
A Google patent filed in 2004 and granted in 2010 describes weighting links by the probability a user would select them, naming factors including position in the document, font size and color, whether the link sits inside a list, the number and choice of words in the anchor, and the topical relationship between source and target. A patent is not proof of current production behavior, but it matches what practitioners observe: body links outperform footer links.
Does internal linking help with AI search visibility?
It helps differently. Answer engines assemble responses from passages, so the sentence containing a link becomes part of what gets evaluated, and the anchor text acts as a plain-language label for the relationship between two things. Discovery matters just as much, since an unlinked page is unlikely to be crawled and therefore unavailable to be quoted in any answer.
What does Google consider good anchor text?
Descriptive and specific rather than generic, reasonably concise without keyword stuffing, relevant to both the linking page and the destination, and understandable when read out of context. Google names “click here” and “read more” as poor examples, along with keyword stuffing, chaining links consecutively, and anchors long enough to stop functioning as labels.
Should I use nofollow on internal links?
No. Google announced on September 10, 2019 that nofollow, along with the new sponsored and ugc values, would be treated as hints rather than directives starting in March 2020, for ranking as well as crawling and indexing. Internal sculpting with nofollow does not do what it once claimed to. Use noindex or restructure the linking if a page should not be prominent.
Why are my JavaScript links not being followed?
Because Google can only crawl a link that is an anchor element with an href attribute. Anchor elements without href, non-anchor tags with click handlers, framework routing attributes standing in for href, span elements carrying href, and destinations expressed as JavaScript function calls all navigate fine for users and are invisible to crawlers. Check the rendered HTML of your link component.
How many internal links should a page have?
There is no published number, and chasing one misses the point. Since links appear to be weighted by how likely a reader is to follow them, a page stuffed with links dilutes each of them while gaining nothing. Link where a reader would genuinely want to go next, keep them out of consecutive runs, and let the count fall where it falls.
Do navigation menu links count as internal linking?
They count, but they are the least differentiated links on any page, since an identical menu appears on every template and says nothing about the specific page it sits on. Contextual links inside body copy carry the topical relationship, the position advantage, and purpose-written anchor text. A site with only a menu has described its structure without describing how its topics relate.
What is the fastest internal linking win on most sites?
Finding orphaned pages by comparing your sitemap against what a crawler reaches by following links only. Those pages are already written and already paid for, and a single contextual link from a well-linked page can bring one back into circulation. Rewriting generic anchor text is a close second and costs even less.
Skyfield Digital will map your internal link structure, surface the orphaned pages and dead anchors, and show you which pages are one link away from performing.
Sources
| Google Search Central | Make Your Links Crawlable |
| Google Patents | Ranking Documents Based on User Behavior and/or Feature Data |
| Stanford University | The Anatomy of a Large-Scale Hypertextual Web Search Engine |
| Google Search Central Blog | Evolving Nofollow: New Ways to Identify the Nature of Links |
| Search Engine Land | Google to Treat Nofollow as a Hint After March 1, 2020 |
| Google Search Console Help | Links Report in Search Console |