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.