Excluded by 'noindex' Tag in Google Search Console: What It Means and What to Fix First

The "excluded by noindex" status in Google Search Console tells you exactly one thing: Google found the page, read a directive telling it not to index, and obeyed.

Whether that's a disaster or business as usual depends entirely on which URL is wearing that tag.

The tricky part is figuring out whether a fix is even needed. An SEO plugin, a leftover staging flag, or a theme template can silently inject noindex across hundreds of pages. You won't notice until organic traffic drops or a colleague asks why a key landing page has zero impressions.

This guide walks you through identifying where the noindex directive comes from, deciding whether removal is the right move, and executing the fix so Google can reindex your pages.

What "excluded by noindex" means in Page Indexing

Open Search Console's Page Indexing report and click on this reason label.

Every URL listed there was successfully crawled by Googlebot. Google rendered the page, found a noindex directive, and dropped the URL from its index.

This is not a crawl error. Google reached the page without a problem. It simply respected your instruction not to index it.

The status is informational. Search Console groups it under "Not indexed," but that bucket also holds URLs you intentionally excluded.

The report doesn't know your intent, so you have to supply it.

How a noindex directive reaches Google

Two delivery methods exist, and Google honors both equally.

The meta robots tag

This lives in the HTML <head> of the page.

<meta name="robots" content="noindex">

It's the most common method. WordPress SEO plugins (Yoast, Rank Math, AIOSEO) toggle it per post or across entire taxonomies.

Shopify and Squarespace expose similar settings in their page editors or theme files.

The x-robots-tag http header

This arrives in the server's HTTP response headers before the browser even parses HTML.

X-Robots-Tag: noindex

Server configs, CDN rules, or middleware can inject it. It's harder to spot because you won't find it in page source alone.

How this differs from robots.txt and other statuses

A robots.txt disallow prevents crawling, which means Google never sees the page content.

A noindex tag does the opposite. Google crawls and renders the page, then chooses not to index it.

You can't combine them effectively. If robots.txt blocks Googlebot from reaching a page, Google can't read the noindex tag on it.

When Google has already indexed a URL while robots.txt currently blocks a fresh crawl, that shows up as Indexed, though blocked by robots.txt. That is a different status from excluded by noindex, where Google could crawl and read the directive.

If you submitted the URL (sitemap or URL Inspection) and Google still found a noindex directive, that often surfaces as Submitted URL marked 'noindex' - same noindex outcome, different discovery path than a URL Google found on its own under Excluded by 'noindex' tag.

If Google tried to fetch a URL you submitted and the fetch itself failed — timeout, DNS, TLS, connection refused, or a WAF blocking Googlebot — that is Submitted URL has crawl issue in Google Search Console. That status is about reachability. Excluded by noindex means Google successfully crawled the page and then obeyed a noindex directive.

This status also differs from crawled but currently not indexed, where Google crawled the page and chose not to index it based on quality signals. It's also distinct from soft 404 errors, where Google interprets the page as effectively empty despite a 200 status code.

If Google knows the URL exists but hasn't crawled it yet, the status is Discovered - currently not indexed instead. That one is a crawl-scheduling problem, not a directive on the page, so removing tags won't move it.

If Googlebot reaches the URL but the server refuses with HTTP 403, that is Blocked due to access forbidden (403) in Google Search Console — not excluded by noindex. Other client errors (401, 429, 410, custom 4xx) land under Blocked due to other 4xx issue in Google Search Console instead.

Step 1: confirm where the noindex comes from

Before you change anything, identify who is injecting the directive. Removing the wrong setting can break your intended blocks elsewhere.

Run url inspection in search console

Paste the affected URL into URL Inspection.

The Coverage section will say "No: 'noindex' detected in 'robots' meta tag" or reference the X-Robots-Tag header. Click "Test Live URL" to confirm the directive is still active right now.

Check the html source

Open the page in your browser and view source (Ctrl+U or Cmd+Option+U). Search for noindex.

If you find it in a <meta name="robots"> tag, the source is the page template, CMS, or SEO plugin.

In WordPress, the most common culprits are the SEO plugin's per-page "Advanced" or "Robots" setting, a global plugin setting that noindexes an entire post type or taxonomy, and Settings > Reading > "Discourage search engines from indexing this site" (this adds a site-wide noindex).

In Shopify, check the theme's theme.liquid for conditional noindex logic on collection pages or password-protected templates.

Check http response headers

If you don't find noindex in the HTML, the directive might live in the HTTP headers.

Open your browser's DevTools (Network tab), reload the page, click the document request, and look for X-Robots-Tag in the response headers. CDN edge rules and server-level configs (nginx, Apache, Cloudflare Workers) are common sources.

A quick terminal check works too. Run curl -I https://example.com/your-page and scan the output for X-Robots-Tag.

Step 2: decide if the noindex belongs there

Not every excluded URL needs rescuing. Are you looking at a thank-you page, an internal search results page, or a staging environment? Those should stay noindexed.

Ask yourself two questions. Does this page serve a unique search query that real people type? Would indexing it help or hurt the site's overall quality signal?

Pages where noindex is typically correct include post-conversion thank-you and confirmation pages, internal site search result pages, paginated filter or faceted navigation URLs with no unique content, login and cart pages, and staging or preview URLs that leaked into production.

Pages where noindex is almost always a mistake include product or service landing pages, blog posts targeting specific keywords, category or hub pages that organize topical clusters, and location pages for local SEO.

If a money page or a content piece you actively promote shows up in this report, something went wrong in your CMS config, a plugin update, or a deployment. Fix it.

Step 3: remove noindex on the urls that need indexing

The order matters here. Do not start by clicking "Request Indexing" in Search Console.

If the noindex tag is still on the page, requesting a recrawl just confirms the directive to Google again.

Remove or correct the directive first

Go to the source you identified in Step 1 and remove the noindex.

In a WordPress SEO plugin, flip the toggle back to "Index" on the affected page or taxonomy. If the WordPress "Discourage search engines" checkbox is enabled, uncheck it.

For server-level X-Robots-Tag rules, update the config and restart or purge the CDN cache.

After removing the directive, verify it's actually gone. Reload the page, view source, and check headers again.

A caching layer or CDN edge can serve the old version for minutes or hours after you save the change.

Now request indexing

Only after the live page no longer carries a noindex directive should you use URL Inspection's "Request Indexing" button.

This nudges Googlebot to recrawl sooner, but it's not instant. Google's documentation notes that recrawling can take months before a previously noindexed page re-enters the index.

For a handful of pages, individual requests work fine. For hundreds, submit an updated sitemap instead. Google will process the sitemap and schedule recrawls on its own timeline.

Noindex vs. nofollow

These two directives sit in the same meta tag but do completely different jobs.

noindex tells Google not to include the page in search results. nofollow tells Google not to pass link equity through the links on that page.

You can use both together (content="noindex, nofollow"), but they're independent signals. A page can be noindexed and still have its outbound links followed if you only specify noindex.

As Google's own noindex specification explains, the directives are evaluated separately.

Common mistakes that keep pages excluded by noindex

Even experienced teams trip over these.

Template-level noindex that spreads silently. A developer adds noindex to a staging template. The template gets merged into production. Now every page using that layout is excluded. Check your base templates and layout files.

Plugin updates that reset defaults. Some WordPress SEO plugins reset taxonomy-level indexing preferences after major updates. If your category pages suddenly disappear from the index after a plugin update, check the plugin's global settings first.

Conflicting directives. A canonical tag pointing to URL A, combined with a noindex on URL A, creates confusion. Google will respect the noindex. If you intend the page to be indexed, remove the noindex and keep the canonical.

Robots.txt blocking the page Google needs to read. If robots.txt blocks crawling and the page also has a noindex meta tag, Google never sees the noindex. It may still index the URL based on external signals like inbound links. To properly deindex a page, Google needs to crawl it and read the noindex. Don't block the page you're trying to exclude.

Step 4: measure recovery in search console

After your fix goes live, watch two signals.

The affected URL should move out of the "Excluded by 'noindex' tag" bucket in the Page Indexing report.

Be aware that Search Console's indexing report sometimes lags. If the status doesn't clear after a few days, check the live URL via URL Inspection before assuming your fix failed.

Once the page is indexed, you should see impressions appear in the Performance report filtered to that specific URL. This is the real confirmation: Google indexed the page and is showing it in search results.

If impressions remain zero weeks after indexing, you may have a content quality or relevance issue.

The "excluded by noindex" status is one of the most straightforward signals in Search Console. Google is telling you exactly why the page isn't indexed, and the cause is a directive you control.

The real work is the decision. Does this noindex belong here, or is it an accident?

Once you answer that question, the technical fix takes minutes. The waiting takes weeks.

Build a habit of auditing this report after plugin updates and deployments. A single template change can noindex an entire section of your site, and you may not notice until the traffic dip shows up in your analytics.

If you're managing a large site where dozens of pages cycle through indexing statuses every week, ClickFlow can help you track coverage changes and catch indexing regressions before they erode organic traffic.