Crawling & indexing controls

Excluded by 'noindex' Tag: What It Means + How to Fix It

“Excluded by 'noindex' tag” in Google Search Console means a noindex directive is keeping your page out of the index. Here's when that's correct, when it's a mistake, and exactly how to fix it.

Updated May 7, 2026
TL;DR

“Excluded by 'noindex' tag” means Google crawled your page, found a noindex directive, and obeyed it. The only question that matters: did you put it there on purpose? Intentional on thank-you and admin pages; a leftover from staging or a stray CMS toggle on pages you want ranking. Find the source, remove it, keep the page crawlable, then request indexing.

Of every exclusion status in GSC, this is the one Google is most certain about. There's no judgment call, no crawl-budget guess — your page literally carried a noindex directive, and Google did exactly what it said. The whole investigation collapses to a single question: did you mean to put that directive there?

Get that answer right and the fix is obvious. Get it wrong and you either deindex a page that pays the bills or burn a week chasing a directive that's supposed to be there. So before you touch any code, sort the URL into one of two buckets.

Confirm it's real and read the source

Open Pages → Why pages aren't indexed → “Excluded by 'noindex' tag” for the full list of affected URLs. Then inspect one with URL Inspection — this is the step people skip, and it's the one that tells you everything.

In the inspection panel, look at Page indexing → Indexing allowed. When it reads “No: 'noindex' detected in 'X-Robots-Tag' http header” or “…in 'robots' meta tag,” GSC has just told you which of the two mechanisms is firing. That single line decides where you go looking — the HTML or the server config. Don't guess; let GSC point.

Google Search Console Pages report filtered to 'Excluded by noindex tag', showing the affected-page count and trend.
The 'Excluded by noindex tag' view — Google crawled these pages and found a noindex directive.

A noindex page must stay crawlable for any of this to work. Google can only see that you removed the directive if it can still fetch the page. If the URL is also disallowed in robots.txt, Google never re-reads the HTML, the old noindex sticks in its memory, and the page stays excluded forever. See Blocked by robots.txt — never stack the two.

The fork: intentional or accidental?

Some pages should carry noindex. The directive isn't a bug — it's a tool. The problem is only when it lands on a page you wanted in search.

Leave it alone if the URL is one of these:

  • Thank-you / order-confirmation pages (you don't want these ranking and leaking conversions)
  • Internal search results (/?s=…, /search?q=…) — Google treats these as thin by design
  • Admin, login, cart, or account screens
  • Thin tag, author, or date-archive pages that recombine existing content
  • Staging or preview URLs that shouldn't be public at all

Treat it as a fire if the URL is a money page that's silently missing from search:

Tell: a blog post, product, collection, or service page sits in this bucket, and its impressions in the Performance report flatlined or dropped to zero around a specific date. That date is your lead — it usually lines up with a site launch, a theme swap, or a plugin update. An accidental site-wide noindex is one of the most destructive SEO mistakes there is, and it's almost always invisible until traffic craters.

Find where the noindex comes from

You confirmed the mechanism in URL Inspection. Now trace it to its source — it's always one of three places.

  1. Meta robots tag — check View Source, not DevTools

    If URL Inspection blamed the robots meta tag, view the raw HTML: view-source:https://yourdomain.com/page, or curl -s https://yourdomain.com/page | grep -i robots. Look for:

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

    Use raw source, not the Elements tab in DevTools — a tag injected by JavaScript after load can hide from one and not the other, and Google renders both.

  2. X-Robots-Tag — check the response headers

    If URL Inspection blamed the HTTP header, the directive never appears in the HTML at all — it's in the server response. Run:

    curl -I https://yourdomain.com/page
    

    and look for X-Robots-Tag: noindex. This is the sneaky one: it's emitted by an edge rule, a CDN (Cloudflare, Vercel), an .htaccess/nginx block, or a framework config — not by anything you'll find in your page templates. Check hosting and edge config, not your CMS.

  3. CMS / SEO-plugin toggle — the usual culprit

    Most accidental noindex comes from a checkbox, not hand-written code. Hunt it down at the source:

    • WordPress — Settings → Reading → “Discourage search engines from indexing this site” (a site-wide killer)
    • Yoast / Rank Math — per-post “Allow search engines to show this page?” and post-type-level defaults under Search Appearance
    • Shopify — theme theme.liquid conditionals, or an SEO app overriding visibility
    • Squarespace — page Settings → SEO → “Hide this page from search engine results”
    • Webflow — page Settings → “Exclude this page from search engines”

Remove it (or don't), then re-index

Once you've found the source and decided the page should rank, kill the directive at its origin — deleting the meta tag does nothing if a header is still firing, and vice versa. Default behavior is index, follow, so you don't need to add anything; you just need nothing to say noindex.

  1. Untangle conflicting signals first

    A page carrying noindex plus a canonical plus a sitemap entry is contradicting itself. Pick one intent and make every signal agree:

    • Want it indexed: remove noindex, keep the canonical, keep it in the sitemap.
    • Want it gone: keep noindex, drop it from the sitemap, and leave it crawlable so Google can re-read the tag and deindex it. The canonical is irrelevant either way.
  2. Verify the directive is actually gone

    Re-run curl -I (for the header) or view-source (for the meta tag), or just re-inspect in GSC. Indexing allowed must flip to “Yes.” If it still says No, you removed one mechanism but not the other — go back and check both.

  3. Then request indexing

    In URL Inspection, with “Indexing allowed: Yes” confirmed, click Request indexing. This only asks Google to re-crawl and re-evaluate — it does nothing while the directive is still live. Submit once; re-submitting on a loop changes nothing.

How to know it worked

Re-indexing takes a few days to a couple of weeks, longer on newer sites. Check in this order:

  1. URL Inspection — re-inspect and confirm “URL is on Google” with no noindex detected. This is the definitive answer; the Pages report lags behind it.
  2. Performance report — filter to the URL. Impressions reappearing where they'd flatlined is the real-world proof it's both indexed and surfacing.
  3. site: searchsite:yourdomain.com/page-url for a quick sanity check, but trust GSC over a public search.

Don't confuse it with these neighbors

StatusWhat it really meansFix lives at
Excluded by 'noindex' tagGoogle crawled the page and obeyed a noindex directive you (or your CMS) emittedThis page
Blocked by robots.txtGoogle can't crawl the page at all — it never sees the contentBlocked by robots.txt
Indexed, though blocked by robots.txtIndexed from external signals despite being uncrawlableIndexed though blocked guide
Crawled – currently not indexedGoogle crawled it, found no directive, and judged it not worth indexingCrawled not indexed guide

The line that sets this apart: it's an explicit instruction you gave Google, not a crawl block and not a quality verdict. Which is exactly why it's so easy to trigger by accident — one toggle does it.

Find every accidental noindex before traffic tells you

The dangerous noindex isn't the one you can see — it's the header buried in edge config, or the plugin default that quietly flipped during an update.

TurboConsole reads your Search Console data, flags every page carrying a noindex directive, separates the ones you meant to exclude from the money pages you didn't, and tells you exactly where the directive is coming from — meta tag, X-Robots-Tag header, or CMS toggle — so you fix the right one instead of hunting through code.

Frequently asked

Will a page with “noindex” ever rank in Google?
No. The noindex directive tells Google to exclude the page from search results entirely. No matter how strong the content, links, or relevance, a page with an active noindex tag cannot rank. Remove the tag if you want it indexed.
Where does the noindex directive usually come from?
Three common sources: a `<meta name="robots" content="noindex">` tag in the page's HTML, an `X-Robots-Tag: noindex` HTTP header sent by your server, or an automatic setting in your CMS or SEO plugin (WordPress, Shopify, Squarespace, Yoast, Rank Math, etc. all have toggles that emit noindex).
How long until the page reappears in search after I remove noindex?
After removing the directive, request indexing in GSC's URL Inspection tool. Re-indexing usually takes a few days to a couple of weeks depending on site authority. The page won't show up immediately — Google needs to re-crawl and confirm the directive is gone.
Can I have both a canonical tag and noindex on the same page?
Technically yes, but it sends mixed signals. If a page is noindexed, the canonical tag is irrelevant — Google won't index it either way. If you want the page to be a non-canonical duplicate, use a canonical tag alone (no noindex). If you want it deindexed, use noindex alone (canonical doesn't matter).
TurboConsole

We surface these issues automatically.

Connect Search Console once. Every issue like this gets ranked by impact, with a fix you can ship today.

Start free

Related issues

Browse by topic