Staaarter

Nofollow Checker

Fetches a page (or accepts pasted HTML) and checks for a page-wide nofollow directive via the meta robots tag or an X-Robots-Tag header, then enumerates every individual <a> link on the page and classifies its rel attribute as nofollow, sponsored, ugc, or plain dofollow, with counts by type. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-08-04
By Staaarter Team
checkerlivelinks

Overview

Introduction

Whether a link passes ranking signal depends on two independent things: a page-wide nofollow directive that blankets every link regardless of its own markup, and each individual <a> tag's own rel attribute, which can carry nofollow, sponsored, or ugc.

This tool checks both layers at once: it flags a page-level nofollow from the meta robots tag or X-Robots-Tag header, then walks every link on the page and classifies its individual follow status, with a count breakdown by type.

What Is Nofollow Checker?

A link auditor that reads a page's <meta name="robots"> tag and (optionally) an X-Robots-Tag response header for a page-wide nofollow directive, then parses every <a href> element's rel attribute to classify it as nofollow, sponsored, ugc, or dofollow.

It works two ways: fetching a URL directly from your browser when the target allows cross-origin requests, or reading HTML (and headers) you paste in yourself, which works on any page regardless of CORS.

How Nofollow Checker Works

The HTML is parsed with the browser's own DOMParser: the robots meta tag is checked for a nofollow token, then every <a href> element is collected and its rel attribute's tokens are checked in order (nofollow, then sponsored, then ugc) to assign one classification per link.

Pasted response headers are separately checked for an X-Robots-Tag containing nofollow, since that signal doesn't appear anywhere in the HTML itself.

When To Use Nofollow Checker

Auditing an affiliate or sponsored-content page to confirm every paid link actually carries rel="sponsored" as Google's guidelines ask for.

Checking a comments or forum section to confirm user-submitted links carry rel="ugc" so they don't pass unearned ranking signal.

Investigating why internal links between your own pages aren't passing signal as expected, which is sometimes traced to an accidental page-wide nofollow directive.

Features

Advantages

  • Separates the page-wide nofollow signal from per-link rel attributes, which is easy to conflate but behaves very differently for SEO.
  • Classifies every link individually with counts by type, instead of just reporting a single page-level pass/fail.
  • Works on any page via the paste-source fallback, not just pages that happen to allow cross-origin fetches.

Limitations

  • A live fetch only works when the target site sends permissive CORS headers, which most ordinary websites don't; use the paste fallback for the HTML and headers inputs.
  • Link text is truncated to 120 characters in the results list for readability, and links with no visible text (e.g. image-only links) show as "(no link text)".
  • This tool reads the static HTML as fetched or pasted; links injected client-side by JavaScript after the initial page load won't appear unless you paste HTML captured after that JavaScript has run.

Examples

A page with mixed link types

Input

<a href="/about">About</a>
<a href="https://sponsor.example.com" rel="sponsored">Our sponsor</a>
<a href="https://user-blog.example.com" rel="ugc">A commenter's link</a>

Output

No page-level nofollow directive
1 dofollow, 1 sponsored, 1 ugc, 0 nofollow (3 links total)

Each link's own rel attribute is read independently since there's no page-wide directive overriding them.

A page with a page-wide nofollow directive

Input

<meta name="robots" content="noindex, nofollow">
<a href="/pricing">Pricing</a>

Output

Page-level nofollow (blocks ALL links)
1 dofollow (per its own rel attribute), but the page-wide directive overrides it

Even though the individual link carries no rel attribute, the page-level nofollow directive stops it from passing ranking signal anyway.

Best Practices & Notes

Best Practices

  • Add rel="sponsored" to paid, affiliate, and advertising links specifically, since Google's guidelines ask for this distinct signal rather than a generic nofollow.
  • Add rel="ugc" to links inside comments, forum posts, or any content a site visitor submitted rather than the site owner, so search engines know the link wasn't editorially endorsed.
  • Double-check a page-wide nofollow directive isn't accidentally blanketing your own internal navigation links, which stops PageRank from flowing through your site as intended.

Developer Notes

When a link's rel attribute carries more than one relevant token (e.g. "nofollow sponsored"), this tool classifies it using a fixed precedence - nofollow, then sponsored, then ugc - purely for a single display label; all present tokens are still shown verbatim in the rel value underneath.

Nofollow Checker Use Cases

  • Verifying every sponsored or affiliate link on a monetized page carries the rel="sponsored" attribute Google's guidelines ask for
  • Auditing a comments section or forum for missing rel="ugc" on user-submitted links
  • Confirming a suspected page-wide nofollow directive is (or isn't) the reason internal links aren't passing ranking signal

Common Mistakes

  • Using a generic rel="nofollow" on every paid or user-submitted link instead of the more specific sponsored/ugc values Google's guidelines now distinguish between.
  • Not realizing a page-level nofollow directive overrides every individual link's rel attribute, so auditing links one by one without checking the page-level signal first misses the real cause.

Tips

  • Paste response headers as well as HTML when a page's nofollow status seems inconsistent with what you see in the HTML, since an X-Robots-Tag header can apply page-wide nofollow invisibly.

References

Frequently Asked Questions