SEO Skill

Noindex checker

Enter a URL to see whether Google is allowed to index it, which rule says so and how to change it. It checks the robots meta tag, googlebot tags, the X-Robots-Tag header, robots.txt, redirects, the status code and the canonical.

Check a URL for noindex

The checker follows the redirects, reads the robots meta tags and the X-Robots-Tag header, and tests the URL against robots.txt for Googlebot.

Free, 10 checks a day. The page must be public.

Five places a noindex can hide

Most noindex checkers read one meta tag. Google reads five things before it decides, and a page is out of the index if any one of them says so. The most restrictive rule wins.

WhereWhat it looks likeWho sets it
Robots meta tag<meta name="robots" content="noindex">The template, CMS or SEO plugin
Googlebot meta tag<meta name="googlebot" content="noindex">The same, aimed at Google only
X-Robots-Tag headerX-Robots-Tag: noindexThe server, CDN or hosting platform
unavailable_afterunavailable_after: 2026-12-31Anyone who set an expiry and forgot it
robots.txtDisallow: /blog/Not a noindex, but it hides one from Google

The header is the one people miss. It never shows in view source, so a page can look clean and still be out of Google. Vercel, for example, adds X-Robots-Tag: noindex to every preview deployment.

robots.txt hides the noindex from Google

This is the mistake that keeps pages in Google after someone tries to remove them. Google's noindex documentation says the page "must not be blocked by a robots.txt file", because a crawler that cannot fetch the page "will never see the noindex rule, and the page can still appear in search results".

In Search Console that shows up as Indexed, though blocked by robots.txt. The fix runs in an order that feels backwards: allow crawling, let Google see the noindex and drop the page, and only then block it in robots.txt if you still want to save crawling.

Read the result

ResultWhat it meansWhat to do
No noindex foundGoogle is allowed to index the page.If it is still missing from Google, check URL Inspection. Allowed is not the same as indexed.
Noindex foundGoogle will drop the page when it next crawls it.Keep it if the page should stay out. Otherwise remove the rule the checker names.
Blocked by robots.txtGoogle cannot crawl the page, but can still list the URL from links.Remove the rule if the page should rank. Use noindex if it should not.
Noindex found, but Google cannot see itThe noindex never takes effect.Remove the robots.txt rule first, so Google can read the noindex.
The page returns 404, 410 or 5xxGoogle drops it for the status, noindex or not.Restore the page or redirect it if it should exist.

A noindex is not a fault on its own. Login pages, internal search results, thank you pages and filtered lists often should be out of Google. The question is whether you meant it.

Find where an accidental noindex comes from

The value tells you which layer wrote it. When the checker can tell the platform from the page, it names the setting to change.

  • WordPress. Settings, then Reading, then "Discourage search engines from indexing this site". It prints noindex, nofollow on every page, and it travels with a staging database copied to production.
  • SEO plugins. Yoast and Rank Math noindex whole content types and archives from one setting, and drop them from the sitemap at the same time.
  • Shopify. A conditional noindex in theme.liquid, the seo.hidden metafield, or an Unlisted product.
  • Webflow. The Sitemap indexing toggle in page settings adds the meta tag.
  • Next.js. A page that calls notFound() after streaming starts keeps a 200 status and gets a noindex tag.
  • Servers and CDNs. A header rule in nginx, Apache, .htaccess, Netlify's _headers or a CDN. Only the header shows it.

Noindex and canonical ask for different things

A noindex says leave this page out. A canonical pointing at another URL says this is a copy, index that one instead. Google's duplicate URL guide advises against noindex for choosing a canonical, "because it will completely block the page from Search". For a duplicate, use the canonical alone. For a page that should not be in Google at all, use noindex and let the canonical point at the page itself.

JavaScript can add a noindex but not reliably remove one

The checker reads the HTML your server sends, before any script runs. Google's JavaScript guide says a script can add a robots tag, but when the first HTML already says noindex, Google "may skip rendering", so a script that removes it may never run. Put the right value in the server HTML.

Get a noindexed page back into Google

  1. Remove the rule the checker names, and check again here until it says no noindex found.
  2. Make sure the URL is in your XML sitemap and linked from a page Google already visits.
  3. In Search Console, open URL Inspection, run Test live URL, and check "Indexing allowed?" says yes.
  4. Press Request indexing. A page Google crawls often can come back within days. One it rarely visits can take weeks.

Check every page and Google's own index with your agent

This page checks one URL from the outside. Two questions it cannot answer: which other pages carry a noindex, and whether Google has actually dropped them. The seo crawl command lists every noindex, robots.txt block and canonical on a site from your own machine. The seo page command adds Google's own URL Inspection result for a page, through your Search Console. Ask:

Crawl example.com and list every page that has noindex or is blocked by robots.txt, then check which of them still get impressions in Search Console

Install the CLI and run setup:

npm i -g seo && seo start

Or add the hosted MCP server to your agent and sign in with Google:

Run it in a terminal, then sign in with Google.

Or run it on your machine

Installs the CLI, signs you in and adds the skill to your agents. Site crawls and Bing data run this way, on your own machine. A crawl fetches many pages, and Bing blocks our hosted server.

Once a page is indexable again, Index My Site can submit it to Google for you. We build it too.

Noindex checker questions