Excluded by ‘noindex’ tag
Where you see it: Search Console → Indexing → Pages → Why pages aren’t indexed
Googlebot crawled this URL and found a noindex instruction, in a robots meta tag or an X-Robots-Tag HTTP header, so it kept the page out of search. Google did what the page asked. The only question is whether the page was meant to ask.
Keep it on pages you hid on purpose; remove it from pages you want found.
Tag archives, thank-you pages, cart and checkout, internal search results and login pages belong here. If a post, a service page or your homepage is listed, something prints a noindex you didn’t intend. If the whole site appears at once, look for one site-wide switch first.
Check the URL Search Console listed
Paste a listed URL you expected to be indexed. The checker reads robots meta tags and the X-Robots-Tag header separately, so you see where the noindex comes from, and on WordPress it reads your homepage too, to tell a site-wide switch from one post’s setting.
Indexability report
Enter a URL to see whether Google can crawl and index it, and which Search Console status any problem causes.
What each finding means in Search Console
The Page indexing report in Search Console names the reason a page is not indexed. This is the setting behind each reason, and the guide that fixes it on WordPress. For the full list, see Search Console Errors: Fixes for WordPress.
| What the checker finds | Search Console status | Fix guide |
|---|---|---|
| robots.txt Disallow rule matches the URL | Blocked by robots.txt | Blocked by robots.txt on WordPress: How to Fix |
| noindex in robots meta or X-Robots-Tag | Excluded by ‘noindex’ tag | Excluded by Noindex Tag in WordPress: How to Fix |
| Canonical points to another URL | Alternate page with proper canonical tag | Alternate Page With Proper Canonical Tag: Meaning |
| No canonical, duplicates exist | Duplicate without user-selected canonical | Fix Duplicate Without User-Selected Canonical |
| Conflicting canonicals or weak signals | Duplicate, Google chose different canonical than user | Fix Google Chose Different Canonical Than User |
| URL redirects elsewhere | Page with redirect | Page With Redirect: What It Means on WordPress |
| Returns 404 or 410 | Not found (404) | Fix 404 Errors in Search Console on WordPress |
| Error page that returns 200 | Soft 404 | Soft 404 Errors on WordPress: Causes and Fixes |
| Returns 5xx or times out | Server error (5xx) | Fix 404 Errors in Search Console on WordPress |
| Redirect loop or overly long chain | Redirect error | Fix 404 Errors in Search Console on WordPress |
| Nothing blocks it, but few links or thin content | Discovered – currently not indexed / Crawled – currently not indexed | Discovered – Currently Not Indexed on WordPress |
Reading the result
- Robots directives shows noindex, and the hint says your homepage is noindex too: a site-wide setting, most often Settings → Reading. Start there.
- Noindex in a meta tag, with a hint pointing at the post’s own setting: the SEO plugin box on that post, or the default for its content type.
- A hint that this looks like a tag, category, author or date archive: an archive setting in your SEO plugin, usually deliberate.
- X-Robots-Tag with noindex but no noindex meta tag: the header comes from the server, a CDN, the host or a plugin that sends headers. No editor screen will show it.
- Nothing blocks indexing: the live page has no noindex now. Search Console shows Google’s last crawl; validate below.
The same tool with its full guide: Indexability Checker
Why it happens on WordPress
WordPress has more places that print noindex than most owners expect, and several of them are working as designed.
The “Discourage search engines” box
Settings → Reading → Search engine visibility has a checkbox, Discourage search engines from indexing this site. Since WordPress 5.3 it adds noindex, nofollow to every page instead of editing robots.txt, and it switches off core’s sitemap. It gets ticked during a build and forgotten at launch, or travels in the database when staging is pushed live.
One post’s own SEO setting
Yoast SEO asks Allow search engines to show this content in search results? in each post’s Advanced section. Rank Math, SEOPress and All in One SEO keep a No Index option in their Advanced tab. Set once on a page under construction, it is easy to forget.
A default that hides a whole content type
Every SEO plugin can noindex all posts of one type, or every term of a taxonomy, with one switch. Custom post types a theme or plugin adds, such as portfolio items or courses, have their own default that is easy to miss.
A header nobody sees in the page source
X-Robots-Tag lives in the HTTP response, set by .htaccess, the Nginx config, a CDN rule or a headers plugin. Hosts add it to staging and temporary domains on purpose; Kinsta’s docs say it can’t be removed there, which is what a staging copy should have.
A coming-soon page left switched on
While a coming-soon page is active it replaces every URL, so a noindex on it reaches the whole site. SeedProd, for one, offers an Enable No Index option on that page. Posts Google crawled in that window stay here until it returns.
Noindex that WordPress and WooCommerce add themselves
Core noindexes internal search results and the login page. WooCommerce marks cart and checkout pages noindex. Rank Math can noindex empty category and tag archives. Leave these in the list.
How to fix it
Decide which URLs should be here, then trace each unwanted noindex to its source, widest first.
1. Spot the pages nobody meant to hide
Read down the example URLs for this status. Tags, search results, cart, checkout, account, thank-you and login pages are usually hidden on purpose. Posts, pages, products and your homepage usually aren’t, and only those need work.
2. Check the site-wide switch first
If your homepage or most posts are listed, open Settings → Reading, clear Discourage search engines from indexing this site, and save. If you deploy from staging, clear it after every push, since the setting travels with the database.
3. Clear the post’s own setting
Open the post in the editor and reset the robots option in your SEO plugin.
- Yoast SEO: the Advanced section of the Yoast box or sidebar; set the show-in-search-results question to Yes or the default.
- Rank Math: the Rank Math icon in the toolbar, then the Advanced tab, then untick No Index under Robots Meta.
- SEOPress: the SEO metabox, then the Advanced tab, then untick noindex.
- All in One SEO: AIOSEO Settings, then Advanced, then switch Use Default Settings back on or untick No Index.
4. Fix the default for a whole type
When every post of one type is listed, the plugin’s default hides it.
- Yoast SEO: Settings → Content types, or Categories & tags, and turn the Show in search results switch back on.
- Rank Math: Titles & Meta, the tab for that post type, and untick No Index in its robots meta.
- SEOPress: SEO → Titles & Metas, the Post Types or Taxonomies tab, and untick noindex.
- All in One SEO: Search Appearance → Content Types, and set Show in Search Results to Yes.
5. Hunt down a header no screen shows
If the checker reports X-Robots-Tag: noindex and the source has none, look outside WordPress settings: .htaccess or the Nginx config, your CDN’s header rules, your host’s dashboard, and security or header plugins.
6. Switch off coming-soon mode, then purge caches
Disable coming-soon or maintenance mode once the site is live, then clear the page cache and the CDN cache. A cache can keep serving the old noindex copy after the setting is fixed.
Noindex only works when Google can read it
If robots.txt also blocks the URL, Googlebot never fetches the page, never sees the noindex, and can still list the bare address when other pages link to it. To keep a page out of search, let Google crawl it and keep the noindex. To get it indexed, remove both.
Check the fix in Search Console
Google has to recrawl each page and find the noindex gone before the status changes.
- Run the checker again after purging caches, until Robots directives no longer shows noindex.
- In URL Inspection, click Test live URL. Indexing allowed? should now read Yes.
- Click Request indexing for your homepage and most important pages.
- If you cleared the site-wide box, resubmit your sitemap in Indexing → Sitemaps; core’s sitemap is off while that box is ticked.
- Click Validate fix on Excluded by ‘noindex’ tag only if every listed URL should be indexed, as after a site-wide switch was left on. Google expects most validations to take up to about two weeks.
Validation fails as soon as Google rechecks a page that still carries noindex. When tags, cart or thank-you pages share the list, skip it: pages return one recrawl at a time, and the report updates as Google gets to them.
Can RankHive fix this?
No. RankHive can’t set or remove noindex anywhere, so the fix is a WordPress setting, your SEO plugin or your host. During an analysis it can inspect your posts through Search Console’s URL Inspection data, which reports a noindex when Google found one.
What it writes, once you approve
- Internal links from related posts to a post you’ve made indexable again, so Google has paths back to it.
What it can’t do here
- Remove a noindex from a post, page, archive or the whole site.
- Untick Discourage search engines, or change Yoast SEO, Rank Math, SEOPress or All in One SEO settings.
- Remove an X-Robots-Tag header set by your server, host or CDN.
- Turn off a coming-soon plugin or purge caches.
- Resubmit sitemaps, request indexing or start validation.
Every change is drafted next to the current value and waits for your approval. Each one written is logged in the Change Log, with Revert.
Check the rest of your site while you’re here
The free site check reads your public pages for titles, meta descriptions, headings, canonical tags and schema, and shows what needs fixing. If you sign up, RankHive reads your Google Search Console data every week, drafts the fixes, and writes the ones you approve to WordPress. Nothing changes on your site until you say yes.
Related issues
- Blocked by robots.txtFix it only for URLs you want found in Google.
- Indexed, though blocked by robots.txtAct on it: decide, URL by URL, whether it belongs in Google.
- Crawled – currently not indexedWorth fixing for real posts; expected for archives and extras.
- URL is not on GoogleFix it if you want this page in search, after reading the reason.
- URL Inspection toolNothing to fix: it’s the tool you diagnose and confirm fixes with.
Common questions
Is “Excluded by ‘noindex’ tag” an error?
No, not by itself. Google followed an instruction on the page, and its help says not indexed isn’t necessarily bad. It is a problem only on pages you want in search.
Why is my whole WordPress site excluded by noindex?
Usually the Settings → Reading box is ticked, often after a staging copy went live. If it’s clear, check for a coming-soon plugin, then for an X-Robots-Tag header.
Should I remove noindex from tag pages?
No, unless a tag has its own introduction and is a page people would search for. Removing it to shrink this count adds thin pages to the index.
How do I see where the noindex comes from?
View the page source and search for noindex. If it isn’t there, the noindex is in the HTTP headers, which the checker on this page shows as X-Robots-Tag.
Read next
Sources
Checked against these pages on .
- Google Search Console Help: Page indexing report
- Google Search Console Help: Block search indexing with noindex
- Make WordPress Core: Changes to prevent search engines indexing sites (5.3)
- Make WordPress Core: Robots API in WordPress 5.7
- Yoast: How to noindex URLs
- Rank Math: How to noindex URLs
- AIOSEO: Showing or hiding your content in search results