Fixing Vague Anchor Text on Internal Links
Anchor text is the clickable wording of a link. When the links between your own pages say "read more", "click here", "this page" or show a raw web address, they waste the one short label that tells a visitor and a search engine what sits on the other side.
The problem is usually not careless writing: most vague anchors come from a handful of templates repeated across hundreds of pages. This guide shows how to find where your vague anchors come from, rewrite the ones in your content, fix the card and button templates that generate the rest, and avoid swinging too far the other way.
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:
- Visitors choose better. "Boiler servicing prices" tells a reader whether the click is worth it; "find out more" does not.
- Search engines get a label for the destination. If twenty of your pages link to your emergency plumbing page and each describes it in its own words, that is a consistent, readable description of what the page is about.
- Links become scannable. People skim for underlined words. A page full of "here" and "more" gives the eye nothing to catch.
- Assistive technology users get sensible link lists. The accessibility side is covered in the link text accessibility guide; this guide stays with how your internal linking reads to search engines and visitors.
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
- Excerpt "Read more" links on blog listings, category archives, search results and "latest posts" widgets. One listing page with twelve cards produces twelve identical anchors to twelve different pages.
- Card buttons such as "View", "Details", "Learn more" or "Shop now" on service grids, product tiles and location cards.
- Promo banners and hero blocks where the whole message is an image and the only text link says "Discover".
- Icon-only links such as an arrow, a chevron or a magnifying glass with no text or alt attribute at all.
- Pagination using "Next", "Previous" and bare numbers. These are expected and usually fine; they are listed here so you do not waste time on them.
Content anchors: written by a person, one at a time
- "Click here" and "here" in paragraphs, often a leftover from copy written for email.
- Bare URLs pasted into the text, such as
https://example.co.uk/services/boiler-repair/, which describe the address rather than the page. - Overlong anchors where a whole sentence has been linked, so the actual subject of the destination is buried among fifteen other words.
- Mislabelled anchors where the wording describes one thing and the link goes somewhere else, often after a page was renamed or merged.
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 see | Likely source | Where to fix |
|---|---|---|
| Read more / Continue reading | Blog excerpt or archive card | Theme template or excerpt_more
filter |
| Learn more / View details | Service or product card component | Card partial or page builder module |
| (empty) or an arrow symbol | Icon link or linked image without alt | Component markup and image alt fields |
| click here / here | Editorial copy | Page content, one sentence at a time |
| https://example.co.uk/... | Pasted address in content | Page 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.
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 type | Before | After |
|---|---|---|
| Service | We also repair boilers. Click here for details. | We also carry out same-day boiler repairs across the town. |
| Location | We cover several areas, see here. | See the full list of villages we cover around Hartwell. |
| Article | For more tips, read this post. | Our guide to bleeding radiators walks through it with photos. |
| Category | Browse the range here. | Browse our waterproof walking boots. |
| Pricing | https://example.co.uk/prices/ | Our fixed boiler service prices include parts and labour. |
| Overlong | If you would like to know more about how we can help you with your heating this winter | Find 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.
- The identical phrase on every link. If every one of forty links to a page reads exactly "cheap boiler repair Hartwell", it reads like a machine wrote it. Natural links vary with the sentence. There is no target mix or percentage to hit for internal anchors; write each one to fit its context.
- Keyword lists as anchors. Anchors such as "boiler repair, boiler service, boiler installation" crammed into one link help nobody.
- Linking every mention. If a phrase appears six times in an article, link it once, where the reader is most likely to want to go further.
- Automatic keyword-linking plugins. Tools that turn every occurrence of a word into a link across the whole site produce repetitive anchors in odd places and are hard to undo. If you use one, limit it to one link per page and review what it creates.
- Anchors that promise more than the page delivers. Linking "complete guide to heat pumps" to a three-paragraph news item disappoints the reader and misdescribes the page.
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.
- 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.
- 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.
- Review links when you review copy. A quick scan of underlined words during proofreading catches most "click here" links before they go live.
- Use the CMS link picker. Link pickers that search your own pages by title encourage writers to link the words that match the title.
- 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.
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.
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 โ