ON THIS PAGE 10 sections
“Block this page from Google” is not a complete technical requirement.
It can mean stop crawler requests, remove the page from search results, hide part of a snippet, consolidate a duplicate, protect confidential content, or remove a URL quickly during an incident. Those outcomes use different controls.
Robots.txt and noindex are often compared as alternatives. They operate at different stages of the technical SEO control system, so the right choice starts with the outcome you need.
Start with the outcome
Use this four-question protocol before changing a rule:
- Should a crawler be allowed to request the URL?
- Should the resource be eligible to appear in search?
- Should its content or snippets be exposed publicly?
- Should an unauthenticated person or bot be able to access it at all?
The answers map to crawl policy, indexing rules, presentation controls, and access enforcement. Combining them into one “blocked” status creates errors that are hard to observe and slower to reverse.
Choose the control by the outcome.
| Intended outcome | Primary control | Fetch consequence | Index consequence |
|---|---|---|---|
| Save crawl capacity | robots.txt | Crawler may not fetch the body | Not a reliable removal method |
| Keep an HTML page out of search | meta robots noindex | Crawler must fetch the page | Removed after the rule is processed |
| Keep a PDF or file out of search | X-Robots-Tag: noindex | Crawler must fetch the response | Removed after the header is processed |
| Protect confidential content | Authentication / authorization | Unauthorized crawler receives no content | Access is actually restricted |
| Merge duplicate URL signals | Redirect or rel=canonical | Depends on the chosen method | Consolidation request, not secrecy |
Robots.txt controls requests
Robots.txt is a public file at the origin root, such as https://example.com/robots.txt. Under the Robots Exclusion Protocol standardized in RFC 9309, compliant crawlers retrieve the file and evaluate rules for their user agent before requesting covered paths.
A minimal example:
User-agent: *
Disallow: /internal-search/
Sitemap: https://example.com/sitemap.xml
The rule says compliant crawlers should not fetch matching paths. It does not delete the URLs, protect them with authentication, or guarantee they cannot appear in an index.
Robots.txt fits crawl-space management: infinite search results, nonessential parameter combinations, repeated utility endpoints, and resources that should not consume compliant crawler requests. Even then, the strongest solution may be to stop generating or linking the crawl trap.
Rules are scoped by protocol, host, and port. A file on www.example.com does not automatically govern shop.example.com, and a staging hostname needs its own protection. Test the final public file rather than a CMS preview.
Noindex controls search eligibility
A noindex rule tells supporting search engines not to show the resource in search results after the rule is processed.
For HTML:
<meta name="robots" content="noindex,follow">
For any response, including PDF, video, image, or generated files:
X-Robots-Tag: noindex
Google’s noindex guidance says the meta tag and response header have the same indexing effect. The practical choice depends on the resource and the layer you control.
Noindex fits public utilities that need to work for users but should not become search results: account pages, internal search, confirmation screens, temporary campaign variants, or downloadable files not intended for discovery.
The rule must be present in the response Googlebot can fetch. A client-side script that adds noindex after load creates unnecessary uncertainty. Server output or response headers are easier to inspect.
The blocked-noindex contradiction
This combination is the most common conceptual failure:
robots.txt: Disallow: /private-ish/
HTML: <meta name="robots" content="noindex">
If the crawler obeys the first rule, it cannot fetch the HTML to see the second. The URL may remain known through links and can appear in search without content-derived information.
When removing an already indexed URL, allow crawling and expose noindex until the index state changes. Then decide whether long-term crawl blocking is still useful. Preserve the evidence: date applied, response header or HTML capture, Search Console state, and date verified.
Do not solve this by placing Noindex: /path/ inside robots.txt. Google explicitly states that noindex is not supported in robots.txt.
Access protection is a separate boundary
Robots.txt is public and voluntary. Noindex is a presentation rule for search systems. Neither stops a person, scraper, or unrecognized crawler from requesting a public URL.
Confidential data requires authentication, authorization, and an appropriate response for unauthenticated requests. Avoid leaking private URLs into public sitemaps, HTML, feeds, analytics exports, or asset manifests.
For a private application route, a useful acceptance test is:
Unauthenticated request → 401/403 or login flow
Authorized request → intended resource
Public sitemap → URL absent
Public navigation → no unintended exposure
Security is not an SEO directive.
Snippet controls are not indexing controls
nosnippet, max-snippet, max-image-preview, max-video-preview, and data-nosnippet influence how supported search results may present content. They do not necessarily remove the URL from the index.
Google’s robots meta specifications document page-level and text-level presentation controls. Use them only when a business or licensing requirement outweighs the value of useful result previews.
A page can be indexed with a restricted snippet. A page can be crawlable and noindexed. A page can be blocked from crawling yet still known by URL. Name the state precisely.
Canonicalization is not removal
Rel=canonical nominates the owner of duplicate or near-duplicate content. It is not the same as noindex.
Use the canonical tag protocol when signals should consolidate to one URL. Use noindex when the current URL should not appear and there is no duplicate-owner relationship to preserve. Use a redirect when users and crawlers should move to a replacement.
Google advises against using noindex merely to force canonical selection inside one site. A canonical conflict needs coherent ownership signals, not a hidden alternate.
Platform failure patterns
WordPress and WooCommerce
SEO plugins can add noindex to archives while caching or security plugins emit a different X-Robots-Tag. Inspect the final response. Check media attachment pages, author/date archives, internal results, product filters, feeds, and staging hosts separately.
Do not globally block /wp-content/ or required rendering assets without a measured reason. A broad rule can make page rendering and diagnostics less representative.
Shopify
Shopify manages parts of robots.txt and exposes supported customization through its theme system. Treat generated product, collection, search, cart, account, and filter routes by purpose. Do not paste a generic blocklist that hides canonical evidence or required storefront assets.
JavaScript applications
Set directives in the server response for routes that should never be indexed. If the application changes metadata after hydration, compare response HTML and rendered DOM, then verify which state crawlers receive.
Build a control inventory
For each rule or template, record:
- URL pattern and owner team;
- intended crawl state;
- intended index state;
- intended access state;
- robots.txt rule and tested user agent;
- HTML robots meta and HTTP X-Robots-Tag;
- canonical and redirect behavior;
- sitemap membership and internal inlinks;
- observed Search Console state;
- deployment date, verification date, and rollback condition.
This inventory prevents one team from “fixing” crawl volume while another waits for noindex to be processed.
Verify the actual outcome
Do not close a ticket because a source file changed.
For robots.txt, request the public file on every relevant host, test representative allowed and disallowed URLs, and inspect logs for the intended crawler behavior.
For noindex, inspect the final HTTP headers and raw HTML, verify the resource remains crawlable, then observe the index state over time. Search Console URL Inspection can provide Google-specific evidence; server logs confirm fetches; neither replaces the other.
For access control, test unauthenticated and authorized requests outside the application session.
The Technical SEO Field Kit keeps those states in separate columns so “blocked” cannot conceal four different requirements.
Q01 Can a robots.txt blocked page appear in Google? +
Q02 Can I put noindex in robots.txt? +
Q03 Does noindex save crawl budget? +
Q04 How do I noindex a PDF? +
Q05 How do I keep private content out of search? +
- [01] DOC
- [02] DOC
- [03] DOC
- [04] STANDARD
The same pipelines I run for paying clients — written up first for subscribers.



