All fix guides
WarningLinks & Crawlability

Stop Adding rel=nofollow to Internal Links

This audit found a high share of your internal links carrying rel="nofollow", which doesn't work the way it's often assumed to. The old idea that nofollowing internal links "sculpts" PageRank toward other pages has been dead since Google's 2009 clarification, and nofollow became a hint rather than a hard rule in 2019, so it isn't even a reliable way to stop a link from being crawled anymore. In practice, nofollowing a real content page just risks losing link equity and delaying discovery for nothing; reserve it for genuine utility links (login, cart, account) and remove it from everything else.

What this means

rel="nofollow" is a link attribute, <a href="/page" rel="nofollow">, that tells search engines not to pass ranking credit through that link and, historically, not to bother crawling it. Google introduced it in 2005 specifically to fight blog-comment spam, so people couldn't boost a page's authority just by dropping links into open comment sections.

This audit fires when a large share of a site's internal links, links from one of your own pages to another, carry that attribute. That's different from nofollow on outbound links to other people's sites, which is a separate and often legitimate practice (paid and affiliate links are supposed to use rel="sponsored" specifically, a related but distinct value introduced in 2019).

Excessive internal nofollow usually traces back to one of a few habits: a leftover "PageRank sculpting" strategy from the late 2000s, a page-builder or theme setting that defaults new menu items or buttons to nofollow, a plugin that blanket-applies nofollow to some link pattern without checking whether the destination is actually a real content page, or a mistaken belief that nofollow will keep a page out of Google's index. It won't reliably do that, and it isn't the right tool for it.

This is a warning, not an error, because nofollow on a genuine utility link, login, cart, account settings, is completely fine and often correct. The issue is specifically when it lands on links to pages you actually want found and ranked: blog posts, product pages, category pages, or anything in your main navigation.

Why it matters

The idea that nofollowing some internal links redirects their "share" of PageRank to your other, followed links is a myth, and has been since 2009. Google's own explanation at the time was that a nofollowed link still counts toward the total number of outbound links considered when dividing up a page's PageRank; the portion that would have flowed through the nofollowed link isn't rerouted anywhere, it's simply lost. So the classic sculpting setup, nofollowing low-value pages to concentrate more equity on money pages, never worked the way people thought, even at the time it was popular.

In 2019, Google made things a step more nuanced by changing nofollow from a hard directive into a hint. Since then, Google has said it may choose to crawl a nofollowed link anyway and can take it into account as one signal among many, rather than guaranteeing it's ignored entirely. Practically, this means internal nofollow no longer reliably accomplishes its other historical purpose of keeping a link from being crawled either. You end up with the worst of both outcomes: link equity that isn't cleanly redirected anywhere, and no dependable guarantee the link goes uncrawled.

The real, current cost of nofollowing internal links to real content is crawl discovery. On a large site with a constrained crawl budget, or for a page with no other followed internal links pointing to it, a nofollowed link can be the only path Google has to find that page, and treating it as a hint to skip means slower discovery or, in the worst case, a page that never gets crawled through normal internal linking at all. That compounds with orphan-page risk: a page reachable only through nofollowed links is functionally close to an orphan from a crawler's point of view.

For AI answer engines, internal links, nofollowed or not, matter less directly since most don't compute anything resembling PageRank. But the broader lesson still applies: if you don't want a page crawled, indexed, or cited, nofollow is not a dependable access-control mechanism for any crawler, human-facing search engine or AI bot alike. Use a meta robots noindex tag, or actually restrict access, if that's the real goal.

How to fix it

  1. 1

    Crawl the site and pull every internal nofollow link

    Use a crawler, Screaming Frog's internal-link report with the nofollow filter, or your own site's link-audit tooling, to list every internal link carrying rel="nofollow" along with its source page and destination. This turns a vague "too much nofollow" finding into a concrete list you can triage.

  2. 2

    Sort each one into "utility" or "content"

    For every link in that list, ask what the destination page actually is. Login, logout, cart, checkout, account settings, and internal search or filter URLs that create near-duplicate combinations are legitimate candidates for nofollow. Blog posts, product pages, category and collection pages, and anything in your primary navigation or footer that you want ranked are not; those should almost never carry nofollow on an internal link.

  3. 3

    Remove nofollow from links to real content

    Strip the rel="nofollow" attribute from every internal link pointing at indexable content. If a page-builder toggle, theme setting, or plugin is the source of the attribute, fix the setting at its root rather than editing individual links one by one, or it will keep reappearing on new pages and posts.

  4. 4

    For pages you genuinely don't want indexed, use noindex instead of nofollow

    If the actual goal was keeping a page out of Google's index rather than just declining to pass it credit, internal nofollow is the wrong tool, since the 2019 hint change means it's no longer a reliable way to stop crawling either. Add a <meta name="robots" content="noindex"> tag on the destination page itself, or restrict access outright for anything sensitive, and let the internal link stay a normal, followed link.

Example

<!-- BAD: real content links nofollowed for no reason, likely a leftover theme/plugin default -->
<nav>
  <a href="/blog" rel="nofollow">Blog</a>
  <a href="/products" rel="nofollow">Products</a>
</nav>
<a href="/blog/seo-guide" rel="nofollow">Read our SEO guide</a>

<!-- GOOD: nofollow reserved for genuine utility links only -->
<nav>
  <a href="/blog">Blog</a>
  <a href="/products">Products</a>
</nav>
<a href="/blog/seo-guide">Read our SEO guide</a>

<a href="/account/logout" rel="nofollow">Log out</a>
<a href="/cart/checkout" rel="nofollow">Checkout</a>

Nofollow removed from navigation and content links pointing at real pages; kept only on account and utility links where passing link equity was never useful.

Platform-specific steps

WordPress (page builders: Elementor / Divi)

Both Elementor and Divi expose a nofollow toggle in the link settings of buttons, menu items, and text links, and it's easy to enable by accident or copy across templates. Check the link options in nav menus (Appearance > Menus, expand each item) and any button or CTA widget for an enabled nofollow checkbox, and disable it wherever the destination is a real page rather than a login or account link.

WordPress (plugins / theme defaults)

Search active plugins for anything that auto-adds nofollow, such as an external-link handler whose rule is applied too broadly, or theme footer/widget code with a hardcoded rel="nofollow" left over from an old template. Yoast and Rank Math don't add nofollow to internal links by default, so if it's showing up at scale, look at page builders, custom theme code, or a third-party plugin first.

Shopify

Check your theme's navigation and footer Liquid templates for a hardcoded rel="nofollow" on links, and review rich-text editor links in product, collection, and blog content, since some themes and apps let you toggle nofollow when inserting a link manually. Fix template-level occurrences once, since they multiply across every page that uses that section.

Raw HTML / Next.js / React

Grep templates and components for rel="nofollow" or a rel: 'nofollow' prop passed into <a> or <Link> tags, checking shared layout, header, and footer components first, since those propagate to every route. Remove it from anything pointing at real content, keeping it only on genuine utility links like /logout or /account.

Frequently asked

Does removing nofollow from my internal links immediately boost my rankings?

Not immediately, and not dramatically on its own. Removing unnecessary nofollow attributes lets link equity and crawl signals flow normally again, which is a genuine improvement, but it's a foundation fix rather than a ranking lever with an instant, measurable payoff. Give it a normal crawl-and-recrawl cycle before judging the effect.

Is PageRank sculpting with nofollow really dead?

Yes, and it has been since 2009. Google clarified back then that a nofollowed link still counts against a page's total outbound link count when dividing up PageRank, so the credit that would have flowed through it doesn't get redistributed to your other links, it's simply lost. Nofollowing low-priority pages never concentrated more equity on priority pages the way early SEO advice assumed.

When is nofollow on an internal link actually correct?

For genuine utility links you don't consider content: login and logout links, cart and checkout, account or profile settings, and internal search-result or filter URLs that would otherwise create thin, near-duplicate pages. Those aren't pages you want ranked, so declining to pass them credit is reasonable. The moment the destination is a real page you want people and search engines to find, remove it.

Since nofollow is just a hint now, can Google still crawl a nofollowed internal link?

Yes. Since the March 2020 change, Google treats nofollow, along with sponsored and ugc, as a hint rather than a strict rule, meaning it may still choose to crawl the link and can factor it in as a signal. That's exactly why relying on internal nofollow to keep a page uncrawled no longer works reliably. If you need a page genuinely out of the index, use a noindex meta tag on that page instead.

Does your site have this issue?

Run a free, AI-powered audit and we’ll flag this and 150+ other checks in about a minute. No signup.

No signup needed. Results in under 60 seconds.

Related fixes