/ โ† Internal Linking Fixes / Vague Anchor Text
In this guide
  1. What anchor text does for an internal link
  2. Where vague anchors actually come from
  3. Finding and grouping the weak anchors
  4. Fixing card and excerpt templates
  5. The fix, step by step
  6. Before and after: rewrites that work
  7. Going too far the other way
  8. Keeping new content clean
  9. Questions and answers

What anchor text does for an internal link

A link has three parts that carry meaning: the address it points to, the words you click, and the sentence around it. The address tells a crawler where to go but very little about why. The words and their surroundings tell both people and search engines what to expect when they arrive.

Google's own guidance on links asks for anchor text that is descriptive, reasonably concise and relevant to the page being linked to. It also says the text around a link helps, and that for a linked image the alt text is treated as the anchor. None of this is special to backlinks: the links between your own pages are read in the same way, and they are the ones you can change today without asking anybody.

For internal links the benefit is practical rather than magical:

๐Ÿ’ก Think of every internal anchor as a tiny title for the page it points to. If you would not use the words as a title for that page, they are probably too vague.

Where vague anchors actually come from

When the Internal Link Analysis rates a site's anchor text poorly, the first instinct is to blame the writers. In practice, a few repeated sources produce most of the problem, and they fall into two groups.

Template anchors: written once, repeated everywhere

Content anchors: written by a person, one at a time

The split matters because the fixes are completely different. A template anchor is fixed once in code and disappears from every page. A content anchor is fixed one sentence at a time, so you prioritise by the value of the page it points to.

Finding and grouping the weak anchors

The Internal Link Analysis rates how descriptive the anchor text is and shows, for each page, the words used in the links pointing at it. Start from the destination, not the source: for each of your most important pages, read the list of anchors it receives. That list tells you how your own site describes the page.

A healthy list for a boiler repair page might read: "boiler repair", "emergency boiler repairs", "repair a combi boiler", "our boiler engineers", "Boiler repair" (from the menu). An unhealthy one reads: "read more", "here", "Learn more", "click here", "Boiler repair" (from the menu). The second page is only described properly by its menu link.

Check a single page in the browser

To see every internal anchor on the page you are viewing, open developer tools, go to the Console and paste this. It lists each internal link with its text, or its image alt text if the link is an image:

[...document.querySelectorAll('a[href]')]
  .filter(a => a.hostname === location.hostname)
  .map(a => ({
    text: (a.innerText || a.querySelector('img')?.alt || a.getAttribute('aria-label') || '(empty)').trim(),
    href: a.pathname
  }))
  .forEach(x => console.log(x.text.padEnd(40), x.href));

Run it on a listing page and a typical article and you will quickly see whether the vague anchors are coming from repeated components or from the writing.

Group by pattern in a spreadsheet

If you export the anchor data, add a column that classifies each anchor: descriptive, generic (read more, learn more, here, click here, view), URL, empty or navigation (menu, breadcrumb and pagination links). Then count generic anchors by the source page type. If almost all of them come from archive and listing pages, one template fix will clear most of the report.

Anchor you seeLikely sourceWhere to fix
Read more / Continue readingBlog excerpt or archive cardTheme template or excerpt_more filter
Learn more / View detailsService or product card componentCard partial or page builder module
(empty) or an arrow symbolIcon link or linked image without altComponent markup and image alt fields
click here / hereEditorial copyPage content, one sentence at a time
https://example.co.uk/...Pasted address in contentPage content

Fixing card and excerpt templates

The most effective single change is to make the card's heading the link, then either remove the separate "Read more" link or make it clearly secondary. The heading already names the destination, so it is the natural anchor.

Plain HTML card

Before, the only link says "Read more":

<article class="card">
  <h3>Winter boiler checklist</h3>
  <p>Six things to check before the cold weather arrives.</p>
  <a href="/advice/winter-boiler-checklist/">Read more</a>
</article>

After, the heading carries the link and the whole card can still be clickable with CSS if your design needs it:

<article class="card">
  <h3><a href="/advice/winter-boiler-checklist/">Winter boiler checklist</a></h3>
  <p>Six things to check before the cold weather arrives.</p>
</article>

WordPress excerpts

Many classic themes append a "Read more" link through the excerpt_more filter. You can change what it says in a child theme or a small plugin so the wording includes the post title:

add_filter( 'excerpt_more', function () {
    return ' <a class="more-link" href="' . esc_url( get_permalink() ) . '">'
        . sprintf( 'Continue reading: %s', esc_html( get_the_title() ) )
        . '</a>';
} );

Block themes build listings with the Query Loop block. There, check that the Post Title block inside the loop has "Make title a link" switched on, and either remove the separate Read More block or leave it as a secondary link after the title.

Shopify and other template languages

In a Shopify theme, article and product cards live in snippets such as a card partial. Look for a link whose text is a translation key like blogs.article.read_more and make sure the article or product title nearby is wrapped in the same link. The same idea applies to Twig, Blade, Nunjucks and React components: find the one partial, fix it, and every page that uses it improves at once.

โš ๏ธ Do not solve this by adding visually hidden keywords inside "Read more" links purely for search engines. Hidden text that differs from what people see is a poor pattern. If you need extra context for screen readers, the accessibility guide covers the right techniques.

The fix, step by step

Step 1

Pull the anchor report for your key pages

Run the Internal Link Analysis and list the ten or fifteen pages that bring you enquiries, bookings or sales. For each one, copy out the anchor text of every internal link pointing at it, including menu and breadcrumb links. Mark each anchor as descriptive, generic, a bare address or empty. This gives you a short, business-focused worklist instead of thousands of rows, and shows which important pages are described almost entirely by vague wording.

Step 2

Sort vague anchors into template and content

For each generic anchor, open the source page and find the element it sits in. If the same wording appears in the same position on every archive, listing or card, it comes from a template and belongs on the developer list. If it sits inside a paragraph someone wrote, it is content and belongs on the editor list. Doing this split before fixing anything stops you rewriting the same card by hand on two hundred separate pages.

Step 3

Fix card and excerpt templates first

Change the card, excerpt and tile components so the heading or product name is the link, and remove or demote the extra Read more, Learn more or View link. On WordPress that usually means the excerpt filter or the Query Loop title setting; on Shopify, the card snippet; on a custom build, the shared component. Test one listing page, then deploy, because this single change typically clears the largest share of generic anchors across the site.

Step 4

Rewrite anchors in the body copy

Work down the editor list, starting with links that point at your most valuable pages. Move the link onto the words that name the destination, such as annual boiler service rather than click here, and rephrase the sentence if needed so it still reads naturally. Replace pasted addresses with a short description. Keep anchors to a few words, and let the wording vary between pages so each link fits its own sentence rather than repeating one fixed phrase.

Step 5

Give image and icon links a text label

Find links whose only content is an image, logo, arrow or icon. For a linked image, write alt text that describes the destination, because that alt text acts as the anchor. For an icon link, add visible text where the design allows it, or an aria-label naming the destination. Banners that link to a category should say which category. An empty anchor tells neither a visitor nor a crawler anything, so treat these as part of the same job.

Step 6

Check that no two pages share the same anchor

Sort your anchor list by the anchor wording and look for the same descriptive phrase pointing at two different pages, for example boiler repair linking sometimes to a service page and sometimes to an old blog post. That sends mixed signals about which page covers the subject. Decide which page should own that phrase, repoint the stray links to it, and give links to the other page wording that describes what makes it different.

Step 7

Re-run the analysis and set an editing rule

Once the template changes are live and the main content rewrites are done, run the Internal Link Analysis again and compare the anchors received by your key pages with your first list. Then add one line to your writing guidelines: every link must name what the reader will find, and no link may say only here, click here or read more. A short rule that editors can remember prevents the problem slowly returning with new content.

Before and after: rewrites that work

The aim is not to squeeze a keyword into every link. It is to link the words that already describe the destination, which often means turning the sentence around slightly.

Page typeBeforeAfter
ServiceWe also repair boilers. Click here for details.We also carry out same-day boiler repairs across the town.
LocationWe cover several areas, see here.See the full list of villages we cover around Hartwell.
ArticleFor more tips, read this post.Our guide to bleeding radiators walks through it with photos.
CategoryBrowse the range here.Browse our waterproof walking boots.
Pricinghttps://example.co.uk/prices/Our fixed boiler service prices include parts and labour.
OverlongIf you would like to know more about how we can help you with your heating this winterFind out how our winter heating checks work.

Notice that none of the "after" anchors is stuffed. Each is the phrase a reader would use to describe the page, and each fits the sentence it sits in.

Buttons and calls to action

Action buttons such as "Book now", "Add to basket" or "Get a quote" are fine. They describe an action and people understand them. The problem is only with links whose job is to take someone to another page of information. If a "Book now" button is the only link on a page to your booking page, that is not an anchor text problem; it simply means you might also link to the booking page from relevant sentences elsewhere.

Going too far the other way

Once people learn that anchor text matters, the next problem is often over-correction. Watch for these patterns while rewriting.

๐Ÿ’ก A quick test for any anchor: read the linked words on their own, out of the sentence. If you can guess what the destination page is, the anchor is doing its job.

Menu and breadcrumb links are short by design, such as "Services" or "Boots". That is expected. They give structure, while links inside paragraphs give the descriptive detail, so there is no need to lengthen navigation labels to make them more descriptive.

Keeping new content clean

Anchor text drifts back to vague wording when new pages are written quickly or when a theme update restores a default "Read more" link. A few habits stop that.

  1. Check component defaults after theme updates. Parent theme updates can overwrite template changes that were not made in a child theme. Keep your card and excerpt changes in a child theme, a custom snippet or your own component library.
  2. Add the rule to your brief. Writers and freelancers should know that links must name their destination. Include one before-and-after example in the brief.
  3. Review links when you review copy. A quick scan of underlined words during proofreading catches most "click here" links before they go live.
  4. Use the CMS link picker. Link pickers that search your own pages by title encourage writers to link the words that match the title.
  5. Re-run the analysis after big content pushes. After a batch of new articles, check the anchors received by your key pages again.

If you are also reorganising how importance flows between pages, the link equity guide covers where to add links; this guide only covers what those links should say.

Questions and answers

1. Does anchor text on internal links affect rankings?

Anchor text helps search engines understand what the linked page is about, and Google's own link guidance asks for descriptive, concise anchors for exactly that reason. Internal anchors are read the same way as anchors from other sites. It would be wrong to promise a ranking jump from rewriting them, but vague anchors throw away a clear signal you fully control, and descriptive anchors also help visitors decide where to go next, which is worth doing on its own.

2. Is Read more always bad?

It is weak when it is the only link to a page, because it says nothing about the destination and appears identically on every card. It is much less of a problem when the card's heading is already a link to the same page, because the heading provides the description. The simplest fix is to make headings the link on every card and either remove Read more or keep it as a secondary link that goes to the same place.

3. Should every link to a page use the same keyword?

No. Using one fixed phrase for every link reads mechanically and gives a narrower picture of the page. Let the wording follow the sentence: a boiler service page might be linked as annual boiler service, book a boiler service or our service visits. Each still names the destination. What you should avoid is the opposite problem of one phrase pointing at two different pages, which blurs which page covers the subject.

4. How long should anchor text be?

Usually two to six words, enough to name the destination without swallowing the sentence. Linking a whole sentence buries the useful part, while a single word such as here or this carries no meaning. If you struggle to find a short phrase, rewrite the sentence so the name of the destination appears in it, then link that name. Headings used as card links can be longer, because the heading is the page's title.

5. Do linked images count as anchor text?

Yes. When an image is wrapped in a link, Google uses the image's alt text as the anchor. A linked logo with no alt text, or a banner that links to a category but has alt text describing only the picture, gives no useful label for the destination. Write alt text for linked images that says where the link goes, such as Winter boots collection, and add a text label or aria-label to icon-only links.

6. Will changing anchor text on hundreds of pages cause problems?

Not in itself. Anchor text is page content, and improving it is normal editing. Changes to a card or excerpt template affect every listing at once, so test on one page first to check the layout still works, and keep the change in a child theme or your own component so theme updates do not undo it. Avoid replacing vague anchors with an identical keyword everywhere, which simply swaps one repetitive pattern for another.

7. What about navigation, breadcrumb and pagination links?

These are short on purpose, such as Services, Boots or Next, and that is fine. They give structure and help crawlers move through the site. Descriptive detail comes from links inside your paragraphs. When you review the anchors a page receives, note navigation links separately so they do not make a page look well described when in fact the menu is the only place the site names it properly in a meaningful way.

See the words your site uses for each page

The Internal Link Analysis maps every internal link across your crawled pages, rates how descriptive the anchor text is, and counts links in and out of each page, so you can see how your key pages are described.

Open Internal Linking Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Internal Linking Fixes  ·  Accessible Link Text  ·  Link Equity Flow  ·  Internal Links Guide  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.