Search Console lists a URL under Excluded by 'noindex' tag when Googlebot fetched it and found a noindex rule, either in a <meta name="robots"> tag or in an X-Robots-Tag HTTP header. Google drops the page from search until the rule is gone and the page is crawled again.
If you meant to keep the page out of the index (thank-you pages, internal search, tag archives), there is nothing to fix. If the URL should rank, start with a live check.
Shows status, redirects, the meta robots tag, the X-Robots-Tag header, canonical and robots.txt rules for Googlebot. Free, no signup.
View source only shows half the picture. A noindex can be in the HTML or in a response header that never shows up in the page. Check these, in this order:
| Where | What to look for |
|---|---|
| CMS setting | WordPress: Settings > Reading > "Discourage search engines from indexing this site" adds a robots meta tag with noindex to every page. It is often left on after a launch or turned on during a migration. |
| SEO plugin | Yoast, Rank Math and similar plugins can noindex single posts, whole post types, taxonomies and archives. Check the post's own setting and the site-wide content type settings. |
| Server or CDN | An nginx add_header X-Robots-Tag line, an Apache Header set rule or a CDN transform rule sends the header on every response, invisible in the HTML. Staging configs are the usual source. Vercel sends X-Robots-Tag: noindex on preview deployments. |
| Template code | A theme or framework that prints noindex when an environment variable says "staging", or when a page has no content yet. |
| JavaScript | A script that adds or changes the robots meta tag after load. Google's docs say that if the original HTML has noindex, Google may skip rendering, so removing it with JavaScript does not work. Serve the right value in the HTML. |
Two more things trip people up. A crawler-specific tag such as <meta name="googlebot" content="noindex"> applies to Google even when the generic robots tag says index; Google applies the most restrictive rule it finds. To see every header the URL sends, including on PDFs and other files, use the X-Robots-Tag checker.
Use URL Inspection in Search Console and click Test live URL. It shows the page as Googlebot fetches it now, including headers. Some servers and CDNs answer Googlebot differently from a browser, so a clean page in your browser does not prove much.
Do not block the URL in robots.txt while you fix it. Googlebot has to crawl the page to see that the noindex is gone. A disallowed URL keeps its old state, or turns into "Indexed, though blocked by robots.txt". Test the path with the robots.txt tester.
For a handful of URLs, use Request indexing in URL Inspection. For many URLs with the same cause, open the Excluded by 'noindex' tag row in the Page indexing report and click Validate fix. Validation can take days to weeks. The report itself lags a few days behind what Googlebot sees, so a URL can stay listed for a while after the fix.
Search Console tells you after Google has recrawled and dropped the page. NoindexWatch checks your URLs once a day for noindex in meta tags and headers, robots.txt blocks, error status codes and canonicals that point elsewhere, and emails you when something changes. The free plan covers 1 URL, no card.
Sources: Google Search Central documentation on robots meta tags, X-Robots-Tag, JavaScript SEO and the Page indexing report.