// blog / indexing

How I fix 'Excluded by noindex tag' on WordPress pages that should rank

Excluded by noindex tag means Google found a noindex rule on the page and left it out on purpose. On WordPress it usually comes from the search engine visibility box, an SEO plugin setting, a staging copy pushed live, or an X-Robots-Tag header. I prove which from the source and headers, fix it there and ask for a recrawl.

By Muhammad Younus Updated 10 min read Indexing

Indexing and Search Console: illustration for "Fixing Excluded by noindex tag"
// 01 - the status

What does 'Excluded by noindex tag' mean?

It means Google crawled the page, found a rule asking it not to index the page, and did what it was told. Search Console's Page indexing report lists these URLs under Excluded by 'noindex' tag, and Google's help page for that reason is short: it tried to index the page, met a noindex directive and didn't index it. When the pages on that list are ones you want found, the work to get the pages indexed starts with that one rule.

A noindex tag is a robots meta tag, meta name="robots" content="noindex", or the same rule sent as an X-Robots-Tag header. So the status isn't a penalty. It's an instruction the site sent, which means it can be found and removed. The harder part is that WordPress has several places that can send it.

The first thing I do is sort the list. I export the URLs and split them into pages that should earn search traffic and pages that shouldn't. A cart page on that list is fine. A service page, a product or a blog post that's meant to bring in leads isn't, and those are the ones I chase.

// 02 - the sources

Where can a noindex come from on a WordPress site?

There are six places I look, starting with the quickest to rule out. More than one can be active at once, so I don't stop at the first hit.

  1. i.

    WordPress's search engine visibility box

    Under Settings, Reading there's a box labelled Discourage search engines from indexing this site. Tick it and WordPress prints a robots meta tag with noindex and nofollow on every page. WordPress's own documentation says it's up to search engines to honour the request, and Google does. One box, and the whole site asks to be left out.

  2. ii.

    An SEO plugin setting on the page itself

    Yoast asks, page by page, whether to allow search engines to show it in search results. Rank Math has a No Index option under Robots Meta. In AIOSEO it's the No Index box on the Advanced tab of AIOSEO Settings, once Use Default Settings is switched off. Somebody sets it on a draft and forgets it's there after publishing.

  3. iii.

    An SEO plugin setting for a whole content type

    All three plugins can hide a whole content type, every page, post or product, with one switch, and AIOSEO calls it Show in Search Results. If a custom post type for services or locations was set to stay out of search when it was created, every page of that type carries the tag.

  4. iv.

    A staging copy pushed to live

    Staging sites are usually built with the visibility box ticked so they stay out of Google. Copy the database to live and the setting comes too. It's the first thing I check on launch day after a platform move, and it's often the answer when a whole site vanishes soon after launch.

  5. v.

    An X-Robots-Tag header

    The same rule can travel in the HTTP response instead of the HTML. A plugin, a server config file or a CDN rule can add X-Robots-Tag: noindex, and it's invisible in view source. Google's documentation accepts the header in place of the meta tag, so it counts just the same.

  6. vi.

    The theme or custom code

    A hardcoded robots meta tag in a theme's header file, or a snippet hooked into WordPress's robots filter, can add noindex under conditions nobody wrote down. It's rarer, but it's the one that survives every plugin setting you change.

// pro tip

Not on WordPress? The status reads the same, and so does the fix: find the switch. On Shopify it's a noindex tag in theme.liquid, the seo.hidden metafield or Unlisted product status. On Squarespace it's the Hide page from search results toggle in a page's SEO tab. On Wix it's the Let search engines index this page toggle under SEO basics.

// 03 - the proof

How do I check for a noindex tag in the source and the response headers?

The dashboard tells you what a setting is meant to do. The page tells you what it actually does. I trust the page, and I check it the way Googlebot sees it.

  1. Step 01

    Run a live test in URL Inspection

    In Search Console I inspect the URL, click Test live URL, then View tested page. Google shows the raw HTML it received and the HTTP headers, so I'm reading Googlebot's copy, not whatever my browser cached.

  2. Step 02

    Search the HTML for the robots tag

    In the raw HTML I look for meta name="robots". If there's more than one, that's a clue in itself: two sources are printing tags. SEO plugins usually wrap their output in a comment with their name, which tells me who wrote which line.

  3. Step 03

    Read the response headers

    For the header I run curl -I against the URL, or read the headers in the browser's network tab, and look for X-Robots-Tag. I check logged out, because a logged-in session can skip the page cache and get a different response.

  4. Step 04

    Match the tag to its source

    Noindex, nofollow on every URL points to the visibility box. Noindex on one page points to that page's plugin setting. Noindex on every page of one type points to a content type setting. A header with no matching meta tag points to a plugin, the server or the CDN.

  5. Step 05

    Fix it at the source and clear the cache

    I change the setting that sent the rule rather than stacking an index tag on top of it. Then I purge the page cache and any CDN cache, because a cached copy can keep serving the old tag long after the setting's been fixed.

  6. Step 06

    Test live again, then ask for a recrawl

    A fresh live test should show no noindex in the HTML or the headers. Only then do I request indexing on the key URLs and start the fix validation in the Page indexing report.

// pro tip

One URL isn't enough. I test one URL of each type on the list, a page, a post, a product and a category, because each type can have its own setting and fixing one doesn't fix the others.

Rather have me do this? One person, whole job.

Book a call on Upwork
// 04 - leave these alone

Which noindexed pages should stay that way?

Not every URL on the list is a mistake. Plenty of WordPress pages exist for people already on the site, and removing their noindex just fills the index with pages that can't rank.

If you're here to learn how to noindex a page in WordPress on purpose, it's the page-level plugin setting from the list above, switched the other way. Then I run a live test to confirm the tag's actually printing.

Noindexed pages I usually leave alone, and the ones I don't
Page typeMy usual callWhy
Cart, checkout and account pagesKeep noindexThey're personal to each visitor, and there's nothing in them anyone searches for
Internal search resultsKeep noindexEvery search makes a new thin URL, and there's no end to them
Tag archives with a post or two eachUsually keep noindexThin lists that repeat the posts they link to
Thank you and confirmation pagesKeep noindexThey only make sense after a form or an order
Categories people actually search forIndexA good category page can be a landing page in its own right
Policy and trust pagesIndexPrivacy, terms, shipping and refund pages are what a buyer checks before trusting a store
Service, product and location pagesIndexThey're the pages the site exists to rank

Tag archives are a judgement call, not a rule. If a tag's been turned into a real topic page with its own intro, it can earn its place. And when the real issue is two URLs showing the same content, noindex is the wrong tool. Google says it doesn't recommend noindex for choosing a canonical within one site, because it blocks the page from Search completely. That's a job for a canonical or a redirect between the duplicates.

The opposite mistake is just as real. On a programmatic site I've written up, a location template went live by accident with its placeholder title still showing. A page like that shouldn't be indexed at all, and the fix there is removing it so it returns a 404 or a 410, not tidying its tags.

// watch out

Don't swap a noindex for a robots.txt block on pages you want out of Google. Google's documentation says a crawler blocked by robots.txt never sees the noindex rule, and the page can still appear in results if other pages link to it.

// 05 - the side effect

What happens to the canonical tag on a noindexed page?

With the two biggest SEO plugins, it disappears. I didn't want to state that from memory, so on 27 September 2026 I read the code of the current releases. In Rank Math 1.0.279, the head class removes the canonical tag whenever the page's robots value is noindex, with a comment in the code saying exactly that. In Yoast SEO 28.5, the canonical presenter returns nothing when the robots list contains noindex.

That's a fair choice on their part, since a page asking to be left out and naming a preferred URL at the same time sends mixed signals. But it sets a trap in audits. A crawler reports missing canonicals across the whole site, and it looks like a canonical problem. It isn't. Rank Math's robots code forces noindex on every page while the visibility box under Settings, Reading is ticked, so that one box causes both symptoms at once: noindex everywhere and canonicals nowhere.

So when an audit flags missing canonicals, I check the robots tag first. Fix the noindex and, on those two plugins, the canonical comes back on its own. If it doesn't, that's a separate problem.

// watch out

Unticking the visibility box doesn't clear a noindex set on an individual page. After fixing the site-wide setting I re-check every URL that was on the list, because a few can still carry their own.

// 06 - after the fix

How do I clear Excluded by noindex tag once the tag is gone?

Google only notices the change when it crawls the page again. For a handful of key URLs I use Request indexing in URL Inspection. Google says a request doesn't guarantee the page gets indexed, and there's a daily limit, so I save it for the pages that matter most.

For the rest, I click Validate fix on the noindex reason in the Page indexing report and make sure the fixed URLs are in the sitemap. You can hand that check to my WordPress robots.txt service in the same pass. Google's help says validation typically takes up to about two weeks, and sometimes much longer, so I watch the report rather than promise a date.

If the pages leave the noindex list and then sit under Discovered or Crawled, currently not indexed, the tag's no longer the issue. Those two statuses have their own diagnosis, and it's a different job from this one.

// when to hand this over

If you'd rather one person found the source, fixed it and watched the report until it clears, that's the indexing work I do, remotely, on your own WordPress install.

Book a call on Upwork

Is this your site? Send me the URL.

Book a call on Upwork
// questions - indexing

What else do people ask about this?

How do I solve Excluded by noindex tag on WordPress?

Find where it's coming from, then change it there. Check Settings, Reading for the visibility box, then the page's SEO plugin settings, then the content type settings, then the response headers. Adding an index tag on top doesn't cancel the source.

Why does my page still show 'Excluded by noindex tag' after I fixed it?

Because Google hasn't recrawled it yet, or a cache is still serving the old tag. Run a live test in URL Inspection. If the live page is clean, request indexing and let the report catch up.

Does 'Discourage search engines from indexing this site' take my site out of Google?

It asks Google to, and Google follows it. WordPress adds noindex to every page, so pages drop out of results as Google recrawls them. Untick it and they can be indexed again once Google crawls them next.

Can an SEO plugin noindex pages without me noticing?

Yes, through a content type setting. One switch in Yoast or Rank Math can hide every post, page or product of that type, and it's easy to miss when you're only looking at one page's settings.

// sources - checked

Where do these rules come from?

Platform and Google documentation, opened and read on the day this was written. Everything else is how I work.

  1. Google Search Central: block search indexing with noindex
  2. Search Console Help: Page indexing report
  3. Search Console Help: URL Inspection tool
  4. Google Search Central: how to specify a canonical URL
  5. WordPress.org documentation: Settings Reading screen
  6. WordPress developer reference: wp_robots_no_robots()
  7. WordPress developer reference: the wp_robots filter
  8. Yoast help: how to noindex URLs
  9. Rank Math knowledge base: how to noindex URLs
  10. Rank Math 1.0.279 source: includes/frontend/class-head.php
  11. Rank Math 1.0.279 source: includes/frontend/paper/class-paper.php
  12. Yoast SEO 28.5 source: src/presenters/canonical-presenter.php
  13. AIOSEO documentation: showing or hiding your content in search results
  14. Shopify Help Center: hiding a page from search engines
  15. Squarespace Help Center: hiding your site from search results
  16. Wix Help Center: preventing search engines from indexing your page
Muhammad Younus, WordPress technical SEO consultant
// who wrote this

One consultant, writing down his own method

I'm Muhammad Younus, a WordPress technical SEO consultant with 8+ years of experience and 100+ client sites fixed. Top Rated Plus on Upwork with a 100% Job Success Score. Every post here is the way I actually do the job, written in the first person because it's one person doing it, remotely, with no team behind the name.

Nothing in these posts is a client I can't name or a number I can't show. Where a figure comes from a client's Search Console, it's from a published case study, and where a rule comes from Google or a platform, the source is linked at the bottom of the post.

// the service behind this post
Muhammad Younus laughing, a wide genuine smile
// next step

Want this done on your own site?

Book a call on Upwork, send the URL and read-only Search Console access, and you'll get a written scope for the search side before any work starts. One person does the whole job, remotely.

Book a call on Upwork