Free SEO audit for new clients — claim yours
Home/Blog/SEO/Internal Anchor Text Audit: Fixing Over-Optimize…
SEO

Internal Anchor Text Audit: Fixing Over-Optimized Links

Internal Anchor Text Audit: Fixing Over-Optimized Links
Table of contents
  1. Why internal anchor text still matters
    1. Why this is different from backlink anchor text
    2. Why Search Console won't show your internal anchors
  2. Exporting every internal anchor with a crawler
  3. Turning the export into an anchor profile for each page
  4. Navigation vs contextual anchors: audit them separately
  5. Spotting exact-match overuse in your contextual links
  6. Generic anchors that waste your links
  7. A worked example: auditing one service page's anchors
  8. Rewriting anchors safely, step by step
  9. Anchor text guidelines to give your writers
  10. Questions about internal anchor text audits
    1. Can internal anchor text be over-optimized?
    2. Are exact-match internal anchors bad?
    3. Do menu links count the same as links in the content?
    4. Can I see internal anchor text in Google Search Console?
    5. How often should I audit internal anchors?
    6. What is a good anchor text length?
  11. Running your first internal anchor audit this month
  12. Further reading on internal anchor text audit
  13. Sources for this internal anchor text guide

Many site owners have heard that exact-match anchor text is risky for backlinks. Fewer know what to think about their internal links, the links between their own pages. A common belief is: "It's my site, so I can use my main keyword as the anchor every time. More is better."

That is half right. You do control your internal links completely, and Google does use their anchor text to understand your pages. But "more of the same keyword" is not the same as "better." A site where 80 links all say "best divorce lawyer Chicago" doesn't look clearer to Google. It looks forced. Meanwhile, the same site often wastes dozens of other links on "click here" and "read more."

In this guide, let me walk you through an internal anchor text audit from start to finish: how to export every internal anchor, how to spot overuse and wasted links, how to treat menus differently from in-text links, and how to fix things safely. At the end, you will find simple guidelines to give your writers so the problem doesn't come back.

Why internal anchor text still matters

Anchor text is the visible, clickable text of a link. Google's link best practices explain that it helps both people and Google understand what the linked page is about. Its definition of good anchor text is the best short guide I know:

“Good anchor text is descriptive, reasonably concise, and relevant to the page that it's on and to the page it links to.”

— Google Search Central, Link best practices for Google

Internal links matter for a second reason too. They show Google which pages are important and how your site fits together. Google's same page says every page you care about should have a link from at least one other page on your site.

So internal anchors do two jobs at once: they describe the target page and they pass importance to it. An audit checks both. If you need the bigger picture of internal linking first, read my guide on internal linking strategy, or our beginner lesson on connecting your pages. This article focuses only on the words inside the links.

With backlinks, other people choose the anchor. Ahrefs' article on SEO over-optimization explains that a lot of exact-match backlink anchors can be a sign of bought or manipulated links, and advises leaving the anchor to the person linking. With internal links, you choose every anchor. There is no natural variety unless you create it. That is why internal anchors drift towards repetition over time, especially when one person writes most of the content. My guide to anchor text types and ratios covers the backlink side.

Why Search Console won't show your internal anchors

Many people start in Google Search Console, and it is a good place to check how many internal links each page gets. But for anchor text, it has a gap. According to Google's help page on the Links report, the "Top linking text" table:

“Covers only links from outside your property.”

— Search Console Help, Links report

So Search Console shows your external anchors, not your internal ones. Its internal section shows which of your pages are linked most from within your site, and you can click a page to see which pages link to it. The help page also notes that the report isn't a complete list of every link, and tables are limited to 1,000 rows.

That makes Search Console useful for one part of the audit: spotting important pages with very few internal links. For the anchor text itself, you need a crawler.

Exporting every internal anchor with a crawler

Any good SEO crawler can do this. I will use Screaming Frog as the example because it is common and has a free version for small sites (up to 500 URLs). If you are new to it, my Screaming Frog guide for beginners covers setup.

Here is how I would run the export:

  1. Crawl the whole site. If your menus or links are added with JavaScript, turn on JavaScript rendering first, or you may miss links.
  2. Run crawl analysis when the crawl finishes, with the "Links" option ticked. Screaming Frog's internal linking audit tutorial explains that some link filters only fill in after this step.
  3. Export all inlinks. Use Bulk Export > Links > All Inlinks. Screaming Frog's user guide describes this as every link to every URL the crawler found, including images, canonicals and hreflang, not just normal links.
  4. Open the file in a spreadsheet and filter the "Type" column to normal hyperlinks only. Remove canonicals, hreflang, CSS, JavaScript and image file links.
  5. Remove links to other websites, so you keep only links where both source and destination are on your domain.
  6. Keep the useful columns: source, destination, anchor, alt text (for image links), link position and follow status.

On a large site this file can have hundreds of thousands of rows. That is normal. Most sites have far more links in menus and footers than in the content itself.

If you have already done a general internal link audit for broken links and orphan pages, you may already have this export. Reuse it.

Turning the export into an anchor profile for each page

A raw list of links is hard to read. What you want is an anchor profile for each important page: a short table showing every anchor used to link to it and how often.

In your spreadsheet, build a pivot table with:

  • Rows: Destination, then Anchor
  • Values: Count of Source
  • Filter: Link Position (more on this below)

Then add a column that labels each anchor by type. Here are the types I use:

Anchor typeExample (target: divorce lawyer page)What it tells Google
Exact matchdivorce lawyer ChicagoThe exact keyword. Clear, but repetitive when overused.
Partial matchour Chicago divorce team, help with a contested divorceThe topic, in natural variations
Descriptivehow we handle child custody disputesA specific angle of the page
BrandedSmith & Lee Family LawYour brand, little about the topic
Genericclick here, read more, learn moreAlmost nothing
Image link(alt text of the image)Whatever the alt text says, or nothing if empty
Naked URLexample.com/divorceVery little

Image links are worth a quick note. Google's link guide says that for image links, it uses the image's alt text as the anchor. An image link with empty alt text gives no description at all. If your site uses icon-only links, my guide to what Google can index in SVGs, icons and background images explains the problem with icon fonts here.

This is the step most audits skip, and it changes everything. A menu link to your "Divorce Lawyer" page appears on every page of your site. On a 300-page site, that is 300 identical anchors before a writer has added a single link. If you mix these with in-text links, every page looks "over-optimized."

Screaming Frog sorts links by position. According to its guide to link position, the categories are navigation, header, aside (sidebars and call-out boxes), footer and content. It classifies them using the page's HTML elements, such as header, nav and footer. If your theme doesn't use those elements, many links may land in the wrong group, and you can set custom rules.

So I split the audit into two parts:

Link groupWhat to checkWhat good looks like
Navigation, header and footerAre labels short, clear and consistent? Do they match what people call the service?Short labels like "Divorce" or "Child Custody." One version per page, no keyword strings.
Sidebars and call-out boxesAre the same boxes repeating the same keyword anchor on hundreds of pages?A few relevant boxes, with varied wording or a clear call to action
Content (in-text links)Variety, relevance to the sentence, generic anchors, exact-match overuseMostly descriptive and partial-match anchors that fit the sentence

For menus, the question is not "how many exact matches?" but "is the label clear and short?" A menu item called "Best Divorce Lawyer in Chicago IL" is a problem on its own, because it repeats a keyword string sitewide. A menu item called "Divorce" is fine, even though it appears 300 times.

Now look only at the content links. For each important page, calculate what share of its in-text anchors are exact match.

Google doesn't publish a ratio, and I won't invent one. But here is the rough guide I use to decide where to look first. Treat it as a way to prioritize, not a rule from Google:

  • Most anchors different, a few exact match: healthy. Leave it.
  • About half exact match: worth reviewing, especially if the same phrase repeats word for word.
  • Nearly all exact match, the same string again and again: clearly forced. Fix this first.

Other warning signs to look for:

  • Long keyword strings like "affordable divorce lawyer Chicago IL near me." Google's guide lists overly long anchors as bad.
  • Anchors that don't fit the sentence, such as "Many couples ask about best divorce lawyer Chicago before they file."
  • The same keyword anchor pointing to two different pages. This confuses which page is meant to rank and can be a sign of keyword cannibalization.
  • Location stuffing in anchors, like linking every town name to a separate city page. That ties into the issue I cover in my guide to city-name stuffing on local pages.

Google's link guide puts it in a way any writer can use:

“If it feels like you're forcing keywords into the anchor text, then it's probably too much.”

— Google Search Central, Link best practices for Google

Over-optimization gets the attention, but the opposite problem is just as common: links that describe nothing. "Click here," "read more," "learn more," "this article" and "here" tell Google nothing about the page they point to. Google's link guide lists "click here" and "read more" as examples of bad anchor text.

Screaming Frog has a ready-made check for this. Its internal linking tutorial describes a filter called "Non-Descriptive Anchor Text In Internal Outlinks", with an export at Bulk Export > Links > Non-Descriptive Anchor Text In Internal Outlinks. You can edit the list of words it treats as non-descriptive under Configuration > Spider > Preferences.

Google offers a simple test: read only the anchor text, out of context, and check whether it makes sense on its own. "Read more" fails. "How long a contested divorce takes in Illinois" passes.

The common culprits are usually templates, not writers:

  • "Read more" buttons on blog archive pages
  • "Learn more" buttons on service cards
  • "View details" on product grids
  • Linked icons with no text or alt

Fixing a template fixes hundreds of links at once. For buttons, an easy fix is to include the title in the link, such as "Read the custody guide," or to make the card's heading the link.

A worked example: auditing one service page's anchors

Let me pull this together with a hypothetical example. A law firm's site has 180 pages. Its "Chicago divorce lawyer" page is its most valuable. The export shows 214 internal links pointing to it.

Link positionLinksAnchors found
Navigation180"Divorce Lawyer Chicago IL" on every page
Footer0-
Sidebar box0-
Content3422 x "Chicago divorce lawyer", 5 x "click here", 4 x "divorce lawyer", 3 descriptive

What the audit tells us:

  1. The menu label is a keyword string repeated 180 times. Change it to "Divorce."
  2. 22 of 34 content links (about 65%) use the identical exact-match phrase. That is forced. Rewrite around 15 of them to descriptive or partial-match anchors that fit each sentence, such as "how we approach high-asset divorces" or "our divorce team's fees."
  3. 5 "click here" links are wasted. Rewrite each to describe the page.
  4. Only 3 descriptive anchors. These are the most natural links on the page. Use them as models for writers.

After the fixes, the content anchors might look like: 7 exact match, 9 partial match, 18 descriptive and 0 generic. The page still gets the same 214 links, and the topic is still clear. The difference is that the anchors now read like a person wrote them.

Rewriting anchors safely, step by step

Changing hundreds of anchors at once is risky. You might weaken a page that ranks well, or create new problems. Here is how I would make the changes carefully:

  1. Start with your 10 to 20 most important pages. Money pages and pages close to page one first.
  2. Record a baseline. Note each page's clicks, impressions and average position from Search Console for the last three months.
  3. Fix templates first. Menu labels, "read more" buttons and sidebar boxes. These give the biggest change for the least work.
  4. Then fix content links, starting with the most repeated exact-match phrase. Rewrite the whole sentence if needed, so the link fits naturally.
  5. Keep some exact-match anchors. The goal is variety, not zero. A few exact anchors in the right places are perfectly natural.
  6. Don't remove links just to fix anchors. A relevant link with an imperfect anchor is better than no link at all.
  7. Check that both ends are relevant. Google's definition says good anchor text is relevant to the page it is on and the page it links to. If the link doesn't fit the source page, move it.
  8. Recrawl to check you didn't break anything, then wait four to six weeks before judging results.

A word of honesty: there is no public study showing a precise ranking gain from rebalancing internal anchors. I treat this as clean-up that makes your signals clearer, not a magic lever. The bigger wins usually come from linking to the right pages in the first place.

Anchor text guidelines to give your writers

The audit fixes today's problem. Guidelines stop it coming back. Here is a short sheet you can share with anyone who writes for your site:

DoDon't
Describe what the reader will find on the linked pageUse "click here," "read more" or "this"
Keep it short: usually 2 to 7 wordsLink a whole sentence or a long keyword string
Fit the anchor into the sentence naturallyBend the sentence to fit a keyword
Vary wording when you link to the same page oftenUse the same exact phrase every time
Link only where the reader would want to go nextAdd links just to reach a quota
Point each keyword phrase at one main pageUse the same phrase to link to two different pages
Space links apart in the textChain links next to each other

The last row comes straight from Google's guide, which says not to chain links next to each other because readers find it harder to tell them apart. Google also notes that the words before and after a link matter, so the whole sentence should make the context clear.

A simple rule for writers: "If you read the anchor alone, would you know where it goes? If you read the sentence aloud, does it sound normal?" Two yeses means it is a good anchor. Content tools sometimes suggest exact phrases to link, so I would treat those suggestions the same way I treat content optimization scores: a prompt, not an order. And when you plan which subtopics deserve their own linked pages, my guide to subtopic coverage helps you decide.

Questions about internal anchor text audits

Can internal anchor text be over-optimized?

Yes, in the sense that heavy repetition reads as forced, and Google's link guide warns against cramming keywords into anchors. It is a much smaller risk than manipulative backlink anchors, but it still makes your pages worse for readers.

Are exact-match internal anchors bad?

No. A few are natural and helpful. The problem is when nearly every link to a page uses the same exact phrase, especially when it doesn't fit the sentence.

They are all links, but audit them separately. Menu anchors repeat on every page by design, so judge them on clarity and length, not on repetition.

Can I see internal anchor text in Google Search Console?

No. The Links report's "Top linking text" only covers links from other sites. Use a crawler to export internal anchors.

How often should I audit internal anchors?

Once a year is enough for most small sites, or after a redesign, a migration or a big content push.

What is a good anchor text length?

Google doesn't give a number. It asks for anchors that are reasonably concise. In practice, 2 to 7 words covers most good anchors.

Running your first internal anchor audit this month

In brief: export your internal links, split menus from content, check your top pages for repeated exact-match phrases and wasted "click here" links, then fix templates first and content second. Give your writers the guidelines above, and recheck once a year.

This kind of audit fits well alongside a wider on-page review. If you would like our team to run it for you and handle the fixes, our on-page optimization and SEO services cover internal linking in full. You can also get in touch for a free quote and tell us about your site.

Further reading on internal anchor text audit

Sources for this internal anchor text guide

  1. Google Search Central: Link best practices for Google
  2. Google Search Central: SEO Starter Guide
  3. Search Console Help: Links report
  4. Ahrefs: SEO Over-Optimization
  5. Screaming Frog: Internal linking audit with the SEO Spider
  6. Screaming Frog: How to analyse link position
  7. Screaming Frog: SEO Spider user guide, general
  8. Google Search Central: Spam policies for Google web search
Rohit Choudhary
Written byRohit ChoudharyCo-Founder, My SEO Experts

Rohit Choudhary is the co-founder of My SEO Experts and has more than 14 years of hands-on experience in SEO, paid advertising and digital marketing. Since starting out in 2011 he has helped hundreds of businesses grow through practical, data-driven search strategies, and he also serves as a consulting Digital Marketing Director for several US-based companies.

Keep reading

Related articles

Ready to grow your business online?

Get a free, no-obligation proposal tailored to your goals and budget.

CallFree Quote