Free Β· No sign-up Β· Runs in your browser

Dofollow & Nofollow Link Checker

Analyse webpage links and identify nofollow, sponsored, UGC, internal and external links with detailed SEO insights. Every classification comes from reading the rel attribute exactly the way a browser does.

  • Free to use
  • No signup
  • Fast analysis
  • SEO-focused
  • Detailed link report

Analyse a page

How this works: your browser requests the page directly. That only succeeds when the site sends CORS headers allowing it, which most sites do not. ToolAdda is a static site with no server that could fetch pages for you, so if the request is refused the tool will say so and you can use β€œPaste HTML” instead. A refused request is never reported as β€œno links found”.

Link details

What this tool can and cannot do. It reads link markup, which it does exactly and completely. It does not run JavaScript, so links a page builds after load are not seen. It cannot reliably verify HTTP status codes, because a browser is blocked from reading most cross-origin responses β€” and a blocked request looks identical to a genuine 404, so reporting those as broken links would be wrong.

What is a dofollow link?

A "dofollow" link is an ordinary link β€” one that carries no instruction telling search engines to hold back. The term is useful shorthand, but it describes an absence rather than something added to the markup.

This trips people up constantly, so it is worth stating plainly: there is no rel="dofollow" in HTML. It appears in no specification, and search engines do not act on it. Writing it does no harm, but it achieves nothing either, because a link is already followable by default. This checker flags it as inert whenever it finds one.

A plain link like <a href="/pricing">Pricing</a> is what people mean by dofollow. To change that behaviour you add a restricting value; you never add a permitting one.

What is a nofollow link, and what does rel="nofollow" mean?

A nofollow link carries nofollow in its rel attribute:

<a href="https://example.com" rel="nofollow">Example</a>

Google and Yahoo introduced it in 2005, aimed squarely at comment spam. If links posted by strangers carried no ranking benefit, the incentive to spam them would fall away.

Two details are commonly misstated:

  • It does not stop crawling. Nofollow is about ranking credit, not access. If you need a page kept out of search results, that is a job for a noindex meta tag; if you need it kept out of a crawl, that is robots.txt. Nofollow does neither.
  • It has been a hint since March 2020. Google announced it would treat nofollow as a signal to consider rather than a strict directive. In practice, credit is generally not passed β€” but the guarantee people used to rely on is gone.

None of this affects visitors. A nofollow link is clicked, followed and rendered exactly like any other.

What are sponsored and UGC links?

In September 2019 Google added two more values so publishers could say why a link is not an endorsement, rather than lumping every case under nofollow.

rel="sponsored"

For links that exist because of advertising, sponsorship or any other paid arrangement β€” banner ads, affiliate links, paid placements, sponsored posts. Disclosing paid links this way is the recommended approach, and it is more precise than nofollow because it states the reason.

rel="ugc"

For user-generated content: links added by visitors rather than the publisher. Comments, forum posts, reviews, wiki edits. It lets search engines distinguish what your readers linked to from what you linked to.

Combining values

The rel attribute is a space-separated list, so values combine freely:

  • rel="nofollow sponsored" β€” a paid link, with nofollow kept for older crawlers.
  • rel="ugc nofollow" β€” a comment link, same reasoning.
  • rel="sponsored ugc" β€” a paid placement inside user content.

This tool reports any link with more than one restricting value as Multiple and lists every token it found.

Dofollow vs nofollow at a glance

PropertyNormal ("dofollow")Nofollow
MarkupNo rel value neededrel="nofollow"
Is it a real attribute value?No β€” it is the defaultYes
Passes ranking creditNormally yesGenerally no (a hint since 2020)
Can be crawledYesYes β€” nofollow is not a crawl block
Works for visitorsYesYes, identically
Typical useEditorial links you stand behindUntrusted, paid or user-submitted links

How to check whether a link is nofollow

By hand

Right-click the link and choose Inspect. The highlighted <a> element shows its attributes; look for rel. If it is missing, or contains none of nofollow, sponsored or ugc, the link is normal.

Across a whole page

Inspecting one link at a time does not scale past a handful. Open the page, press Ctrl+U (Cmd+Option+U on a Mac) to view source, copy it, and paste it into the checker above. Every link is then listed with its exact rel value, and you can filter to just the nofollow ones.

Checking a backlink

To find out whether a site's link to you passes credit, analyse their page and search the table for your domain. The rel column answers the question directly.

How this checker reads the rel attribute

Link classification looks trivial and is full of traps. Three decisions here are worth explaining, because they are where other tools tend to get it wrong.

rel splits on spaces, never on commas

The HTML specification defines rel as a space-separated token list, and every browser implements exactly that. So rel="nofollow,sponsored" is a single token β€” the string "nofollow,sponsored" β€” which matches nothing. The link is treated as normal by every crawler that reads it.

A tool that helpfully split on commas would report that link as nofollow, contradicting what search engines actually see. This checker follows the browser exactly and instead flags the comma as a likely authoring mistake. Being lenient in the parser would mean being wrong in the report.

"Normal" is not the same as "dofollow"

The status column says Normal / follow, meaning the link carries no nofollow, sponsored or ugc token. It never claims the page contains a dofollow attribute, because no such attribute exists.

A failed request is not a broken link

Browsers cannot read the status of most cross-origin responses. A CORS refusal, a firewall, bot protection, a sign-in wall and a genuine 404 all surface as the same failure. Calling any of those "broken" would be a guess dressed as a finding, so this tool audits markup and leaves status verification to server-side crawlers that can actually see the response.

Internal vs external links

An internal link points to another page on the same site; an external link points somewhere else. The checker compares each link's host with the page URL you supply β€” which is why supplying it matters. Without it, relative links like /about cannot be resolved and nothing can be classified.

Several details are handled explicitly:

  • www and non-www are treated as the same site.
  • http and https do not affect the classification.
  • Relative, root-relative and protocol-relative URLs are all resolved against the page URL.
  • Subdomains count as external by default, since blog.example.com is a distinct host. The toggle above changes this when you consider them part of one property.
  • mailto:, tel: and on-page anchors are neither internal nor external, and are reported as not applicable rather than being forced into one bucket.

Internal links help readers move around and show search engines how your pages relate. External links to good sources are a normal part of useful writing β€” the rel attribute exists precisely so you can link out while signalling when something is paid or user-submitted.

Why anchor text matters

Anchor text is the visible, clickable words of a link. It tells a reader where they are about to go, and it gives search engines a short description of the destination. "Download the 2026 pricing guide" does that work; "click here" does not.

The checker flags several patterns as worth a look β€” never as errors:

  • Empty anchors β€” a link with no text and no image alt has no accessible name at all. A screen reader announces only the URL.
  • Generic anchors β€” "click here", "read more", "learn more". Perfectly readable in context, but they describe nothing on their own.
  • Image-only links β€” fine when the image has descriptive alt text, which then acts as the anchor text. Without alt, the link is unusable for anyone not seeing the image.
  • A bare URL as the text β€” technically fine, but a sentence describes the destination better than "https://example.com/a/b/c".

Repeated anchor text is listed separately and is deliberately not flagged as a problem. Navigation and footers repeat wording on purpose. It only deserves attention when the same words point at different destinations, which is confusing rather than harmful.

How to audit outbound links

A periodic outbound-link review is quick and catches real problems. A workable routine:

  1. Group by domain. The external domains table shows who you link to most. Surprises here are the point β€” an old widget or a compromised plugin can add links you never wrote.
  2. Check paid links are labelled. Affiliate links, sponsored posts and ad placements should carry rel="sponsored". Filter the table by relationship to see what is labelled and what is not.
  3. Check user-generated areas. Comment and forum links should carry rel="ugc", ideally applied automatically by the platform rather than by hand.
  4. Look for the comma mistake. The insights panel calls out rel attributes containing commas, which are silently ignored by every browser.
  5. Fix empty anchors. These are accessibility problems first and SEO problems second, and they are usually a two-minute fix.
  6. Keep a record. Export the CSV, so the next audit can be a comparison rather than a fresh start.

Common link attribute mistakes

  1. Writing rel="dofollow". Inert. Links are followable by default; there is nothing to add.
  2. Comma-separating rel values. rel="nofollow,ugc" is one unrecognised token. Use spaces.
  3. Expecting nofollow to hide a page. It affects ranking credit, not indexing or crawling. Use noindex or robots.txt for those.
  4. Nofollowing your own internal links. The old "PageRank sculpting" tactic stopped working long ago and now mostly gets in the way.
  5. Leaving affiliate links unlabelled. Paid links should be marked sponsored β€” this is a disclosure matter as much as an SEO one.
  6. Adding rel to the wrong element. The value belongs on the <a> tag, not on a wrapping div or the image inside.
  7. Misspelling the value. rel="no-follow" and rel="nofollw" do nothing. This checker lists unrecognised tokens so typos surface.
  8. Using target="_blank" without noopener. Not an SEO issue, but modern browsers now imply it β€” worth knowing when auditing older markup.

Technical limitations you should know about

Being explicit about what a browser-based tool cannot do is more useful than pretending otherwise.

  • CORS and the same-origin policy. A browser may only read another site's content when that site sends headers permitting it. Most do not. This is a security boundary, not a bug.
  • No server-side proxy. ToolAdda is a static site. There is no backend to fetch a page for you, which is exactly why the HTML paste mode exists and is the primary route.
  • JavaScript-rendered links are invisible. The parser reads the HTML you give it and does not execute scripts. Links injected by a framework after load will not appear unless you copy the rendered DOM instead of the source.
  • Authentication and bot protection. Pages behind a login, or behind Cloudflare-style challenges, cannot be fetched from a browser tab.
  • HTTP status verification. Not offered, because it cannot be done honestly from a browser for cross-origin links.
  • robots.txt. A crawler should respect it. This tool is not a crawler β€” it analyses one document you hand it β€” but any future crawling feature would need to.

Privacy

HTML you paste or upload is parsed by JavaScript on this page and is not uploaded to ToolAdda.

The URL box is different, and worth being precise about: your browser requests that page directly, exactly as if you had visited it. That website sees the request and your IP address, the same as any normal visit. ToolAdda has no server in the middle, so we do not receive the URL β€” but we are not shielding you from the destination site either.

Frequently asked questions

What is a dofollow link?

It is the everyday name for an ordinary link that carries no nofollow, sponsored or ugc value in its rel attribute. Links behave this way by default, so a dofollow link is simply a link that has not been marked with one of those directives.

Is there a dofollow attribute in HTML?

No. There is no rel="dofollow" in any HTML specification and search engines do not act on it. Writing it is harmless but does nothing, because a link is already followable unless you add nofollow, sponsored or ugc. This checker flags rel="dofollow" as inert when it finds it.

What is a nofollow link?

A link whose rel attribute contains the value nofollow. It tells search engines not to pass ranking credit through that link. It was introduced in 2005 to fight comment spam and is now treated by Google as a hint rather than a strict instruction.

What does rel="nofollow" mean?

It marks a link that the page does not vouch for. Google has treated it as a hint since March 2020, which means the link may still be crawled and considered, but ranking credit is generally not passed. It does not stop a user clicking the link or a browser following it.

What does rel="sponsored" mean?

It marks a link that exists because of advertising, sponsorship or another paid arrangement. Google introduced it in 2019 as the specific label for paid links, and using it is the recommended way to disclose them rather than relying on nofollow alone.

What does rel="ugc" mean?

UGC stands for user-generated content. It marks links that visitors added rather than the site owner, typically in comments and forum posts, so search engines can tell them apart from links the publisher chose.

Can one link have multiple rel values?

Yes. The rel attribute is a space-separated list, so rel="nofollow sponsored" and rel="ugc nofollow" are both valid and both apply. This checker reports such links as Multiple and lists every token it found.

How can I check if a link is nofollow?

Look at the link's rel attribute in the page source. Paste the page HTML into this checker and the rel column shows the exact value for every link, or filter the table to show only links carrying nofollow.

How do I check if a backlink is dofollow?

Open the page that links to you, copy its HTML into this tool, then search the table for your own domain. If the rel column is empty or contains none of nofollow, sponsored or ugc, the link passes credit normally.

How can I find all nofollow links on a page?

Analyse the page, then set the relationship filter to nofollow. The table will show only those links, and the summary at the top gives the count. You can export the filtered profile as CSV or JSON.

Are nofollow links useful?

They still send visitors, build awareness and can lead to other coverage, and they are the correct label for paid or untrusted links. Whether they contribute to rankings is not something any external tool can measure, so this page reports what the markup says rather than guessing at effects.

What is the difference between dofollow and nofollow?

The difference is one attribute value. A nofollow link carries rel="nofollow"; a so-called dofollow link simply does not. There is no positive marker to add, only a restricting one to leave off.

Can I analyse HTML directly instead of a URL?

Yes, and this is the mode that always works. Paste the page source or upload an HTML file, and the parsing happens entirely inside your browser. Adding the page URL alongside it lets the tool resolve relative links and split internal from external.

Why can't some URLs be fetched?

A browser may only read another site's content when that site sends CORS headers permitting it, and most do not. Bot protection, sign-in requirements and firewalls block requests too. ToolAdda is a static site with no server of its own to fetch on your behalf, so when a fetch fails the tool says so and points you to the HTML paste mode.

Can this tool check external links?

Yes. Every link whose host differs from the analysed page's host is marked External, and the domain table groups them by site with counts of normal, nofollow, sponsored and UGC links for each one.

Can this tool check internal links?

Yes. Links to the same host are marked Internal, including relative links once you supply the page URL. A setting lets you decide whether subdomains such as blog.example.com count as internal.

Can it check for broken links?

Not reliably, and it will not pretend otherwise. A browser cannot see the status code of most cross-origin requests, so a failed request is indistinguishable from a real 404. Reporting those as broken would be wrong, so the tool reports link markup and leaves status checking to a server-side crawler.

What is anchor text?

The visible, clickable text of a link. It gives readers and search engines a description of the destination, which is why specific wording is more useful than "click here". When a link contains only an image, the image's alt text does the same job.

What is an internal link?

A link from one page to another page on the same site. Internal links help visitors move around, show search engines how pages relate, and spread crawl attention across a site.

What is an external link?

A link pointing to a different website. Linking out to sources is normal and useful; the rel attribute is how you signal when an outbound link is paid, user-submitted or otherwise not an endorsement.

Can I export the link report?

Yes. Download every link as CSV for a spreadsheet, export the complete analysis as JSON, or copy a short text summary. The CSV escapes any cell that a spreadsheet might otherwise treat as a formula.

Is my data sent anywhere?

HTML you paste or upload is parsed in your browser and is not uploaded to ToolAdda. If you use the URL box, your browser contacts that website directly, exactly as it would if you visited the page, so that site can see the request.

A link audit is one part of a technical review. The Website SEO Checker covers on-page factors, the Sitemap Generator builds the XML file that tells crawlers which pages to visit, and the Robots.txt Generator handles what they may crawl β€” which is genuinely different from what nofollow does.

For the URLs themselves, the URL Encoder / Decoder deals with escaping, the UTM Builder adds campaign tracking to outbound links, and the URL Shortener creates shareable links. The DNS Lookup and SSL Checker cover the infrastructure behind the domains you link to.

What this tool does, and what would need a server

Available now: full anchor extraction; spec-accurate rel parsing with nofollow, sponsored and ugc detection including combinations; comma-mistake and inert-dofollow flagging; internal and external classification with an optional subdomain rule; link type detection; anchor text analysis; external domain breakdown; repeated anchor listing; a sortable, filterable, paginated table; a per-link inspector with highlighted source; CSV, JSON and summary export; and best-effort URL fetching where the target site permits it.

Would require a backend, and is not implemented: HTTP status and redirect-chain verification, whole-site crawling, backlink discovery, competitor link analysis, link monitoring over time, scheduled audits, bulk URL checking and an API. Each of those needs a server that can make requests without the browser's cross-origin restrictions. Listing them here is a roadmap, not a description of this page.