Meta Robots Tag
The robots meta tag controls how a page is indexed and served — every directive, the crawl-then-obey rule, conflict resolution, and meta tag vs X-Robots-Tag.
1 evidence signal on this page
- Related live toolHTTP Header Checker
The robots meta tag — <meta name="robots" content="noindex"> in the <head> — tells search engines how to index and serve a single page. The rule that breaks everything: it's crawl-then-obey, so a page blocked in robots.txt is never fetched and its noindex is never seen. With no tag, the default is index, follow. Conflicting rules resolve to the most restrictive; for a googlebot-named tag against the generic robots tag, Googlebot takes the sum of the negative rules. The tag is HTML-only — use the X-Robots-Tag header for PDFs, images, and other non-HTML.
TL;DR — The robots meta tagThe robots meta tag is an HTML element in a page's head — <meta name=\"robots\" content=\"noindex\"> — that tells search engines how to index and serve that page. It's crawl-then-obey: a page blocked in robots.txt is never fetched, so the tag is never seen. is a line of HTML you put in a page’s
<head>to tell search engines how to handle that one page — most often<meta name="robots" content="noindex">to keep it out of search. The catch that trips everyone up: Google has to be able to crawl the page to read the tag. If you also block the page inrobots.txt, Google never sees the tag, and the page can stay in search. With no tag at all, the default is “indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. it and follow the links.”
What the robots meta tag is
The robots meta tag is a small HTML element that sits in the <head> of a page:
<meta name="robots" content="noindex">It tells search engines how to treat this specific page — whether to show it
in results, whether to follow the links on it, whether to show a snippet, and so
on. The name="robots" part means “all search engines that read this tag.” You
can swap in a crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.’s name, like name="googlebot", to talk to just one engine.
If there’s no robots meta tag on a page, the default is index, follow — show
it in search and follow its links. So you only need the tag when you want to
change that default. Evidence for this claim For Google, the default robots meta behavior is index, follow when no restrictive rule is present. Scope: Google-supported robots meta rules; other crawlers publish their own support and defaults. Confidence: high · Verified: Google Search Central: Robots meta tag specifications
The one thing to get right: don’t block the page you’re trying to noindex
This is the mistake I see most often. People want a page out of Google, so they do both things at once:
- Add
noindexto the page, and - Block the page in
robots.txt.
That second step defeats the first. Blocking a URL in robots.txt tells Google
“don’t even fetch this page.” So Google never downloads it, never reads the
noindex, and the page can stay in the index. The fix is to leave the page
crawlable and let Google read the noindex. Evidence for this claim Google can read and follow page-level robots rules only when it is allowed to access the page. Scope: Google-supported robots meta and X-Robots-Tag rules; robots.txt blocking can prevent rule discovery. Confidence: high · Verified: Google Search Central: Robots meta tag specifications
Think of it as two different jobs:
robots.txtcontrols crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. — whether bots fetch the page at all.- The robots meta tag controls indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and serving — what happens once the page is fetched.
They’re not interchangeable, and you don’t want both on the same URL when your goal is to remove it from search.
The same page contains a meta robots noindex directive. In the first path, crawling is allowed, so the crawler fetches the page, reads noindex, and can remove the URL from results after processing. In the second path, robots.txt blocks crawling, so the crawler cannot fetch the page or see noindex, and the URL may remain in results. Crawl control and index control are separate jobs.
© Patrick Stox LLC · CC BY 4.0 ·
The common directives
A few you’ll actually use:
noindex— keep this page out of search results.nofollow— don’t follow the links on this page. (Different from puttingrel="nofollow"on a single link — this one applies to every link on the page.)none— shorthand fornoindex, nofollow.nosnippet— don’t show a text snippet for this page in results.
You can combine them with a comma: <meta name="robots" content="noindex, nofollow">.
A few honest gotchas
noindexdoesn’t make a page private. The page is still public and crawlable — it just won’t show in search. For real privacy, use a login.noindexdoesn’t save crawl budgetThe number of URLs an engine will crawl in a timeframe.. Google still has to fetch the page to see the tag.- For a PDF or an image, you can’t add a
<meta>tag — there’s no HTML<head>. That’s what the X-Robots-TagThe X-Robots-Tag is an HTTP response header that carries the same indexing and serving directives as the robots meta tag (noindex, nofollow, nosnippet, and the rest). Because it lives in the header rather than the HTML, it's how you control indexing for non-HTML files like PDFs, images, and videos. HTTP header is for (more on that in the Advanced version). - There’s no fixed timeline for a
noindexed page to drop out of Google. Google says it can take months for a lower-priority page to get recrawled and processed — don’t promise a client “2-4 weeks.”
Want the full directive list, how Google resolves conflicting rules, the
googlebot-vs-robots edge case, and the X-Robots-TagThe X-Robots-Tag is an HTTP response header that carries the same indexing and serving directives as the robots meta tag (noindex, nofollow, nosnippet, and the rest). Because it lives in the header rather than the HTML, it's how you control indexing for non-HTML files like PDFs, images, and videos. header in detail? Switch
to the Advanced tab.
Test yourself: robots meta directives
Choose the control by outcome
Which robots control should I use?
Robots controls that fail their intended job
- Combining
noindexwith a robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. block. The block prevents the crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. from seeing the removal directive. - Using
disallowas a deindexingDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist. guarantee. It stops fetching, but a linked URL can still be indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. without page content. - Assuming a body-placed robots meta tagThe robots meta tag is an HTML element in a page's head — <meta name=\"robots\" content=\"noindex\"> — that tells search engines how to index and serve that page. It's crawl-then-obey: a page blocked in robots.txt is never fetched, so the tag is never seen. is silently ignored. Google says it
will respect a robots meta tag in the body, so a template that injects it there
still works for Google — but stick to
<head>placement anyway, since it’s the only placement other crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. and validators are guaranteed to expect. - Using a crawler-name tokenA token is the smallest unit of text (or image/audio/video) an LLM processes — roughly 4 characters, or about ¾ of an English word. A context window is the maximum number of tokens (input plus output) a model can hold at once, like its short-term memory. Google doesn’t read (e.g.
name="bingbot") and assuming it also scopes the rule for Google. Google recognizes onlygooglebotandgooglebot-news; any other name value is ignored by Google entirely. - Using an HTML meta tag for a PDF. Serve
X-Robots-Tagin the HTTP response for non-HTML files. - Treating
nofollowasnoindex. Link handling does not remove the current page from results. - Publishing generic and crawler-specific tags without resolving the sum. Audit
every
robots,googlebot, and header directive together; the restrictive rule can survive in a second location. - Using robots rules for secrecy. Anyone can request a public URL or read
robots.txt; confidential content needs authentication.
Deploy a noindex safely
- Confirmed removal from search—not crawl reduction, canonical consolidation, or access control—is the intended outcome.
- Used
<meta name="robots" content="noindex">for HTML or anX-Robots-Tag: noindexresponse header for a non-HTML resource. - Kept the URL crawlable and accessible to the target crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index..
- Removed contradictory template, CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms., CDN, and crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.-specific directives.
- Checked the rendered head and live response, not only the source template.
- Tested both the canonical URLHow search engines pick one canonical URL among duplicates and consolidate signals onto it. and meaningful variants or redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't..
- Recorded the affected URL set and deployment time for later comparison.
- Verified the rule in URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. and monitored the Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. after recrawlCrawl frequency is how often a search engine comes back to re-fetch a page it already knows about. Popular pages that change often get refreshed many times a day; stable pages can go weeks or months between crawls — and you influence it indirectly, not by setting a dial..
- Used authentication instead if the content must be private.
Inspect meta, headers, and crawl access
Replace the URL in this shell audit:
url="https://example.com/page/"
curl -sSI "$url" | grep -iE '^(HTTP/|x-robots-tag:|location:)'
curl -sS "$url" | grep -oiE '<meta[^>]+name=["'"'](robots|googlebot)["'"'][^>]*>'
curl -sS "https://example.com/robots.txt"In DevTools Console, inventory every parsed robots tag rather than stopping at the first match:
console.table([...document.querySelectorAll('meta[name]')]
.filter((meta) => /^(robots|googlebot|bingbot)$/i.test(meta.name))
.map((meta) => ({ crawler: meta.name, content: meta.content })));Headers are not visible in the DOM, so compare the console result with the actual response. Also follow redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.: a directive on an intermediate response does not prove the destination serves the same rule.
Patrick's relevant free tools
- Google Index Checker — Check one URL’s observable indexability blockers, or reconcile sitemap, crawl, and supplied Search Console evidence across a URL set before verifying Google’s actual state in URL Inspection.
- Google SERP Simulator — Interactive Google result preview: type a title, description, and URL, compare controlled-font desktop + mobile truncation guidance with simulated query bolding, copy the finished tags, and share a filled-in preview.
- Meta Description Generator — Generate five meta-description options with AI, then compare their measured widths with approximate desktop and mobile SERP-preview guidance. Variants are scored for the keyword, a call to action, and length; you also get a matching title tag and a copy-ready tag block. Quick, paste-content, fetch-URL, and small bulk (≤10) modes. Falls back to editable templates when AI is off.
Test each layer separately
- HTTP Header Checker — inspect status, redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.,
and every live
X-Robots-Tagheader, including for PDFs. - Robots.txt Tester — check whether the target crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. is allowed to fetch the URL and therefore able to discover a robots directive.
Use both when diagnosing a stubborn indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. URL. A correct noindexNoindex 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. response is not actionable if robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. prevents the fetch, and an allowed crawl does not prove the page actually serves noindexNoindex 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..
Prove the directive works after deployment
Test 1 — Live delivery
- Hypothesis: Every intended URL serves one effective
noindexrule. - Method: Sample the URL set, follow redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't., and inspect rendered meta plus response headers.
- Pass condition: The final response is crawlable and exposes
noindexto the intended crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. with no conflicting delivery path. - Fail condition: A redirect, CDN header, or crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.-specific tag changes it.
- Next action: Fix the responsible layer and repeat the same sample.
Test 2 — Search-engine processing
- Hypothesis: Google can crawl the page and has processed the removal rule.
- Method: Run URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version.’s live test, then monitor the Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. after recrawlCrawl frequency is how often a search engine comes back to re-fetch a page it already knows about. Popular pages that change often get refreshed many times a day; stable pages can go weeks or months between crawls — and you influence it indirectly, not by setting a dial..
- Pass condition: The live test detects noindexNoindex 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. and the URL becomes not indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. for that reason.
- Fail condition: The URL is blocked, the directive is absent, or the old index state persists without a new crawl.
- Next action: Restore crawl access or request recrawl; do not add a disallow.
Measure intent, not a universal benchmark
Intended-noindexNoindex 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. coverage
URLs serving the intended noindex ÷ URLs in the approved noindex set
Build the denominator from your own removal inventory, then compare crawls before and after deployment. The target is complete coverage of that approved set—not an industry percentage.
Unintended indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.-control conflicts
Track counts of intended-noindexNoindex 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. URLs that are still indexed, robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere.-blocked, or serving contradictory meta/header rules. Segment by template, CDN rule, and file type so one implementation fault does not hide inside a sitewide total.
Use Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.’s Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. and URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. as processing evidence, while recognizing that deindexingDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist. depends on recrawlCrawl frequency is how often a search engine comes back to re-fetch a page it already knows about. Popular pages that change often get refreshed many times a day; stable pages can go weeks or months between crawls — and you influence it indirectly, not by setting a dial.. Preserve the pre-change count and deployment date; otherwise a falling total has no reliable baseline.
TL;DR —
<meta name="robots" content="…">in the<head>controls how a single page is indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and served; with no tag the default isindex, follow. It’s crawl-then-obey: “these settings can be read and followed only if crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. are allowed to access the pages” — so arobots.txt-blocked URL is never fetched and itsnoindexis never seen (I have first-party data on the flip side of this). Conflicting rules resolve to the most restrictive; across agooglebottag and the genericrobotstag, GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. takes the sum of the negative rules. The tag is HTML-only — use the X-Robots-TagThe X-Robots-Tag is an HTTP response header that carries the same indexing and serving directives as the robots meta tag (noindex, nofollow, nosnippet, and the rest). Because it lives in the header rather than the HTML, it's how you control indexing for non-HTML files like PDFs, images, and videos. header for non-HTML and at scale. Google reads only two crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.-named tokensA token is the smallest unit of text (or image/audio/video) an LLM processes — roughly 4 characters, or about ¾ of an English word. A context window is the maximum number of tokens (input plus output) a model can hold at once, like its short-term memory. —googlebotandgooglebot-news— and ignores every other value, including other engines’ tokens likebingbot.
What it is, where it goes, and the default
The robots meta tagThe robots meta tag is an HTML element in a page's head — <meta name=\"robots\" content=\"noindex\"> — that tells search engines how to index and serve that page. It's crawl-then-obey: a page blocked in robots.txt is never fetched, so the tag is never seen. lets you, in Google’s words, “use a granular, page-specific
approach to controlling how an individual HTML page should be indexed and served
to users in Google Search results.” The conventional, portable place for it is
the <head>:
<meta name="robots" content="noindex, nofollow">Head placement is the authoring convention every engine expects, but Google is
explicit that it isn’t a hard requirement for Google Search specifically: “Google
Search doesn’t enforce placement of meta robots in the HTML head and will respect
robots meta tagsMeta tags are HTML elements in a page's head that pass metadata about the page to search engines and browsers. For SEO only a few matter — the title element, the meta description, and the robots meta tag — while meta keywords and most others are ignored. in the body section of an HTML document as well.” Treat that as
tolerance for Google, not portable advice — still author it in the <head> so
every crawler and validator that expects standard placement reads it correctly.
The name attribute is the audience, and this is where most guides overstate
Google’s support. name="robots" addresses every crawler that reads the tag.
Beyond that, Google supports exactly two crawler-named tokens, and ignores every
other value: “Google supports two user agentA user agent is the HTTP request header a client (browser, crawler, or bot) sends to identify itself. For crawlers, a short user-agent token — a substring of that string — is what robots.txt rules actually target. tokens in the robots meta tag;
other values are ignored: googlebot for all text results, and googlebot-news
for news results.” A tag named name="bingbot" isn’t a documented Google
control — Bing reads its own token on its own terms, but Google skips any name
value it doesn’t recognize. Both the name and content attributes are
case-insensitive to Google, and so are X-Robots-Tag header names and values.
When no robots meta tag is present, the default is
index, follow (the all rule, which Google notes “has no effect if explicitly
listed”). Evidence for this claim For Google, the default robots meta behavior is index, follow when no restrictive rule is present. Scope: Google-supported robots meta rules; other crawlers publish their own support and defaults. Confidence: high · Verified: Google Search Central: Robots meta tag specifications You only need the tag to change that default.
You combine rules two ways: comma-separated in one tag (noindex, nofollow) or as
multiple <meta> tags. Google: you can “create a multi-rule instruction by
combining robots meta tag rules with commas or by using multiple meta tags.”
The rule that breaks everything: Google must crawl the page to see the tag
This is the whole article. The robots meta tag is crawl-then-obey. Google has to fetch the page to read the tag — so anything that stops the fetch stops the tag from ever being applied. Straight from the spec:
Evidence for this claim Google can read and follow page-level robots rules only when it is allowed to access the page. Scope: Google-supported robots meta and X-Robots-Tag rules; robots.txt blocking can prevent rule discovery. Confidence: high · Verified: Google Search Central: Robots meta tag specifications“Keep in mind that these settings can be read and followed only if crawlers are allowed to access the pages that include these settings.”
And the consequence, spelled out:
“If a page is disallowed from crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. through the robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. file, then any information about indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. or serving rules will not be found and will therefore be ignored.”
So the classic mistake — Disallow in robots.txt plus noindex on the
same URL — silently defeats the noindex. Google never crawls the page, never
sees the tag, and the URL can linger in the index (often as a bare, snippet-less
result if something links to it). Google’s companion “Block Search Indexing”
doc says the same thing in plainer language: for the noindex rule to work, the
page “must not be blocked by a robots.txt file… 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.”
To inspect the final page response for HTML robots directives and an X-Robots-Tag before you wait for recrawling, run the On-Page SEO Checker Free
- Run the public final URL after deployment so redirects do not hide the directive you actually serve.
- Review the raw HTML robots meta value and the final-response X-Robots-Tag; either surface can contribute noindex.
- Compare an affected URL with a known-good control, then use Search Console separately to confirm Google’s observed indexing state after recrawl.
I’ve watched the flip side of this mechanism happen with real data. In my
experiment The Story of Blocking 2 High-Ranking Pages With Robots.txt,
I deliberately blocked two of our ranking pages in robots.txt. Because Google
could no longer crawl them, it couldn’t refresh anything about them — and the
pages mostly kept ranking: “We lost a position here or there and all of the
featured snippets for the pages.” My takeaway: “Accidentally blocking pages
(that Google already ranks) from being crawled using robots.txt probably isn’t
going to have much impact on your rankings, and they will likely still show in the
search results.” That’s the same coin as the noindex problem — a blocked URL is
frozen. Block ≠ remove. If you actually want a page gone, you need a
crawlable noindex, which is the entire point of this tag.
This is the line I’ve drawn publicly on where each tool belongs. Asked whether
Google should add noindex support to robots.txt, I said: “Google was clear
they want robots.txt for crawl control only.” CrawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. is robots.txt’s job;
indexing is the meta tag’s (or the header’s). They don’t overlap, and the
noindex directive in robots.txt was never officially supported — Google dropped
parsing of it on September 1, 2019.
Every robots meta directive (the reference)
Google’s supported values, with the verbatim descriptions from the spec:
Indexing
all— “There are no restrictions for indexing or serving. This rule is the default value and has no effect if explicitly listed.”noindex— “Do not show this page, media, or resource in search results.”none— “Equivalent tonoindex, nofollow.”indexifembedded— “Google is allowed to index the content of a page if it’s embedded in another page through iframesHTML element that displays one webpage inside another — how embeds work. or similar HTML tags, in spite of anoindexrule.” (The one directive that overrides anoindex, for embedded content.)
Links
nofollow— “Do not follow the links on this page.” This is page-level — different scope from a per-linkrel="nofollow", which applies to one link.
Serving and snippets
nosnippet— “Do not show a text snippet or video preview in the search results for this page.” This scope is broader than the classic text snippet: Google says it “applies to all forms of search results (at Google: web search, Google Images, Discover, AI OverviewsAI Overviews are the AI-generated summary box Google shows above or within its regular search results, written by Gemini models from pages retrieved out of Google's normal Search index. It's a Search feature, not a separate platform or index., AI Mode) and will also prevent the content from being used as a direct input for AI Overviews and AI Mode.”max-snippet:[number]— “Use a maximum of [number] characters as a textual snippet for this search result.” Same broadened scope asnosnippet: it “applies to all forms of search results (such as Google web search, Google Images, Discover, Assistant, AI Overviews, AI Mode) and will also limit how much of the content may be used as a direct input for AI Overviews and AI Mode.” That’s a direct-input eligibility control for Google’s own AI searchAI search uses large language models and retrieval-augmented generation (RAG) to synthesize an answer from multiple sources rather than returning a ranked list of links. Examples include Google AI Overviews, ChatGPT Search, and Perplexity. features — it is not a general AI-training opt-out. Keeping your content out of model training (e.g. Google-Extended) or out of Search’s separate generative-AI property-level control in Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. are different systems with different scopes; don’t treatnosnippet/max-snippetas covering either.max-image-preview:[setting]— “Set the maximum size of an image preview for this page in search results.” Settings:none,standard, orlarge(“A larger image preview, up to the width of the viewport, may be shown.”).max-video-preview:[number]— “Use a maximum of [number] seconds as a video snippet for videos on this page in search results.”notranslate— “Don’t offer translation of this page in search results.”noimageindex— “Do not index images on this page.”unavailable_after:[date/time]— “Do not show this page in search results after the specified date/time.”
Historical — no longer active Google controls
A few directives that still circulate in older guides are ones Google says it no longer uses. Don’t add these expecting them to do anything:
noarchive— “Thenoarchiverule is no longer used by Google Search to control whether a cached link is shown in search results, as the cached link feature no longer exists.”nocache(a synonym some engines used fornoarchive) — “Thenocacherule isn’t used by Google Search.”nositelinkssearchbox— “Thenositelinkssearchboxrule is no longer used by Google Search to control whether the sitelink search box is shown for a given page, as the feature no longer exists.”
Paragraph-level (not in the meta tag)
There’s one sub-page control: the data-nosnippet attribute. Google: you can
“designate textual parts of an HTML page not to be used as a snippet… on
span, div, and section elements.” Everything in the meta tag is page-wide;
nosnippet / data-nosnippet is how you keep one passage out of the snippet
without touching the rest.
Combining directives and resolving conflicts
Two rules govern what happens when directives collide.
1. The more restrictive rule wins. “In the case of conflicting robots rules,
the more restrictive rule applies. For example, if a page has both max-snippet:50
and nosnippet rules, the nosnippet rule will apply.” nosnippet is stricter
than a 50-character cap, so nosnippet is what you get.
2. googlebot vs robots — the sum of the negative rules. This is the one
most guides get wrong. A googlebot-named tag does not simply replace the
generic robots tag — for the overlap, GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. takes the union of the
restrictions. Google: “For situations where multiple crawlers are specified
along with different rules, the search engine will use the sum of the negative
rules.” Their worked example:
<meta name="robots" content="nofollow">
<meta name="googlebot" content="noindex">“The page containing these meta tagsMeta tags are HTML elements in a page's head that pass metadata about the page to search engines and browsers. For SEO only a few matter — the title element, the meta description, and the robots meta tag — while meta keywords and most others are ignored. will be interpreted as having a noindex, nofollow rule when crawled by Googlebot.” The nofollow from robots plus
the noindex from googlebot add up to noindex, nofollow for Googlebot. (Where
a googlebot tag and a robots tag set the same directive differently, the
crawler-named one is the one that applies to that crawler.)
Meta robots tag vs X-Robots-Tag (the HTTP header)
The robots meta tag is HTML-only — it needs a <head>. For anything that
isn’t HTML, you use the X-Robots-TagThe X-Robots-Tag is an HTTP response header that carries the same indexing and serving directives as the robots meta tag (noindex, nofollow, nosnippet, and the rest). Because it lives in the header rather than the HTML, it's how you control indexing for non-HTML files like PDFs, images, and videos., which delivers the exact same rule
vocabulary in the HTTP response header. Google: “The X-Robots-Tag can be used
as an element of the HTTP header response for a given URL. Any rule that can be
used in a robots meta tag can also be specified as an X-Robots-Tag.” And the
reason it exists: “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.”
So:
- PDF, image, or other non-HTML? You can’t add a
<meta>tag — use the header, e.g.X-Robots-Tag: noindex. - Whole directories or patterns? The header is set at the server/CDN level, so it scales to entire paths in one config rule.
- One engine? The header can target a crawler too:
X-Robots-Tag: googlebot: noindex, nofollow, and multiple X-Robots-Tag headers can be combined in one response.
Same rules, two delivery mechanisms: the meta tag for HTML pages, the header for everything else and for scale.
Which directives Bing and other engines support
Don’t assume the directive set is universal — it isn’t. Bing supports the core
indexing and serving rules — noindex, nofollow, noarchive (with nocache as
its synonym), and nosnippet — and it honors the X-Robots-Tag for non-HTML
resources. But Bing does not support the none shorthand, so for cross-engine
safety, write noindex, nofollow out explicitly rather than relying on none. The
snippet- and preview-control family — max-snippet, max-image-preview,
max-video-preview — along with noimageindex, notranslate,
indexifembedded, and unavailable_after, is effectively Google-only. When in
doubt, spell directives out and treat the max-* controls as Google features.
Common mistakes (and the fixes)
Disallow+noindexon the same URL. Thenoindexis never seen. Fix: leave the page crawlable; keep just thenoindex.noindexplus arel=canonicalpointing elsewhere. Conflicting signals — you’re telling Google both “drop this page” and “consolidate it into another one.” Pick one. (More in canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it..)- A staging-wide
noindexshipped to production. Catastrophic, sitewide deindex. Check before launch. - A
noindexinjected only by client-side JavaScript. Google has to render the page to see it, and if the rendered HTML differs from what you expect, behavior differs too. Prefer the tag in the raw HTML or the header. (See renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM..) - Expecting Bing to honor Google-only directives (
none, themax-*family). - Expecting a robots directive to do a job it doesn’t own. A
noindexornosnippetrule doesn’t by itself guarantee crawl-budget savings, secrecy, a ranking change, identical behavior across search engines, a specific removal timeline, or exclusion from every AI/search surface — each of those outcomes belongs to a different control (authentication for secrecy,robots.txtfor crawl, each engine’s own docs for parity, Search Console or Google-Extended for AI-specific scopes). Google gives no fixed timeframe for when anoindexed page actually drops out — it depends on recrawl priority and “may take months” for a lower-importance page.
For where this sits in the bigger picture: robots.txt and crawling are the crawl-control side; noindexNoindex 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. and indexing are the index-control side; and nosnippet / data-nosnippet, max-snippet, and max-image-preview are the serving controls you reach for when you want a page indexed but want to shape how it appears. The X-Robots-Tag is this same tag’s HTTP-header equivalent for non-HTML.
AI summary
A condensed take on the Advanced version:
- The robots meta tagThe robots meta tag is an HTML element in a page's head — <meta name=\"robots\" content=\"noindex\"> — that tells search engines how to index and serve that page. It's crawl-then-obey: a page blocked in robots.txt is never fetched, so the tag is never seen. —
<meta name="robots" content="…">in the<head>— controls how a single HTML page is indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and served. With no tag, the default isindex, follow. - It’s crawl-then-obey. Google must crawl the page to read the tag: “these
settings can be read and followed only if crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. are allowed to access the
pages.” So a robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere.-blocked URL never gets its
noindexseen — the classic mistake. Patrick’s blocked-pages experiment proves the mechanism: blocked pages stayed indexed and mostly kept ranking. Block ≠ remove. - robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. = crawl control; the meta tag (or X-Robots-TagThe X-Robots-Tag is an HTTP response header that carries the same indexing and serving directives as the robots meta tag (noindex, nofollow, nosnippet, and the rest). Because it lives in the header rather than the HTML, it's how you control indexing for non-HTML files like PDFs, images, and videos.) = index/serve
control. Not interchangeable.
noindexin robots.txt was dropped Sept 1, 2019. - Directives: indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. (
noindex,none,indexifembedded), links (nofollow, page-wide), serving (nosnippet,max-snippet,max-image-preview,max-video-preview,notranslate,noimageindex,unavailable_after), plus the paragraph-leveldata-nosnippetattribute.noarchive,nocache, andnositelinkssearchboxare historical — Google says it no longer uses them. nosnippet/max-snippetalso gate AI OverviewsAI Overviews are the AI-generated summary box Google shows above or within its regular search results, written by Gemini models from pages retrieved out of Google's normal Search index. It's a Search feature, not a separate platform or index. and AI Mode — Google says they control whether the page’s content can be used as a direct input for those features, not just the classic text snippet. That’s not a general AI-training opt-out; Google-Extended and Search’s separate generative-AI property control are different systems.- Conflicts resolve to the most restrictive (
nosnippetbeatsmax-snippet:50). Across agooglebottag and the genericrobotstag, GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. takes the sum of the negative rules —robots: nofollow+googlebot: noindex⇒noindex, nofollow. Google recognizes only thegooglebot/googlebot-newsname tokensA token is the smallest unit of text (or image/audio/video) an LLM processes — roughly 4 characters, or about ¾ of an English word. A context window is the maximum number of tokens (input plus output) a model can hold at once, like its short-term memory.; other values (likebingbot) are ignored by Google. - Meta tag is conventionally
<head>-only (Google also tolerates body placement, but that’s Google-specific, not portable); the X-Robots-TagThe X-Robots-Tag is an HTTP response header that carries the same indexing and serving directives as the robots meta tag (noindex, nofollow, nosnippet, and the rest). Because it lives in the header rather than the HTML, it's how you control indexing for non-HTML files like PDFs, images, and videos. carries the same rules in the HTTP header for PDFs, images, non-HTML, and whole directories. - Cross-engine: Bing supports
noindex/nofollow/noarchive(nocache)/nosnippetbut notnone; themax-*family is effectively Google-only — write directives out explicitly. - No guarantees: a robots directive alone doesn’t promise crawl-budget
savings, secrecy, a ranking change, cross-engine parity, or a fixed removal
timeline — Google gives no set timeframe for
noindexto take effect.
Official documentation
Primary-source documentation from the search engines.
- Robots meta tag, data-nosnippet, and X-Robots-Tag specifications — the authoritative spec: every directive, combining rules, conflict resolution, the
googlebot-vs-robotsunion, and the X-Robots-Tag headerThe X-Robots-Tag is an HTTP response header that carries the same indexing and serving directives as the robots meta tag (noindex, nofollow, nosnippet, and the rest). Because it lives in the header rather than the HTML, it's how you control indexing for non-HTML files like PDFs, images, and videos.. Start here. - Block Search Indexing with noindex — how
noindexworks, the two delivery mechanisms (meta tag and header), and the crawl dependency in plain language. - Introduction to robots.txt — the crawl-control counterpart, so you don’t confuse the two jobs.
- Crawling and Indexing — the hub for robots, sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it., and crawl controls.
Bing / Microsoft
- Robots meta tags and attributes that Bing supports — Bing’s supported directives (confirm the exact list on the live page; it’s JavaScript-rendered).
Reference
- MDN —
<meta name="robots">— cross-engine directive reference, including which engines usenoarchive/nocache.
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 the tag is and the default
- “The robots
metatag lets you use a granular, page-specific approach to controlling how an individual HTML page should be indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and served to users in Google Search results.” — Google Search Central docs. Jump to quote
Google — the crawl-then-obey dependency
- “Keep in mind that these settings can be read and followed only if crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. are allowed to access the pages that include these settings.” Jump to quote
- “If a page is disallowed from crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. through the robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. file, then any information about indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. or serving rules will not be foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. and will therefore be ignored.” Jump to quote
- “For the
noindexrule to be effective, the page or resource must not be blocked by a robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. file, and it has to be otherwise accessible to the crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index..” — Google, “Block Search Indexing with noindexNoindex 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..” Jump to quote
Google — the directives (verbatim descriptions)
- “Do not show this page, media, or resource in search results.” —
noindex. Jump to quote - “Equivalent to
noindex, nofollow.” —none. Jump to quote - “Do not show a text snippet or video preview in the search results for this page.” —
nosnippet. Jump to quote - “Google is allowed to index the content of a page if it’s embedded in another page through iframesHTML element that displays one webpage inside another — how embeds work. or similar HTML tags, in spite of a
noindexrule.” —indexifembedded. Jump to quote - “A larger image preview, up to the width of the viewport, may be shown.” —
max-image-preview:large. Jump to quote - “Do not index images on this page.” —
noimageindex. Jump to quote - “You can designate textual parts of an HTML page not to be used as a snippet.” —
data-nosnippet. Jump to quote
Google — combining and resolving conflicts
- “You can create a multi-rule instruction by combining robots
metatag rules with commas or by using multiplemetatags.” Jump to quote - “In the case of conflicting robots rules, the more restrictive rule applies. For example, if a page has both
max-snippet:50andnosnippetrules, thenosnippetrule will apply.” Jump to quote - “For situations where multiple crawlers are specified along with different rules, the search engine will use the sum of the negative rules.” Jump to quote
Google — placement, crawler tokensA token is the smallest unit of text (or image/audio/video) an LLM processes — roughly 4 characters, or about ¾ of an English word. A context window is the maximum number of tokens (input plus output) a model can hold at once, like its short-term memory., and case sensitivity
- “Google Search doesn’t enforce placement of meta robots in the HTML head and will respect robots meta tagsMeta tags are HTML elements in a page's head that pass metadata about the page to search engines and browsers. For SEO only a few matter — the title element, the meta description, and the robots meta tag — while meta keywords and most others are ignored. in the body section of an HTML document as well.” Jump to quote
- “Google supports two user agentA user agent is the HTTP request header a client (browser, crawler, or bot) sends to identify itself. For crawlers, a short user-agent token — a substring of that string — is what robots.txt rules actually target. tokens in the robots
metatag; other values are ignored.” Jump to quote - “Both the
nameand thecontentattributes are case-insensitive.” Jump to quote
Google — noarchiveNoarchive is a robots meta directive that tells search engines not to keep a cached copy of a page. Google's current documentation lists it under historical and unused rules and says it's ignored, because the cached-link feature it once controlled no longer exists — but on Bing it still controls whether content is used in Bing Chat/Copilot answers and AI training. It is not an access-control measure. and other historical directives
- “The
noarchiverule is no longer used by Google Search to control whether a cached link is shown in search results, as the cached link feature no longer exists.” Jump to quote - “The
nocacherule isn’t used by Google Search.” Jump to quote
Google — nosnippet and max-snippet reach AI OverviewsAI Overviews are the AI-generated summary box Google shows above or within its regular search results, written by Gemini models from pages retrieved out of Google's normal Search index. It's a Search feature, not a separate platform or index. and AI Mode
- “[nosnippet] applies to all forms of search results (at Google: web search, Google Images, Discover, AI Overviews, AI Mode) and will also prevent the content from being used as a direct input for AI Overviews and AI Mode.” Jump to quote
- “[max-snippet] applies to all forms of search results (such as Google web search, Google Images, Discover, Assistant, AI Overviews, AI Mode) and will also limit how much of the content may be used as a direct input for AI Overviews and AI Mode.” Jump to quote
Google — no fixed timeframe for noindexNoindex 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. to take effect
- “If a page is still appearing in results, it’s probably because we haven’t crawled the page since you added the
noindexrule. Depending on the importance of the page on the internet, it may take months for GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. to revisit a page.” — Google, “Block Search Indexing with noindex.” Jump to quote
Google — X-Robots-TagThe X-Robots-Tag is an HTTP response header that carries the same indexing and serving directives as the robots meta tag (noindex, nofollow, nosnippet, and the rest). Because it lives in the header rather than the HTML, it's how you control indexing for non-HTML files like PDFs, images, and videos.
- “The
X-Robots-Tagcan be used as an element of the HTTP header response for a given URL. Any rule that can be used in a robotsmetatag can also be specified as anX-Robots-Tag.” Jump to quote - “You can use the
X-Robots-Tagfor non-HTML files like image files where the usage of robotsmetatags in HTML is not possible.” Jump to quote
Patrick Stox — robots.txt is for crawl control only
- “Google was clear they want robots.txt for crawl control only. The biggest downside will probably be all the people who accidentally take their entire site out of the index.”
— Patrick Stox, on whether Google should add
noindexto robots.txt, in Search Engine Land. Jump to quote
Patrick Stox — blocking ranking pages with robots.txt (the crawl-vs-index proof)
- “Accidentally blocking pages (that Google already ranks) from being crawled using robots.txt probably isn’t going to have much impact on your rankings, and they will likely still show in the search results.” Jump to quote
- “We lost a position here or there and all of the featured snippets for the pages.” Jump to quote
Every robots meta directive — cheat sheet
The full set of Google-supported content values, what each does, and the default.
| Directive | What it does | Default? |
|---|---|---|
all | No restrictions on indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. or serving — the implicit default | Yes (when no tag) |
index | Allow the page in search results (the default; rarely written) | Implicit |
noindex | Keep this page/media/resource out of search results | No |
follow | Follow the links on this page (the default; rarely written) | Implicit |
nofollow | Don’t follow any links on this page (page-wide) | No |
none | Shorthand for noindex, nofollow (not supported by Bing) | No |
nosnippet | Don’t show a text snippet or video preview; also blocks the page as a direct input for AI OverviewsAI Overviews are the AI-generated summary box Google shows above or within its regular search results, written by Gemini models from pages retrieved out of Google's normal Search index. It's a Search feature, not a separate platform or index./AI Mode | No |
max-snippet:[n] | Cap the text snippet at [n] characters (0 = none, -1 = no limit); also caps how much can feed AI OverviewsAI Overviews are the AI-generated summary box Google shows above or within its regular search results, written by Gemini models from pages retrieved out of Google's normal Search index. It's a Search feature, not a separate platform or index./AI Mode directly | No |
max-image-preview:[setting] | Cap image-preview size: none / standard / large | No |
max-video-preview:[n] | Cap video preview at [n] seconds (0 = none, -1 = no limit) | No |
notranslate | Don’t offer a translation of this page in results | No |
noimageindex | Don’t index the images on this page | No |
unavailable_after:[date/time] | Drop the page from results after the given date/time | No |
indexifembedded | Allow indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. of content embedded via iframeHTML element that displays one webpage inside another — how embeds work. even with noindex | No |
Historical — Google no longer uses these:
| Directive | Status |
|---|---|
noarchive | No longer used — the cached-link feature it controlled no longer exists |
nocache | Not used by Google Search (some engines treated it as a noarchive synonym) |
nositelinkssearchbox | No longer used — the sitelinks search boxWebSite schema (schema.org/WebSite) is structured data — usually JSON-LD on the homepage — that identifies your domain as a website entity via its name and URL. Today it mainly feeds Google's Site Names feature; the Sitelinks Search Box it used to enable was discontinued by Google in November 2024. feature it controlled no longer exists |
Paragraph-level (an HTML attribute, not a content value):
| Attribute | What it does | Where |
|---|---|---|
data-nosnippet | Keep a specific passage out of the snippet | On span, div, section |
The syntax
<!-- one tag, comma-separated -->
<meta name="robots" content="noindex, nofollow">
<!-- target one engine -->
<meta name="googlebot" content="noindex">
<!-- the HTTP-header equivalent, for non-HTML / at scale -->
X-Robots-Tag: noindex
X-Robots-Tag: googlebot: noindex, nofollowFast facts
- No tag at all → default
index, follow. none=noindex, nofollow— but Bing doesn’t supportnone; write it out.max-*,noimageindex,notranslate,indexifembedded,unavailable_afterare effectively Google-only.- The tag is HTML-only; the
X-Robots-Tagheader carries the same rules for PDFs, images, and whole directories. - Google reads exactly two crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.-name tokensA token is the smallest unit of text (or image/audio/video) an LLM processes — roughly 4 characters, or about ¾ of an English word. A context window is the maximum number of tokens (input plus output) a model can hold at once, like its short-term memory. —
googlebotandgooglebot-news— and ignores everything else, including other engines’ tokens likebingbot. - Head placement is the portable convention, but Google specifically also
respects a robots meta tagThe robots meta tag is an HTML element in a page's head — <meta name=\"robots\" content=\"noindex\"> — that tells search engines how to index and serve that page. It's crawl-then-obey: a page blocked in robots.txt is never fetched, so the tag is never seen. placed in the
<body>. name/contentandX-Robots-Tagvalues are case-insensitive to Google.
The mental models
1. Crawl-then-obey — the tag only works if the page is fetchable.
Google has to crawl the page to read the tag. Anything that blocks the fetch
(robots.txt disallow, auth, a server error) means the tag is never seen. So
before you trust a noindex, confirm the URL is crawlable. The corollary: never
Disallow a URL you’re trying to noindex.
2. Three tools, three jobs — don’t mix them up.
robots.txt= crawl control (whether botsA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. fetch the page).- Robots meta tagThe robots meta tag is an HTML element in a page's head — <meta name=\"robots\" content=\"noindex\"> — that tells search engines how to index and serve that page. It's crawl-then-obey: a page blocked in robots.txt is never fetched, so the tag is never seen. / X-Robots-TagThe X-Robots-Tag is an HTTP response header that carries the same indexing and serving directives as the robots meta tag (noindex, nofollow, nosnippet, and the rest). Because it lives in the header rather than the HTML, it's how you control indexing for non-HTML files like PDFs, images, and videos. = indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. & serve control (what happens once it’s fetched).
- Authentication = secrecy (a
noindexpage is still public). Match the job to the tool. The most common failure is usingrobots.txtto try to deindexDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist. — that’s the meta tag’s job.
3. The decision rule for removing a page.
Want it out of search? Leave it crawlable and add noindex — and
don’t also block it in robots.txt, and don’t also canonical it to a different
URL. Want bots to skip a space entirely (and you don’t care about indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.)?
robots.txt disallow. The two are not interchangeable.
4. Conflict resolution — most restrictive wins.
When rules collide, the stricter one applies (nosnippet beats max-snippet:50).
Don’t try to out-clever this with combinations; assume the tightest rule is the one
that takes effect.
5. googlebot vs robots — sum of the negatives, not override.
For the overlap, GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. adds up the restrictions from the generic robots
tag and the googlebot-named tag rather than picking one. robots: nofollow +
googlebot: noindex ⇒ GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. gets noindex, nofollow. (A crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.-named tag
does take precedence over the generic tag where they set the same directive
differently — but the union is the rule to remember.)
6. HTML page → meta tag; everything else → header.
If it has a <head>, use the <meta> tag. If it’s a PDF, an image, any non-HTML
file, or you need to cover a whole directory, use the X-Robots-TagThe X-Robots-Tag is an HTTP response header that carries the same indexing and serving directives as the robots meta tag (noindex, nofollow, nosnippet, and the rest). Because it lives in the header rather than the HTML, it's how you control indexing for non-HTML files like PDFs, images, and videos. header —
same rule vocabulary, different delivery.
Robots Meta Tag
The robots meta tag is an HTML element in a page's head — <meta name="robots" content="noindex"> — that tells search engines how to index and serve that page. It's crawl-then-obey: a page blocked in robots.txt is never fetched, so the tag is never seen.
Related: X-Robots-Tag, Noindex, Nofollow, nosnippet & data-nosnippet
Robots Meta Tag
The robots meta tag is an HTML element conventionally placed in the <head> of a page — <meta name="robots" content="noindex"> — that tells search engines how to indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and serve that specific page. Google also tolerates the tag appearing in the page body, but that’s Google-specific behavior, not portable advice; keep it in <head>. The name can be robots (every crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. that reads the tag), or — for Google specifically — one of exactly two crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.-named tokensA token is the smallest unit of text (or image/audio/video) an LLM processes — roughly 4 characters, or about ¾ of an English word. A context window is the maximum number of tokens (input plus output) a model can hold at once, like its short-term memory., googlebot or googlebot-news; Google ignores any other name value, including other engines’ tokens like bingbot. Its HTTP-header twin, the X-Robots-TagThe X-Robots-Tag is an HTTP response header that carries the same indexing and serving directives as the robots meta tag (noindex, nofollow, nosnippet, and the rest). Because it lives in the header rather than the HTML, it's how you control indexing for non-HTML files like PDFs, images, and videos., carries the exact same rules (case-insensitively) in the response header, so it works for non-HTML files (PDFs, images) where you can’t add a <head> tag.
The single most important thing about it is that it’s crawl-then-obey. Google has to be able to crawl the page to see the tag — so if the URL is blocked in robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere., Google never fetches it, never sees the noindex, and the page can stay indexed (Google gives no fixed timeframe for a noindexed page to drop out even when it is seen — it can take months on lower-priority pages). As Google puts it, “these settings can be read and followed only if crawlers are allowed to access the pages that include these settings.” That makes robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. and the robots meta tag two different jobs: robots.txt controls crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., the meta tag controls indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and serving. With no tag present, the default is index, follow.
The supported directives cover indexing (noindex, none, indexifembedded), link handling (nofollow), and serving and snippets (nosnippet, max-snippet, max-image-preview, max-video-preview, notranslate, noimageindex, unavailable_after) — nosnippet and max-snippet also gate whether the page’s content can be used as a direct input for AI OverviewsAI Overviews are the AI-generated summary box Google shows above or within its regular search results, written by Gemini models from pages retrieved out of Google's normal Search index. It's a Search feature, not a separate platform or index. and AI Mode, not just the classic text snippet. noarchive, nocache, and nositelinkssearchbox are directives Google says it no longer uses. When rules conflict, the more restrictive one wins — and for a crawler-named tag against the generic robots tag, GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. takes the sum of the negative rules, not a simple override.
Related: X-Robots-Tag, Noindex, Nofollow, nosnippet & data-nosnippet
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
Updated Jul 18, 2026.
Editorial summary and recorded change details.Summary
Corrected the crawler-token, placement, and directive-lifecycle claims against Google's live robots-meta-tag docs, and added the AI Overviews/AI Mode scope of nosnippet and max-snippet.
Change details
-
Corrected the crawler-name token claim: Google recognizes only googlebot and googlebot-news in the meta name attribute and ignores all other values, including other engines' tokens like bingbot (previously implied bingbot was also a Google-read token).
-
Added Google's explicit tolerance for robots meta tags placed in the page body, while keeping head placement as the portable recommendation (previously implied head-only).
-
Reclassified noarchive, nocache, and nositelinkssearchbox as historical directives Google no longer uses, instead of listing noarchive as a current serving control.
-
Added that nosnippet and max-snippet also govern whether a page's content can be used as a direct input for AI Overviews and AI Mode, distinct from the separate Google-Extended and Search generative-AI property-level controls.
-
Added that name/content attributes and X-Robots-Tag values are case-insensitive to Google, and that Google gives no fixed timeframe for a noindex to take effect.
Full comparison unavailable — no prior snapshot was archived for this revision.