Blocked by robots.txt (GSC Status)

What the Google Search Console "Blocked by robots.txt" Page Indexing status means — a URL excluded from indexing because robots.txt disallowed crawling. Usually intentional. How it differs from "Indexed, though blocked," why noindex + disallow conflict, and how to fix it if the block was a mistake.

First published: Jun 23, 2026 · Last updated: Jul 17, 2026 · Advanced
demand #10 in Indexing#35 in How Search Works#162 in Technical SEO#219 on the site
1 evidence signal on this page

"Blocked by robots.txt" is a Google Search Console Page Indexing exclusion: Google found the URL but didn't crawl it because your robots.txt disallows it, so it isn't indexed in this state. Most of the time it's intentional and fine — robots.txt controls crawling, not indexing, so a disallow is not a deindexing tool. It's a sibling to the "Indexed, though blocked by robots.txt" warning, which is the opposite outcome (Google indexed a blocked URL anyway, usually via links). The big gotcha: noindex + disallow conflict — Google can't crawl a disallowed page, so it never sees the noindex. To remove a page, allow crawling and serve noindex. Only "fix" this status when you blocked something you actually wanted indexed.

TL;DR — “Blocked by robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere.” is a Page IndexingThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. exclusion: Google discovered the URL but didn’t crawl it because robots.txt disallows it, so it isn’t indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. in this state. It’s normally intentional and benign — robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. governs crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., not indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., so a disallow is never a deindexingDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist. tool. Don’t confuse it with the warningIndexed, though blocked by robots.txtA Google Search Console Page Indexing warning: Google indexed the URL anyway despite your robots.txt disallowing crawling it — Google names other pages linking to it as the likely path. robots.txt blocks crawling, not indexing.” (Google indexed a blocked URL anyway, usually via inbound links). The classic mistake is pairing disallow with noindex: Google can’t crawl the page, so it never sees the noindex and the page can stay indexed. To remove a page, allow crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. and serve noindex. Only treat this status as a bug when you blocked a URL you actually wanted indexed.

What the status actually reports

In the Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. Page Indexing report, “Blocked by robots.txtA Google Search Console Page Indexing status: the URL was excluded from indexing because your robots.txt disallows crawling it. Usually intentional and benign — robots.txt blocks crawling, not indexing.” is an excluded state, not an error and not a warning. Google’s own wording is plain: the page “was blocked by your site’s robots.txt file,” and Google adds the important caveat that this “does not guarantee that the page won’t be indexed through some other means.” Evidence for this claim Google reports Blocked by robots.txt when crawling is disallowed and warns that this does not guarantee the URL cannot be indexed by other means. Scope: Google Search Console report terminology and documented Search behavior; the label alone may not prove the underlying root cause. Confidence: high · Verified: Google: Page indexing report That caveat is the whole topic in one line — see below.

Mechanically: GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. knows the URL exists (it foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. it via a link, a sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., or history), tried to respect your rules, hit a matching Disallow, and stopped. No fetch means no content to index, so the URL sits in this excluded bucket. This is the expected result of a disallow — most URLs in here are supposed to be in here.

Crawling is not indexing — why a disallow doesn’t deindex

Google documents robots.txt as crawl-access control, not a reliable removal mechanism. Evidence for this claim Google says robots.txt manages crawler access and is not a mechanism for keeping a page out of Google. Scope: Google Search Console report terminology and documented Search behavior; the label alone may not prove the underlying root cause. Confidence: high · Verified: Google: robots.txt introduction

This is the accuracy spine of the whole status. robots.txt is a crawl control. Google is explicit that it “is not a mechanism for keeping a web page out of Google.” Blocking a URL prevents the fetch; it does not remove the URL from the index, and it is not a deindexingDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist. tool.

As I’ve put it in my Ahrefs article on the sibling status: “crawling and indexing are two different things.” A page you block can still end up indexed if other pages link to it — Google just can’t see the content, and it can’t see any noindex you tried to put there either. Which leads to the single most common mistake people make when they land on this report.

”Blocked by robots.txt” vs “Indexed, though blocked by robots.txt”

These two get conflated constantly, and they’re the same cause with opposite outcomes:

Blocked by robots.txtIndexed, though blocked by robots.txt
Report bucketExcluded (not indexed)Warning (indexed)
What happenedGoogle found the URL, didn’t crawl it, isn’t indexing itGoogle indexed the URL despite not crawling it
WhyDisallow worked, nothing forced indexingDisallow worked, but links/signals indexed it anyway
Is it usually a problem?No — typically intentionalDepends — often fine for utility URLs

If you’re staring at the warning version — a blocked URL that got indexed anyway, showing as a bare URL with no description — that’s the indexed-though-blocked case, and it’s handled in its own write-up. This article is about the plain exclusion: blocked, and not indexed.

For utility URLs, “indexed anyway” is often nothing to worry about. John Mueller, addressing a site owner whose WooCommerce ?add-to-cart= URLs showed up as indexed-though-blocked, said you don’t need those URLs indexed, that blocking them with robots.txt is fine, and that even if they get “indexed” while blocked, they’re unlikely to actually surface in search unless someone runs a very specific query for those URLs — which real users don’t.

The noindex + disallow conflict (the #1 fix that backfires)

Here’s the trap. Someone wants a page gone, so they Disallow it in robots.txt and add a noindex meta tag — belt and suspenders. It doesn’t work, because the two instructions contradict each other.

Google states the rule directly: “For the noindex rule to be effective, the page or resource must not be blocked by a robots.txt file, and it has to be otherwise accessible to the crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index..” If the page is disallowed, Google never crawls it, never sees the noindex, and the page can stay indexed. As I’ve written in my article on “Indexed, though blocked by robots.txt”: unless Google can crawl a page, it won’t see the noindex tag and may still index it because it has links.

So the deindex sequence is the opposite of what people reach for:

  1. Allow crawling of the URL (remove the Disallow).
  2. Serve noindex (meta robots tag or X-Robots-Tag header) and let Google re-crawl to see it.
  3. Leave the page crawlable with noindex in place once it’s dropped. Re-blocking it afterward isn’t a safe “finishing move” — if you disallow the URL again, Google can lose visibility into the noindex rule on the next crawl, and a blocked-but-linked URL can get indexed again from other pages’ links, which is the exact “indexed, though blocked” outcome you were trying to avoid. If crawl budget on the removed page is a real concern, that’s a case for authentication or deletion (404/410) — not a return trip through robots.txt.

For urgent removals, the Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. Removals toolA Google Search Console feature for verified owners to manage how their URLs appear in Search. A Temporary Removal hides a URL for about six months — it does not delete the page from the index., password protection, or simply deleting the page (returning 404/410) are the faster routes.

How to find which rule is blocking the URL

Three tools, each doing a different job — don’t expect one to do the others’ work:

  • URL Inspection (GSC). Paste the specific URL. It tells you whether that URL is currently blocked and is the quickest per-URL check.
  • robots.txt report (GSC). A domain-property-level monitoring report — not an editable tester — showing the robots.txt files Google found for your top hosts, the last-fetched time, fetch status, and any parsing warnings, plus a “request a recrawl” action after you change the file. It tells you Google can see your file; it doesn’t test individual URLs against it.
  • A robots.txt validator or Google’s open-source robots.txt parser. To see which line matches a given URL, run it through a validator — because the longest, most specific matching rule wins (and an Allow can override a broader Disallow).

Once you’ve found the offending line, the fix depends on where your robots.txt lives. If you control the file directly, remove or correct the rule (and mind the syntax). If you’re on a hosted platform like Wix, Shopify, or Squarespace, you may need to follow that provider’s specific docs to change it, since some platforms manage robots.txt for you.

TIP Find the rule that is actually blocking the URL

To test the current policy and a proposed edit against the same URL set, use the robots.txt Tester Free

  1. Paste the current robots.txt file and test the affected URL or a representative batch.
  2. Inspect the winning Allow or Disallow rule for each URL before changing the file.
  3. Use diff mode to test the proposed policy, publish it, then confirm the live result in Search Console.
The result identifies the affected URL and the winning line. Change the rule only if that URL is supposed to be crawled.

The completed Robots.txt Tester result checks two URLs for Googlebot. The first URL is allowed. The second URL, /search?q=redirects, is blocked by line 2. The file-health check reports no issues, so the problem is the policy decision rather than malformed syntax.

My own experiment: what happens when you block a page you wanted indexed

The genuinely useful question is: if you accidentally block a page that should rank, how bad is it? I ran that test directly. On January 30, 2023 I blocked two of our actually-ranking pages — “Top Bing Searches” and “Top YouTube Searches” — with robots.txt and tracked what happened.

The damage was real but smaller than I expected. We lost a position here or there (a few keywords slipped one or two spots, a couple even gained), and we lost all the featured snippets for those pages while they were blocked — they came back after I unblocked. The SERP appearance degraded too: Google showed “no information is available for this page” instead of the meta descriptionThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through., and lost our custom titles. And because the listing looked worse, clicks dropped more than impressions did — the CTR took the hit.

My summary at the time: “We lost a position here or there and all of the featured snippets for the pages. I expected a lot more impact, but the world didn’t end.” And the takeaway I’d still stand behind: don’t block pages you want indexed. It hurts. Not as bad as you might think — but it still hurts. That’s the right mental frame for this report. If everything in your “Blocked by robots.txt” bucket is stuff you meant to block, you’re fine. If a page you care about is in there, get it out.

One scope note on this experiment: both pages were already ranking and indexed before I blocked them, so what I measured is what happens when an indexed page gets pushed into the “indexed, though blocked” state — not what happens to a URL that was never indexed and is simply sitting in this exclusion bucket. If a URL here was never indexed to begin with, unblocking it just lets Google crawl and consider it normally; there’s no featured-snippet or CTR history to lose, because it was never there.

The decision tree

  • Did you mean to block it? → Leave it. Working as intended.
  • No — you want it indexed? → Remove/loosen the robots.txt rule, then request indexing.
  • You want it gone from Google? → Don’t use a disallow. Allow crawling + noindex (or Removals tool / delete), then leave it crawlable — re-blocking it afterward can hide the noindex rule again.
  • It’s a blocked URL that got indexed anyway? → That’s the indexed-though-blocked case, not this one — handle it there.
  • The page has sensitive or private content? → robots.txt isn’t an access control; it’s a request bots can ignore. Use authentication or password protection, not a disallow.

The crawl-vs-index principle is universal, by the way: Bing honors robots.txt for crawling the same way, and removing a URL from Bing similarly uses its Block URLs tool or a noindex on a crawlable page — not a bare disallow.

For the broader file itself — syntax, wildcards, where it lives, and what it can and can’t do — see the robots.txt guide. For how indexing decisions get made upstream, see the indexing hub.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.