Skip to main content
Beta: Front-End Checklist is currently in beta. Some issues are still being fixed. Thanks for your patience.
SEOMedium

Avoid nofollow on internal links

Flags internal links with rel=nofollow

Utilities
Quick take
Typical fix time 10 min
  • rel=nofollow on internal links blocks PageRank flow to your own pages
  • Internal nofollow was once used for 'PageRank sculpting' but is no longer effective
  • Use nofollow only on outbound links to untrusted or sponsored content
  • If you don't want a page crawled or indexed, use noindex on the target page instead
Why it matters: Adding rel=nofollow to internal links prevents PageRank from flowing to those pages—reducing their ability to rank—while providing no benefit over simply omitting the attribute.

Rule Details

rel="nofollow" was introduced to tell search engines not to follow a link or pass PageRank through it. Google's rel-attribute guidance (opens in new tab) applies to outbound trust decisions, not your own architecture, so internal nofollow weakens the same flow covered in internal-links.

Code Example

<!-- ❌ Bad: Internal link with nofollow — blocks PageRank flow -->
<a href="/products/shoes" rel="nofollow">View Shoes</a>
 
<!-- ✅ Good: Internal link without nofollow -->
<a href="/products/shoes">View Shoes</a>
 
<!-- ✅ OK: nofollow on an external, untrusted link -->
<a href="https://untrusted-source.com/article" rel="nofollow">Source</a>

Why It Matters

Adding rel="nofollow" to internal links prevents PageRank from flowing to those pages while providing no benefit over simply omitting the attribute. Google’s 2019 note on evolving nofollow (opens in new tab) is the clearest modern explanation for why PageRank sculpting is no longer a valid rationale.

What nofollow Actually Does

When Googlebot encounters rel="nofollow" on an internal link, it may still crawl the target URL (Google now treats nofollow as a "hint" since 2019), but PageRank does not flow through the link. The result:

  • The target page receives less internal link authority
  • Its ability to rank for competitive queries is diminished
  • The blocked PageRank is not redistributed elsewhere

Correct Alternatives

GoalWrong approachCorrect approach
Don't index the target pagerel="nofollow" on links TO it<meta name="robots" content="noindex"> ON the target page
Don't crawl the targetrel="nofollow" on links TO itDisallow: /path/ in robots.txt
Mark sponsored linksrel="sponsored" on those links
Mark user-generated linksrel="ugc" on those links

There are very few cases. One edge case: a large user-generated content site may add rel="nofollow ugc" to links in user profile bios pointing to other pages within the same site, if those profiles are untrusted. Even then, rel="nofollow" alone still passes no PageRank.

Audit Command (Screaming Frog (opens in new tab))

  1. Crawl → Links → Filter by Link Type: Internal
  2. Filter Follow: No (nofollow internal links)
  3. Export and review each case

Automated Audit

// Example: find internal nofollow links in parsed HTML
const links = document.querySelectorAll('a[href]')
const domain = 'example.com'
 
const internalNofollow = Array.from(links).filter(a => {
  const isInternal = a.href.includes(domain) || a.href.startsWith('/')
  const hasNofollow = a.rel.split(' ').includes('nofollow')
  return isInternal && hasNofollow
})

Exceptions

  • Staging, utility, login, account, or internal search pages may intentionally use different crawl or index signals if they are not meant to rank.
  • Temporary migration states can produce noisy intermediate signals; flag the live production URL pattern, not one-off transition artifacts.
  • When redirects, canonicals, robots directives, or indexability signals conflict, fix the strongest final signal first instead of reporting every downstream symptom as a separate blocker.

Standards

  • Use these references as the standard for the final search-facing HTML, metadata, and crawl behavior.
  • Check the implementation against Google Search Central: Qualify your outbound links with rel before treating the rule as satisfied.
  • Check the implementation against Google Blog: Official nofollow link attribute announcement before treating the rule as satisfied.

Verification

Automated Checks

  • Inspect rendered HTML and HTTP headers to confirm the expected metadata or crawlability signal is present.
  • Test the affected URL with Google Search Console or equivalent tooling where relevant.
  • Re-crawl a representative page set after deployment.

Manual Checks

  • Confirm the change does not create conflicting canonical-url, robots, or structured-data signals.

Use with AI

Copy these prompts to use with your AI assistant, or install the MCP server to use directly from Claude, Cursor, or Windsurf.

Check

Verify implementation

Scan all internal links (<a href> tags pointing to the same domain) for the presence of rel='nofollow' or rel containing 'nofollow'. List each instance with its source page, anchor text, and target URL.

Fix

Auto-fix issues

Remove rel='nofollow' from internal links. If the goal was to prevent indexing of the target page, add <meta name='robots' content='noindex'> to the target page instead. If the goal was to prevent crawling, use robots.txt Disallow for that path.

Explain

Learn more

The rel=nofollow attribute was originally designed for untrusted external links. When applied to internal links, it blocks PageRank from flowing to your own pages without any benefit. Google has stated that PageRank sculpting via nofollow does not work—the PageRank that would have passed is simply lost, not redistributed.

Review

Code review

Query all <a href='...'> elements. For each link, check if rel contains 'nofollow'. Determine if the link is internal (same domain) or external. Flag every internal link with rel='nofollow'. Check if the flagged links are in navigation, header, footer, or body content. Look for rel='nofollow new-tab' patterns that may have been applied blanket to all links.

Sources

References used to support the guidance in this rule.

Further Reading

Tools and supplementary material for exploring the topic in more depth.

Screaming Frog SEO Spider Website Crawler

The industry leading website crawler for Windows, macOS and Ubuntu, trusted by thousands of SEOs and agencies worldwide for technical SEO site audits.

Screaming FrogGuide

Rules that often go hand-in-hand with this one.

Add internal links to key pages

Validates that key pages receive adequate internal links from other site pages

SEO
Add internal links to orphan pages

Detects pages with no internal links pointing to them

SEO
Set canonical URLs for all pages

A canonical URL tag is present to prevent duplicate content issues.

SEO
Weak Internal Links

Detects pages with very few dofollow internal links pointing to them, indicating poor link equity distribution and crawl discoverability.

SEO

Was this rule helpful?

Your feedback helps improve rule quality. This stays internal for now.

Loading feedback...
0 / 385