Skip to the tool
OnPageKit

Link Attributes Checker

Audit rel, target and anchor text across every link in pasted markup.

an article, a template, a whole page
optional

Fill this in and absolute links back to your own site are counted as internal. Leave it empty and every absolute address is treated as external, because nothing in the markup says where it came from. Note that example.com and www.example.com are different hosts, and the tool will not guess that you meant both.

Links
0
Internal
0
External
0
Passing signal
0
  • No anchors with an href in this markup. Paste the source of the page rather than its address — the tool has no way to fetch anything, and an <a> with no href is a landing point rather than a link.

Everything runs in your browser. Nothing you type is sent to a server.

Found a bug in this tool? Report it.

Share this tool

What this nofollow link checker reports

Paste the markup of a page into this nofollow link checker and it reads back every anchor that has an href: whether the destination is on your site or someone else's, which rel tokens are present and what each one declares, whether a new tab was opened without noopener, and which links have no usable text. It also groups the destinations by host, so a page linking eleven times to the same shop is obvious at a glance.

Give it your own hostname in the second field and absolute links back to your own site are counted as internal. Without it the tool refuses to guess, because a wrong guess here changes every number in the report.

The three hints, and which one you owe

Since September 2019 there have been three attribute values that describe a link's relationship rather than just suppressing it. sponsored marks a link that was paid for. ugc marks one that somebody else wrote — a comment, a forum post, a profile field. nofollow remains for everything else you do not want to be seen endorsing.

Only one of them carries a real obligation. If money, product or any other consideration changed hands for the placement, the link needs sponsored — an affiliate URL in a review, an advert in a sidebar, a paid mention in a roundup. Google treats undisclosed paid links as a link scheme, and manual actions for it are one of the few penalties that still arrive by hand.

ugc is a defensive measure rather than a duty. On any site where strangers can post, comment spam exists to place links, and marking the whole region means you are not endorsing whatever gets through moderation.

Hints, not commands

All three are hints as of March 2020. Google says it may use a nofollowed link for crawling and indexing anyway, if it judges the link informative. This is less alarming than it sounds — the attribute still says what you meant it to say — but it does kill one old habit: nofollow is not a mechanism for hiding a page. Use the meta robots tag or the header for that, which the meta robots tag generator writes for you.

noopener, noreferrer, and the gap between them

target="_blank" used to hand the opened page a live reference to yours through window.opener, which was enough for it to redirect your tab somewhere else while the reader was looking at the new one. Chrome, Firefox and Safari all made noopener the default in 2021, so on a current browser the attribute is redundant.

It is worth writing anyway. Embedded webviews and older installs lag behind, and a reviewer reading the markup should not have to work out which engine will render it. noreferrer is a different thing wearing a similar name: it strips the Referer header as well, so the destination cannot see that the visit came from you. That is occasionally what you want and usually not — it makes your own referrals invisible in their analytics, which is a poor way to start a relationship with a site you just linked to.

The link text is a signal too

The checker flags anchors with no text at all and anchors whose text is a filler phrase. Both matter twice over. Someone using a screen reader can pull up a list of every link on the page and tab through it out of context, where nine links called "read more" are nine identical entries. And the text of an incoming link is one of the few descriptions a destination gets from outside itself, so spending it on "click here" throws away the only sentence you were asked to write about the page you are recommending.

An anchor wrapping an image counts as empty here, because the accessible name then comes from the alt attribute instead — which the image alt checker reads. If the same page is being audited for structure, the DOM size checker works from the same pasted source.

Frequently asked questions

Is rel=nofollow still obeyed by Google?

It is read, but since March 2020 it is treated as a hint rather than an instruction. Google reserves the right to consider a nofollowed link for crawling and indexing if it judges that useful. In practice the attribute still does the job it was built for — declaring that you do not vouch for the destination — while giving no guarantee about what the crawler does next.

When is rel=sponsored actually required?

Whenever money or goods changed hands for the placement: adverts, paid guest posts, affiliate links, gifted products reviewed with a link back. Google's guidance says undisclosed paid links are a link scheme, and the disclosure is expected regardless of whether the payment was in cash. In the UK the ASA also requires the commercial relationship to be clear to the reader, which is a separate obligation the attribute does not satisfy on its own.

What is the difference between noopener and noreferrer?

noopener stops the newly opened page from getting a scripting reference back to yours through window.opener. noreferrer does that too, and additionally withholds the Referer header, so the destination has no idea where the visit came from. Use noopener by default; add noreferrer only when you deliberately want to hide the source, and accept that you disappear from their analytics.

Do I still need rel=noopener on target=_blank?

Browsers have implied it since 2021 in Chrome, Safari and Firefox, so for a current browser it is redundant. It is still worth writing for the older ones people run, for embedded webviews that lag behind, and because a reviewer reading the markup should not have to work out which engine will be used.

Can nofollow on internal links control how signal flows around my site?

No, and it has not worked since 2009. Before then, nofollowing one internal link redistributed its share among the others; Google changed that so the share is discarded instead. Nofollowing your own pages loses signal rather than redirecting it. If a page should not be indexed, deal with it on that page.

Related tools

Updated