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 ascanonicaloralternate.
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
nofollowlink can be crawled. Previouslynofollowalso acted as a crawling directive. nofollowis not indexing protection. It never reliably was; now even less so. To keep a page out of the index you neednoindex.nofollowis 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:
- Was anything paid or exchanged for the placement? Money, goods, free products, return
links – all of it counts. →
rel="sponsored". Mandatory, not optional. - Did a user create the link? Comment, forum post, profile field, review text. →
rel="ugc", optionally plusnofollow. - 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". - Otherwise: no
relattribute. 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". Tworelattributes 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:
sponsoredwithnofollowfor maximum clarity;ugc nofollowon comments;noopeneralways alongsidetarget="_blank". - Contradictory:
sponsoredandugctogether – a link is either paid or user-generated.
9. Common mistakes
- Paid links without
sponsored. The most consequential mistake – a policy breach, and in most jurisdictions also an advertising disclosure issue. - Internal
nofollowfor steering. Destroys your own link strength for no return. nofollowinstead ofnoindex. Does not prevent indexing.- Blanket
nofollowon all external links. Linking sensibly to sources is a quality marker, not a risk. target="_blank"withoutnoopener. An avoidable security risk in older browsers.noreferreron partner links. The partner then cannot see your traffic.- Two
relattributes on one link. Usually caused by plugins that append a second attribute instead of extending the existing one. prev/nextas 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
relvalues 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
nofollowin a template. - Check affiliate modules specifically. Affiliate links are often served through redirect
scripts; verify that the visible
<a>element carriessponsored. - HTML validation. The W3C validator reports duplicate attributes and invalid syntax.
11. Checklist
- Check all paid and affiliate links for
sponsored. - Check comment and forum links for
ugc. - Find and remove internal
nofollowattributes. - Check whether a template applies blanket
nofollowto external links. - Check every
target="_blank"link fornoopener. - Remove
noreferrerfrom partner and source links where attribution is wanted. - Find duplicate
relattributes via HTML validation. - Fix comma-separated
relvalues. - Ensure a self-referencing
canonicalon all indexable pages. - Check
hreflangannotations for reciprocity. - Do not plan
rel="prev"andrel="next"as an SEO measure. - 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.