🎁 Get $100 FREE on your first $500 recharge·Limited-time bonus for new users·Sign up & claim your $100 instantly·$100 bonus on $500+ first deposits·Apply once, instant credit on signup·
* T&C apply
100 URLs per run, free, no signup

Bulk noindex checker — find every page Google is not allowed to index

Paste a URL list or point it at your sitemap. Each page is fetched and checked for a meta robots noindex, an X-Robots-Tag header, a robots.txt block, and a canonical pointing somewhere else — then exported to CSV.

Free No signup Headers + tags CSV export

One URL per line. Protocol optional — example.com/page becomes https://example.com/page. Duplicates are dropped automatically.

0 URLs ready

What gets checked per URL: HTTP status and redirect chain, X-Robots-Tag response header, meta robots and meta googlebot in the head, the rel=canonical target, and whether Googlebot is allowed to crawl that path by the site's robots.txt. Free, 100 URLs per run, no signup.

Paste a list above, or point it at your sitemap.

What it checks

Six signals per URL, because noindex is only one of the ways a page disappears

Meta robots and meta googlebot

Both tags are read from the head, and both are reported. A page with index in meta robots and noindex in meta googlebot is invisible to Google only — the kind of thing a single-tag checker misses.

X-Robots-Tag response header

The header version of noindex, which is the only way to exclude a PDF, an image, or any non-HTML file. Per-bot scoping like googlebot: noindex is parsed, not just the plain form.

Robots.txt, matched like Googlebot

The site robots.txt is fetched once and the path is evaluated with the real precedence rule: most specific match wins, Allow breaks a tie, wildcards and $ anchors supported.

Canonical target

Read from the link tag and from the HTTP Link header. A page canonicalising to a different URL is labelled separately from a noindex, because the two mean very different things.

Status, redirects and bot walls

Redirects are followed one hop at a time and counted. And a WAF answering 403 to our crawler is kept apart from a real block: we retry as a browser, and anything still refused lands in its own cannot-check bucket instead of being miscounted.

Conflicts, called out

The noindex-plus-robots.txt-disallow trap is flagged explicitly, along with noindex paired with a cross-canonical. These are the configurations that look fine in isolation and fail together.

The four ways a page gets excluded, and why they are not interchangeable

Every indexability bug comes down to one of four mechanisms, and most of the damage comes from treating them as the same thing. They are not.

MechanismCrawled?Indexed?Use it when
meta robots noindexYesNoYou want the page gone from results but links on it still followed
X-Robots-Tag: noindexYesNoThe file has no head to put a tag in — PDFs, images, feeds
robots.txt DisallowNoMaybe — URL onlyYou want to save crawl budget on worthless paths, not remove pages
rel=canonical elsewhereYesUsually not, but it is a hintDuplicate URLs that should consolidate into one

The row that causes the most damage is the third one. A disallowed URL is not removed — Google simply stops looking at it. If other sites link to it, the URL can sit in the results as a naked link with no title and no snippet, sometimes for years, because the one instruction that would remove it is inside a page Googlebot has been told not to open.

The conflict that keeps dead pages alive

Someone wants a page gone. They add noindex to the template, and to be thorough they also add a Disallow line to robots.txt. The two changes ship together, and the page never leaves the index.

Robots.txt is evaluated before the fetch. Googlebot reads the disallow, skips the request, and never sees the noindex tag it was supposed to obey. The correct sequence is the boring one:

  1. Allow crawling of the path in robots.txt.
  2. Serve noindex via meta tag or X-Robots-Tag header.
  3. Wait for recrawl and confirm the URL drops out of Search Console's coverage report.
  4. Only then add the disallow, if you still want to save the crawl budget.

This tool flags that exact pairing on any URL where it finds both, because it is invisible in a normal audit: each file looks correct on its own.

Where stray noindex tags actually come from

In practice it is rarely a deliberate decision. The recurring sources, in rough order of how often they show up in a real audit:

  • A staging flag that shipped. The single most expensive one. Staging environments serve a site-wide noindex, the environment variable does not get flipped at launch, and organic traffic falls off a cliff two weeks later.
  • CMS defaults. WordPress' "Discourage search engines" checkbox, Shopify's automatic noindex on filtered collections and internal search, Webflow's per-page toggle.
  • SEO plugin rules. Yoast and RankMath noindex entire post types, tag archives, and paginated series by default — settings that are usually right, but worth confirming rather than assuming.
  • Server and CDN rules. An X-Robots-Tag added at the nginx or Cloudflare layer for one directory that later grew to cover real pages. Nothing in the HTML hints at it.
  • Paginated and faceted URLs. Page two onwards noindexed by a rule that also catches category pages you want ranking.

None of these announce themselves. They are found by checking a list of URLs and reading the column.

What to do with the output

Filter to Noindex first and decide, URL by URL, whether the exclusion was intended. Thin tag archives and internal search results usually should be noindexed; money pages, blog posts, and category pages usually should not. Then check Blocked — a robots.txt disallow on a path you are actively trying to rank is a quiet traffic cap. Finally scan Canonicalised for pages pointing at a URL that no longer exists or redirects, which strands the consolidation.

Once a URL is confirmed indexable and still is not ranking, the problem has moved off this page and onto the authority side. That is where inbound links and crawl frequency do the work — a page nobody links to gets crawled rarely, no matter how clean its directives are. The robots.txt generator is the companion tool for fixing the crawl layer once you know which paths are wrongly blocked, and the llms.txt generator handles the AI-crawler side of the same question. The full set lives at /tools.

How it works

Three steps. One run. No signup.

Step 01

Load the URLs

Paste up to 100 URLs, one per line, or switch to the sitemap tab and let the tool pull them out of your sitemap.xml — sitemap index files included.

Step 02

Run the check

Every URL is fetched server-side in small batches, so headers and head tags are read directly rather than guessed. Results stream into the table as they land.

Step 03

Filter and export

Click a status chip to isolate the problem URLs, read the conflict warnings, then copy the list or download the full CSV for whoever owns the fix.

Frequently asked

Bulk noindex checker - common questions

  • It is a tool that fetches many URLs at once and reports whether each one is allowed into a search index. For every URL it reads the meta robots tag, the X-Robots-Tag HTTP header, the rel=canonical target and the site's robots.txt rules, then labels the page indexable or not. Checking one URL by hand takes a minute; checking a hundred takes one run.

  • Noindex says "you may read this page, but do not list it." A robots.txt disallow says "do not read this page at all." They are not interchangeable. A disallowed URL can still appear in results as a bare link with no snippet, because Google knows the URL exists from inbound links but was never allowed to fetch it and see any noindex instruction.

  • Because the combination cancels itself out. Googlebot obeys robots.txt first, so it never fetches the page, so it never reads the noindex tag sitting inside it. The URL can stay indexed indefinitely. To remove a page properly: allow crawling in robots.txt, serve the noindex, wait for it to be recrawled and dropped, and only then disallow the path if you still want to.

  • No. Google stopped supporting Noindex: lines in robots.txt on 1 September 2019, along with nofollow: and crawl-delay:. Those lines are silently ignored today. The supported ways to keep a URL out of the index are a meta robots tag, an X-Robots-Tag header, HTTP authentication, or the URL removal tool in Search Console for an urgent case.

  • Non-HTML files have no head, so there is no meta tag to place. The only way to exclude them is the X-Robots-Tag: noindex response header, set in nginx, Apache, or at the CDN. This tool reads response headers on every URL, not just HTML pages, so a PDF with a header directive is reported correctly instead of being skipped.

  • No. A canonical is a hint about which URL in a duplicate set is the original, not an exclusion. Google can and does ignore it when the signals disagree. This tool labels a cross-canonical page "Canonicalised" rather than "Noindex" for exactly that reason: the page is still crawlable and indexable, it has just nominated a different URL to receive the ranking.

  • Indexability is permission, not a guarantee. A page can pass every check here and still sit in "Crawled - currently not indexed" because Google judged it thin, duplicative, or not worth the crawl budget. Use this tool to rule out the mechanical causes first. Once a URL is confirmed indexable, the remaining levers are content quality, internal links, and external signals.

  • The site's bot protection refused us - usually HTTP 403, 429, or 401 from Cloudflare, Akamai, DataDome, or PerimeterX. That is a statement about our crawler, not about your page: the same URL is often served normally to Googlebot. We already retry once with an ordinary browser user agent, so anything still in this bucket is firmly locked down. Verify those URLs with the URL Inspection tool in Search Console.

  • 100 URLs per run and 600 URLs per ten minutes from the same connection, which keeps the tool free for everyone without a signup wall. The URLs are used to perform the fetch and are returned to your browser; the results table and the CSV are built client-side. There is no account, no email gate, and no saved report.

  • At minimum after every deploy that touches templates, and immediately after a staging-to-production migration - a forgotten site-wide noindex carried over from staging is the single most common cause of a sudden traffic collapse. Beyond that, a monthly run against your sitemap catches CMS defaults, plugin changes, and pages someone quietly unpublished.

More free SEO tools

This tool tells you which pages are excluded. The robots.txt generator fixes the crawl rules that caused it, the llms.txt generator curates what AI crawlers read, and the JSON-LD schema generator labels the pages that survive. The full index sits at /tools.

Browse all free SEO tools

Indexable is the floor, not the finish line.

A page with clean directives still needs a reason to be crawled often and ranked at all. That reason is usually inbound links. Build them from vetted publishers on Serpbays.

Start free on Serpbays