Anchor text optimization is the practice of writing descriptive, keyword-relevant clickable text for internal links instead of generic phrases like "click here." A study of 23 million internal links found that pages with diverse, descriptive anchor text consistently rank higher than pages linked with generic or repetitive text.
Most SEOs already know that internal linking matters for rankings. But few realize that what your links say matters just as much as where they point. The anchor text inside your internal links is one of the strongest, most overlooked signals you can control.
This article breaks down the data behind that claim, what Google's own engineers and leaked documentation reveal about anchor text scoring, and exactly how to write better anchors.
Why anchor text diversity is the strongest ranking signal
Anchor text diversity means using varied, natural phrasing when linking to a page rather than repeating the same text every time. Data from two major studies shows it has a direct, measurable correlation with rankings.
Zyppy analyzed 23 million internal links across 1,800 websites and roughly 520,000 URLs, then cross-referenced everything with Google Search Console click data. Their finding on anchor text was so strong they ran the data three times to confirm it. URLs with a larger number of anchor text variations from internal links are highly correlated with more Google search traffic. The raw number of links mattered less than the uniqueness of the text inside them (Zyppy).
Even more telling: pages with at least one exact match anchor (anchor text matching the target page's primary keyword) had at least 5x more traffic than pages without one (seo.ai).
The AuthorityHacker study of 10,000 top-ranking URLs measured average Google rankings by anchor diversity level and found a gap that's hard to ignore:
| Anchor diversity level | Average Google ranking |
|---|---|
| High diversity | 1.3 |
| Low diversity | 3.5 |
That's a ~2 position difference driven purely by how varied the anchor text is. At the top of SERPs, two positions is the difference between getting clicked and being invisible (AuthorityHacker).
Why does diversity matter so much? Because each variation teaches Google about a different facet of the page. If your "SEO Audit Guide" page only gets linked with "SEO audit guide" 20 times, Google knows one thing about it. If it gets linked with "SEO audit checklist," "how to audit your site," "technical site review," and "crawl analysis guide," Google builds a much richer semantic understanding of that page's topic. You're covering more territory with every unique anchor.
What Google's leaked documentation reveals about anchor text
In 2024, internal documentation for Google's Content Warehouse API was accidentally published, giving SEOs a rare look at how Google actually processes anchor text. The findings confirm what the studies suggest, and add detail that Google has never publicly shared.
Google scores internal and external anchors separately. The leak revealed a system called SimplifiedAnchor that categorizes on-site anchors (internal links) and off-site anchors (external links) independently. Each gets its own count and score before they're combined for the final evaluation (iPullRank). This means your internal anchor text profile is a distinct signal, not just noise mixed in with backlinks.
Anchor mismatch gets demoted. The attribute anchorMismatchDemotion shows that Google actively penalizes links where the anchor text doesn't match the target page's topic. If your anchor says "pricing plans" but links to a blog post about SEO audits, that link gets devalued (iPullRank).
Some internal links get dropped entirely. The droppedLocalAnchorCount attribute indicates that Google selectively excludes certain internal links from its calculations. "Local" in Google's internal terminology means same-site. Not every internal link you build necessarily counts (Search Logistics).
Font size matters. Google tracks fontsize for anchor text, storing the weighted font size of links within documents. This confirms that the visual prominence of your link text factors into how much weight it receives. A link buried in small footer text is scored differently from a link in your main body content (iPullRank).
The leak also revealed anchor quality tiers (HIGH_QUALITY, MEDIUM_QUALITY, LOW_QUALITY) based on the source page's authority, and trust levels (NOT_TRUSTED, PARTIALLY_TRUSTED, FULLY_TRUSTED) that influence how much weight individual links receive. The more authoritative the page your internal link sits on, the more that anchor text matters.
Content links vs. navigation links: they're not equal
Not all internal links carry the same weight. A link in your blog content passes significantly more value than the same link in your footer or sidebar navigation.
| Content links | Navigation links | |
|---|---|---|
| Location | Within article/page body | Header, footer, sidebar menus |
| SEO weight | High | Low |
| Anchor text | Descriptive, varied, keyword-relevant | Generic ("Products," "About," "Home") |
| Click probability | Higher (contextual, editorial) | Lower (repetitive, "snow blindness") |
| Optimization priority | Focus here | Leave as-is |
This isn't speculation. Google's Reasonable Surfer patent (US7,716,225) describes an algorithm that assigns different values to different links on a page based on the probability a real user would click them. Position on the page, font size, whether the link sits in content or navigation, and actual user behavior data all factor in. Contextual links surrounded by relevant text consistently pass the most value (SEO by the Sea).
Google's Gary Illyes confirmed this directly: "a footer link basically has a lot lower value than an in-content link" (Search Engine Journal).
The practical takeaway: don't waste time optimizing anchor text in your menus and footers. Navigation links using generic labels like "Products" or "Contact" are expected and normal. Your optimization effort belongs in content-area links, the ones within blog posts, articles, and page copy, where editorial choice matters and Google extracts the strongest semantic signals.
There's no over-optimization penalty for internal anchor text
Can you over-optimize internal anchor text? No. Unlike external backlinks, where aggressive exact-match anchors can trigger Google's Penguin algorithm, internal links play by different rules.
Google's Gary Illyes said it plainly during a Reddit AMA: "No, you can abuse your internal links as much as you want AFAIK" (Search Roundtable).
John Mueller has called internal linking "super critical for SEO" and confirmed that anchor text provides context to Google about the target page, though he noted it may not always produce a "visible effect in search" on its own (Search Engine Journal).
The Google API leak reinforces this. The leaked documentation shows that Penguin primarily targets external anchor text patterns, detecting manipulation through repetition and similarity across linking domains. Internal anchors receive different treatment. They're scored separately through the SimplifiedAnchor system and don't appear to trigger the same spam detection thresholds (Search Logistics).
The best real-world proof? Wikipedia. Millions of pages, aggressive exact-match internal anchor text everywhere, and no penalty. Every internal link on Wikipedia uses descriptive, keyword-rich text that tells you exactly what the target page is about. Google rewards this because it helps users and crawlers navigate the site.
This only applies to internal links. For external backlinks, over-optimized anchor text absolutely can trigger Penguin penalties. Keep your external anchor profile diverse and natural. The "no penalty" rule is specifically for links within your own site.
That said, "no penalty" doesn't mean "repeat the same anchor 50 times." As the diversity data shows, varied anchors outperform repetitive ones. The point isn't to stuff keywords. It's that you can be aggressive with descriptive, keyword-relevant internal anchors without fear of algorithmic punishment.
The real cost of generic anchors
Generic anchor text is any non-descriptive phrase used as a link: "click here," "read more," "learn more," "this article," "check it out." It is the single most common anchor text mistake on the web, and it has a measurable cost.
Generic anchors provide zero semantic signal to search engines. When Google encounters a link that says "click here," it learns nothing about the target page. The link equity still flows, but without any topical context attached to it. Every generic anchor is a wasted opportunity to tell Google what the page is about.
The Zyppy data puts a number on this: pages with at least one exact match anchor receive 5x more traffic than pages with no descriptive anchors at all (seo.ai). The more of your content-area anchors that are generic, the more equity you're leaving on the table.
Google's own documentation explicitly advises against it. Their link best practices page says to write anchor text that is "useful, informative, and relevant" and to avoid generic text that tells the reader nothing about the destination.
The most common sources of generic anchors are CMS templates ("Read more" buttons under blog excerpts), navigation patterns ("Learn more" CTAs), and lazy editorial habits. Most of these can be fixed with simple template changes or a content audit focused on replacing generic text with descriptive alternatives.
Best practices for writing better anchor text
The optimal anchor text is 2 to 6 words long, descriptive of the target page's topic, and varied across the different links pointing to that page. Here are the specific guidelines backed by the data:
- Keep anchors between 2 and 6 words
- Vary the anchor text for every target page
- Match the anchor to the target page's topic
- Front-load important keywords
- Add descriptive alt text to image links
- Keep generic anchors below 15% of content-area links
Optimal anchor text length: 2 to 6 words
The AuthorityHacker study found that shorter anchors correlate with higher rankings. Anchors exceeding 100 characters showed a negative correlation with performance. The sweet spot across multiple studies lands between 2 and 6 words (AuthorityHacker).
Google's own documentation recommends using "short, descriptive phrases" and avoiding "lengthy sentence or short paragraph" anchor text (Google Search Central).
Vary your anchors for every target page
Don't link to the same page with the same text 20 times. If you're linking to your SEO audit guide from multiple articles, use natural variations:
| Instead of this | Try these variations |
|---|---|
| "SEO audit" (repeated everywhere) | "SEO audit checklist," "how to audit your site," "technical site review," "crawl analysis guide" |
| "click here" | "our guide to site audits," "step-by-step audit process," "audit your technical SEO" |
| "read more" | "full breakdown of audit metrics," "see the complete audit methodology" |
Each variation covers a different long-tail keyword and builds a richer semantic profile for the target page. The Zyppy study confirmed this is the single strongest predictor of organic traffic.
Match the target page's topic
The Google API leak revealed anchorMismatchDemotion, confirming Google demotes links where the anchor doesn't match the target page's topic. Your anchor text should give the reader an accurate preview of what they'll find when they click.
This doesn't mean every anchor must be an exact keyword match. Partial matches, synonyms, and natural descriptions all work. "How to improve your site speed" is a perfectly good anchor for a page about Core Web Vitals optimization. "Great resource" linking to that same page tells Google nothing.
Front-load your keywords
Google's documentation recommends placing important words at the beginning of anchor text (Google Search Central). "SEO audit checklist for ecommerce sites" is better than "A complete guide to doing an SEO audit for your ecommerce site." Shorter and front-loaded.
Fix image links with empty alt text
When an image is wrapped in a link, Google uses the image's alt attribute as the anchor text. If the alt text is empty, that link has zero anchor text, the same problem as a "click here" link but even worse because there's no visible text at all.
Audit your linked images and make sure every one has a descriptive alt attribute. "Homepage screenshot of SEO audit dashboard" is far more useful than alt="" when that image links to your product page.
Aim for less than 15% generic anchors
Based on aggregated data across multiple studies, your content-area anchor profile should look roughly like this:
| Metric | Target |
|---|---|
| Anchor length | 2-6 words |
| Generic anchor ratio | As low as possible in content-area links |
| Diversity ratio | Unique anchors / total inbound links > 0.5 |
| Topical relevance | Most anchors should relate to the target page's title or H1 |
These benchmarks apply to content links only. Navigation and footer links naturally use generic text and shouldn't be counted in this ratio.
How to audit your anchor text
Knowing the best practices is only half the equation. You also need to see what your current anchor text profile looks like across your entire site.
This is where most sites get stuck. Manually checking the anchor text of every internal link across hundreds or thousands of pages isn't realistic. You need a crawler that can extract every internal link, map the anchor text, and flag the problems: generic anchors wasting equity, missing diversity on key pages, anchor-topic mismatches, and image links with empty alt text.
Unveil SEO does exactly this. It crawls your site, analyzes every internal link's anchor text, and scores your anchor quality based on diversity, generic ratio, topical relevance, and length. You get a clear picture of which pages need better anchors and what to change, without manually digging through source code.


