Noindex
Noindex keeps a page out of search results — but only if Google can crawl it. The two valid methods, the robots.txt trap, and how to verify it worked.
Noindex is the directive that keeps a page out of the index, so it won't appear in search results. There are two valid ways to set it: the robots meta tag (`<meta name="robots" content="noindex">`) and the `X-Robots-Tag: noindex` HTTP header (the only option for non-HTML files like PDFs). The single biggest mistake: a page blocked in robots.txt can't be noindexed, because Google never crawls it to see the rule — so to remove a page you have to allow crawling and serve noindex. Don't put noindex in robots.txt (unsupported since Sept 1, 2019); if noindex and canonical coexist, treat that as an intent check rather than an automatic error; and remember deindexing only happens after a recrawl.
TL;DR — Noindex is how you tell Google “don’t put this page in search results.” You add it as a small tag in the page’s code (or as an HTTP header for files like PDFs). The one rule that trips everyone up: Google has to be able to crawl the page to see the tag — so don’t also block it in robots.txt, or the whole thing silently fails.
What noindex does
noindex keeps a page out of the search index. If a page isn’t in the index, it
can’t show up in search results. That’s the entire job: it doesn’t hide the page
from visitors, it doesn’t make it load faster, and it doesn’t pass or block any
“link juice” by itself — it just keeps the page out of Google and Bing’s results. Evidence for this claim Google's noindex rule prevents the page, media, or resource from appearing in Google Search results after Google sees the rule. Scope: Google Search; noindex is not an access-control or privacy mechanism. Confidence: high · Verified: Google Search Central: Block Search indexing with noindex
You’d reach for it on pages that exist for people but have no business ranking: internal search result pages, “thank you” pages after a form, thin tag or filter pages, staging or utility pages.
The two ways to add it
There are only two valid methods. Pick one.
1. The robots meta tag. Drop this line into the <head> of the page:
<meta name="robots" content="noindex">That’s the normal way for an HTML page. Most CMSs (WordPress, Shopify, etc.) have a checkbox that adds it for you — in many SEO plugins it’s a “discourage search engines from indexing this page” toggle on the page editor.
2. The X-Robots-Tag HTTP header. Some files don’t have a <head> to put a tag
in — a PDF, an image, a video. For those you send the directive in the server’s
HTTP response header instead:
X-Robots-Tag: noindexYou can’t see this one in the page source; it lives in the response headers. Evidence for this claim Google supports noindex in an HTML robots meta tag or an X-Robots-Tag HTTP response header. Scope: Google Search delivery methods; the HTTP header is applicable to non-HTML resources as well as HTML. Confidence: high · Verified: Google Search Central: Robots meta tag and X-Robots-Tag specifications
The mistake that breaks it
This is the big one, so I’ll say it plainly: a page blocked in robots.txt
cannot be noindexed.
It sounds backwards, but here’s why. robots.txt tells search engines not to
crawl a page. The noindex tag lives on the page. If Google is told not to
crawl the page, it never fetches it, so it never sees the noindex tag — and the
page can stay in the index, sometimes showing up as a bare URL with no description.
So the correct recipe to remove a page is the opposite of what feels safe:
- Make sure the page is not blocked in
robots.txt(let Google crawl it). - Add
noindex(the meta tag or the header). - Wait for Google to recrawl it. Deindexing isn’t instant — it happens the next time Google fetches the page and sees the tag.
A few more checks that the Advanced tab covers in full: don’t put noindex
inside your robots.txt file (that hasn’t worked since 2019), and review the
intent when noindex and canonical appear together. The combination can be
intentional; a canonical pointing elsewhere is the stronger warning because the
two signals ask for different outcomes.
Want the exact server snippets, the noindex,follow nuance, the history, and how
to verify it in Google Search Console? Switch to the Advanced tab.
Test yourself: noindex
Choose noindex only when removal is the goal
Noindex, disallow, canonical, or nofollow?
The three noindex failures to check first
- Noindex plus robots.txt disallow. The crawler cannot fetch the URL, so it cannot discover the removal directive. Unblock it, retain noindex, and allow a recrawl.
- Noindex plus canonical. One signal says “remove this page”; the other asks engines to consolidate it with a preferred duplicate. Use canonical for duplicate consolidation and noindex for genuine removal—not both.
Noindex:inside robots.txt. It is not a supported Google rule. Use the robots meta tag orX-Robots-Tagresponse header.- Noindex plus leaving the URL in your sitemap. Google’s own sitemap
guidance is to submit the canonical URLs you actually want to see in search
results — a noindexed URL doesn’t belong there. Leaving it in won’t override
the
noindexdirective, but it sends a conflicting signal about your intent and can confuse anyone auditing the sitemap later. Drop noindexed URLs from the sitemap once you’re done tracking their removal.
Also avoid using noindex as access control. The page remains publicly requestable; protect private content with authentication.
Fix “Indexed, though blocked by robots.txt”
This status means the crawl block did not guarantee removal. Google can know a URL from links without fetching its contents, and the block prevents it from seeing a noindex directive on the page.
- Confirm the URL should be removed rather than merely crawled less often.
- Remove the applicable robots.txt disallow for the target crawler.
- Serve
noindexin the HTML head or as anX-Robots-Tagheader. - Check the final response after redirects and confirm no CDN or template variant removes the directive.
- Use URL Inspection’s live test to prove Google can fetch and see noindex.
- Request recrawl if appropriate, then monitor the Page Indexing report.
- Only consider re-blocking after removal if you understand that future discovery and processing may again be limited.
If the content is confidential, stop here and add authentication instead; neither robots.txt nor noindex is a security mechanism.
Serve noindex for non-HTML files
Apache example for PDF responses:
<FilesMatch "\.pdf$">
Header set X-Robots-Tag "noindex"
</FilesMatch>Nginx example:
location ~* \.pdf$ {
add_header X-Robots-Tag "noindex" always;
}Verify a representative file and follow redirects:
curl -sSIL https://example.com/file.pdf | grep -iE '^(HTTP/|location:|x-robots-tag:)'Scope server rules narrowly and test an intended PDF plus an HTML page that should remain indexable. A broad location or file-match rule can accidentally noindex an entire asset family or site section.
Monitor noindex as an owned URL set
Deployment coverage
Approved noindex URLs serving noindex ÷ all URLs in the approved noindex set
Measure the live response, not the CMS field. Segment failures by HTML meta,
X-Robots-Tag, redirect destination, and robots.txt access.
Processing outcome
Track the approved set across Google Search Console states: indexed, “URL marked ‘noindex’,” blocked by robots.txt, and not yet recrawled. The useful direction is fewer approved URLs indexed and fewer crawl-block/noindex conflicts after the deployment.
Also track accidental noindex separately: URLs intended to rank that serve a noindex directive or appear under the Page Indexing noindex reason. Use your own pre-deployment baseline and URL inventory; there is no defensible universal target percentage for how much of a site should be noindexed.
TL;DR —
noindexremoves a page from the index via one of two valid methods: the robots meta tag (<meta name="robots" content="noindex">) or theX-Robots-Tag: noindexHTTP header (required for non-HTML files like PDFs). The load-bearing gotcha: a page blocked in robots.txt can’t be noindexed — Google never crawls it to see the rule, “the crawler will never see thenoindexrule,” and a linked URL can stay indexed. So to remove a page, allow crawling and servenoindex. Don’t put noindex in robots.txt (unsupported since Sept 1, 2019), review noindex with a canonical pointing elsewhere as potentially conflicting, and know that deindexing only happens after a recrawl — Google’s own guidance says a low-priority page can take months. Per a 2017 Mueller comment (not documented policy), long-termnoindex,followtends to behave likenoindex,nofollowonce the page drops from the index. Verify in GSC under “URL marked ‘noindex’.”
What noindex is — index control, not crawl control
noindex is the primary index-control directive. Google’s own definition of the
rule is one line: “Do not show this page, media, or resource in search results.”
When it’s honored, the effect is total — “When Googlebot crawls that page and
extracts the tag or header, Google will drop that page entirely from Google Search
results, regardless of whether other sites link to it.” Evidence for this claim Google's noindex rule prevents the page, media, or resource from appearing in Google Search results after Google sees the rule. Scope: Google Search; noindex is not an access-control or privacy mechanism. Confidence: high · Verified: Google Search Central: Block Search indexing with noindex
Keep one distinction front of mind, because almost every noindex mistake comes
from blurring it: noindex controls indexing; robots.txt controls crawling.
They’re different stages of the pipeline. I put it this way in my Ahrefs guide on
removing URLs: “Crawling is not the same thing as indexing. Even if Google is
blocked from crawling pages, if there are any internal or external links to a page
they can still index it.” That sentence is the whole reason the rest of this
article exists.
Microsoft gives the same directive an additional Bing-specific consequence:
content marked noindex is also excluded from Microsoft’s foundation-model
training. The prerequisite still matters—Bingbot must be allowed to crawl and
process the page-level directive. A robots.txt block plus noindex is therefore
not proof that either deindexing or the training opt-out has been applied.
The two valid delivery methods
There are exactly two, and noindex in robots.txt is not one of them (more on
that below).
Method 1 — the robots meta tag. For an HTML page, place this in the <head>:
<meta name="robots" content="noindex">Google’s instruction is verbatim: “To prevent all search engines that support the
noindex rule from indexing a page on your site, place the following <meta> tag
into the <head> section of your page.” The robots value targets all crawlers
that support the rule; swap in googlebot to target only Google
(<meta name="googlebot" content="noindex">).
Method 2 — the X-Robots-Tag HTTP header. Same directive, sent in the response header instead of the markup:
X-Robots-Tag: noindexThis is the only way to noindex non-HTML resources, because there’s no <head>
to host a meta tag. Google: “A response header can be used for non-HTML
resources, such as PDFs, video files, and image files.” And from the robots spec:
you can use the X-Robots-Tag “for non-HTML files like image files where the
usage of robots meta tags in HTML is not possible.” Evidence for this claim Google supports noindex in an HTML robots meta tag or an X-Robots-Tag HTTP response header. Scope: Google Search delivery methods; the HTTP header is applicable to non-HTML resources as well as HTML. Confidence: high · Verified: Google Search Central: Robots meta tag and X-Robots-Tag specifications
One placement note: put the meta tag in the <head> — that’s the standard,
safest spot and what Google’s how-to shows. Google’s spec page does say it
“doesn’t enforce placement of meta robots in the HTML head and will respect
robots meta tags in the body section of an HTML document as well,” but don’t
rely on that as your primary method; a stray <meta> tag some CMS injects into
the <body> can noindex a page by accident just as easily as one you meant to
add to the <head>.
Since the header is configured at the server level, it varies by stack. Two common examples for noindexing every PDF on a site:
Apache (.htaccess or vhost):
<FilesMatch "\.pdf$">
Header set X-Robots-Tag "noindex"
</FilesMatch>Nginx (server/location block):
location ~* \.pdf$ {
add_header X-Robots-Tag "noindex";
}The #1 mistake — noindex + a robots.txt block
The same page contains a meta robots noindex directive. With crawling allowed, Google can fetch the page, see noindex, and remove the URL after processing. With crawling blocked in robots.txt, Google cannot see noindex and the linked URL may remain in results.
This is the failure mode I see most, so here’s the mechanism in full. The
noindex tag lives on the page; Google has to fetch the page to read it.
Google states the requirement directly:
“For the
noindexrule 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. If the page is blocked by a robots.txt file or the crawler can’t access the page, the crawler will never see thenoindexrule, and the page can still appear in search results, for example if other pages link to it.”
Put even more bluntly: “We have to crawl your page in order to see <meta> tags
and HTTP headers.” No crawl, no rule.
robots.txt is the most common way a page ends up uncrawlable, but Google’s
wording covers more ground than that — it also says “the crawler can’t access
the page,” which includes repeated server errors (5xx), timeouts, and an
unintended authentication wall in front of the page. Any of those silently
breaks noindex the same way a robots.txt block does.
So the instinct to “block it in robots.txt and noindex it, just to be safe” is
exactly backwards — the block prevents the crawl, the crawl is what reveals the
noindex, and the page can sit in the index indefinitely (often as a
description-less URL). In Google Search Console this shows up as the
“Indexed, though blocked by robots.txt” status — a page you blocked that got
indexed anyway because something links to it.
The fix: unblock the page in robots.txt, keep noindex on it, and let
Google recrawl. Only after the page has dropped from the index — if you then want
to save the crawl entirely — is it safe to add a disallow.
Worked deployment example: the staging site that would not disappear
A redesign launches from staging.example.com. The staging templates already
contain noindex, but the deployment checklist also adds:
User-agent: *
Disallow: /That feels like two layers of protection. It is actually a trap if Google already
discovered the staging URLs through a shared QA link, an old sitemap, a public
ticket, or a link in copied production content. The disallow prevents the next
crawl, so Google cannot confirm the noindex; the hostname can linger as thin,
URL-only results.
The cleanup sequence is: remove the disallow, keep noindex on every staging
response, confirm the live response is crawlable and exposes the directive, request
recrawling for a representative sample, and monitor the hostname until it drops
out. Then put the environment behind authentication. Authentication is the durable
privacy control; noindex is only a search-index control.
noindex vs nofollow vs disallow
Three directives people constantly conflate. They operate at different stages:
noindex— index control. Page is crawled, kept out of results. Google’s definition: “Do not show this page, media, or resource in search results.”nofollow— link control. Google: “Do not follow the links on this page.” It says nothing about indexing the page itself.disallow(robots.txt) — crawl control. Stops the fetch entirely. It is not an index control — a disallowed URL can still be indexed if it’s linked.
There’s also none, which Google documents as “Equivalent to noindex, nofollow.” And when directives conflict, the spec is clear: “In the case of
conflicting robots rules, the more restrictive rule applies.” (Full table on the
Cheat Sheets tab.)
Treat noindex with rel=canonical as an intent check
Putting noindex and rel="canonical" on the same page is not automatically
invalid. It does create a configuration worth reviewing: a canonical asks Google
to consolidate signals, while noindex asks for this URL to be excluded. For
choosing between duplicates, use the canonical tag — Google specifically
advises against using noindex for it: “We don’t recommend using noindex to
prevent selection of a canonical page within a single site, because it will
completely block the page from Search.” Note the scope: Google’s caution is
specifically about using noindex to pick which duplicate wins as canonical
within your own site — it’s not a claim that noindex and canonical can never
technically coexist on a page (a page you’re genuinely retiring can still carry
a self-referencing canonical). A canonical pointing at a different URL deserves
the strongest warning: confirm that exclusion and consolidation are both intended.
Use canonical to consolidate duplicates; use noindex only when you genuinely
want this page out of results.
noindex,follow vs noindex,nofollow — the slow decay
A common pattern is noindex,follow: keep the page out of results, but keep
following its links so equity still flows through it (handy during a migration or
while a page is temporarily out). Current official Google documentation doesn’t
describe this decaying automatically — it explicitly allows combining noindex
with other rules, including setting noindex,nofollow on purpose from day one.
What I’m relying on for the “it fades over time” claim is a 2017 webmaster
hangout, where John Mueller said a long-term noindex tends to end up treated
like noindex,nofollow in practice: once Google decides the page really doesn’t
belong in search and drops it completely, it also stops following that page’s
links, because it’s stopped processing the page at all. That’s a practitioner
observation from a video transcript, not a documented Google policy, so treat it
as directional rather than guaranteed. Either way, the practical takeaway holds:
noindex,follow is fine for a transitional period, but don’t lean on it as a
permanent link-equity strategy — plan to fix the underlying links (or remove the
page) instead.
How long does noindex take?
Not instantly. noindex only applies after Google recrawls and reprocesses
the page — until then, the page can stay indexed even though the tag is live.
Google doesn’t commit to a fixed window, and its own guidance leans toward
“could be a while,” not “any day now”: “Depending on the importance of the page
on the internet, it may take months for Googlebot to revisit a page.” A
high-traffic, frequently-linked page might get recrawled in days; a low-value,
rarely-linked one can sit for months. If you need a page out of results
urgently, the GSC Removals tool is a stopgap (it hides the URL temporarily
while the permanent noindex does its slower work). For genuinely gone pages, a
404/410 also drops them: as I wrote in my removal guide, “If you remove the
page and serve either a 404 (not found) or 410 (gone) status code, then the page
will be removed from the index shortly after the page is re-crawled.” Same theme
everywhere — it happens on recrawl.
noindex in robots.txt is dead (since Sept 1, 2019)
You’ll still see people suggest a Noindex: line in robots.txt. Don’t. It was
never an officially supported rule, and Google retired even its unofficial handling
years ago. From the July 2019 Search Central announcement: “Since these rules were
never documented by Google, naturally, their usage in relation to Googlebot is very
low.” And the date: “we’re retiring all code that handles unsupported and
unpublished rules (such as noindex) on September 1, 2019.”
The same post named the supported alternatives, and noindex via the meta tag /
header topped the list: “noindex in robots meta tags: Supported both in the HTTP
response headers and in HTML, the noindex rule is the most effective way to remove
URLs from the index when crawling is allowed.” (Also listed: 404/410 status
codes, password protection, robots.txt disallow for crawl prevention, and the
Search Console removal tool.)
How to verify noindex in Google Search Console
Two checks:
- URL Inspection. Run the URL through Inspect, then Test live URL. It tells
you whether the page is indexable and whether Google sees a
noindexdirective — the fastest way to confirm the tag is being read on the live page. - Page Indexing report. Noindexed pages are listed under the status “URL marked ‘noindex’” in the Not indexed section. Google’s help text: “When Google tried to index the page it encountered a ‘noindex’ directive and therefore did not index it.” If that’s a page you wanted indexed, that’s your bug — remove the directive.
One naming note for anyone searching old write-ups: the legacy Coverage report called this “Excluded by ‘noindex’ tag.” The current Page Indexing report uses “URL marked ‘noindex’” — same thing, newer label.
What noindex doesn’t guarantee
A few things people assume noindex buys them that it actually doesn’t:
- Crawl-budget savings. Google still has to fetch the page to see the tag —
noindexalone doesn’t reduce crawling. If you want that too, adddisallowinrobots.txt, but only after the page has already dropped from the index (see the mistake above for why doing it up front backfires). - Instant removal. Covered above — it happens on recrawl, with no fixed timetable, and Google itself says a lower-priority page can take months.
- Duplicate consolidation. That’s what
rel="canonical"is for;noindexjust removes the page from Search, it doesn’t merge signals toward another URL. - Confidentiality. The page stays publicly requestable by anyone with the URL. If something actually needs to be private, that’s an authentication problem, not a search-directive problem.
- Ranking recovery if you reverse it. Removing
noindexdoesn’t restore a page’s old rankings — Google has to recrawl, re-evaluate, and effectively re-earn its position from scratch. - Identical timing across search engines. Bing and other engines run their own crawl and recrawl schedules independently of Google’s.
- Exclusion from every non-search use of your content.
noindexblocks a page from Google Search as a whole — including Search’s own AI features (AI Overviews and similar draw on pages that are indexed and eligible to be shown, so a noindexed page is out of those too). What it does not do is control Google’s separate Google-Extended setting, which governs whether your content can be used to train or ground Google’s generative AI models outside of Search. Those are two different controls for two different jobs.
Where noindex fits with everything else
noindex is the lever you reach for when a page is in the index but shouldn’t be —
the cure for one flavor of index bloat (thin, utility, or duplicate-ish pages with
no search value). It sits right next to the robots meta tag and the X-Robots-Tag
header (its two delivery methods), robots.txt and its disallow directive (the crawl
control it’s so often confused with), the canonical tag (use that for duplicate
consolidation, not noindex), and the broader crawling and indexing stages it
plugs into. Get the crawl-vs-index distinction right and noindex stops being
mysterious: allow the crawl, serve the tag, wait for the recrawl.
AI summary
A condensed take on the Advanced version:
noindex= keep a page out of the index (out of search results). Google: “Do not show this page, media, or resource in search results.” When honored, it drops the page entirely “regardless of whether other sites link to it.”- Two valid methods only: the robots meta tag
(
<meta name="robots" content="noindex">) and theX-Robots-Tag: noindexHTTP header. The header is required for non-HTML files (PDFs, images, videos). - The #1 mistake: a page blocked in
robots.txtcan’t be noindexed — Google never crawls it, so “the crawler will never see thenoindexrule,” and a linked URL can stay indexed. To remove a page: allow crawling + servenoindex. noindex≠nofollow≠disallow: index control vs link control vs crawl control. Most restrictive rule wins on conflict.- Review
noindexwith arel="canonical"pointing elsewhere — confirm that exclusion and consolidation are both intended. Use canonical for duplicates; usenoindexonly when the page itself should be excluded from Search. noindex,followmay fade tonoindex,nofollowover the long term, per a 2017 Mueller comment — not documented Google policy, so treat it as directional. Fine as a temporary state, not a permanent link-equity plan.- Not instant — applies on recrawl. Google says a low-priority page can take
months to be revisited. Use GSC Removals as an urgent stopgap;
404/410also drops pages once recrawled. noindexin robots.txt is dead — never officially supported; retired Sept 1, 2019. Use the meta tag or header.- Doesn’t buy you crawl-budget savings, confidentiality, duplicate consolidation, ranking recovery on reversal, or exclusion from Google’s model-training (Google-Extended is the separate control for that).
- Verify in GSC: URL Inspection (Test live URL) + Page Indexing report under “URL marked ‘noindex’” (legacy label: “Excluded by ‘noindex’ tag”).
Official documentation
Primary-source documentation from the search engines.
- Block Search indexing with
noindex— the canonical how-to: both methods, and the must-stay-crawlable gotcha. - Robots Meta Tags Specifications — every directive (
noindex,nofollow,none),X-Robots-Tag, and the “most restrictive rule wins” rule. - A note on unsupported rules in robots.txt (July 2019) — why
noindexin robots.txt was retired on Sept 1, 2019, and what to use instead. - Consolidate duplicate URLs — why to use
rel="canonical"(notnoindex) for duplicate consolidation. - Page Indexing report — the “URL marked ‘noindex’” status and how to verify.
Bing / Microsoft & engine-agnostic
- Which robots metatags does Bing support? — Bing’s robots-tag support, including
noindex. - MDN —
<meta name="robots">— a neutral, cross-engine reference for the directive.
Quotes from the source
On-the-record statements from Google. Each link is a deep link that jumps to the quoted passage on the source page.
Google — what noindex does and how to set it
- “Do not show this page, media, or resource in search results.” — Google Search Central docs (the
noindexdefinition). Jump to quote - “To prevent all search engines that support the
noindexrule from indexing a page on your site, place the following<meta>tag into the<head>section of your page.” Jump to quote - “A response header can be used for non-HTML resources, such as PDFs, video files, and image files.” Jump to quote
- “When Googlebot crawls that page and extracts the tag or header, Google will drop that page entirely from Google Search results, regardless of whether other sites link to it.” Jump to quote
Google — the robots.txt gotcha
- “For the
noindexrule 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. If the page is blocked by a robots.txt file or the crawler can’t access the page, the crawler will never see thenoindexrule, and the page can still appear in search results, for example if other pages link to it.” Jump to quote - “We have to crawl your page in order to see
<meta>tags and HTTP headers.” Jump to quote
Google — the other directives (for the comparison)
- “Do not follow the links on this page.” — the
nofollowdefinition. Jump to quote - “In the case of conflicting robots rules, the more restrictive rule applies.” Jump to quote
Google — don’t use noindex for canonicalization
- “We don’t recommend using
noindexto prevent selection of a canonical page within a single site, because it will completely block the page from Search.” Jump to quote
Google — noindex in robots.txt retired (Sept 1, 2019)
- “Since these rules were never documented by Google, naturally, their usage in relation to Googlebot is very low.” Jump to quote
- “we’re retiring all code that handles unsupported and unpublished rules (such as
noindex) on September 1, 2019.” Jump to quote - “the
noindexrule is the most effective way to remove URLs from the index when crawling is allowed.” Jump to quote
Google — verifying it in Search Console
- “When Google tried to index the page it encountered a ‘noindex’ directive and therefore did not index it.” — Page Indexing report (“URL marked ‘noindex’”). Jump to quote
Patrick Stox — crawling is not indexing (my Ahrefs “Remove URLs From Google” guide)
- “Crawling is not the same thing as indexing. Even if Google is blocked from crawling pages, if there are any internal or external links to a page they can still index it.” Jump to quote
- “If you remove the page and serve either a 404 (not found) or 410 (gone) status code, then the page will be removed from the index shortly after the page is re-crawled.” Jump to quote
noindex is described in my own words rather than quoted — confirm the exact wording in a browser before treating it as verbatim. The long-term noindex,follow → noindex,nofollow point is relayed from John Mueller via Search Engine Roundtable’s coverage of a 2017 webmaster hangout; I’ve paraphrased it rather than quoting, and it should be confirmed against the source before being treated as final. noindex vs disallow vs nofollow vs canonical — what each does
| Control | Stops crawling? | Stops indexing? | What it’s for | Key caveat |
|---|---|---|---|---|
noindex (meta tag / header) | No — page must stay crawlable | Yes | Removing a page from the index / search results | Useless if the page is robots.txt-blocked (crawler never sees it) |
disallow (robots.txt) | Yes | No | Keeping bots out of low-value URL spaces | Not a deindexing tool — blocked URLs can still be indexed if linked |
nofollow (meta / on links) | No | No | Telling Google not to follow this page’s links | Says nothing about whether the page itself is indexed |
rel="canonical" | No | Consolidates, doesn’t force | Pointing to the preferred version of a duplicate | A hint, not a rule — coexistence with noindex is an intent warning, especially when it points elsewhere |
The two valid noindex methods
| Method | Syntax | Use it for |
|---|---|---|
| Robots meta tag | <meta name="robots" content="noindex"> in the <head> | Normal HTML pages |
| X-Robots-Tag header | X-Robots-Tag: noindex in the HTTP response | Non-HTML files (PDF, image, video) — and any page where setting a header is easier than editing markup |
<meta name="googlebot" content="noindex"> targets only Google; robots targets
every engine that supports the rule. noindex,nofollow (or none, which Google
calls “Equivalent to noindex, nofollow”) does both at once.
Not a valid method: Noindex: inside robots.txt. Never officially supported;
retired by Google on September 1, 2019. Don’t use it.
How to noindex a page correctly (and verify it)
Set it up
- Picked the right method: robots meta tag for an HTML page, or
X-Robots-Tag: noindexheader for a PDF / image / video. - For HTML:
<meta name="robots" content="noindex">is in the<head>— the standard, safest placement (Google will also honor a robots meta tag placed in the<body>, but don’t rely on that; it also means a stray<meta>tag injected into the body can noindex a page by accident). - The page is not blocked in
robots.txt— Google must be able to crawl it to see the directive. - If the page also carries
rel="canonical", its target and the intended exclusion outcome have been reviewed; the combination is not treated as an automatic failure. - If you want links to keep flowing temporarily, used
noindex,follow— knowing it decays tonoindex,nofollowover the long term. - Did not rely on a
Noindex:line inrobots.txt(unsupported since Sept 1, 2019).
Verify it worked
- Ran URL Inspection → Test live URL in Google Search Console and confirmed
Google sees the
noindexdirective. - Checked the Page Indexing report — the URL appears under “URL marked ‘noindex’” (legacy label: “Excluded by ‘noindex’ tag”).
- Gave it time — deindexing only happens after a recrawl, so the page won’t vanish from results instantly.
- If it needs to be gone urgently, used the GSC Removals tool as a temporary
stopgap alongside the permanent
noindex. - If a page is still indexed after noindexing it, checked first whether it’s also robots.txt-blocked (“Indexed, though blocked by robots.txt”) — the number-one cause.
Noindex
Noindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed.
Related: Robots Meta Tag, X-Robots-Tag, Index Bloat, Canonical Tag
Noindex
noindex is the directive that removes a page from a search engine’s index, so it won’t show up in search results. It has exactly two valid delivery methods: a robots meta tag in the page’s <head> (<meta name="robots" content="noindex">) or an X-Robots-Tag: noindex HTTP response header. The header is the only option for non-HTML files like PDFs, images, and videos, where there’s no <head> to put a meta tag in.
The condition that breaks most attempts: the page must be crawlable. A search engine has to fetch the page to see the noindex rule, so a URL blocked in robots.txt can never be noindexed — and it may still appear as a bare, description-less listing if other pages link to it. To remove an already-indexed page you do the opposite of what most people expect: leave it crawlable, add noindex, and wait for it to be recrawled.
noindex is an index control, which makes it distinct from nofollow (don’t follow this page’s links) and from robots.txt disallow (don’t crawl at all — a crawl control, not an index control). Putting noindex inside robots.txt has never been officially supported, and Google retired even its unofficial handling on September 1, 2019. Don’t combine noindex with rel="canonical" either — the two send contradictory signals.
Related: Robots Meta Tag, X-Robots-Tag, Index Bloat, Canonical Tag
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Revision history
Compare the published article with an archived editorial snapshot. Added and removed words are shown only after you open a comparison.
Updated Jul 28, 2026.
Editorial summary and recorded change details.Summary
Added a deployment example showing how staging URLs remain indexed when a launch-time robots.txt block prevents Google from reading their noindex directives.
Change details
-
Added a crawl → noindex → verify → optionally block sequence for cleaning up an accidentally indexed staging host.
Full comparison unavailable — no prior snapshot was archived for this revision.
Updated Jul 19, 2026.
Editorial summary and recorded change details.Summary
Aligned every lens with the intent-check treatment for pages that combine noindex and canonical.
Change details
- Before
Several lenses said never to combine noindex and canonical.AfterThe combination is a warning/configuration to review, can be intentional, and is most suspicious when the canonical points elsewhere or is being used as a removal mechanism.
Full comparison unavailable — no prior snapshot was archived for this revision.
Updated Jul 19, 2026.
Editorial summary and recorded change details.Summary
Added Bing's noindex foundation-model-training consequence and retained the Bingbot crawl prerequisite.
Change details
-
Added the Bing-specific training-use consequence as a scoped notice, not a generic noindex or scoring claim.
Full comparison unavailable — no prior snapshot was archived for this revision.
Updated Jul 18, 2026.
Editorial summary and recorded change details.Summary
Corrected the robots-meta-tag body/head claim, added Google's own 'may take months' removal-timing quote, hedged the noindex,follow decay claim to its actual 2017 source, scoped the noindex+canonical caution to Google's exact wording, and added a new 'what noindex doesn't guarantee' section covering crawl budget, confidentiality, ranking recovery, cross-engine timing, sitemaps, and the Google-Extended/AI-features distinction — all verified live against current Google Search Central docs.
Change details
- Before
Checklist and Advanced text stated the robots meta tag must go in the <head> and not the <body>.AfterCorrected to reflect that Google also honors the robots meta tag if placed in the <body>, while still recommending <head> as the standard, safest placement. -
Added Google's own quote on removal timing ('it may take months for Googlebot to revisit a page') to the 'How long does noindex take?' section instead of leaving the timeframe unquantified.
-
Reframed the noindex,follow-decays-to-noindex,nofollow claim as a 2017 Mueller comment rather than documented Google policy, since current official docs describe deliberately combining noindex with nofollow but say nothing about automatic long-term decay.
-
Added a new anti-pattern entry and 'what noindex doesn't guarantee' section covering crawl-budget savings, sitemap inclusion, confidentiality, ranking recovery, cross-engine timing, and the distinction between noindex (blocks Google Search, including its AI features) and Google-Extended (the separate model-training control).
-
Scoped the noindex+canonical warning to Google's actual wording (choosing a canonical among duplicates within one site) rather than implying every technical coexistence is invalid.
Full comparison unavailable — no prior snapshot was archived for this revision.