The short answer
“Excluded by ‘noindex’ tag” means Google crawled the URL, found a noindex directive, and did not include the page in Google Search. In current Google documentation, the Page indexing reason is phrased “URL marked ‘noindex’.” Older reports, exports, APIs, and common SEO usage may use “Excluded by ‘noindex’ tag.” They describe the same core condition.
If the page is intentionally kept out of search—such as an account page, internal search result, or duplicate utility page—the status is expected. If the page is an important product, service, category, article, or landing page, remove every applicable noindex directive, keep the URL crawlable, and ask Google to recrawl it.
Google’s Page indexing report documentation says Google encountered noindex and therefore did not index the page. The underlying rule can come from HTML or an HTTP response header.
What noindex does
noindex is a page- or resource-level instruction telling cooperative search engines not to show the URL in their search results. Google supports it in two forms:
- A robots meta tag in an HTML page.
- An
X-Robots-Tagin the HTTP response headers, which also works for PDFs, images, and other non-HTML files.
When Googlebot can crawl the URL and sees the rule, Google drops the resource from Google Search results. Bing also supports noindex in robots meta tags and X-Robots-Tag headers. See the Google robots meta specification, Google’s noindex implementation guide, and Bing’s supported robots directives.
HTML meta tag
<head>
<meta name="robots" content="noindex">
</head>
Google-specific directive
<head>
<meta name="googlebot" content="noindex">
</head>
The first applies to compliant search crawlers generally; the second targets Googlebot. If both general and crawler-specific rules are present, Google combines the restrictive rules that apply.
HTTP response header
HTTP/1.1 200 OK
Content-Type: application/pdf
X-Robots-Tag: noindex
The HTTP header is easy to miss because it does not appear in page source. It may be added by the origin server, application, reverse proxy, CDN, hosting platform, security layer, or plugin.
noindex is not the same as robots.txt
This distinction causes many failed fixes:
robots.txtcontrols whether a crawler may fetch a URL.noindexcontrols whether a fetched URL may appear in search results.
Google must be allowed to crawl the URL to discover the noindex directive. If you block the URL in robots.txt, Google may never see a new noindex or notice that an old one was removed. Google also warns that a URL blocked by robots.txt can still appear in search without a snippet when discovered through other links.
Therefore:
- To remove a public page from search with
noindex, allow crawling long enough for Google to read the directive. - To reindex a page after removing
noindex, do not block Google from recrawling it. - To protect confidential content, use authentication or access controls. Neither
noindexnorrobots.txtis a security mechanism.
The technical distinction is also summarized in MDN’s robots meta reference.
Is it bad?
| Situation | Interpretation | Recommended response |
|---|---|---|
| Account, checkout, admin, internal search, or other utility page | Often intentional | Leave noindex; consider removing from the sitemap |
| Important public page | Usually an error | Find and remove all applicable noindex directives |
| Staging or preview environment | noindex helps but is not sufficient security | Require authentication and prevent production leakage |
| Duplicate page users still need | May be intentional, but canonical may be better | Choose between noindex and canonicalization based on the goal |
| Previously indexed URLs suddenly affected in bulk | Likely regression | Roll back or fix the template/header rule quickly |
| Private or sensitive content | Inadequate protection | Use authentication; assume public URLs can be discovered |
Where accidental noindex directives come from
1. CMS visibility settings
WordPress, ecommerce platforms, site builders, SEO plugins, and headless CMSs can apply noindex by post type, taxonomy, environment, or template. A global “discourage search engines” setting copied from staging is a common launch failure.
2. Template logic
A conditional rule intended for one page type can spread across a whole section. Examples include noindex on all paginated categories, all products without reviews, all pages using a shared error boundary, or all URLs when an environment variable is missing.
3. HTTP headers added outside the HTML
Web-server configuration, CDN rules, reverse proxies, middleware, and security products can inject X-Robots-Tag: noindex. Viewing source will not reveal it. Inspect the final response headers for the exact public URL and follow redirects first.
4. Conflicting or duplicate robots tags
A page may contain one index tag and a second noindex tag, or a general robots tag plus a crawler-specific googlebot tag. Google uses the combined restrictive rules. Adding <meta name="robots" content="index"> does not cancel a second noindex elsewhere.
5. JavaScript changes the tag
Client-side code can inject or modify robots tags. Google renders JavaScript, so inspect the rendered HTML in URL Inspection, not only the raw source. Avoid changing a clear server-rendered noindex into index with JavaScript; serve the intended directive consistently.
6. Deployment or environment leakage
Production may inherit staging headers, a preview hostname may become canonical, or cached HTML may retain an old noindex. Check the origin and CDN versions, purge affected caches, and confirm behavior across representative URLs.
How to diagnose the status step by step
Step 1: Decide whether the URL should appear in search
Do not remove the directive merely because Search Console lists the URL as “not indexed.” Decide based on user and search value.
Good candidates for intentional noindex can include account pages, checkout steps, on-site search results, thin utility views, and temporary campaign variants. But the decision should be deliberate. Public documentation, products, categories, articles, location pages, and conversion landing pages commonly need indexing.
Step 2: Inspect the indexed result and live URL
In URL Inspection:
- Open the affected URL.
- Under indexing details, check Indexing allowed?
- Note whether Search Console says the directive came from a robots meta tag or HTTP header.
- Check the last crawl date.
- Run Test live URL.
- Inspect the tested HTML and response information.
If the live test no longer sees noindex, Google may simply need to recrawl and process the fixed page. If the live test still sees it, continue tracing the source.
Step 3: Check raw and rendered HTML
Search the original response and Google’s rendered HTML for:
<meta name="robots" content="noindex">
<meta name="googlebot" content="noindex">
<meta name="robots" content="none">
none is equivalent to noindex, nofollow for Google. Attribute and directive names are case-insensitive, so check variations. Inventory every applicable tag rather than stopping after the first one.
Step 4: Check the final HTTP response headers
Inspect headers on the requested URL and the final destination after redirects. Look for:
X-Robots-Tag: noindex
X-Robots-Tag: googlebot: noindex
Multiple X-Robots-Tag headers and comma-separated directives are valid. Check HTML and headers together because either can exclude the page.
Step 5: Check robots.txt and access
Make sure Googlebot can crawl the URL. If it is blocked, remove the block before relying on Google to observe a removed or newly added noindex. Also confirm the page is not hidden behind login, IP restrictions, or bot challenges.
Step 6: Trace the rule to its owner
Identify whether the directive is controlled by:
- Page-level CMS settings.
- An SEO plugin.
- A theme or application template.
- Framework metadata.
- Server configuration.
- CDN or proxy rules.
- A security product.
- A deployment/environment flag.
- A cached response.
Fix the source, not only the generated output on one page. Then test representative URLs that should remain noindex and URLs that should become indexable.
How to fix accidental noindex
For an HTML page
Remove the noindex value from every applicable robots meta tag. You do not need to add index; indexing is the default when no restrictive rule applies.
Before:
<meta name="robots" content="noindex, follow">
After:
<!-- No robots meta tag is required for normal indexability. -->
If other serving controls are intentional, keep only those:
<meta name="robots" content="max-image-preview:large">
For an HTTP header
Remove or narrow the server, proxy, or CDN rule that emits X-Robots-Tag: noindex. Verify the final public response after cache purges. For non-HTML files such as PDFs, the header is the relevant location.
For a CMS or plugin
Change the controlling visibility setting and verify the generated output. Do not assume the saved setting took effect; caching, theme code, and multiple plugins can override one another.
After removal
- Confirm the URL returns
200 OK. - Confirm it is allowed in
robots.txt. - Confirm raw HTML, rendered HTML, and response headers contain no applicable
noindex. - Confirm the canonical points to the intended indexable URL.
- Add or restore crawlable internal links.
- Include the canonical URL in the XML sitemap if it belongs in search.
- Run a live URL test.
- Request indexing once for a small number of high-priority URLs; maintain the sitemap for larger cohorts.
Removing noindex makes the page eligible for indexing. It does not guarantee inclusion or ranking.
If the noindex is intentional
Keep the directive and align the rest of the site:
- Remove the URL from XML sitemaps, because sitemaps should list preferred URLs you want in search.
- Avoid presenting it as a canonical index target.
- Keep necessary user navigation, but do not create vast crawlable spaces of intentionally excluded URLs.
- Use authentication for confidential pages.
- Monitor for unintended changes: an intentional exclusion can become harmful when the page’s role changes.
For duplicates, decide whether rel="canonical" is a better fit. Google specifically recommends canonicalization rather than noindex when the goal is to choose a canonical within one site and consolidate duplicate signals. See Alternate page with proper canonical tag for a working alternate/canonical relationship, and Duplicate, Google chose different canonical than user when Google overrides your preferred URL.
Removing an already indexed page
Adding noindex does not remove the result until Google recrawls the URL and sees the rule. Keep the URL crawlable during that process. If removal is urgent, Google’s Removals tool can temporarily hide a result while the durable noindex, authentication, or removal response is processed. A temporary removal request is not a permanent control.
Never use noindex as the only protection for personal, paid, confidential, or regulated information. Restrict access at the server or application layer.
What not to do
- Do not add
indexwhile leaving anothernoindexin the HTML or headers. - Do not block the URL in
robots.txtwhile waiting for Google to see a changednoindexrule. - Do not assume page source contains every directive; check HTTP headers and rendered HTML.
- Do not use
noindexto consolidate duplicate ranking signals whenrel="canonical"is the goal. Use the canonical guides instead. - Do not include intentionally
noindexURLs in XML sitemaps. - Do not treat
noindexas access control or a confidentiality guarantee. - Do not request indexing before the live test confirms the rule is gone.
How to verify the fix
The most reliable sequence is:
- Test the public response outside your authenticated CMS session.
- Confirm no
noindexappears in raw HTML, rendered HTML, or response headers. - Confirm Googlebot is allowed to crawl the URL.
- Run URL Inspection’s live test and check Indexing allowed?
- Request indexing for a small number of critical URLs.
- Monitor the reported last crawl date and indexing status.
- For a sitewide incident, track affected template cohorts and verify pages intended to stay excluded did not become indexable.
Google says recrawling can take from a few days to a few weeks and does not guarantee indexing. Search Console’s aggregate report may update after the inspected URL’s state changes.
Example diagnosis
A SaaS company launches a redesigned marketing site. Every resource page returns 200 OK, self-canonicalizes, and is listed in the sitemap, but Search Console reports Excluded by ‘noindex’ tag.
The HTML source contains no robots meta tag. The response headers reveal X-Robots-Tag: noindex, added by a CDN rule created for the staging hostname and accidentally applied to production. The fix is to correct the CDN rule, purge the cached responses, test both production and staging, keep production crawlable, and request indexing for the highest-priority pages. Adding an index meta tag would not have fixed the restrictive HTTP header.
How BoastIndex helps
Use Google Index Monitoring to watch for noindex-driven exclusions on monitored URLs, and Index Status Reports to show whether those pages recover after the directive is removed. BoastIndex cannot remove the directive or force reindexing.
Authoritative sources and further reading
- Google Search Console: Page indexing report and status definitions
- Google Search Central: Block indexing with noindex
- Google Search Central: Robots meta tag and X-Robots-Tag specifications
- Google Search Central: Introduction to robots.txt
- Google Search Console: URL Inspection tool
- MDN Web Docs:
<meta name="robots"> - Bing Webmaster Tools: Supported robots meta tags and attributes
- Bing Webmaster Tools: Permanently remove a URL or page