Noindex tells search engines to keep a specific page out of their index, while nofollow tells them not to pass ranking signals through a particular link. They are unrelated controls that happen to share the meta robots tag, and conflating them leads to bad decisions. Noindex is about whether a page appears in results at all. Nofollow is about how authority flows from one page to another. Once you hold those two ideas apart, almost every confusing case sorts itself out.

How to implement these directives correctly

Both directives live in the same place but apply at different levels. Noindex is a page-level instruction delivered either in a meta robots tag in the document head or in an X-Robots-Tag HTTP response header. Nofollow is a link-level instruction applied to individual anchor tags.

A correct noindex implementation in the document head looks like this:

<meta name='robots' content='noindex, follow' />

A correct nofollow on a specific outbound link looks like this:

<a href='https://example.com/affiliate-link' rel='nofollow'>Product name</a>

The sponsored and ugc attribute values introduced in 2019 are more precise for their specific use cases:

<a href='https://example.com/partner' rel='sponsored'>Partner link</a>
<a href='https://example.com/comment-link' rel='ugc'>User link</a>

Google treats all three (nofollow, sponsored, ugc) as hints rather than directives, meaning it may choose to follow and evaluate the link anyway. That is a meaningful distinction from noindex, which Google does consistently honor once a crawler has fetched the page and seen the tag.

When I reach for noindex

Noindex is for pages that need to exist for users but should not compete in search. The page stays live and fully usable. It just stops showing up in results.

  • Thank-you and confirmation pages that only make sense after a form submission.
  • Internal search result pages and thin filter combinations that would otherwise flood the index.
  • Duplicate or near-duplicate utility pages you cannot reasonably remove.
  • Staging or preview URLs that leaked into the open before you caught them.

One rule I never break: do not block a noindexed page in robots.txt. The crawler has to reach the page to read the noindex directive in the first place. Let it crawl, let it read the tag, and over time the page drops cleanly out of the index.

A common source of index bloat I find in audits is faceted navigation generating thousands of URL combinations. A site with filters for color, size, and material on a product category can produce tens of thousands of unique URLs that are each minor variations of the same content. Noindex on those filter combinations, applied thoughtfully with canonical tags pointing back to the clean category URL, is the standard fix.

When nofollow matters

Nofollow started as a way to control link equity and has since become more of a hint than a strict rule, but I still use it deliberately in a few situations where I genuinely cannot vouch for a destination.

  • User-generated links in comments and forums, where anyone can drop anything.
  • Paid or sponsored links, where the sponsored attribute is now the more accurate label.
  • Login, account, and other crawler dead-ends you do not want wasting requests.

The case for nofollow on login and account pages is less about link equity and more about crawl efficiency. If Googlebot follows every link into a login wall and receives a redirect to an authentication page on every request, those requests are wasting crawl budget that could go to pages with actual content. Adding nofollow to navigation links pointing at /login/, /account/, and /cart/ is a small but real crawl efficiency improvement on larger sites.

Using them together

You can combine them, but be clear about intent. A page can be index, nofollow if you want it ranked but do not want its outbound links passing equity, or noindex, follow if you want it out of results while still letting crawlers traverse its links to discover deeper pages. The one combination you almost never need is blanket nofollow across your own internal navigation, which just starves your own pages of the signals they should be sharing with each other.

The noindex, follow combination is genuinely useful for paginated archive pages that you want kept out of search results but whose links to individual posts you still want crawlers to follow. If you noindex and block those pages entirely, Googlebot may never find the posts linked only from those archives.

How to audit your current noindex usage

Before adding or removing noindex directives, it is worth knowing what is currently noindexed and whether those decisions were intentional. Screaming Frog will crawl a site and list every page carrying a noindex directive in a filterable report. Cross-reference that against your Google Search Console coverage report, which shows pages Google has excluded from the index and the reason for each exclusion.

The combination that catches me out most often in audits is a page that is noindexed in the meta tag but also listed in the XML sitemap. Including noindexed pages in your sitemap sends a conflicting signal: the sitemap says this URL is important and should be crawled, the page says do not index it. Google handles this gracefully, but it is cleaner to keep the sitemap as a list of pages you actually want indexed and remove noindexed URLs from it.

How long these take to work

Neither directive is instant, and that delay catches people out who expect a page to vanish the moment they add a tag. The change only takes effect the next time a crawler fetches the page and processes the instruction, which depends entirely on how often that page is crawled.

  • A noindex tag removes a page only after the crawler revisits it, which can be days for a low-priority URL.
  • If a page is buried and rarely crawled, the removal can drag on far longer than you would like.
  • You can speed this up by making sure the page is reachable and, if it is urgent, requesting indexing so the crawler comes back sooner.

One thing I tell clients who are frustrated that a removed noindex tag is not producing results fast enough: the crawl frequency of a given page is not something you directly control, but you do influence it indirectly. Pages with more internal links pointing to them tend to be revisited more often. If a low-priority URL is taking weeks to reflect a noindex removal, adding a temporary internal link from a high-authority page on the same domain will usually accelerate the next Googlebot visit significantly.

The other half of this picture is crawling control, which is a separate layer entirely and easy to confuse with indexing. I explain that in robots.txt. If you are not sure which of your pages should be indexed and which are quietly diluting your site, sorting that out is exactly what I do in a website audit.