All guides · SEO

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-Tag response 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 Disallow stops 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.
  • noindex stops 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.

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.

Last updated October 24, 2026