Anchor Text Best Practices for Internal and External Links

Crawvix Editorial Team · Published October 29, 2026 · Last updated October 29, 2026 · 10 min read

Anchor text is the visible, clickable words of a link. It sits between the opening and closing <a> tags, and it is the first thing a reader sees when deciding whether to click. It is also one of the signals search engines use to understand what the linked page is about. Google says it uses anchor text to judge the relevance of the page being linked to, and it uses links to discover new pages to crawl.

Many sites waste this. Menus say "Learn more", buttons say "Click here", logos link to the home page with no alt text, and long blog posts link a stray word like "website" to a page that has nothing to do with that word. None of this breaks a site, but it makes the pages harder to scan, harder to use with a screen reader and harder for a crawler to interpret.

This guide is for site owners, writers and developers who want to review the links on a site and fix the wording. By the end you will have a list of weak anchors, a rule set for writing new ones, and a way to confirm that crawlers see the final text. It does not promise any change in rankings. Better anchor text mainly makes links clearer, and clarity is the goal.

Before you begin

You need edit access to the page content or templates, and a way to list the links on a page. A browser with Developer Tools is enough for a few pages. For a whole site, use a crawler or an export from your CMS.

Allow about an hour for a small site. The risk is low, but changing link text in a shared template (a footer, a menu, a related-posts block) changes every page that uses it, so make a note of what the old text was. Do not change link destinations while you are editing wording. Fix one thing at a time so you can see what you changed.

If your site builds links with JavaScript, plan to check the rendered result, not just the source file. That is covered in Step 6.

Google can generally follow only <a> elements that have an href attribute. A link built from a <span> with a click handler, or an href that holds a script call instead of an address, is not recommended, and crawlers may not extract it. If JavaScript adds a normal <a href> to the page, that is fine.

Google's link guidance describes good anchor text as descriptive, reasonably concise, and relevant to both the page it sits on and the page it points to. A useful test from the same guidance: read the anchor text on its own. If it makes no sense out of context, it needs to be more specific.

Two fallbacks matter. If a link has no text at all, Google can fall back to the title attribute. If the link is an image, Google uses the image's alt text as the anchor text. Both are worse than writing real link text, so treat them as safety nets rather than a plan.

Step-by-step instructions

You cannot fix what you have not seen. Open a page, open Developer Tools, choose the Console tab and paste this snippet. It prints every link whose visible text is on a short list of generic phrases, plus every link with no text and no image alt.

const generic = /^(click here|here|read more|more|learn more|this|this page|link|website|page)$/i;
const rows = [];
document.querySelectorAll('a[href]').forEach(a => {
  const text = a.textContent.trim().replace(/\s+/g, ' ');
  const alt = a.querySelector('img')?.getAttribute('alt') ?? '';
  const label = text || alt || a.getAttribute('title') || '';
  if (!label || generic.test(label)) {
    rows.push({ label: label || '(empty)', href: a.getAttribute('href') });
  }
});
console.table(rows);

Run it on your home page, a typical article, a category page and a product or service page. Copy the results into a spreadsheet with three columns: page, current text, destination.

What success looks like: You have a list of weak or empty anchors, each tied to a page and a destination.

Step 2: Replace generic phrases with the destination's topic

For each generic anchor, ask what the reader gets when they click. Then say that. "Read more" after a summary of your returns policy becomes "our returns policy". "Click here to download" becomes "download the 2026 price list (PDF)". The words should match the topic of the target page, so a reader can predict where they will land.

Avoid the opposite problem as well. Google's guidance warns against forcing keywords into anchors, and says keyword stuffing violates its spam policies. An anchor like "best cheap running shoes buy running shoes online" is not descriptive, it is a keyword list. Write the phrase a person would naturally use for the topic.

What success looks like: Every anchor on your list makes sense when read alone, and none of them reads like a keyword list.

Step 3: Keep anchors short

Anchor text should be the essential phrase, not a whole clause. "We have an article that provides more background on how to choose a website host" is hard to scan. "How to choose a website host" says the same thing in six words. Trim to the key subject and move the rest of the sentence outside the link.

Also space links out. Google's guidance points out that a row of single-word links, each going to a different page, gives the reader no context. Put a few words of explanation between links, or use a short list with a one-line description for each item.

What success looks like: Anchors are a few words long, and links in a paragraph are separated by readable text.

If a logo, banner or thumbnail is the only content inside a link, the alt text becomes the anchor text. Make it describe the destination, not the picture. A logo that links home should have alt text such as "Example Store home", not "logo" and not an empty alt="". Google lists an empty alt on a linked image as a bad example.

<!-- Weak -->
<a href="/pricing/"><img src="/img/plans.png" alt=""></a>

<!-- Better -->
<a href="/pricing/"><img src="/img/plans.png" alt="Compare plans and pricing"></a>

Icon-only buttons, such as a social media icon, need an accessible name too. Put a visually hidden text label or an aria-label on the link so screen reader users get the same information. See the website accessibility audit guide for how to test this.

Crawvix has a check named "No empty or placeholder links". It looks for links whose address is # or a script call instead of a page address, which jump to the top of the page or do nothing. If an element performs an action such as opening a menu, a <button> is the right element, not a link. The check does not judge whether your anchor wording is good, so Steps 1 to 3 remain a manual review.

What success looks like: Every link, including image and icon links, has a text label that describes where it goes.

Internal links are the links you fully control, so use them well. Link to related pages from the paragraph where the topic comes up, with anchor text that names the topic. Google's guidance says every page you care about should be linked from at least one other page on your site, and that there is no ideal number of links per page, though too many is a sign to cut back.

Be consistent without being robotic. When you refer to the same page several times, use clear wording each time, but you do not need an identical phrase everywhere. Read the sentence as a person would and ask whether the link text fits. For the wider plan, see how to build an internal linking strategy, and for pages nothing links to, see how to find and fix orphan pages.

What success looks like: Each important page is reached by at least one link whose text names its topic.

Step 6: Check what crawlers actually see

If a script inserts your links or your link text, the saved HTML file is not what a crawler evaluates. Google's guidance says to check the rendered HTML with the URL Inspection tool when JavaScript inserts anchor text. In Search Console, inspect the URL, run the live test, open the tested page and look at the HTML for your <a href> elements and their text.

Also confirm the destination is a real, crawlable address. A link to /products/shoes is fine. A link whose only destination is a click handler is not.

What success looks like: The tested HTML contains your links with the final anchor text and a real href.

Special cases

External links. The same rules apply to links to other sites: describe the destination. If a link is paid, sponsored or user-submitted, it also needs the correct rel value. That is a separate decision from the wording, covered in choosing nofollow, sponsored and ugc.

Navigation menus and footers. Short labels are normal here, such as "Pricing" or "Contact". They are fine because the label is specific. The trouble starts with labels that could mean anything, like "Resources" for six unrelated pages.

Final verification checklist

  • No link on key pages uses only "click here", "read more", "here" or "learn more".
  • Every link has text, image alt text, or an accessible label that describes its destination.
  • Linked images do not have an empty alt attribute.
  • No anchor is a list of keywords or a full sentence.
  • Links in running text are separated by readable words, not stacked in a row.
  • Each important page receives at least one internal link with descriptive text.
  • Links that run an action are buttons, and links that navigate are <a href> elements.
  • The URL Inspection live test shows your links and final anchor text in the rendered HTML.

Common mistakes to avoid

Using "click here" or "read more" everywhere. These phrases tell a reader and a crawler nothing about the destination. Replace them with the topic of the target page.

Stuffing keywords into anchors. Repeating a target phrase in every link is spam-like and reads badly. Use natural wording for the topic.

Linking whole sentences. Long anchors are hard to scan. Link only the essential phrase.

Leaving linked images without alt text. The alt text is used as the anchor, so an empty alt leaves the link with no label. Write alt text that describes where the link goes.

Using href="#" or a script call as the address for navigation. These are placeholders and are not recommended for links you want crawled. Use a real address, or a button for actions.

Checking only the source file. If JavaScript builds the links, test the rendered HTML in the URL Inspection live test.

Linking an unrelated word to a page. A link on "website" to your pricing page confuses readers. Make the anchor and the target agree.

Frequently asked questions

No. The text should describe the target and fit the sentence. Clear, natural wording matters more than exact repetition. Avoid wording that is misleading or stuffed with keywords.

How long should anchor text be?

Google's guidance says to keep it reasonably concise: trim to the essential phrase. In practice that is usually a few words. If you cannot say it briefly, link a shorter part of the sentence.

Does anchor text affect rankings?

Google says it uses anchor text to judge the relevance of the linked page, so it is a useful signal. That does not mean changing anchors will move a page up in results, and no wording can promise a position. Treat it as clear labeling.

Is it okay to use the page title as anchor text?

Yes, when it reads well in the sentence. Link the title when you are citing a specific page. In other cases, a shorter phrase that names the topic reads better.

Google can fall back to the title attribute for an empty link, and to the image alt text for an image link. Do not depend on that. Add visible text or a proper accessible label.

Official references


Next step: See how Crawvix checks a website and capture a baseline once scanning opens. This guide provides technical information, not a guarantee of rankings, traffic or index inclusion.

In this category

All 15 On-Page SEO guides