Foundgrove
← All posts

SEO · 8 min read

Noindex vs Nofollow: Which Pages to Hide From Google

Summary

Noindex, nofollow and robots.txt disallow do three different jobs. Get the decision table for every page type on a service business site.

By Hyder Shah, Founder & CEO · Published July 13, 2026 · Updated July 13, 2026

Three controls. Three different jobs. Most owners use them like synonyms, and the result is a site where the thank-you page ranks, the internal search results eat crawl budget, and the page you tried hardest to hide is still sitting in Google's index months later.

This is a solvable problem in an afternoon. Here is the decision table, the one mistake that traps almost everyone, and the three-number audit that tells you how much junk Google has indexed.

What is the actual difference between noindex, nofollow and disallow?

One controls indexing, one controls a single link, and one controls crawling — and only the first one keeps a page out of search results. Google's robots meta tag documentation defines noindex as: 'Do not show this page, media, or resource in search results.' Nofollow is defined separately as: 'Do not follow the links on this page.' Robots.txt disallow does neither — it stops the crawl.

ControlWhat it actually doesWhere it livesWhat it does NOT do
noindexKeeps the page out of search resultsMeta robots tag in the HTML head, or an X-Robots-Tag HTTP headerDoes not stop crawling — Google must crawl the page to read it
nofollowA hint that Google should not pass ranking credit through that linkrel attribute on an individual linkDoes not stop the linked page from being indexed
robots.txt disallowStops Googlebot from requesting the URLrobots.txt at your rootDoes not remove the URL from the index

The verdict: if the goal is 'this page must not show up in Google,' the answer is always noindex — never robots.txt, never nofollow. Google's own robots.txt introduction says it plainly: robots.txt 'is not a mechanism for keeping a web page out of Google.'

Robots.txt is a crawl-budget and server-load tool. Use it to stop Googlebot from hammering faceted URLs or a session-ID trap. Do not use it as a privacy control or an index control.

Why does noindex plus robots.txt disallow keep a page indexed forever?

Because the noindex tag lives inside the page, and you just told Google it is not allowed to open the page. Google's block indexing documentation states it directly: 'For the noindex rule to be effective, the page or resource must not be blocked by a robots.txt file, and it has to be otherwise accessible to the crawler.'

The same page continues: 'If the page is blocked by a robots.txt file or the crawler can't access the page, the crawler will never see the noindex rule, and the page can still appear in search results.'

This is the belt-and-braces instinct backfiring. The owner adds noindex, then adds a Disallow line 'to be safe.' The Disallow wins the race. The noindex is now a note taped to the inside of a locked door.

Worse, a disallowed URL can get indexed on link signals alone. Google's robots.txt docs: 'we might still find and index a disallowed URL if it is linked from other places on the web. As a result, the URL address and, potentially, other publicly available information such as anchor text in links to the page can still appear in Google Search results.' That is where the ugly 'No information is available for this page' result comes from.

The fix is a sequence, not a switch. Remove the Disallow. Leave the noindex in place. Let Google recrawl the page and read the tag. Only after the URL drops out of the index — check it in the URL Inspection tool, not by eyeballing a site: search — can you re-add a Disallow if you want to save the crawl.

Which pages on a service site should be noindexed?

On a typical 40-page service business site, roughly 6 to 10 page types deserve noindex — and almost all of them are generated automatically by your CMS rather than written by a human. Nobody decided to publish 180 tag archives. WordPress just did it.

Page typeCorrect directiveWhyThe mistake owners make
Thank-you / booking confirmation pagenoindexIt ranks for nothing, and an organic visitor landing on it fires a fake conversionLeaving it indexable, then wondering why conversions look inflated
Tag and author archives (WordPress)noindexNear-duplicate lists of the same posts; on a one-author site the author archive duplicates the blog indexDeleting them instead, which creates 404s from internal links
Internal search result pagesnoindex, then Disallow after they drop outInfinite URL space; Google can crawl thousands of ?s= URLsDisallowing first, so the noindex is never read
Paginated /page/2, /page/3 archivesLeave indexableThey pass crawl signal to older posts; noindexing them can orphan contentBlanket-noindexing all pagination on a plugin default
PPC-only landing pagesnoindexThey duplicate the service page and split relevance signalsPublishing 6 near-identical variants and indexing all of them
Staging and dev subdomainsHTTP auth (best) or X-Robots-Tag: noindexFull-site duplicates of your live siteRelying on robots.txt Disallow, which leaves the URLs indexable
PDFs, brochures, price sheets you do not want rankingX-Robots-Tag: noindexYou cannot put a meta tag in a PDFAssuming a PDF is invisible to Google

Two of those rows are the ones that actually cost money. The thank-you page corrupts your conversion data. The staging subdomain competes with your live site for your own brand terms. Fix those first, then work down the list. If you are auditing this from scratch, our technical SEO audit process for service businesses walks the same crawl in order.

Note the X-Robots-Tag rows. Google's robots meta tag docs describe applying it at the server level — for example, adding 'a noindex, nofollow X-Robots-Tag to the HTTP response for all .PDF files across an entire site.' That is one line in your Apache or NGINX config, and it covers every file you will ever upload.

Should PPC landing pages be indexed at all?

No — noindex your paid landing pages when they duplicate an existing service page, which is nearly always. A PPC page and its matching organic service page target the same query, so indexing both makes Google choose, and Google frequently picks the wrong one: the stripped-down page with no navigation, no internal links, and no supporting content.

Noindex does not stop your ads from running. Google Ads does not need the page in the organic index to serve it. Quality Score is judged on landing page experience and relevance, not on organic ranking.

The exception is a true one-off: a campaign page with content that exists nowhere else on your site and could earn organic traffic on its own. That is a real page. Give it navigation, give it internal links, and index it. If it is 'the plumbing page with the phone number bigger,' noindex it and send the organic intent to the plumbing and HVAC service page you already rank with.

This is also why we run search and paid as one program rather than two silos. Two teams that never talk are how you end up with six indexable variants of the same page bidding against each other in the organic results.

When should you use rel=sponsored or rel=ugc instead of nofollow?

Use rel=sponsored on anything you paid for, rel=ugc on anything a visitor typed, and plain nofollow only when neither fits. Google announced the two new attributes on September 10, 2019 and defined them precisely: sponsored is for 'links on your site that were created as part of advertisements, sponsorships or other compensation agreements,' and ugc is 'recommended for links within user generated content, such as comments and forum posts.'

Link typeAttributeGoogle's wording
Paid directory listing, sponsored post, affiliate linkrel='sponsored''advertisements, sponsorships or other compensation agreements'
Blog comments, forum posts, review submissionsrel='ugc''links within user generated content'
A source you cite but do not vouch forrel='nofollow'Use it when the other values do not apply
A link to a genuine industry source or partnerno attributeLet it pass credit — that is what it is for

Three practical points from that announcement. First, all three attributes are now hints, not commands: Google says sponsored, ugc and nofollow 'are treated as hints about which links to consider or exclude within Search.' Second, you can stack them — rel='ugc sponsored' is valid. Third, and this is the one that matters for money: if you paid for a link and did not flag it, you are exposed to a link scheme action. Google is blunt that sponsored links must carry sponsored or nofollow.

So yes — nofollow that paid chamber-of-commerce directory listing, or better, mark it sponsored. It still sends referral traffic and it still exists as a citation. It just stops looking like a bought endorsement. The links worth chasing are the ones you did not pay for, which is the whole premise of link building for service businesses.

One more thing that same announcement settled: nofollow is not an indexing control. As of March 1, 2020, nofollow became a hint for crawling and indexing too, and Google wrote that anyone 'depending on nofollow solely to block a page from being indexed (which was never recommended)' should use a real blocking mechanism instead. Nofollowing every internal link to your thank-you page does not hide it. Only noindex does.

How do you tell if your site has index bloat?

Compare three numbers, and if the largest is more than roughly 1.5x the smallest, you have bloat. A 40-page WordPress site routinely ships several hundred indexable URLs once you count tag archives, author archives, date archives, attachment pages, paginated series, and internal search URLs — none of which anyone wrote on purpose.

NumberWhere to get itWhat it tells you
Real page inventoryYour own count of pages a customer should be able to land onThe truth
Indexed countSearch Console, Pages report, 'Indexed' totalWhat Google actually kept
Crawled countSearch Console, 'Crawled - currently not indexed' plus 'Discovered'What Google is spending crawl budget on and rejecting

Attachment pages are the classic WordPress leak. Upload 200 images and older setups will generate 200 standalone URLs, each containing one image and nothing else. Yoast and most modern SEO plugins redirect attachment URLs to the parent post by default now, but sites that upgraded from an old install often still have the setting off. Check it.

Bloat does not carry a named penalty. What it does is spend your crawl allowance on garbage and dilute the topical focus of the site — Google sees 400 URLs about nothing in particular instead of 40 URLs about emergency plumbing in Phoenix. On a fresh domain with no authority, that is the difference between getting your money pages crawled weekly and getting them crawled quarterly.

Which three numbers should match — and why yours don't

Real page inventory, Search Console's indexed count, and your sitemap URL count should land within about 10% of each other. On a CMS-driven service site they usually are nowhere close — the sitemap says 46, Search Console says 310, and the owner can name 38 pages.

The gap has three usual causes. Your sitemap is auto-generated and includes noindexed URLs, which sends Google a contradictory signal — 'crawl this' and 'do not index this' in the same breath. Your CMS is generating archive URLs you never audited. Or you disallowed a section instead of noindexing it, and Google indexed the URLs anyway from internal links.

Work it in this order. Pull the indexed count from Search Console and export the URL list. Sort by page type, not alphabetically — the pattern will be obvious within thirty seconds. Noindex the junk types at the template level, not URL by URL. Strip noindexed URLs out of the sitemap. Then wait: deindexing is a recrawl-speed problem, and on a low-authority site that can take 4 to 8 weeks.

Do not force it with a robots.txt Disallow because it feels faster. You already know what that does. And do not run the URL removal tool expecting a permanent fix — it hides a URL for about six months, then it comes back if the noindex was never readable.

If your indexed count is three times your real page count, the crawl-directive layer is the cheapest fix on your site — it is template work, not content work, and it usually takes a day. That is exactly the ground our technical SEO service covers, and it is the first thing we look at because there is no point ranking a page Google will not crawl. Get my free audit and we will send you the three numbers for your domain.

Where does this fit in your stack?

If you're running a US service business, the playbook in this post pairs with our full services lineup and applies cleanly across our supported industries and US locations. If you want help implementing it, book a free strategy call — we'll review your current setup and prioritize the next three moves.

For the deeper engagement details, see our SEO service. New to the terminology here? Our SEO & marketing glossary defines every acronym in this post.

What are the most common questions about this topic?

Common questions readers send us about this topic.

Does nofollow stop a page from being indexed?

No. Nofollow is a link attribute, not an indexing control. Google made it explicit in its September 2019 announcement: as of March 1, 2020 nofollow became a hint for crawling and indexing, and anyone 'depending on nofollow solely to block a page from being indexed (which was never recommended)' should use a real blocking mechanism instead. Google can still find and index the page through a sitemap, an external link, or any other route. If you need a page out of search results, use noindex.

Can I use noindex and robots.txt disallow on the same page?

You can, and it is the single most common self-inflicted indexing bug. Google's documentation states that for the noindex rule to be effective, the page 'must not be blocked by a robots.txt file.' If it is blocked, Googlebot never fetches the page, never reads the noindex tag, and the URL can stay in search results indefinitely. Remove the Disallow, leave the noindex, wait for the recrawl, confirm removal in URL Inspection, then re-add the Disallow if you want to save crawl budget.

Should thank-you pages be noindexed?

Yes. A thank-you or booking-confirmation page has no search value and creates two real problems if indexed. Someone can land on it from organic search and fire a fake conversion, which corrupts the data you use to judge every channel. And it wastes crawl budget that should go to your service pages. Add a meta robots noindex tag at the template level so every confirmation page on the site is covered, not just the one you remembered.

Do WordPress tag and author archives hurt SEO?

They rarely help and they routinely bloat the index. Tag archives are near-duplicate lists of posts you already publish elsewhere, and on a single-author site the author archive is a straight duplicate of the blog index. Noindex both — do not delete them, because internal links point at them and deleting creates 404s. If a tag archive genuinely earns traffic and targets a query no other page covers, keep it indexed. That is uncommon on a service business site.

What is index bloat and does it actually cost me rankings?

Index bloat is when Google has indexed far more URLs than you have real pages — a 40-page site with 400 indexed URLs. There is no named penalty for it. The damage is indirect: crawl budget gets spent on archive and search URLs instead of your money pages, and the topical focus of the site gets diluted across hundreds of low-value URLs. On a new domain with little authority, that slows how fast your important pages get crawled and reassessed.

Should I nofollow links to a paid directory listing?

Yes — and rel='sponsored' is the better tag. Google defines sponsored as the attribute for links 'created as part of advertisements, sponsorships or other compensation agreements,' and says clearly that if you want to avoid a possible link scheme action you must flag paid links with sponsored or nofollow. Sponsored is preferred, but either is accepted. The listing still sends referral traffic and still functions as a citation. It just stops looking like an endorsement you bought.

How do I check how many of my pages Google has indexed?

Use the Pages report in Google Search Console, not a site: search. The site: operator returns an estimate that fluctuates and is not the number Google actually holds. Search Console gives you an indexed total, a not-indexed total broken down by reason, and an exportable URL list. Export it, sort by page type, and compare it against your real page inventory and your sitemap count. Those three numbers should land within about 10% of each other.

What is X-Robots-Tag and when do I need it?

X-Robots-Tag is an HTTP response header that carries the same rules as the meta robots tag, and you need it whenever you cannot put a tag inside the file. PDFs, images, and other non-HTML resources have no head section. Google's documentation shows applying it at the server level — for instance adding a noindex, nofollow X-Robots-Tag to the HTTP response for every .PDF file across an entire site. One Apache or NGINX rule covers every file you upload from then on.

About the author

Hyder Shah

Founder & CEO, Foundgrove

Hyder Shah is the founder of Foundgrove, an SEO and GEO agency for US service businesses. See our editorial policy for how these guides are researched and reviewed.

Want help applying this to your business?

Book a free 30-minute call. We'll review your current acquisition stack and show you the three highest-leverage moves for your industry and state. Or read how our SEO service works.

Free SEO & AI visibility auditGet my free audit