Anchors: Definition and Optimization

In SEO, we often hear about link optimization by working on semantic signals. One of these historical signals, which is very important for ranking, is the anchor text of a link: the key phrase or expression usually highlighted in blue and clickable, leading us to other pages, either internally or externally, and which we find almost everywhere on the web.

This blue link is the foundation of the web concept since it connects one page of a site to another page on another website (thus forming a web of links: “web” meaning “toile” in French). It is a fundamental notion in SEO, and that’s why we will start by explaining what an anchor link is.

What is an Anchor?

Classic Definition

We will see multiple times here that “anchor” is a term that can have several meanings, both in HTML, SEO, and search engines. Defining this word is quite challenging (even Google struggles with this definition).

The word “anchor” in the web context generally translates to “anchor text,” which is the text present within an <a> tag in HTML (the “a” stands for “anchor”).

Here’s how an anchor is encoded in HTML:

HTML

We open an anchor tag, add the href attribute in the header to indicate the destination, insert the text that should appear, and close the tag.

In SEO, we tend to generalize the use of the term “anchor” to refer to the visible text, which looks like an underlined blue text that users can click on.

Be careful not to confuse it with an anchor represented by a #, which is a slightly different anchoring concept that allows users to be redirected to a specific part of the page.

When we talk about an anchor link, we generally refer to the text accompanying the link, allowing users to understand what is behind the link before clicking. It is therefore logical that this text also serves as contextualization for search engines, which is quite easy to process when a search engine crawls the web: an <a> HTML tag is well-standardized, simple to understand, and the instructions that can be passed within it (such as rel attributes) provide additional clarity on what the site editor intends to do with the link.

This definition becomes somewhat unclear when we consider Google’s own definition of an anchor (and we suspect it is unclear even for them).

Google’s Perspective

For Google, the term “Anchors” does not simply refer to link anchors as understood in SEO. “Anchors” can refer to several elements that contextualize the concerned link.

The following section is based on assumptions drawn from reading leaks. Keep in mind that even though this information comes from official documentation, it is not possible to know its actual usage. However, these elements do exist, meaning they have been significant enough to be observed at some point (the documentation aggregates many signals since 2003).

I encourage you to check this documentation in particular:

GoogleApi.ContentWarehouse.V1.Model.AnchorsAnchor (and by the way, this is a link).

More specifically, we will examine the following five elements:

  • origText (type: String.t, default: nil) – Original text, including capitalization and punctuation. Runs of whitespace are collapsed into a single space.
    • This suggests that punctuation and capitalization are not normalized to preserve variety (it is not possible to discreetly manipulate anchors).
  • context2 (type: integer(), default: nil) – This is a hash of terms near the anchor. (This is a second-generation hash replacing the value stored in the ‘context’ field.)
    • This implies that the surrounding text, in addition to the original anchor text, is also taken into account. There is no indication of the extent of this context, but it is reasonable to assume that the paragraph containing the link or adjacent paragraphs are included.
  • fontsize (type: integer(), default: nil)
    • Could the font size of the link be important?
  • anchorPhraseCount (type: integer(), default: nil) – The number of unique anchor phrases. Capped by the constant kMaxAnchorPhraseCountInStats (=5000) defined in indexing/docjoiner/anchors/anchor-manager.cc.
    • Beyond 5000 different anchors, Google would no longer consider new link anchors.
  • anchorMismatchDemotion (type: integer(), default: nil) – anchor_mismatch_demotion: converted from QualityBoost.mismatched.boost.
    • If the anchor text does not match the destination, it would be downgraded. (Thus, it is important to ensure that when linking to a page, the link logically aligns with the page’s content).

Summary:

  • Google considers both the text and format of the anchor and its surrounding context.
  • It also takes the target text into account.
  • It only considers a maximum of 5000 anchor links (which leaves a lot of room for optimizing keywords via exact match anchors).

How Does an Anchor Contribute to SEO?

The Historical Use of Anchors

Initially, SEOs used link anchors to boost their URLs (the destinations of these links) on an exact keyword. Due to Google’s algorithm, this strategy allowed many SEOs to use it as an easy weapon for ranking optimization, fueling a business of “link farms” that sold exact-match anchors or a high volume of links with a single anchor for years.

From Google’s perspective, the decline in result quality contradicted their service promise, so a reaction was inevitable. When the update was released, link farm businesses were massively impacted.

Penguin and Penalties

On April 24, 2012, Google introduced a refreshingly named update: “Google Penguin.” After the initial widespread panic, SEOs realized that over-optimized anchors no longer worked as before. This period of experimentation led to the understanding that Penguin targeted the percentage of optimized anchor links to define an acceptable limit. Of course, Penguin also aimed at spam, but that’s a topic for another time.

Leaked information has provided some insights into how anchors might be considered under Penguin’s penalty system:

  • penguinEarlyAnchorProtected (type: boolean(), default: nil) – Doc is protected by goodness of early anchors.
    • High-quality early anchors (from an algorithmic, not human perspective) can protect the page from spam signals later (no specified duration).
  • penguinTooManySources (type: boolean(), default: nil) – Doc not scored because it has too many anchor sources. END: Penguin related fields.
    • Too many diverse sources for an anchor result in no score for the document—directly linked to Penguin.
  • badbacklinksPenalized (type: boolean(), default: nil) – Whether this doc is penalized by BadBackLinks, in which case we should not use improvanchor score in mustang ascorer.
  • penguinPenalty (type: number(), default: nil) – Page-level penguin penalty (0 = good, 1 = bad).
    • Two different penalties are mentioned. In the first case, the improvanchor score is not used in mustang. In the second case, the Penguin penalty applies, likely creating a “glass ceiling” in ranking positions.

Since then, Leaks allowed us to find out a few other things:

Leaks and the Top 22% to 29%

In the Google Leaks, specifically on the following entry, one line raises an eyebrow:

GoogleApi.ContentWarehouse.V1.Model.IndexingDocjoinerAnchorStatistics

  • topPrOnsiteAnchorCount (type: integer(), default: nil) – According to anchor quality bucket, anchor with pagrank > 51000 is the best anchor. anchors with pagerank < 47000 are all same.

We also learn that the PageRank Value is a number between [0, 65535].

What we can deduce from this:

If the page’s PageRank is between 51000 and 65535, the anchor would have value and could be used.

If the page’s PageRank is below 47000: the anchor would be as valuable as any other anchor of the same level on the web.

In this way, only the 22% best urls on the web would be allowed to have an impact with anchors on outbound links, and the anchors of the 71% least good urls on the web would be rendered ineffective.

(But Pierre, 22% + 71% doesn’t make 100%! Yes, yes, there’s a 4000-point gap where we don’t know what Google is doing. But it doesn’t penalize or define the url as qualitative, we just don’t know).

What this means:

Optimizing your anchors would only be possible on links that come from the top (literally, good quality source urls on the PageRank scale). The truly best urls on the web would be the only ones to convey the semantic information of the anchor.


How to Optimize the Use of Anchors?

The Website’s Perspective

To avoid Penguin, we know that it’s best to avoid too high a rate of exact optimized link anchors on a key expression. On average, for all subjects combined, the acceptable rate is between 4.5% and 5% (depending on the subject). This limit does not apply to brand anchors (where we’re talking about an acceptable rate of 15 to 30%).

But: We know that optimized anchors for urls in the bottom 71% of the PageRank scale have no value, so you might as well avoid using them to activate this signal.

Why not?

Let’s suppose for a minute that you only get an optimized anchor on new links from various urls with varying levels of quality. The presence rate of this anchor will inevitably rise. You’ll reach the usage limit for this anchor more quickly, and if you go too high, you run the risk of a penguin penalty.

Usage is therefore on a case-by-case basis:

  • For links originating from source urls in the top 22%, you need to request an optimized anchor.
  • For links from source urls in the “flop” 71%, you should avoid an optimized anchor (the url in anchor text will do).
  • For links between the top 22 and the flop 71, give it a try and hope it works.

Once you’ve reached the limit of optimized anchors, what can you do?

You can reduce the rate of optimized anchors by reducing the number of anchors concerned, or by increasing the number of non-optimized anchors. For a site, this means obtaining unoptimized links to the home page, for example.

How can anchor usage be optimized?

Because of the definition of a link (composed of a source and a destination), there are 2 texts that must resonate with the link anchor:

  • The link context text (the paragraphs before and after the link)
  • The text of the destination page.

Chances are, if you’re requesting a link with an optimized anchor, you’ve already semantically optimized your target page for the query (and, by extension, the associated anchor) in question. But if this isn’t the case, I can’t encourage you enough to work properly on the semantics of your target page (if this isn’t possible, it’s probably not the right web page for this query).

And the context of the link, when you get it, must be logical with the anchor text and the link’s target page. In fact, it’s like a transition that should allow users to follow the author’s path to the next link.

Can anchors used for internal links also be used?

Very little. Since the website publisher has control over the links he makes within his site, an internally optimized anchor from a site, or even from a group of sites that may belong to the same Autonomous System (an ecosystem of websites with a high probability of depending on a single publisher, such as a PBN), is generally a signal to the engine that a piece of content has followed recommendations to optimize its natural referencing, which, by deduction, will not be as natural as expected.

Sources: