Excluded by Noindex Tag: How to Find and Remove the Noindex
Excluded by noindex tag means Google crawled the page and found an instruction not to index it. Google obeys that instruction, so the page stays out of search results however good it is. For login pages, thank-you pages and internal search results that is exactly right. When the report lists your home page, services, products or posts, something is sending a noindex you did not mean to send. It can sit in a meta robots tag in the HTML or in an X-Robots-Tag HTTP header, and it can come from WordPress itself, an SEO plugin, the theme, the server or a CDN. This guide shows you how to find which one, remove it on each common platform, confirm Google sees the change, and stop it coming back.
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:
| Where | What it looks like | Usually 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 header | X-Robots-Tag: noindex | Server 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:
- Login, account, basket and checkout pages.
- Thank-you and order confirmation pages.
- Internal search results such as
/?s=or/search?q=. - Thin archives you have chosen to keep out, such as tag or date archives.
- Staging, test and preview copies.
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.
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:
- Per page. In Yoast SEO, open the post, go to the Advanced tab in the Yoast panel and check the question Allow search engines to show this Post in search results?, where the word Post changes with the content type In Rank Math, open the Advanced tab and check that No Index is not selected under Robots Meta.
- Per content type. In Yoast, the Settings area has a section for each content type, such as posts, pages and products, with a Show in search results switch. Rank Math has the same under Titles and Meta for each post type and taxonomy.
- Archives. Categories, tags, author and date archives each have their own switch. Turning off author archives on a single-author blog is fine; turning off product categories on a shop is not.
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
- JavaScript cannot rescue a noindex. If the server HTML contains
noindex, Google may skip rendering the page, so a script that removes the tag later is not reliable. Fix it in the server HTML. - Conflicting tags. If a page carries both
indexandnoindex, Google applies the more restrictive one. - Bot-specific tags. A
googlebotmeta tag overrides nothing for other search engines, and abingbotone has no effect on Google. - Noindex in the sitemap. Listing noindexed URLs in your sitemap sends mixed signals. Remove them, or remove the noindex.
- Non-HTML files. PDFs and images can only be noindexed with the header, since they have no HTML head.
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.
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.
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 โ