Link Attributes: Using rel Values Correctly

The rel attribute describes the relationship between the current page and the link target. Three of its values control whether ranking signals get passed, two concern security, and several more carry purely semantic meaning. This guide is the complete reference, with a decision tree, code examples and the rules for combining values.

1. What is the rel attribute?

rel stands for "relationship" and is valid on two HTML elements:

  • <a> and <area> – for links in the document body.
  • <link> – for relationships in the <head>, such as canonical or alternate.

Multiple values are separated by spaces, order is irrelevant, and unknown values are ignored:

<a href="https://example.com" rel="sponsored nofollow noopener">Advertisement</a>

2. The three values that steer search engines

Value Since Intended for Passes signals
nofollow 2005 Links you do not want to vouch for Generally none
sponsored 2019 Paid links, advertising, affiliate None
ugc 2019 User-generated content, comments, forums Generally none

nofollow was introduced in 2005 as a response to comment spam. In 2019 Google added the three-way split so the nature of the relationship could be captured more precisely. For you as a site owner that changes little about the effect, but a lot about the documentation: sponsored demonstrably records that a placement was paid for.

3. Hint rather than directive: the 2020 change

Since 1 March 2020 Google treats all three values as hints rather than strict directives. It may therefore take them into account or ignore them – for crawling as well as for ranking.

What that means in practice:

  • A nofollow link can be crawled. Previously nofollow also acted as a crawling directive.
  • nofollow is not indexing protection. It never reliably was; now even less so. To keep a page out of the index you need noindex.
  • nofollow is not a crawl budget tool. Only robots.txt serves that purpose – see crawl budget.

No substitute for access control: rel values are recommendations to well-behaved crawlers. They stop nobody from reaching a URL. Confidential areas need server-side authentication.

4. Decision tree: which value when

Four questions, in this order:

  1. Was anything paid or exchanged for the placement? Money, goods, free products, return links – all of it counts. → rel="sponsored". Mandatory, not optional.
  2. Did a user create the link? Comment, forum post, profile field, review text. → rel="ugc", optionally plus nofollow.
  3. Do you not want to vouch for the target? A citation to a site you do not endorse, a link to an example of bad practice. → rel="nofollow".
  4. Otherwise: no rel attribute. Editorial links are meant to pass signals – that is the normal case, not waste.
<!-- 1. Paid placement -->
<a href="https://partner.example.com" rel="sponsored">Partner offer</a>

<!-- 2. User comment -->
<a href="https://example.org" rel="ugc nofollow">Source from the comment</a>

<!-- 3. Citation without endorsement -->
<a href="https://example-of-bad-practice.example" rel="nofollow">
  this counter-example
</a>

<!-- 4. Editorial link: no rel attribute -->
<a href="/en/wiki/backlinks">guide to backlinks</a>

Internal links: as a rule, never use nofollow internally. The share belonging to a nofollow link is not redistributed, it evaporates – so you are giving away your own link strength. The reasoning is in the PageRank sculpting section of the link juice & link equity guide.

5. Security attributes: noopener and noreferrer

These two have nothing to do with SEO but belong in any link reference:

Value Effect SEO effect
noopener The opened page gets no access to window.opener None
noreferrer Suppresses the Referer header None for ranking, but traffic shows as "direct" on the target

Without noopener, a page opened via target="_blank" can reach the original window through window.opener – the basis of tabnabbing attacks. Modern browsers now apply noopener implicitly for target="_blank". Setting it explicitly remains worthwhile for older browsers and as readable intent in the code:

<a href="https://example.com" target="_blank" rel="noopener">External source</a>

An important distinction: noreferrer has no bearing on your own rankings but a practical side effect: the target no longer sees you as the referring source. If you want partners to see that you send traffic, use only noopener.

6. rel values in the head

These belong on the <link> element and describe document relationships:

Value Purpose Used by Google?
canonical Preferred URL among several variants Yes, as a hint
alternate + hreflang Language and country versions Yes
alternate + type RSS or Atom feed For feed discovery
prev / next Paginated series No, not used since 2019
preload, preconnect, dns-prefetch Performance hints to the browser Indirectly, via load time
icon, manifest Favicon and web app manifest The favicon appears in search results
<head>
  <link rel="canonical" href="https://example.com/en/shoes">
  <link rel="alternate" hreflang="en" href="https://example.com/en/shoes">
  <link rel="alternate" hreflang="de" href="https://example.com/de/schuhe">
  <link rel="alternate" hreflang="x-default" href="https://example.com/en/shoes">
  <link rel="alternate" type="application/rss+xml" href="/feed.xml">
  <link rel="icon" type="image/svg+xml" href="/favicon.svg">
</head>

Details on the two most important ones: canonical tag and language & hreflang. On prev/next: the standard is not wrong and remains useful for accessibility, but it is ineffective as an SEO measure.

7. Semantic rel values

These describe meaning without influencing crawling:

  • rel="author" – marks the link to the author. Google's authorship programme showing author photos in results was discontinued in 2014; the attribute remains valid HTML and is worthwhile as semantic annotation. Machine-readable author attribution today runs through structured data.
  • rel="me" – "this page belongs to me". Used for identity verification, including by Mastodon.
  • rel="license" – points to the content's licence.
  • rel="external" – marks a link as external. Purely informative, no search engine effect.
  • rel="help", rel="search", rel="bookmark" – document relationships with limited practical relevance.

A common misconception: rel="external" does not stop a link from counting. If that is what you want, you need nofollow.

8. Combinations and syntax rules

  • Several values, one attribute. The correct form is rel="sponsored noopener". Two rel attributes on one element is invalid; the browser only uses the first.
  • Spaces separate, not commas. rel="ugc,nofollow" is wrong and is read as a single unknown value.
  • Case does not matter, though lowercase is the convention.
  • Sensible combinations: sponsored with nofollow for maximum clarity; ugc nofollow on comments; noopener always alongside target="_blank".
  • Contradictory: sponsored and ugc together – a link is either paid or user-generated.

9. Common mistakes

  1. Paid links without sponsored. The most consequential mistake – a policy breach, and in most jurisdictions also an advertising disclosure issue.
  2. Internal nofollow for steering. Destroys your own link strength for no return.
  3. nofollow instead of noindex. Does not prevent indexing.
  4. Blanket nofollow on all external links. Linking sensibly to sources is a quality marker, not a risk.
  5. target="_blank" without noopener. An avoidable security risk in older browsers.
  6. noreferrer on partner links. The partner then cannot see your traffic.
  7. Two rel attributes on one link. Usually caused by plugins that append a second attribute instead of extending the existing one.
  8. prev/next as an SEO measure. Costs effort with no ranking effect.

10. Checking and testing

  • Check the rendered DOM, not the source. Consent tools and plugins sometimes add rel values only via JavaScript. What counts is the result after rendering.
  • Crawl with a rel column. Your own crawl shows every link with its attributes and makes patterns visible – such as blanket nofollow in a template.
  • Check affiliate modules specifically. Affiliate links are often served through redirect scripts; verify that the visible <a> element carries sponsored.
  • HTML validation. The W3C validator reports duplicate attributes and invalid syntax.

11. Checklist

  1. Check all paid and affiliate links for sponsored.
  2. Check comment and forum links for ugc.
  3. Find and remove internal nofollow attributes.
  4. Check whether a template applies blanket nofollow to external links.
  5. Check every target="_blank" link for noopener.
  6. Remove noreferrer from partner and source links where attribution is wanted.
  7. Find duplicate rel attributes via HTML validation.
  8. Fix comma-separated rel values.
  9. Ensure a self-referencing canonical on all indexable pages.
  10. Check hreflang annotations for reciprocity.
  11. Do not plan rel="prev" and rel="next" as an SEO measure.
  12. Verify attributes in the rendered DOM, not only in the source.

Pro tip: Rank-O-Saur shows the rel attributes set on every link on the page. That finds undisclosed affiliate links, internal nofollow and missing noopener right in the browser – in the rendered state, so including attributes added by JavaScript.

12. Frequently asked questions

What is the difference between nofollow, sponsored and ugc?

All three signal that a link should not pass ranking signals, but they describe different reasons: sponsored for paid placements, ugc for user-generated content, and nofollow as the general form for links you do not want to vouch for.

Does nofollow prevent a page from being indexed?

No. nofollow concerns signal transfer, not indexing. Since 2020 it is also only a hint, so Google may follow the link anyway. To prevent indexing you need noindex.

Should I use nofollow internally?

No. The share belonging to a nofollow link is not redistributed to the other links, it evaporates. You are giving away your own link strength. If an internal link has no value, remove it instead.

Do I still need noopener with target="_blank"?

Modern browsers now apply it implicitly. Setting it explicitly remains worthwhile for older browsers and because the intent is then visible in the code. There is no SEO effect either way.

What does rel="noreferrer" do to my tracking?

It suppresses the Referer header, so the destination sees the visit as direct traffic. That has no bearing on your own rankings, but partners will not be able to tell that the traffic came from you.

Does Google still use rel="prev" and rel="next"?

No. In 2019 Google stated these annotations had not been used for indexing for some time. Ordinary links to the following pages are enough for pagination. The annotations can still be useful for accessibility.

Can I combine several rel values?

Yes, several values go into a single rel attribute separated by spaces, for example rel="sponsored noopener". Two separate rel attributes on the same element are invalid, and commas as separators are wrong.

Do I have to disclose affiliate links?

Yes, with rel="sponsored" – Google's spam policies require it. Independently of that, most jurisdictions require paid content to be visibly disclosed as advertising to users. For specific partnerships, get legal advice.

Read next

Christoph Hein, Head of SEO and search consultant
About the Author

Christoph Hein

Head of SEO at Popken Fashion Group & independent Search Consultant

Christoph has spent 10+ years in search, currently steering organic strategy for 5 fashion brands across 13 countries and more than 30 domains. Alongside his in-house and consulting work, he founded niche content portals such as Angelmagazin.de and BaristaCompass.com, and built the Rank-O-Saur extension to make technical SEO audits effortless. Every guide here is grounded in hands-on, data-driven practice rather than theory.