Internal Links
Internal links are how search engines discover your pages and pass ranking signals between them — strategy, anchor text, PageRank, and audits.
Internal links are hyperlinks between pages on the same site, and they do two jobs: they help search engines discover your pages, and they pass ranking signals (PageRank plus anchor-text context) between them. John Mueller calls internal linking 'super critical for SEO.' Descriptive anchor text beats generic 'click here'; there's no magic limit on links per page (the old 100-link rule is a myth); and pages buried more than 3–4 clicks from the homepage get crawled less. Never nofollow your own internal links to 'sculpt' PageRank — that's been dead since 2009, and the equity just evaporates. The highest-ROI audit fixes are orphan pages and broken links.
TL;DR — Internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. are links from one page on your site to another page on the same site. They do two things: they help search engines find your pages, and they tell search engines which pages are important and what they’re about. Use descriptive link textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page. (not “click here”), make sure every page you care about is linked from somewhere, and never add
nofollowto your own internal links.
What an internal link is
An internal link is a link that goes from one page on your website to another page on the same website. A link that points to a different website is an external link. That’s the whole distinction.
In HTML, an internal link looks like any other link:
<a href="/blog/internal-links/">internal links</a>The clickable words (“internal links” here) are the anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page..
Why internal links matter
Two reasons, and they’re separate:
- They help search engines find your pages. Google discoversGoogle Discover is a personalized, mobile-first content feed built into the Google app, Chrome's mobile New Tab page, and google.com that surfaces articles and videos based on a user's interests and activity — not a response to a search query. There's nothing to 'rank' for in the traditional sense; eligibility is governed by Discover's content policies plus the same helpful-content, image, and page-experience signals Google Search already uses. most new pages by following links from pages it already knows about. If nothing on your site links to a page, Google probably won’t find it. A page like that — with zero internal links pointing to it — is called an orphan pageAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site., and it usually won’t rank. Evidence for this claim Google can reliably crawl standard anchor elements with href attributes, making internal links a discovery path. Scope: Google crawlable-link requirements. Confidence: high · Verified: Google Search Central: Crawlable links
- They help your pages rank. Links pass “ranking strength” (Google’s name for the original version is PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems.) from one page to another. The more good internal links point to a page, the more important search engines think it is. The link text also tells them what the page is about.
Google’s John Mueller put it plainly: internal linkingLinks between pages on the same site. is “super critical for SEO… one of the biggest things that you can do on a website.”
How to do it well
- Use descriptive link text. “Email marketing guide” is better than “click here” or “read more.” It tells people — and search engines — what they’ll get. Evidence for this claim Google recommends descriptive, concise, relevant anchor text for internal links. Scope: Google anchor-text best practices. Confidence: high · Verified: Google Search Central: Anchor text
- Link from relevant pages. A link inside a paragraph of related content is worth more than one buried in the footer.
- Make sure every important page is linked. Google’s own advice: “Every page you care about should have a link from at least one other page on your site.”
- Keep important pages close to the homepage. If someone (or a crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.) has to click five times to reach a page, it’s probably getting ignored. Aim for your important pages to be reachable in a few clicks.
- Don’t
nofollowyour own internal links. This used to be a trick to “save” ranking strength for important pages. It hasn’t worked since 2009, and it actually wastes that strength. Just link normally.
The thing most people get wrong
There is no magic number of links a page should have. You’ll still hear the old “keep it under 100 links” rule — it’s a myth. Google says there’s “no magical ideal number.” Use common sense: if a page feels like it has too many links, it probably does.
Want the deeper version — how PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. flows, why “sculpting” with nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing. backfires, hub-and-spoke strategy, and a real audit workflow? Switch to the Advanced tab.
TL;DR — Internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. do two distinct jobs: discovery (they’re the #1 way GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. finds URLs) and signal-passing (PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. flows along them, and anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page. supplies topical context). Mueller calls internal linkingLinks between pages on the same site. “super critical for SEO.” To be crawlable, a link must be a real
<a href>— not anonclickor a router attribute. There’s no documented max links per page (the 100-link rule is a myth), but linking every page to every other page destroys the hierarchy signal. Click depthCrawl depth usually means click depth — how many clicks it takes to reach a page from the homepage by following internal links. It can also mean a crawler setting that limits how many levels deep a crawl goes before it stops. is your most actionable metric: pages 4+ clicks deep get crawled and weighted less. Never nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing. internal links to sculpt PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. — dead since 2009; the equity evaporates rather than redistributes. Highest-ROI audit fixes: orphan pagesAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site., then broken links, then click depth.
What counts as an internal link (and what’s crawlable)
An internal link points from one page on your site to another page on the same
site. The technical requirement is the part people skip: to be crawlable by
Google, it has to be a standard HTML anchor element with an href. Google is
explicit — “Google can only crawl your link if it’s an <a> HTML element… with an
href attribute.” Evidence for this claim Google can reliably crawl standard anchor elements with href attributes, making internal links a discovery path. Scope: Google crawlable-link requirements. Confidence: high · Verified: Google Search Central: Crawlable links
These are crawlable:
<a href="https://example.com/shoes/">Running shoes</a>
<a href="/products/category/shoes">Running shoes</a>These are not crawlable, and they’re how a lot of JavaScript-framework sites quietly orphan their own pages:
<a routerLink="products/category">Shoes</a> <!-- no href -->
<span href="https://example.com">Shoes</span> <!-- not an anchor -->
<a onclick="goto('https://example.com')">Shoes</a> <!-- onclick, no href -->Martin Splitt’s exasperation on this is well earned: “There is an HTML link tag, you put a URL in the href, that’s how you link and I don’t know why people are reinventing the wheel.” If your “links” are click handlers, the page on the other end may never get discovered.
One nuance: Google does render JavaScriptMaking sure search engines can crawl, render, and index content that depends on JavaScript., and a link that only exists after
client-side renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. can still be picked up — but renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. is a separate, later
stage from the initial crawl. That’s not a reason to skip putting real href
values in your source HTML. Rendering can eventually surface a link added by
script; it can’t rescue a click handler that never gets a real href at all —
that’s still outside the crawlable-link contract above.
The two jobs internal links do
This is the single most useful mental model on this page. Internal links serve two separate functions, and a page can have one without the other.
Job one — discovery. Internal links are the primary mechanism by which crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. find new and updated URLs. Google: “The vast majority of the new pages Google finds every day are through links.” And: “GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. discovers new URLs to crawl primarily from links embedded in previously crawled pages.” This is why orphan pages are a discovery dead end — there’s no link for the crawler to follow.
Job two — passing ranking signals. Internal links pass PageRank, Google’s foundational link-based authority signal, from page to page. Mueller summarized both jobs at once: “Essentially, internal linking helps us on the one hand to find pages, so that’s really important. It also helps us to get a bit of context about that specific page.” The “context” comes from the anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page. and from where the page sits in your link graph.
A page can be discoverable (one link points to it) but still weak (only one link points to it). The two jobs scale independently.
PageRank still flows through internal links
Let’s kill a common doubt: PageRank is not dead. The public toolbar score was retired in 2016, but the internal algorithm is alive. Gary Illyes, in 2016: “Did you know that after 18 years we’re still using PageRank (and 100s of other signals) in ranking?” Mueller has confirmed Google computes PageRank for internal links the same way it does for external ones, and that more internal links to a page raise Google’s inferred importance for it.
The practical consequence: internal links are the lever you use to concentrate authority on your priority pages. As I’ve put it in my Pubcon Local 2021 talk, “internal links are links from one page on your site to another page on your site, and these also pass PageRank.” On the Ahrefs side, the rule of thumb is simple — the more internal links a page has, the higher its PageRank, and you direct the flow of PageRank around your site by choosing what to link.
One nuance worth knowing for local SEO: in my Pubcon Local 2021 talk on local link building, internal links seemed to matter more for local queries. My read is that local search has fewer external link signals to go around, so your internal link structure carries proportionally more weight.
Anchor text: context, not keyword-stuffing
Anchor text is a context signal, and quality matters — but quality means descriptive, not keyword-crammed. Google’s guidance: “Good anchor text is: descriptive, reasonably concise, and relevant to the page that it’s on and to the page it links to.” Evidence for this claim Google recommends descriptive, concise, relevant anchor text for internal links. Scope: Google anchor-text best practices. Confidence: high · Verified: Google Search Central: Anchor text The failure mode to fix is generic anchor text — “click here,” “read more,” “learn more” — which tells search engines nothing.
What you should not do is force exact-match keywords into every internal anchor. Mueller, directly on this: you don’t need to change anchor text to “buy your cheese online here,” and keyword-optimizing internal anchors is “not something where you would see a visible effect in search.” Descriptive variation (“email marketing strategies,” “how to set up email automation”) all pointing at the same page is fine and natural. Bing is a little more keyword-forward than Google in its wording, but the principle — descriptive and contextually relevant — holds for both.
Two narrow edge cases worth knowing, so you don’t over-generalize them. First, if
an anchor has no visible text at all, Google falls back to reading the link’s
title attribute — but that’s a fallback for an otherwise-empty anchor, not a
substitute for writing real anchor text on a normal text link. Second, when the
clickable content is an image rather than text, Google treats the image’s alt
attribute as the anchor text — so a linked image needs a real, destination-describing
alt value, the same way a text link needs descriptive words, not a decorative or
empty one.
How many internal links per page?
There is no documented maximum from Google. The old “100 links per page” limit is a myth — it traces back to a long-retired technical recommendation, not a ranking rule. Google’s current line: “There’s no magical ideal number of links a given page should contain. However, if you think it’s too much, then it probably is.”
But “more is always better” is also wrong, and for a subtle reason: linking everything to everything destroys the hierarchy signal. Mueller: “if all pages are linked to all other pages on the website, where you essentially have like a complete internal linking across every single page, then there’s no real structure there.” A fully connected graph tells Google nothing about which pages matter most. Selective linking is what creates a readable importance hierarchy. For a typical article, 3–5 contextual links alongside your normal navigation is a sensible starting point.
Click depth is your most actionable metric
Click depth — how many clicks from the homepage a page sits — is Google’s rough proxy for importance. Mueller: “if it’s one click from the homepage… then that tells us that these stores are probably pretty relevant.” And on the flip side, “a flatter site structure is easier for us to crawl. If we have to go through a lot of pages to actually find the content, then that’s going to be a bit harder.”
Pages more than 3–4 clicks deep tend to get crawled less frequently and receive less PageRank. On large sites, reducing click depth — surfacing buried pages through hub pages, related-content modules, and navigation — is often the highest-ROI technical change you can make.
Don’t nofollow your own internal links
This is the one to get tattooed. PageRank sculpting — adding nofollow to
internal links to funnel equity toward “important” pages — has been dead since
2009. Before then, nofollowing a link redistributed its share to the page’s
other links. Google changed that: now the PageRank assigned to a nofollowed link
evaporates. It doesn’t move anywhere — it’s just gone. So nofollowing internal
links doesn’t redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. authority; it destroys it.
Illyes has been blunt that you shouldn’t nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing. your own internal links — it’s
“probably never the answer, especially on your own site.” And note the 2019
change: nofollow is now a hint, not a directive, so it doesn’t even reliably
stop crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor.. If you genuinely need to keep bots out of a URL space (faceted-nav
parameter explosions, internal search results), the right tool is robots.txt
disallow, not nofollow on links. (For the full link-attribute story — nofollow,
sponsored, ugc — see the dedicated nofollow write-up.)
One more myth while we’re here: structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. is not a substitute for internal links. Mueller: “Even if in the structured data you also provide URLs, we don’t use those URLs in the same way as we would use normal internal links on a page.” You still need real HTML links.
And nofollow doesn’t wall the destination off, either. If the same URL is linked elsewhere on your site without nofollow, listed in your sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., or already known to Google from a prior crawl, it can still be discovered and crawled through that other path. Nofollow is a qualification on one link, not a destination-wide crawl or index control — which is exactly why it’s the wrong tool for keeping a URL space out of the index in the first place.
One more separation worth keeping straight before you audit: a crawlable internal
link only gets a URL found, and possibly crawled — it can’t override what happens
to that URL afterward. If the destination redirects, returns an error, carries a
noindex tag, or resolves to a different canonical URL, no amount of internal
linking makes it independently indexable. Debug those signals — response code,
robots access, canonical target, noindex state — on the destination itself,
separately from whether the link pointing to it is well-formed.
A practical internal-link audit, in priority order
- Orphan pagesAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site. — the #1 fix. Pages with zero internal links can’t be discovered through your own link graph and receive zero internal PageRank. Find them, link to them from relevant pages.
- Broken internal links (4XX). Links pointing at dead URLs waste the signal and the crawl. Fix or repoint them.
- Click depth. Find pages buried 4+ clicks deep and pull the important ones closer to the homepage.
- Link-equity mapping. Make sure your highest-value pages are receiving the most (and most relevant) internal links — and that you’re not flattening the hierarchy by linking everything to everything.
Tools: Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. (Links report), Ahrefs Site Audit, and Screaming Frog all surface orphans, broken links, and depth.
These findings are a review queue, not an instruction to force exact-match anchors. Fix links that do not navigate, labels that point to different destinations, and internal nofollow only when the page context confirms they are mistakes.
Audit a representative page with my free Link Analyzer Free
- Analyze representative hub, category, and article templates.
- Review generic labels that point to different targets and any internal links marked nofollow.
- Rewrite for clarity or restore normal followed links where the page intent supports the change, then rerun the sample.
The structural findings show one non-navigational Click here link, three generic labels, one Learn more label pointing to two different guide URLs, and one internal nofollow link to pricing.
Where to go next
This is the hub for internal linking. Internal links are one piece of the broader on-page SEO picture — the signals you control on the page itself. From here, the natural neighbors are header tagsHeader tags (heading tags) are the HTML elements <h1> through <h6> that mark the structural hierarchy of a page's content. They help users, search engines, and screen readers understand what each section is about. (the H1–H6 structure that gives a page its outline) and image SEOImage SEO is optimizing the images on your pages so search engines can discover, crawl, index, and rank them — in Google Images and visual search, and as part of standard web results. It spans file format, filenames, alt text, compression, responsive markup, structured data, and image sitemaps. (alt textAlt text is the value of the `alt` attribute on an HTML `<img>` element — a short text substitute chosen for the image's purpose and context, not a literal description of what it shows. It makes images accessible to screen-reader users and helps search engines understand images, mainly for image search., which doubles as the anchor text for image links). Those topics live in the same on-page pillar and will auto-link once published.
Internal links also sit on the boundary with technical SEOTechnical SEO is the practice of making a site easy for search engines to crawl, render, index, and (now) be eligible for AI answers. It's the foundation that lets your content and links rank — not a ranking trick of its own.: they’re the front half of crawl discovery (the back half being sitemaps and push protocols), and the structure they create is what site architectureSite architecture is how a website's pages are organized, categorized, and interlinked. It controls how crawlers discover pages, how link equity flows, and how clearly search engines understand each page's topical context. Silo structure, hub and spoke, and topic clusters are the three common models. and crawl depthCrawl depth usually means click depth — how many clicks it takes to reach a page from the homepage by following internal links. It can also mean a crawler setting that limits how many levels deep a crawl goes before it stops. are really about. If your internal-link problem is really a crawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. problem, start there.
AI summary
A condensed take on the Advanced version:
- Internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. = links between pages on the same site. They do two separate jobs: (1) discovery — they’re the primary way GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. finds URLs; (2) signal-passing — PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. flows along them and anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page. supplies topical context.
- Crawlable means a real
<a href>.onclickhandlers and frameworkrouterLinkattributes without anhrefaren’t crawlable — a common way JS sites orphan their own pages. - PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. is alive. The public toolbar died in 2016; the internal algorithm still runs (Illyes). More internal links to a page = higher inferred importance (Mueller). Mueller calls internal linkingLinks between pages on the same site. “super critical for SEO.”
- Anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page. = context, not keyword-stuffing. Descriptive beats generic (“click here”). Forcing exact-match keywords has “no visible effect in search.”
- No magic link count. The 100-link limit is a myth. But linking everything to everything destroys the hierarchy signal — link selectively.
- Click depthCrawl depth usually means click depth — how many clicks it takes to reach a page from the homepage by following internal links. It can also mean a crawler setting that limits how many levels deep a crawl goes before it stops. matters. Pages 4+ clicks from the homepage get crawled and weighted less; reducing depth is often the highest-ROI fix on large sites.
- Never nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing. internal links to sculpt PageRank — dead since 2009; the
equity evaporates. Use
robots.txtto control crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. instead. Structured-data URLs are not a substitute for real internal links. - Audit order: orphan pagesAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site. → broken links → click depth → link-equity mapping.
- Local note: internal links appear to matter more for local queries (fewer external signals to go around).
Official documentation
Primary-source documentation from the search engines.
- SEO link best practices — the primary reference: what makes a link crawlable (
<a href>), descriptive anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page., “every page you care about should have a link,” and “no magical ideal number” of links. Start here. - SEO Starter Guide — links as the main discovery channel and anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page. as context.
- In-Depth Guide to How Google Search Works — the hub-page → new-blog-post URL discoveryURL discovery is how search engines find URLs to crawl — by pull (following links and reading sitemaps) and by push (you notify them via IndexNow, the Indexing API, or WebSub). It's the find step that comes before a page is ever fetched. example.
- Googlebot — links as the primary URL-discovery mechanism.
- Qualify your outbound links to Google —
nofollow/sponsored/ugc, and whyrobots.txt(not nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing.) is the tool for internal crawl control. - Importance of Link Architecture (2008) — foundational, still cited: internal linkingLinks between pages on the same site. is “a crucial step in site design.”
Bing / Microsoft
- Bing Webmaster Guidelines — orphan-page risk, a logical internal structure, and (more explicitly than Google) keyword-rich descriptive anchor text.
- Making Links Work For You (2009) — prefer absolute internal URLs to avoid diluting link value; quality over quantity.
Quotes from the source
On-the-record statements from Google and Bing. Each link is a deep link that jumps to the quoted passage on the source page.
Google — what makes a link crawlable & good anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page. (SEO link best practices)
- “Google can only crawl your link if it’s an
<a>HTML element (also known as anchor element) with an href attribute.” Jump to quote - “Good anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page. is: descriptive, reasonably concise, and relevant to the page that it’s on and to the page it links to.” Jump to quote
- “Every page you care about should have a link from at least one other page on your site.” Jump to quote
- “There’s no magical ideal number of links a given page should contain. However, if you think it’s too much, then it probably is.” Jump to quote
Google — links as the discovery channel
- “The vast majority of the new pages Google finds every day are through links, making links a crucial resource you need to consider.” Jump to quote
- “GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. discovers new URLs to crawl primarily from links embedded in previously crawled pages.” Jump to quote
John Mueller, Google — “super critical for SEO”
- “Internal linkingLinks between pages on the same site. is super critical for SEO. I think it’s one of the biggest things that you can do on a website to kind of guide Google and guide visitors to the pages that you think are important.” Jump to quote
John Mueller, Google — anchor text & over-optimization
- “It’s not something where you would see a visible effect in search.” (on forcing keyword-exact internal anchor text) Jump to quote
John Mueller, Google — over-linking destroys structure
- “If all pages are linked to all other pages on the website, where you essentially have like a complete internal linking across every single page, then there’s no real structure there.” Jump to quote
Gary Illyes, Google — links aren’t a top-3 factor (but still matter)
- “I think they are important, but I think people overestimate the importance of links. I don’t agree it’s in the top three. It hasn’t been for some time.” Jump to quote
Martin Splitt, Google — just use HTML links
- “There is an HTML link tag, you put a URL in the href, that’s how you link and I don’t know why people are reinventing the wheel.” Jump to quote
Gary Illyes, Google — don’t nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing. your own internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. (paraphrased)
- Illyes has said sites shouldn’t nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing. their own internal links — that nofollow is “probably never the answer, especially on your own site.” Nofollowing internal links makes PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. evaporate (post-2009 behavior); use
robots.txtdisallow for access control instead.
Internal-link audit checklist
Work it roughly top to bottom — the early items are the highest-ROI fixes:
- No orphan pagesAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site.. Every page you care about is linked from at least one other relevant page on the site.
- No broken internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them.. Fix or repoint any internal links hitting 4XX (and clean up redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. while you’re there).
- Important pages are shallow. Your priority pages are reachable within ~3 clicks of the homepage; nothing important is buried 4+ clicks deep.
- Links are real
<a href>elements — notonclickhandlers,routerLinkattributes, or non-anchor tags that crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. can’t follow. - Anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page. is descriptive — no naked “click here,” “read more,” or “learn more”; the text describes the destination page.
- Anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page. isn’t over-optimized — descriptive variation, not the same exact-match keyword crammed into every link.
- No
nofollowon internal links — you’re not trying to sculpt PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. (dead since 2009); the structure isn’t leaking equity. - Hierarchy is readable — you’re not linking every page to every other page (which flattens the importance signal).
- Image links have descriptive
alt— for an image link, the alt textAlt text is the value of the `alt` attribute on an HTML `<img>` element — a short text substitute chosen for the image's purpose and context, not a literal description of what it shows. It makes images accessible to screen-reader users and helps search engines understand images, mainly for image search. plays the role of anchor text. - Highest-value pages get the most internal links — link-equity flow matches your actual priorities (check the GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. Links report / Ahrefs internal-link counts).
- Crawl access controlled with the right tool — low-value URL spaces (faceted
params, internal search) handled with
robots.txt, not internal nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing..
The mental models
1. Internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. do two jobs — keep them separate. Discovery (the crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. follows the link to find the page) and signal-passing (PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. + anchor-text context flow along the link). A page can be discoverable but still weak if only one link points to it. Diagnose which job is failing before you act.
2. Hub-and-spoke / topic clustersSite architecture is how a website's pages are organized, categorized, and interlinked. It controls how crawlers discover pages, how link equity flows, and how clearly search engines understand each page's topical context. Silo structure, hub and spoke, and topic clusters are the three common models.. A central hub (pillar) page links out to a set of related spoke (cluster) articles, and each spoke links back to the hub and to its siblings. The SEO value of content clusters is largely internal-link architecture: the hub gathers PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. from its spokes and distributes it back, concentrating topical authoritySemantic search is meaning-based retrieval — matching what a user means, not just the words they typed. Search engines detect entities, expand synonyms, infer intent, and rank by conceptual relevance, which is why keyword stuffing lost its power and topical depth gained it.. This very page is a hub.
3. The pyramid (click-depth) model. Homepage at the top, broad category/hub pages below, then individual pages — with every important page reachable within ~3 clicks. Click depthCrawl depth usually means click depth — how many clicks it takes to reach a page from the homepage by following internal links. It can also mean a crawler setting that limits how many levels deep a crawl goes before it stops. is Google’s proxy for importance: shallow = important and crawled often; deep = deprioritized.
4. Structure is a signal — so link selectively. Linking everything to everything flattens the graph and tells Google nothing about relative importance. The shape of your internal links is itself information. Selective, hierarchical linking is what makes it readable.
5. The “which control?” decision rule for crawl access.
Want a link not to pass equity to an external page? rel="nofollow"/sponsored/
ugc. Want bots to skip an internal URL space entirely? robots.txt disallow —
never internal nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing. (it just evaporates PageRank). Want a page out of the indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.?
noindex with crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. allowed. Internal nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing. solves none of these.
Orphaning a page and relying on the sitemap
An XML sitemapAn XML sitemap is a UTF-8 file listing the canonical URLs on your site (with optional lastmod) so search engines can discover and prioritize them. It's a discovery and diagnostic aid, not a guarantee of indexing — and Google ignores its priority and changefreq tags. can introduce a URL to a crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index., but it does not give the page a place in the internal-link graph. Add a relevant crawlable path from a hub, category, or contextual source if the page matters.
Using nofollow to sculpt internal PageRank
Nofollowing selected internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. does not preserve a neat pool of value for the remaining links. Keep useful navigation followable and remove or redesign links that should not exist instead of trying to sculpt them.
Linking with buttons or click handlers only
A control that changes routes through JavaScript may not expose a usable destination.
Use ordinary <a href> links for navigable pages, then enhance their behavior.
Adding links from irrelevant sentences
Keyword overlap is not enough. A link should help the reader continue the task or understand the concept. Sitewide automated insertions can create confusing anchors, self-links, and links that contradict the sentence.
Sending internal links through redirects or errors
Old URLs, redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency., and broken destinations waste crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. and frustrate users. Update the source link to the final canonical destination and verify its status after migrations or large publishing changes.
Repeating one exact anchor mechanically
Internal exact-match anchors are not the external-link spam problem people often fear, but repetitive boilerplate is still poor writing. Use concise, descriptive language that fits each source context.
Internal-link audit cheat sheet
| Finding | Why it matters | First check | Typical fix |
|---|---|---|---|
| Orphan indexable page | No crawlable path or contextual prominence | Compare known URL sources with a homepage-seeded crawl | Link it from the most relevant reachable hub or page |
| Broken internal linkAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. | Stops users and crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. | Source URL, target status, and final URL | Correct or remove the link |
| Redirecting internal link | Adds a needless hop and may preserve stale routing | Redirect chainA → B → C instead of A → C. Each hop loses link equity and adds latency. and final canonical | Point the source directly to the final URL |
| Generic anchor | Destination is unclear out of context | Read anchor plus surrounding sentence | Rewrite it descriptively and naturally |
| Link exists only after interaction | Discovery depends on client behavior | Raw and rendered DOM; inspect the element’s href | Use a crawlable anchor for the route |
| Important page is deep | The graph may understate its importance | Shortest path and source templates | Add useful links from shallower relevant pages |
| Excess sitewide links | Hierarchy and usability become noisy | Navigation/footer link counts by template | Keep core destinations sitewide; move long-tail paths into hubs |
| Self-link or canonical mismatch | Adds noise or points at a competing URL | Normalize source, target, and canonical | Remove self-links and link to the canonical destination |
DevTools Console: export links on the current page
Run this in the browser DevTools Console. It resolves relative URLs and marks whether each destination shares the current origin.
copy(JSON.stringify([...document.querySelectorAll('a[href]')].map(a => ({
anchor: a.textContent.trim().replace(/\s+/g, ' '),
href: a.href,
internal: new URL(a.href).origin === location.origin,
rel: a.rel,
visible: Boolean(a.getClientRects().length)
})), null, 2)); XPath: extract anchors and destinations in a crawler
Use these in a custom-extraction tool that supports XPath.
//a[@href]/normalize-space(string(.))//a[@href]/@hrefKeep the two extractions aligned by element order, or export them together if the crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. supports element-level fields.
Regex: find generic anchor text in HTML
This case-insensitive review pattern captures the destination in group 1 and a common generic anchor in group 2. It is intentionally narrow and is not an HTML parser.
<a\b[^>]*href=["']([^"']+)["'][^>]*>\s*(click here|read more|learn more|this page)\s*</a>Bookmarklet: outline internal links and show their anchors
Save the one-line code as a bookmark URL, then run it on a page you are auditing.
javascript:(()=>{document.querySelectorAll('a[href]').forEach(a=>{if(new URL(a.href,location.href).origin===location.origin){a.style.outline='2px solid #7c3aed';a.title=`${a.textContent.trim()} → ${a.href}`;}});})();The bookmarklet changes only the current rendered view. Reload the page to clear the outlines.
Resources worth your time
My related writing
- Internal Links for SEO: An Actionable Guide — the full Ahrefs guide: PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. flow, contextual link counts, pyramid structure, anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page., and an audit workflow.
- The Beginner’s Guide to Technical SEO — where internal linkingLinks between pages on the same site. and site architectureSite architecture is how a website's pages are organized, categorized, and interlinked. It controls how crawlers discover pages, how link equity flows, and how clearly search engines understand each page's topical context. Silo structure, hub and spoke, and topic clusters are the three common models. fit in the bigger picture.
- The State of Nofollow, UGC, & Sponsored Link Attributes — my study on link attributes, including how much internal nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing. is still (needlessly) out there.
My speaking
- Local Link Building (Pubcon Local 2021) — includes the finding that internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. seem to matter proportionally more for local queries.
Official
- Google’s SEO link best practices — the canonical reference for crawlable links, anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page., and link counts.
From around the industry
- r/TechSEO — the community for orphan-page, crawl-depth, and internal-link debugging.
- Google: What Crawl Budget Means for Googlebot — Gary Illyes’s canonical post on how internal links drive crawl prioritisation on large sites.
- Google: Evolving “nofollow” — the 2019 announcement that shifted nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing. to a hint and introduced
rel="sponsored"andrel="ugc". - Mueller: Google Uses PageRank for Internal Links (Search Engine Roundtable) — Mueller confirms internal links pass PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. the same way external links do.
- Mueller: Internal Linking Signals Page-Level Importance (Search Engine Roundtable) — Mueller on how internal link counts inform Google’s sense of which pages matter most.
- Internal Linking Is “Super Critical” for SEO, Says Google (Search Engine Journal) — the 2022 Mueller hangout report with the “super critical” quote.
- Moz: Internal Links — Moz’s reference page on internal link theory, PageRank, and strategy.
- Don’t Try to Reinvent the SEO Wheel, Says Google’s Martin Splitt (Search Engine Land) — Splitt on why sites keep breaking crawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. with non-
<a href>link patterns.
Test yourself: Internal Links
Five quick questions on internal linkingLinks between pages on the same site. for SEO. Pick an answer for each, then check.
Internal Link
An internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them.
Related: Internal Linking, PageRank, Anchor Text, Crawl Budget
Internal Link
An internal link is a hyperlink that points from one page on a website to another page on the same website — as opposed to an external (or outbound) link, which points to a different domain. Technically, to be crawlable by Google it has to be a standard HTML <a href> element with a resolvable URL; onclick handlers and framework router attributes without an href don’t count.
Internal links do two jobs at once. First, they’re the primary way crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. discover pages — GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. finds most new URLs by extracting links from pages it already knows. A page with no internal links pointing to it (an “orphan pageAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site.”) is unlikely to be foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. or ranked. Second, they pass ranking signals: PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. flows along internal links, and the anchor textAnchor text is the visible, clickable text of a hyperlink. It tells readers what they'll find on the other end and gives search engines context about the linked page. gives search engines topical context about the page being linked to.
Because of that second job, internal linkingLinks between pages on the same site. is one of the most direct levers you have over which of your own pages search engines treat as important. The more (and the better) you link to a page from relevant places on your site, the stronger the signal that it matters. This is why John Mueller has called internal linking “super critical for SEO.”
Related: Internal Linking, PageRank, Anchor Text, Crawl Budget
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Updated Jul 18, 2026.
Editorial summary and recorded change details.Summary
Added three grounded qualifications the research review flagged as missing: the title-attribute/image-alt anchor-text fallbacks, JavaScript rendering as a separate discovery stage, and the boundary between a crawlable link and destination-level indexability (redirects, errors, noindex, canonicalization) plus nofollow's alternate-discovery caveat.
Change details
-
Clarified that Google falls back to the title attribute only for an otherwise-empty anchor, and uses linked-image alt text as anchor text — distinct from normal descriptive anchor-text guidance.
-
Noted that JavaScript rendering is a separate, later crawl stage from initial discovery, and doesn't rescue a click handler with no real href.
-
Added that nofollowing an internal link doesn't wall off the destination if it's discoverable through another link, the sitemap, or prior crawls.
-
Added a destination-eligibility caveat: a crawlable link can't override a redirect, error, noindex, or canonical mismatch on the destination — those need separate debugging.
Full comparison unavailable — no prior snapshot was archived for this revision.