Link attributes
Dofollow vs Nofollow, Sponsored, and UGC: What Link Attributes Actually Do
Start with the thing that trips up almost everyone: there is no rel=dofollow. It has never existed in the HTML spec and no search engine looks for it. Dofollow is trade shorthand for an ordinary link that carries none of the three real qualifiers, which are nofollow, sponsored and ugc.
Those three describe a relationship between the linking page and the destination. They do not describe quality, they are not a ranking lever, and since 2020 Google treats them as hints rather than commands, which licenses a good deal less than people assume. There is also a fourth thing nobody mentions: the attribute on a link you earned last year can change without anyone telling you, which is why rechecking placements on a schedule belongs in this conversation at all.
- 12 min read
- Published August 18, 2026
- Updated August 18, 2026
- The LinkSwapy team
- Sourced from Google Search Central
The short answer
- There is no rel=dofollow. Only nofollow, sponsored and ugc are real.
- They describe a relationship, not a quality, and not a ranking value.
- Hints, not directives, since March 2020. That cuts both ways.
- Attributes change after acquisition, silently, and usually for structural reasons.
- View-source, an extension and a backlink tool will disagree. All three can be right.

Contents
What this covers
Mechanics rather than policy. Where a question is really about Google's spam policies, it gets two sentences here and a link to the page that handles it in depth.
First things first
Dofollow is not a real attribute
You will see rel=dofollow written into markup, listed in tool documentation, and specified in outreach emails by people who charge for links. It does nothing. There is no dofollow value, there never has been, and adding one to an anchor tag has exactly the same effect as adding rel=banana.
Adding rel=dofollow to a link has the same effect as adding rel=banana.
What people mean by a dofollow link is a link in its default state: an ordinary anchor tag with no qualifying rel value on it. That is the baseline, and every other state on this page is that baseline with something added.
This matters beyond pedantry for one practical reason. If a publisher offers you a dofollow link and writes rel=dofollow into the markup to prove it, they have told you they do not know how this works, and that is worth knowing before you evaluate anything else about the placement.

The mechanism
What the rel attribute actually does
The rel attribute on an anchor tag describes the relationship between the page the link is on and the page it points at. It is a general HTML feature with plenty of values that have nothing to do with search, and three that do.
Nofollow, added in 2005, originally told search engines not to treat the link as an endorsement. Sponsored and ugc arrived in September 2019 as more specific alternatives, so a publisher could say which kind of non-endorsement they meant: a commercial arrangement, or something a user posted.
The default state, no rel value at all, is not something you add. It is what an anchor tag is when nobody qualifies it, which is why the industry needed to invent a word for it and landed on the wrong one.
Definitions
The four states, defined
A link attribute is a rel value that qualifies what a link means. There are three real ones plus the unqualified default, and together they cover every state a link can be in. None of them says anything about whether the link is any good.
01
Standard, or dofollow
No rel value. The default, and the state an editorial citation is normally in. This is the one that carries a full endorsement, and it is the one that has no attribute to write.
02
Nofollow
The general qualifier. Says the linking page does not want to endorse the destination, without saying why. Still the right choice when neither of the specific values fits.
03
Sponsored
For links created as part of advertising, sponsorship, or any other compensated arrangement. The specific value for commercial relationships, and the one Google names for paid placements.
04
UGC
For links inside user generated content: comments, forum posts, community submissions, reviews. Says a visitor put this here, not the publisher.
Side by side
Standard, nofollow, sponsored, and ugc
One table replacing the three separate comparisons people usually write. The last column is the one worth reading twice, because it is where most of the misunderstanding lives.
| State | Markup | What it signals | What it does not do |
|---|---|---|---|
| Standard | No rel value | A normal editorial reference | Guarantee the link counts, or that the page has any authority to pass |
| Nofollow | rel=nofollow | We are not endorsing this destination | Make a link worthless, or absolve a manipulative arrangement |
| Sponsored | rel=sponsored | Money, product or other compensation was involved | Make a bad placement good, or reduce the value of the traffic |
| UGC | rel=ugc | A visitor put this here, not the publisher | Stop the link sending referral traffic, which it still can |
Nothing in this table is a quality judgment, and that is the point. All four states can hold an excellent link or a worthless one, and the attribute will not tell you which you are looking at.

Reference
The markup, in full
Every state as it actually appears in an anchor tag. Worth keeping open the first few times you check a placement by hand.
Standard link
<a href="https://example.com">Example</a>No rel value. Nothing to add, nothing to remove. This is what people mean when they say dofollow.
Nofollow
<a href="https://example.com" rel="nofollow">Example</a>The general qualifier, and the correct fallback when neither sponsored nor ugc describes the situation.
Sponsored
<a href="https://example.com" rel="sponsored">Example</a>Advertising, sponsorship, affiliate arrangements, paid placements. Anything where something of value changed hands.
User generated content
<a href="https://example.com" rel="ugc">Example</a>Comments, forum posts, reviews, community submissions. Applied by the platform rather than by the person posting.
Multiple values
<a href="https://example.com" rel="sponsored nofollow">Example</a>Space separated. Valid, common, and belt and braces rather than necessary, since sponsored already qualifies the link.
Stacking values
Combining values
You can put more than one value in a single rel attribute, space separated, and a paid placement is the case that usually needs two, and you will see it constantly in the wild. The two common pairings are sponsored with nofollow on advertising, and ugc with nofollow on comment systems.
Neither combination is required. Sponsored and ugc both qualify a link on their own, so adding nofollow alongside is redundant rather than wrong. Most of the time it is there because the platform's template predates the 2019 values and somebody added the newer one without removing the old.
If you are implementing this on your own site, pick the most specific value that describes the situation and stop. If you are auditing somebody else's, do not read a stacked attribute as a signal about anything. It usually means the site has been through more than one CMS.
The most misread word here
Do nofollow links pass PageRank?
In March 2020, Google changed how it treats all three qualifying values: from directives it obeyed to hints it may take into account, for both ranking and crawling. That is the fact. What people do with the fact is where it goes wrong.
Assume nofollow passes nothing, and justify the link on everything else. If ranking value shows up as well, good.
The optimistic reading is that nofollow links now pass equity, so it no longer matters. That is not what a hint means. The pessimistic reading is that nothing changed and nofollow links are still worthless. That is not what it means either. What Google actually said is that its systems may choose to use these links, which is deliberately unspecified, and no amount of testing published by anyone has resolved it into a number.
So here is the planning position we would take, stated as judgment rather than fact. Assume a nofollow link passes nothing, and build the case for pursuing it on referral traffic, brand exposure and the coverage it tends to lead to. If some ranking benefit arrives too, good. What you should not do is pay a premium for a follow attribute on a placement you would otherwise have declined, because you are buying a hint.
The same reasoning applies to sponsored and ugc. They are hints as well, which is why the attribute is a disclosure of the relationship rather than a dial that controls how much value moves.
The part nobody covers
An attribute is not a permanent property
Every article on this subject, including the ones that get the definitions right, treats the attribute as something decided once, when you acquire the link. It is not. It is a value in somebody else's HTML, on a page you do not control, and it changes.
Your link is still there, still in the same paragraph, still with the same anchor. Four words changed in the source.
The causes are mostly structural rather than personal. A publisher switches theme and the new one qualifies external links by default. A plugin update flips the setting. A site adopts a blanket policy on outbound links after somebody spammed them. A migration lands on a platform with different defaults. Occasionally a new editor goes through and does it deliberately, but that is the minority case.
What makes this expensive is that nothing tells you. The page renders identically. Your link is still there, still in the same paragraph, still with the same anchor text. Open it in a browser and everything looks correct. The only difference is four words in the source, and if you found out at all it was because somebody happened to look.
That is the argument for tracking the share of your placements carrying a follow attribute over time rather than checking individual links when you happen to think of it. The single link is not the interesting unit. The direction of travel across a profile is, and it is the sort of thing a scheduled recheck surfaces and a manual audit never does.

A nofollow flip is the quietest way a placement loses value: nothing is removed, nothing 404s, and no report flags it unless something is comparing today's markup against last month's. That comparison is the job, and it is dull enough that it only happens if it is automatic. See how return link tracking works.
Decisions
Which attribute to use, by situation
For the outbound links on your own site, which is the half you are actually responsible for, and the half an exchange agreement commits you to. One table replacing the four separate sections this usually gets written as.
| The situation | Use | Why |
|---|---|---|
| You cited a source because it was useful | No attribute | An ordinary editorial reference, which is what the default state is for |
| Somebody paid for the placement | rel=sponsored | Names the commercial relationship, which is what Google asks for |
| An affiliate link earning commission | rel=sponsored | Compensation is involved, even though no cash changed hands up front |
| A guest post you paid to place | rel=sponsored | The payment is the point. Covered properly in the link scheme article |
| A gifted product or free subscription | rel=sponsored | Consideration does not have to be money to count as compensation |
| A link in a blog comment | rel=ugc | A visitor put it there. Most comment systems apply this automatically |
| A forum post or user review | rel=ugc | Same reasoning, and worth checking your platform actually does it |
| A source you cite but do not vouch for | rel=nofollow | The general qualifier, for the cases the specific values do not describe |
If you are unsure between sponsored and nofollow on a commercial link, use sponsored. It is more descriptive, it is what the policy names, and there is no downside to being specific.

Verification
How to check a link's attribute
Three methods, and the useful thing to understand is why they disagree, because they will.
View source shows the HTML the server sent. A browser extension reads the rendered DOM after JavaScript has run, which can differ if the site modifies links on load. A backlink tool reports the state at its last crawl of that page, which might be six weeks ago. All three can be simultaneously correct and give you three different answers about one link.
For a decision you are making right now, the raw HTML on the live page wins, and the free backlink status checker reads it for you. For understanding whether something changed, the tool's historical view is the only one that has a yesterday to compare against.
The check, in order
The first two take about fifteen seconds each. The last two are the ones that actually catch problems.
- 1
Read the raw HTML first
View source on the live page and find the anchor tag. This is what the server actually sent, it is what a crawler receives before rendering, and it is the answer to trust for a decision you are making today.
- 2
Then check the rendered DOM
Right click the link, inspect, and look at the same tag in the elements panel. If it differs from view source, JavaScript is modifying the link after load. Worth knowing about, because the two versions can genuinely disagree.
- 3
Treat your backlink tool as a historical record
Ahrefs, Semrush and the rest report the attribute as it stood at their last crawl of that page, which might be weeks old. Useful for spotting a change across a whole profile, not authoritative about any single link right now.
- 4
Check the whole profile, not one link
One link is a spot check. What you actually want is the share of your placements carrying a follow attribute, tracked over time, because the interesting event is the direction of travel rather than any single value.
- 5
Recheck on a schedule, not on suspicion
The failure mode here is that nothing prompts you to look. A flip produces no notification, no ranking cliff on the day, and no visible change to the page, so the only thing that catches it is something running whether or not you remembered.
Common errors
Mistakes worth not making
Most of these come from treating the attribute as a quality score rather than as a description of a relationship.
- Writing rel=dofollow into markup, which does nothing
- Nofollowing every external link on your site by default
- Leaving old sponsored posts unqualified because they predate the attribute
- Using sponsored on user comments, which are ugc
- Using ugc on your own editorial links
- Reading nofollow as no value, then declining good placements
- Reading hint as it passes equity now, then paying for nofollow links
- Sorting a prospect list by follow status before checking relevance
- Trusting a backlink tool's attribute over the live page's HTML
- Assuming an affiliate plugin still qualifies links after an update
- Checking attributes once at acquisition and never again
- Adding nofollow to a manipulative arrangement and calling it fixed
Three separate axes
Attribute is not type, and not placement
Three different things get flattened into one conversation constantly, and separating them makes every judgment easier.
The type is how the link came to exist: an editorial citation, a guest post, a partner arrangement, something you paid for. That is a fact about the acquisition, and we sorted all 25 of them by value and risk separately.
The attribute is how the markup qualifies it, which is this page. And the placement is where on the page it sits: inside a paragraph, in an author bio, in a sidebar, in a footer rendered across every page of the site. That third axis quietly does more work than either of the others, and it is the one nobody asks about.
The three are independent. A guest post link can be standard or sponsored, in the body or in a bio. Knowing one tells you nothing about the other two, so check each separately rather than inferring.
Strategy
Should you chase only follow links?
No, and filtering a prospect list by attribute before you have looked at relevance is one of the faster ways to spend a quarter badly. The attribute matters for one thing only, and that is whether a paid link is declared.
A profile made entirely of follow links is not a strong profile. It is an unusual one.
Work through what a nofollow link from a publication your buyers actually read gives you. Referral traffic from people already in the right frame of mind. Recognition with an audience you want. A clip you can point at, which makes the next pitch easier. Frequently, other coverage, because journalists read each other. None of that requires a follow attribute and all of it compounds.
Now the opposite case: a follow link on a page with no readers, no rankings and forty other outbound links. It ticks the box on your report and does close to nothing. If you have ever seen a profile full of technically follow links that moved no rankings, this is usually why.
A natural profile contains all four states anyway, because real publications qualify links according to their own policies and you do not get a vote. A profile made entirely of follow links is itself an unusual shape.
The verdict
So what do link attributes actually do?
They describe a relationship. That is the whole job. Nofollow says we are not endorsing this, sponsored says money was involved, ugc says a visitor put it here, and the absence of all three says this is an ordinary editorial reference. None of them is a quality signal, none is a lever you can pull, and since 2020 all three are hints rather than commands. Use them to describe what is true, and judge links on everything else.
- Qualifying your own commercial links correctlyLow
- Accepting good nofollow placements on meritLow
- Filtering prospects by follow status first
- Paying a premium for a follow attribute
- Leaving paid placements unqualifiedVery high
Use attributes to describe the relationship honestly. They were never a way to move value around.
Questions
Questions people actually ask about this
Is rel=dofollow a real thing?
No. There is no dofollow value in the HTML spec and search engines do not look for one. A standard link is simply an anchor tag with no qualifying rel value on it, and dofollow is the shorthand the industry invented to talk about that state. Writing rel="dofollow" into your markup does nothing at all, which is harmless but tells anyone reading your source where you learned SEO.
Do nofollow links pass PageRank?
Google changed nofollow from a directive to a hint for ranking and crawling purposes in March 2020, which means the systems may choose to use these links rather than ignoring them outright. What that does not mean is that nofollow links now pass equity, and anyone telling you either way with confidence is filling in a blank Google left deliberately. Plan as though they do not count and be pleased if they do.
Can one link carry more than one rel value?
Yes, space separated, and it is common. You will see rel="sponsored nofollow" on advertising and rel="ugc nofollow" on comment systems. Combining is belt and braces rather than necessary, since sponsored and ugc already qualify the link on their own, and plenty of platforms do it because their template predates the newer values.
Should affiliate links use sponsored or nofollow?
Sponsored, because it describes the actual relationship, and Google names it as the value for links created as part of advertising or other compensation. Nofollow is not wrong on an affiliate link, it is just less specific. Most affiliate plugins apply one or both automatically, which is worth verifying rather than assuming, because a plugin update can change the default.
My dofollow link turned into a nofollow. What happened?
Almost always something structural rather than something about you. A theme or template change, a plugin update that started qualifying all external links, a new editorial policy applied sitewide, or a migration to a platform with different defaults. Occasionally an editor did it deliberately. The page looks completely normal either way, which is why this goes unnoticed for months.
Why does my backlink tool disagree with view-source about an attribute?
Because they are describing different things. View-source shows the HTML the server sent. A browser extension reads the rendered DOM after JavaScript has run, which can differ. A backlink tool reports what it saw at its last crawl, which might be weeks or months ago. All three can be correct simultaneously, and the raw HTML on the live page is the one to trust for a decision you are making today.
Are dofollow links always better than nofollow ones?
No, and sorting your prospect list by follow status is one of the faster ways to waste a quarter. A nofollow link from a publication your buyers actually read sends traffic, builds recognition and often leads to further coverage. A follow link from a page nobody visits does none of that. The attribute is one property of a link, and it is not the one that decides whether the link was worth having.
Keep reading
Related reading and tools
The policy questions this page keeps handing off, the taxonomy that sits beside it, and the operational half: catching the day an attribute changes.
Link Exchange Guidelines: Domain, Placement, Anchor, and Quality Standards
Most teams have standards, in one person's head, and they hold until volume outgrows that person. Here is the version you can hand to somebody else: eligibility, domain and page criteria, anchors, and the verification step nobody writes down.
Read moreLink Exchange vs Listicle Exchange: SEO Value, Risks, and Which to Use
Listicle exchanges get sold as the natural-looking version. They are also the only exchange format where the page makes a factual claim about merit, and where the two sides are almost never trading assets of equal value.
Read moreAre Link Exchange Platforms Safe? How to Judge One Before You Join
How a platform makes money predicts what it will push you toward, more reliably than anything on its homepage. The five models, the incentive baked into each, and what to ask before you hand over a domain.
Read moreBacklink monitoring
Scheduled rechecks that catch the day a follow link quietly went nofollow.
Read moreFree backlink status checker
Paste a list of placements and see which are still live and still carrying a follow attribute.
Read moreLink building glossary
Short definitions for nofollow flip, follow to nofollow ratio and the rest of the vocabulary.
Read moreA nofollow flip looks exactly like a healthy link
Nothing is removed and nothing 404s, so the only thing that catches it is a recheck running whether or not anyone remembered. Track the attribute on every placement, not just whether it is still there.