/ โ† Robots and Sitemap Fixes / Excluded by noindex tag
In this guide
  1. What the status means
  2. Decide which pages should be indexed
  3. How to find where the noindex comes from
  4. Fixing it in WordPress
  5. Servers, CDNs and other platforms
  6. A worked example
  7. The fix, step by step
  8. Edge cases worth knowing
  9. Keeping it fixed
  10. Questions and answers

What the status means

Search Console lists this reason as Excluded by 'noindex' tag. Google crawled the URL, read a noindex directive and left the page out of the index as instructed. Unlike most other reasons in the Page indexing report, this one is entirely under your control: remove the directive and the page becomes eligible again.

A noindex can reach Google in two ways:

WhereWhat it looks likeUsually set by
Meta robots tag in the HTML head<meta name="robots" content="noindex">CMS settings, SEO plugin, theme
Googlebot-specific meta tag<meta name="googlebot" content="noindex">Plugin or hand-written template
HTTP response headerX-Robots-Tag: noindexServer configuration, CDN, hosting platform, security plugin

URL Inspection tells you which one Google found. Under Page indexing, the line Indexing allowed? reads No, with a note such as 'noindex' detected in 'robots' meta tag or 'noindex' detected in 'X-Robots-Tag' http header. That single line saves a lot of searching.

Many URLs here are meant to be. The noindex beginner tutorial explains which pages should carry it, and the robots meta guide covers every directive and how they combine.

Decide which pages should be indexed

Export the list and sort it. Pages that should normally stay noindexed include:

Act on the rest: the home page, service and product pages, categories, articles and landing pages. If every page on the site is listed, the cause is almost certainly a single site-wide switch, such as the WordPress visibility setting or a header added for the whole domain. If only one content type is listed, such as all products or all posts, look at the SEO plugin's settings for that type. If a handful of individual pages are listed, check the settings on those pages.

โš ๏ธ Do not block these pages in robots.txt while you work on them. If Google cannot crawl a page, it cannot see that the noindex has gone, and the page stays out. The noindex and disallow guide explains why the two must never be combined.

How to find where the noindex comes from

Check the HTML

Fetch the page and look for any robots meta tag:

curl -s https://example.com/services/ | grep -io '<meta[^>]*\(robots\|googlebot\)[^>]*>'

In a browser, use View Page Source rather than the Elements panel and search for noindex. View Source shows what the server sent. The Elements panel shows the page after scripts ran, so compare the two: a noindex added or removed by JavaScript will only show in one of them.

Check the headers

curl -sI https://example.com/services/ | grep -i x-robots-tag
# x-robots-tag: noindex

Headers are easy to miss because nothing on the page shows them. In Chrome DevTools, open the Network panel, reload, click the document request and read the Response Headers. Check redirects too: run curl -sIL to see the headers on every hop, because a header on the final URL is what counts.

Search the server and CDN

If the header is there, find the rule that adds it. On a Linux server:

sudo grep -rin "x-robots-tag" /etc/nginx /etc/apache2 /etc/httpd 2>/dev/null
sudo grep -rin "x-robots-tag" /var/www/vhosts/system/*/conf 2>/dev/null
grep -rin "x-robots-tag" /var/www/vhosts/example.com/httpdocs/.htaccess

The second line covers Plesk, which stores the generated configuration for each domain under /var/www/vhosts/system/. Rules you typed into Plesk's Apache and nginx Settings for a domain end up there. In Cloudflare, look under Rules for Transform Rules that modify response headers. Our robots and sitemap checker reports both the meta tag and the header for a URL in one pass.

Fixing it in WordPress

The site visibility setting

Go to Settings, then Reading, and find Search engine visibility. If the box Discourage search engines from indexing this site is ticked, WordPress adds a robots meta tag with noindex, nofollow to every page. It is often left ticked when a site moves from staging to live. Untick it and save.

The SEO plugin

Plugins can noindex at three levels, and you need to check all of them:

Caches, themes and other plugins

After changing settings, purge every cache: the page cache plugin, the server cache and the CDN. A cached page can keep serving the old noindex for days. If the tag still appears, switch to a default theme briefly on a staging copy, or search the theme for wp_robots filters and hard-coded meta tags. Some membership, maintenance-mode and coming-soon plugins add noindex too. For the wider setup, see the WordPress robots and sitemap guide.

Servers, CDNs and other platforms

nginx

Look for an add_header line. It may apply to a whole server block or only to a location:

location /blog/ {
    add_header X-Robots-Tag "noindex";   # remove this line
}

Remove or narrow it, then test and reload with sudo nginx -t && sudo systemctl reload nginx.

Apache and .htaccess

<IfModule mod_headers.c>
  Header set X-Robots-Tag "noindex, nofollow"
</IfModule>

Remove the Header set line, or limit it to file types you really want kept out, such as PDFs, using a FilesMatch block. Changes to .htaccess take effect at once; changes to the virtual host need a reload.

Cloudflare, Vercel and other hosts

In Cloudflare, check Transform Rules for response header changes. Preview and staging addresses on some hosting platforms, such as Vercel preview deployments and Cloudflare Pages preview URLs, send X-Robots-Tag: noindex by design. That is correct for previews, but make sure your live site is served from the production domain, not a preview address.

Shopify and Next.js

Shopify has no noindex switch in the admin, so a noindex usually comes from theme code in theme.liquid or an app. Search the theme for noindex. In Next.js, check the robots field in the metadata of the layout and each route; a robots: { index: false } set in the root layout applies to every page beneath it.

A worked example

A plumbing firm launches a new WordPress site. Three weeks later the Page indexing report shows 46 pages excluded by noindex tag, which is every page on the site. URL Inspection on the home page says 'noindex' detected in 'robots' meta tag, and View Source shows:

<meta name='robots' content='noindex, nofollow' />

Under Settings, then Reading, the box Discourage search engines from indexing this site is ticked, left over from the staging build. The owner unticks it, purges the page cache and the Cloudflare cache, and checks again with curl: the tag now reads index, follow from the SEO plugin. A live test in URL Inspection shows Indexing allowed? Yes. Indexing is requested for the home page and the six main service pages, and Validate fix is started on the issue. Within two weeks most pages are indexed.

The fix, step by step

Step 1

Confirm which pages should be indexed

Open Indexing, then Pages in Search Console, click Excluded by 'noindex' tag and export the list. Mark the pages that should stay out, such as login, basket, checkout, thank-you and internal search pages. Keep a short list of pages you want in Google. Note whether the whole site, one content type or a few single pages are affected, because that pattern points to a site-wide setting, a plugin content type setting or individual page settings.

Step 2

Find out how the noindex is sent

Inspect one affected URL in URL Inspection and read the Indexing allowed line. It names either the robots meta tag or the X-Robots-Tag http header. Confirm it yourself: run curl -s and search the HTML for robots and googlebot meta tags, then run curl -sI and look for x-robots-tag. Note every source you find, since a page can carry more than one at the same time.

Step 3

Untick the WordPress visibility box

On WordPress, go to Settings, then Reading, and find Search engine visibility. If Discourage search engines from indexing this site is ticked, untick it and save. This box adds noindex, nofollow to every page, so it explains a site-wide problem on its own. Reload the home page source and confirm the robots meta tag no longer contains noindex. If it does, a cache or another plugin is still sending it.

Step 4

Check the SEO plugin at every level

In Yoast SEO or Rank Math, open an affected page and check the Advanced tab: search engines must be allowed to show it. Then open the plugin settings for that content type, such as posts, pages, products or categories, and make sure it is set to show in search results. Check archive settings for categories and tags you want indexed. Save, purge the cache and recheck the page source with curl.

Step 5

Remove server and CDN header rules

If the header carries the noindex, search the server configuration with grep -rin x-robots-tag across the nginx, Apache and Plesk configuration folders and the site's .htaccess. Remove the add_header or Header set line, or narrow it to the files that should stay out. Test and reload the server. In Cloudflare, check Transform Rules. Run curl -sI again and confirm the header has gone from the response.

Step 6

Purge every cache

Clear the WordPress page cache plugin, any server cache such as nginx FastCGI cache or Varnish, and the CDN cache. Old copies can keep serving the noindex long after the setting has changed. Fetch the page with curl, adding a query string such as ?nocache=1 to compare the cached and uncached responses. Confirm that both the HTML and the headers now allow indexing on every page type you want in Google.

Step 7

Run a live test in URL Inspection

Inspect an affected URL again and click Test live URL. The result should read Indexing allowed? Yes. If it still reports a noindex, read which source it names and look again, because a second plugin, a theme file or a header is still sending it. Make sure the page is not blocked in robots.txt, or Google cannot see the change. Then request indexing for the home page and your most important pages.

Step 8

Validate the fix and remove noindexed URLs from sitemaps

In the Page indexing report, open the Excluded by 'noindex' tag issue and click Validate fix. Google recrawls the listed URLs and reports progress over the following days and weeks. Meanwhile, check your XML sitemap and remove any URL that should stay noindexed, so the sitemap lists only pages you want indexed. Watch the report until the pages you fixed move to indexed and the validation shows as passed.

Edge cases worth knowing

Keeping it fixed

Most accidental noindexes arrive during a launch, migration or plugin change. Add a check to every launch list: open the home page and one page of each type, and confirm both the meta tag and the header allow indexing. Run a site crawl monthly and list any indexable page type that carries noindex. Keep staging sites behind a password rather than relying only on noindex, so the setting is never copied to the live site. If you move hosts or domains, the WordPress migration guide lists the settings that most often slip through.

Questions and answers

1. What does excluded by noindex tag mean?

It means Google crawled the page and found an instruction not to index it, so it left the page out of search results. The instruction is either a robots meta tag in the page's HTML or an X-Robots-Tag header sent by the server. For pages such as login, checkout and thank-you pages this is correct. If pages you want in Google are listed, find the source of the noindex, remove it, confirm with a live test in URL Inspection, and then validate the fix in Search Console.

2. How do I remove a noindex tag in WordPress?

First go to Settings, then Reading, and untick Discourage search engines from indexing this site if it is ticked. Then check your SEO plugin at three levels: the Advanced tab on the page itself, the settings for that content type, and the settings for archives such as categories and tags. Save, purge every cache including the CDN, and view the page source to confirm the robots meta tag no longer says noindex. Finish with a live test in URL Inspection.

3. Why does Search Console still show noindex after I removed it?

Usually because Google has not recrawled the page yet, or because a second source is still sending the noindex. Run a live test in URL Inspection. If it says indexing is allowed, the report will catch up as Google recrawls, and Validate fix speeds this up. If the live test still reports a noindex, check which source it names. A cached page, a second plugin, a theme file or an X-Robots-Tag header from the server or CDN is the usual culprit.

4. How long does it take for pages to be indexed after removing noindex?

Important pages are often indexed within a few days to two weeks after Google recrawls them. Requesting indexing in URL Inspection for key pages and starting Validate fix on the issue both prompt Google to recrawl sooner. A site that was noindexed for months may take longer to recover fully, because Google crawls it less often. Pages with strong internal links tend to come back first, so request indexing for the home page and main pages early on.

5. What is the difference between noindex and robots.txt disallow?

Noindex lets Google crawl the page but tells it not to show the page in results. A robots.txt disallow stops Google crawling the page at all, but the URL can still appear in results without a description if other pages link to it. Never combine the two on the same page: if a page is blocked in robots.txt, Google cannot read its noindex. To keep a page out of Google, allow crawling and use noindex.

6. Can a CDN or host add a noindex header?

Yes, a CDN, hosting platform or security tool can add an X-Robots-Tag header without touching your HTML. Cloudflare Transform Rules can set it, some hosting platforms add it to preview or staging addresses, and server rules in nginx, Apache or Plesk can add it to a folder or a whole site. Check the response headers with curl or the Network panel in Chrome DevTools. If you find X-Robots-Tag noindex there, the fix is in the server or CDN settings, not in WordPress.

7. Should my sitemap include pages with noindex?

No, your sitemap should list only pages you want indexed. Including noindexed URLs sends Google two opposite messages: the sitemap says the page is important, the tag says leave it out. Search Console will report these pages, and the mixed signals make the sitemap less useful as a guide to your best content. Most SEO plugins leave noindexed pages out of the sitemap automatically, but check after changing settings, and remove any that remain.

Check your pages for a hidden noindex

Our robots and sitemap checker reads both the robots meta tag and the X-Robots-Tag header for each URL, and flags sitemap entries that carry noindex, so you can find the source in one pass.

Open Robots and Sitemap Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Robots and Sitemap Fixes  ·  Fix robots meta tags  ·  Fix noindex and disallow conflicts  ·  Fix robots and sitemaps in WordPress  ·  Fix crawled, currently not indexed  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.