Noindex vs nofollow: how to control indexing without errors
Noindex and nofollow do different jobs, and mixing them up can quietly deindex pages or waste crawl budget. Here is how each one actually works.
Noindex and nofollow look like they do similar things: keep a page or a link out of Google's index. They don't. Noindex controls whether a page can appear in search results. Nofollow controls whether a link passes ranking signal. Mixing them up is one of the most common ways site owners accidentally deindex pages they meant to keep, or waste effort hiding pages that were never going to rank anyway.
What noindex actually does
The noindex directive tells Google, and other search engines that respect it, not to show a page in search results. You can set it two ways: a meta robots tag in the page's head, or an X-Robots-Tag HTTP header for non-HTML files like PDFs. Both work the same way. The page stays live, visitors can still reach it directly, but it stops showing up in search results once the next crawl picks up the tag.
There's a catch that trips up a lot of sites. Google has to crawl a page to see its noindex tag. If robots.txt blocks that page from being crawled, Google never reads the tag, and the page can stay indexed anyway, sometimes with no description because all Google has is the URL. If the goal is to deindex something, let it be crawled and remove any robots.txt rule blocking it until it drops out of the index. Block it again afterward if you still want to save crawl time on it.
What nofollow actually does
Nofollow is a different tool for a different job. It's an attribute you add to a link, rel=nofollow, that tells search engines not to pass ranking credit through that link. It says nothing about whether the linked page gets indexed. If another site links to that same page without nofollow, or a search engine finds the page another way, it can still get crawled and indexed.
Google also recognizes two nofollow variants: rel=sponsored for paid or affiliate links, and rel=ugc for user-generated content like blog comments and forum posts. Google treats all three as hints rather than absolute rules, meaning it can still choose to follow a nofollow link if other signals suggest it's worth crawling. Use sponsored and ugc where they fit. They're more accurate than a blanket nofollow and cost nothing to add.
Common mistakes worth checking for
- Noindexing a page and blocking it in robots.txt at the same time. Google can't see a noindex tag it was never allowed to crawl, so the block does the opposite of what you wanted.
- Applying noindex to paginated or faceted URLs instead of using canonical tags, which can quietly remove whole category sections from the index.
- Using nofollow internally to try to hide low-value pages from crawlers. It doesn't stop crawling, it only stops credit from passing. Use robots.txt or noindex for that instead.
- Forgetting X-Robots-Tag on non-HTML files. A meta tag can't sit inside a PDF or an image, so those need the HTTP header version if you want them out of the index.
How to audit what's live
- Pull the full list of indexed URLs from Search Console's Pages report and compare it against the URLs you intended to noindex.
- Crawl the site with a tool that reports meta robots and X-Robots-Tag values, and cross-reference the results against robots.txt disallow rules to catch the conflict above.
- Spot-check a sample of nofollow links to confirm they're the ones you meant to mark, not a blanket rule applied by a plugin default.
- Recheck after any CMS, theme, or plugin update. Indexing directives are an easy setting to overwrite by accident.
Noindex keeps a page out of the index. Nofollow keeps credit from passing through a link. They don't overlap, and using one where you meant the other is one of the quieter ways sites lose visibility. Audit what's live today. If you find a noindex tag sitting behind a robots.txt block, that's the first fix, and it's usually a five-minute one.