Skip to content

Anchor text for internal links ​

Anchor text is the visible, clickable text of a hyperlink. It is the shortest description a page ever gets, written on the page that links to it, and Google has used it as a relevance signal since its founding paper in 1998.

This guide covers internal anchor text on WordPress sites: the types, how to distribute them, how to audit what you already have, and what automation can and cannot do for you. Most published advice on anchor text is about backlinks. Internal links follow different rules, and the difference matters more than the similarities.

Why internal anchors follow different rules ​

A backlink anchor is written by a third party. You do not control it, and external links can be assessed under Google's link spam policies.

An internal anchor is written by you. Google asks for descriptive, natural anchor text, and an exact-match internal anchor is appropriate when it accurately describes the destination and reads naturally in the sentence.

What this does not mean is immunity. Keyword stuffing is prohibited regardless of where the links sit, and repeating one phrase mechanically across a site is stuffing whatever you call it. Nor is external exact match penalised in itself; what gets penalised is manipulation.

The practical consequence is still worth stating, more carefully than it is usually stated: the fear of "over-optimizing" internal anchors is mostly inherited from link-building advice, and it leads people to write vaguer internal anchors than the destination deserves.

That said, consistency is not repetition. Which brings us to distribution.

The six types that matter ​

TypeExample anchorPoints toUse internally?
Exact matchinternal linking strategyA page targeting that phraseYes, as the default
Partial matchour internal linking strategy for large sitesSame pageYes, for variation
BrandedPAGUPAgency or About pageSparingly, for entity pages
Naked URLautolinksforseo.com/internal-linksAny pageRarely, looks unpolished
Genericclick here, read more, this articleAny pageNo
Imagealt="internal linking dashboard"Any pageYes, alt text is the anchor

Exact match is the anchor that equals the target page's focus keyword. It is the clearest description you can give of the destination, and it is what Automatic Internal Links produces when it uses a stored focus keyword as the anchor.

Partial match, as an editorial choice, wraps the keyword in surrounding words. It reads more naturally in prose and it is how you introduce variation without losing the signal.

Be careful not to confuse this with the plugin's Partial Match setting, which is a different thing: it decides whether a keyword matches inside a longer word, so that robot also matches robots and robotics. It does not rephrase anchors. For a different wording, use a manual link.

Branded anchors identify the entity or product named rather than a topic. They belong on About and contact pages, where the entity is the subject.

Naked URLs work but are usually less explicit and less readable than a descriptive label.

Generic anchors are the weak case. "Click here" tells a search engine nothing on its own, and assistive technology commonly lists a page's links out of context, where a generic label carries no meaning. WCAG 2.4.4 does accept a purpose determined by the link plus its programmatically associated context, so a generic label is not automatically a failure. Prefer labels that stand alone.

Image anchors are the forgotten case. When an image is wrapped in a link, its alt attribute becomes the anchor text. Sites routinely leave these empty and lose the signal without noticing.

Distribution: what a healthy profile looks like ​

There is no published ratio that Google confirms, and anyone quoting one precisely is guessing. What holds up in practice is a shape rather than a number.

Across all the internal links pointing to one destination page, you want:

  • Anchors that describe the destination. If a page is about internal linking strategy and only two of its forty inbound anchors say so, the rest are describing something else, and that is worth looking at.
  • Genuine variation around it. Singular and plural, with and without the qualifier, the occasional longer phrase. This is natural writing, not a tactic.
  • Almost no generics. A handful of "learn more" links in a UI context is fine. Dozens across the site is a content defect.
  • Context that agrees with the anchor. The sentence around the link should be about the same subject. An exact-match anchor dropped into an unrelated paragraph is a weaker signal than a partial match in a relevant one.

The failure mode to avoid is not over-optimization. It is a single page absorbing every anchor variant for a topic, which happens when one page is linked from everywhere and its siblings are linked from nowhere. That is an orphan page problem wearing an anchor text costume.

Worked examples ​

Take a page targeting the focus keyword WooCommerce product descriptions.

Good, and why:

  • WooCommerce product descriptions — exact match, unambiguous.
  • writing WooCommerce product descriptions that convert — partial match, reads naturally, keeps the phrase intact.
  • how we handle product descriptions in WooCommerce — partial match with word order changed; still clearly on topic.

Weak, and why:

  • this guide — no signal at all.
  • WooCommerce — too broad. It points at a page about descriptions but claims the whole platform.
  • product descriptions — acceptable, but drops the qualifier that makes the page distinct from a generic copywriting page.
  • click here to read about how to write better product descriptions for your WooCommerce store — the keyword is in there, but an unnecessarily long anchor dilutes it and reads like filler.

Wrong, and why:

  • WooCommerce plugins pointing to the descriptions page — the anchor promises something the destination does not deliver. This is the one genuine risk with automated linking, and it is why keyword quality upstream matters.

That last case is worth dwelling on. An automated system is only as good as the focus keywords it reads. If a page's focus keyword is wrong, every anchor built from it is wrong, everywhere on the site, at once. See limitations for where the page title makes a poor keyword.

How to audit the anchors you already have ​

You cannot fix a distribution you have not measured. A workable pass, in order:

  1. Export your internal links. Any crawler that lists source URL, destination URL and anchor text will do.
  2. Group by destination. For each destination page, you now have the list of phrases the rest of your site uses to describe it.
  3. Compare against the intended keyword. If the dominant anchor for a page is not the phrase the page targets, check whether that gap reveals a real ambiguity, in the anchors or in the keyword.
  4. Count the generics. Sort by anchor text and look at how many "read more" and "click here" entries you have. This number is usually worse than people expect.
  5. Check the orphans. Pages with zero inbound internal links have no anchor profile at all. They are invisible to this analysis and largely invisible to crawlers.
  6. Check image links. Filter for links whose anchor is empty. Those are usually images with no alt.

Steps 1 to 3 are where automation pays off, because they are the steps that do not scale by hand past a few dozen pages.

What the plugin does, precisely ​

Automatic Internal Links reads the focus keyword stored on each page by your SEO plugin, scans your content for occurrences of those phrases, and wraps matches in links pointing to the page that owns the keyword.

The consequences worth understanding before you run it:

  • The anchor is the focus keyword. Not a rephrasing, not a generated variant. The Partial Match setting widens matching to inflected forms inside longer words; it does not produce a different anchor.
  • Case handling is a setting, not an assumption. See Case Sensitive.
  • Exclusions exist at several levels — HTML tags, specific keywords, specific URLs, and per page. Excluding keywords is the lever when one phrase is creating noise.
  • Manual links coexist with automatic ones. Manual Links lets you set a custom anchor for cases where the focus keyword is not the phrase you want in the text.

The honest framing: the plugin gives you broad, consistent coverage in minutes, which is the part humans do badly. It does not exercise judgement about whether a given anchor belongs in a given sentence, which is the part humans do well. The pipeline is designed around that division.

Common mistakes ​

Treating internal anchors as if they were backlinks. The most common error, and it leads people to write vaguer internal anchors than the destination deserves. The opposite excess exists too: repeating one phrase mechanically is keyword stuffing wherever the links sit.

Linking the same phrase to different destinations. If internal linking points to three different pages in three different articles, make the anchors more precise: different destinations are presumably answering different needs.

Anchor text that outruns the destination. A misleading anchor disappoints the reader; adjust the wording or the destination.

Forgetting navigation is not editorial. A link repeated in the header or footer of 200 pages does not carry the weight of a link written into a sentence. When you count inbound links, count editorial ones separately, or you will believe a page is well supported when it is not.

Leaving image links with empty alt text. Free signal, routinely discarded.

Questions people actually ask ​

Does exact-match internal anchor text risk a penalty? Not in itself. Google asks for descriptive, natural anchor text. What remains prohibited, internally as much as externally, is keyword stuffing: an exact phrase repeated mechanically rather than because it describes the destination.

How many internal links should point to one page? There is no number. What matters is that important pages have meaningfully more than unimportant ones, and that none of them have zero.

Should anchor text match the destination's title exactly? It should match the destination's topic. Titles often carry branding and qualifiers that make poor anchors.

Do nofollow internal links help sculpt PageRank? Do not use nofollow to redistribute internal PageRank. Google explained as early as 2009 that the redistribution people were counting on no longer worked that way, and since 2019 nofollow is treated as a hint rather than a directive.

What about anchor text in multilingual sites? Keep anchors in the language of the page they appear on, pointing to the same-language destination. Cross-language anchor matching is where automated linking most often goes wrong. See multilingual sites for the WPML and Polylang specifics.

Auto Links for SEO — two WordPress plugins, one SEO pipeline, product docs bounded by machine-readable governance surfaces.