On this page · 7 sections
A page that isn't indexed can't appear in Google Search or in the AI features built on its index, and a stray noindex is one of the quickest ways to lose a page or a whole site. This guide quotes Google's definition, shows where noindex usually comes from, and covers how to find it, remove it, validate the fix and ask for a recrawl.
What does "Excluded by 'noindex' tag" mean?
"Excluded by 'noindex' tag" means Google fetched the page and obeyed a rule telling it not to index it. As of October 2026, Google's help page lists this reason as "URL marked 'noindex'" and defines it this way: "When Google tried to index the page it encountered a 'noindex' directive and therefore did not index it. If you do not want this page indexed, congratulations! If you do want this page to be indexed, you should remove the 'noindex' directive" (Page indexing report help).
You may also search for "Submitted URL marked 'noindex'". That's an older label for the same rule on a URL you submitted in a sitemap, and some platform help pages still use it; Wix's article is titled "Google Search Console: Submitted URL Marked 'Noindex'" (Wix Help Center).
Google supports noindex in two places, and they have the same effect: "There are two ways to implement noindex: as a <meta> tag and as an HTTP response header" (Block Search indexing with noindex).
Where | What it looks like | Notes |
|---|---|---|
Robots meta tag | | HTML pages; |
HTTP header | | Any file, including PDFs and images |
robots.txt | | Not supported by Google; ignored |
Two more details from Google's robots meta tag documentation: the value none is "Equivalent to noindex, nofollow", and Google "will respect robots meta tags in the body section of an HTML document as well", so a tag outside the <head> still counts.
Is "Excluded by 'noindex' tag" a problem?
"Excluded by 'noindex' tag" is a problem only for pages you want people to find in Google. For thank-you pages, login and account pages, internal search results and tag archives, it's the intended result. Yoast SEO, for example, says "By default, search pages and 404 are already set to noindex, follow" (Yoast help).
Treat it as a problem when:
- A page you want to rank, such as a product, service or article, is in the examples.
- The count jumps after a launch, migration or plugin update. Google's help says a drop in indexed pages without new errors can mean "you might be blocking access to your existing pages via robots.txt, 'noindex' or a required login."
- URLs in your sitemap carry noindex. That sends Google mixed signals; list only pages you want indexed.
Running checks across many client sites? Check which pages Google has indexed before you dig through templates.
What causes "Excluded by 'noindex' tag"?
Something on the server, in the CMS or in the browser adds a noindex rule to the page or its headers. Google's noindex guide notes that a CMS often controls this for you: "your CMS might have a search engine settings page or some other mechanism to tell search engines about meta tags" (Block Search indexing with noindex).
Cause | Where to look | Scope |
|---|---|---|
CMS site-wide setting | Site visibility or SEO settings | Whole site |
SEO plugin toggle | Per-page Advanced tab, per-type settings | One page or a content type |
Header from server, host or CDN | Response headers | Any file, often a folder or host |
Staging or preview settings | Environment variables, host defaults | Whole site |
JavaScript adds or changes the tag | Rendered HTML | Pages built in the browser |
A CMS's site-wide setting
Most CMSs have one switch that noindexes everything, meant for sites under construction. On WordPress it's "Discourage search engines from indexing this site"; our WordPress robots.txt guide explains what it outputs. If the whole site is missing from Google, start with why a website isn't showing up on Google.
An SEO plugin's page or post-type toggle
SEO plugins add noindex per page and per content type, and the type-level setting is easy to miss. As of October 2026:
- Yoast SEO: per page, "In the Advanced tab, under Allow search engines to show this content in search results, select No". For whole types, Yoast SEO > Settings, then switch the content type's toggle off (Yoast help).
- Rank Math: per post, the No Index box under Robots Meta on the Advanced tab; for whole types, Rank Math SEO > Titles & Meta (Rank Math). Rank Math notes that a single post set to Index overrides the type-level No Index.
An X-Robots-Tag header from your server, host or CDN
A header is invisible in the page source, so it's the cause people find last. It can come from server config, a security plugin, or a hosting platform. Vercel's docs say it adds x-robots-tag with a value of noindex to preview deployments and to "Outdated production deployments" (Vercel response headers). Cloudflare Pages says "every preview deployment generated by Cloudflare Pages includes the X-Robots-Tag: noindex HTTP response header" (Cloudflare Pages). If your live domain ends up serving one of those deployments, the header comes with it.
Staging settings that reached production
Staging sites are noindexed on purpose, and a launch can carry that over: a ticked CMS box in a copied database, an environment variable that still says "staging", or a header rule written for the staging host. Vercel notes it omits the header "when a custom domain is assigned to a non-production branch" (Vercel), so check which environment your production domain actually serves.
JavaScript that adds or removes noindex
Google can read a robots meta tag that JavaScript adds, and its own example shows a script setting noindex on error pages. The reverse doesn't work reliably. Google's JavaScript SEO guide says: "When Google encounters the noindex tag, it may skip rendering and JavaScript execution, which means using JavaScript to change or remove the robots meta tag from noindex may not work as expected. If you do want the page indexed, don't use a noindex tag in the original page code" (JavaScript SEO basics). Single-page apps that ship noindex in the HTML shell and swap it later are the classic case.
How do you confirm it with URL Inspection?
Confirm this status by inspecting an example URL and reading "Indexing allowed?", then running a live test to see whether the rule is still there. Google's steps: "Under Coverage > Indexing > Indexing allowed? the report should show that noindex is preventing indexing. You can search the page source or response headers for the word "noindex"" (Search Console Help). Our URL Inspection tool guide covers the rest of the report.
- Inspect the URL and read "Indexing allowed?" in the indexed result.
- Click Test live URL and read the same field. If noindex is gone, the report is just behind your fix.
- Open View tested page to see the HTTP headers and the rendered HTML, which is where a JavaScript-added tag shows up.
You can check the raw response from a terminal. We ran these two commands against a public WordPress.org login URL on October 17, 2026; it sends noindex in both places:
URL="https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F"
# 1. The HTTP header
curl -sI "$URL" | grep -i -E '^HTTP|x-robots-tag'
# HTTP/2 200
# x-robots-tag: noindex,follow
# 2. Robots meta tags in the HTML
curl -s "$URL" | grep -o -i -E '<meta[^>]+name=.(robots|googlebot).[^>]*>'
# <meta name='robots' content='max-image-preview:large' />
# <meta name="robots" content="noindex,follow" />The page has two robots meta tags. Google combines them, and "In the case of conflicting robots rules, the more restrictive rule applies" (robots meta tag documentation), so the noindex wins. curl shows only the HTML the server sends, so if both commands come back clean and Search Console still reports noindex, look at the rendered HTML for a script-added tag.
How do you fix "Excluded by 'noindex' tag"?
Fix this status by removing the noindex rule at its source, in every place it's set, and keeping the page crawlable. Google's help is direct: "If you want this page to be indexed, you must remove the tag or HTTP header."
- Confirm the page should be indexed. If it's a thank-you, login or internal search page, leave it.
- Find every source. Check the meta tags (including
name="googlebot"), the response headers, and the rendered HTML. - Remove it in the CMS or plugin, not by editing a cached copy: clear the site-wide visibility setting, the page's toggle and the content-type setting.
- Remove header rules from server config,
vercel.json,_headersfiles or CDN rules, and confirm your domain serves the production deployment. - Put the right value in the original HTML. Don't ship
noindexand remove it with JavaScript. - Don't replace noindex with robots.txt. A
Disallowwon't keep a page out, and it hides any future noindex; see Indexed, though blocked by robots.txt. Also check the page isn't blocked by robots.txt, or Google can't see that you fixed it. - Clear caches at your CDN and caching plugin, then rerun the two
curlchecks.
How do you validate the fix?
Validate the fix by clicking Validate fix on the reason once every page you want indexed is clean. Google says validation "typically takes up to about two weeks, but in some cases can take much longer" and asks you not to click it again "until validation has succeeded or failed" (Search Console Help).
- Validate only the pages you fixed. Intentional noindex pages on the same list will fail validation. Google suggests submitting a sitemap of your important pages and filtering the report by it before you validate.
- Expect some pages to land elsewhere. A page Google can now index may still end up as crawled, currently not indexed if Google doesn't think it's worth keeping.
When should you push the URL for a recrawl?
Push for a recrawl once the live test no longer finds noindex. Google's help says "If noindex is no longer present, you can click Request Indexing to ask Google to try again to index the page" (Search Console Help).
- A few important pages: Request indexing in URL Inspection. Google notes "there's a quota for submitting individual URLs" (Ask Google to recrawl).
- A whole site or section: resubmit your sitemap with accurate
<lastmod>dates. Our guide to ways to submit a URL to Google compares the options. - Then wait and re-check. Google says crawling "can take anywhere from a few days to a few weeks."
FreshlyCited's pre-flight check flags URLs that still carry noindex, so you can skip them free instead of using a credit on a page Google won't index. For the rest, it checks which pages Google has indexed, pushes only the ones Google can't see, and re-checks on days 1, 3 and 7. An index credit is used only if the link is indexed; if it still isn't after the day-7 re-check, the credit comes back automatically (exclusions apply, such as pages that return an error or carry noindex). Google still decides what it indexes.
Removed a stray noindex? Check your pages free: 10 free links to try, then 100 free checks a month, no card needed.



