Noindex: keeping pages in or out of search
noindex is an instruction to search engines: “you may crawl this page, but do not show it in
search results.” It can be set in the HTML or in an HTTP response header:
<meta name="robots" content="noindex" />
X-Robots-Tag: noindex
Why it matters
Used on purpose, noindex is the right tool for pages that should not appear in search: internal
search results, thank-you pages, staging copies, or account pages.
Used by mistake, it silently removes pages from search. This happens more often than it should. A
staging setting is copied to production, a CMS option such as “discourage search engines” stays
on after launch, or a plugin adds noindex to a whole section. The site looks fine to visitors, but
traffic from search drops as pages are dropped from the index.
What we check
| Result | When |
|---|---|
| Pass | no noindex or none directive was found |
| Needs attention | noindex or none appears in a meta tag or the X-Robots-Tag header |
We look at:
<meta name="robots">and<meta name="googlebot">in the HTML of the final page;- the
X-Robots-Tagresponse header of that page.
none is shorthand for noindex, nofollow, so it counts too. The report shows where the directive
came from. We report this as “needs attention” rather than a failure, because noindex is
sometimes exactly what you want.
How to fix
If the page should appear in search, remove the directive at its source.
HTML. Delete the meta tag, or change it to the default:
<meta name="robots" content="index, follow" />
Leaving out the robots meta tag entirely has the same effect.
Header set by the web server. Look for X-Robots-Tag in your configuration.
# Nginx: remove or scope lines like this
add_header X-Robots-Tag "noindex";
# Apache: remove or scope lines like this
Header set X-Robots-Tag "noindex"
CMS settings. In WordPress, check Settings → Reading → “Discourage search engines from indexing this site”. SEO plugins also have per-page and per-post-type indexing switches.
CDN or hosting rules. Some platforms add X-Robots-Tag: noindex to preview or non-production
domains. Make sure your production hostname is not treated as one of them.
After removing it, request indexing for the most important URLs in Google Search Console. Pages come back as they are recrawled.
noindex and robots.txt are different
These two are often confused:
- robots.txt
Disallowstops crawling. It does not reliably keep a URL out of search: a blocked URL can still be indexed, without its content, if other pages link to it. noindexstops indexing. Search engines must be able to crawl the page to see it.
So never combine them on the same URL. If a page is blocked in robots.txt, crawlers cannot fetch it,
never see the noindex, and the URL may stay in the index. To remove a page from search, allow
crawling and use noindex. See the robots.txt guide for more.
Keeping non-production sites out of search
For staging and preview sites, noindex alone is a weak barrier: it relies on crawlers behaving.
Put those sites behind authentication (HTTP basic auth or a login) so that neither crawlers nor
strangers can read them, and keep noindex as a second layer.
Google explains every supported directive in Block search indexing with noindex.