indexing.io
All posts
Troubleshooting

Indexed, Though Blocked by robots.txt: What It Means and How to Fix It

Google indexed a URL it was never allowed to fetch. Why robots.txt cannot remove pages, why adding noindex to a blocked page does nothing, and the two correct fixes in the right order.

By the Indexing team

July 2026 · 9 min read

Coverage Console
White-hat · official methods
Presets

Ready to check coverage

Paste a sitemap to sweep every URL for index status, then submit the missing ones through the official Google Indexing API and Bing IndexNow.

Not indexed Discovered, not indexed Indexed ✓

Coverage

indexed

Submitting via

Avg time to index

URLs submitted

Now eligible

Live, interactive · sample data · official methods only

Official Google Indexing API · Bing IndexNow · verified sitemaps · no spam, no PBNs

"Indexed, though blocked by robots.txt" means Google put the URL in its index without ever fetching the page. It found the address somewhere else, usually a link from another site or an entry in your sitemap, and decided the URL was worth listing even though your robots.txt told it not to download the content. So the URL can appear in search results with no useful title and no description, sometimes with the line "No information is available for this page."

This is the one Search Console status that behaves in the opposite direction from what people expect. Every other blocking mechanism removes pages. This one is a report that your block worked exactly as designed and still failed to do what you wanted, because robots.txt has never controlled indexing. It controls crawling. The two get treated as the same lever constantly, and this status is what that confusion looks like in the report.

What does indexed though blocked by robots.txt mean?

Break it into the two halves of the sentence, because both are literally true at the same time.

Blocked by robots.txt means Googlebot checked your robots.txt file, matched the URL against a Disallow rule, and did not request the page. No HTML was downloaded. Google has never seen your content, your title tag, your canonical or any meta tag on that page.

Indexed means the URL is nevertheless in Google's index and eligible to be shown. Google learned the address independently: an external site linked to it, an internal link pointed at it from a page Google could crawl, it appeared in your XML sitemap, or it turned up in a redirect chain. Knowing an address exists does not require permission to visit it.

Put together, Google has a URL with no content attached. It will usually generate a listing from the anchor text of links pointing at it and from the URL string itself. That is why these results look broken: no crafted title, no meta description, occasionally a blunt note that no information is available.

It helps to line this up against the statuses it gets confused with, because the fixes point in different directions:

StatusDid Google fetch the page?Is the URL in the index?Who decided
Indexed, though blocked by robots.txtNoYes, with no contentGoogle, from external signals
Blocked by robots.txtNoNoYou, and nothing linked to it
Excluded by noindex tagYesNoYou, and Google complied
Crawled, currently not indexedYesNoGoogle, on quality grounds
Discovered, currently not indexedNo, not yetNoGoogle, on crawl scheduling

The row that matters here is the first one. It is the only status where a block you set is the reason the page looks bad rather than the reason it is absent. If you want the deeper comparison of the two mechanisms, robots.txt versus noindex covers when each one is the correct tool.

Why does Google index a page it cannot crawl?

Because robots.txt is a crawling instruction, not an indexing instruction, and it never claimed to be one. The protocol tells cooperating bots which paths they may request. It says nothing about what an engine may do with knowledge of a URL it acquired elsewhere.

Google's own documentation is explicit that a disallowed URL can still be indexed if it is linked from other places on the web. From Google's side the reasoning is defensible: if twenty sites link to a URL with meaningful anchor text, that address is evidently useful to someone, and excluding it entirely would make results worse for people searching by name.

There is one more consequence worth internalizing, because it produces the most common failed fix. Since Google never downloads the page, Google never sees anything on the page. Your <meta name="robots" content="noindex"> is invisible. Your canonical is invisible. Your structured data is invisible. Adding any of them to a page that is blocked in robots.txt accomplishes precisely nothing, and the URL stays in the index indefinitely.

The noindex directive does not belong in robots.txt either. Google supported it unofficially for years and stopped honoring it on September 1, 2019. A noindex line in a robots.txt file today is silently ignored.

Is indexed though blocked by robots.txt bad?

It depends on what the URL is, and the honest answer for a lot of sites is that it does not matter. Google itself has repeatedly described this as an informational status rather than an error. Work through your affected URLs by pattern:

What the URL isDoes it matter?What to do
Faceted or filtered listing you blocked to save crawl budgetUsually notLeave it. The block is doing its job
Internal search results, sort and pagination parametersUsually notLeave it, unless the listings look bad for brand queries
Admin, cart, checkout or account URLsMildlyUnblock and noindex, or require authentication
Staging or preview environmentYesPut it behind HTTP authentication. robots.txt is not access control
A page with private or personal dataYes, seriouslyAuthentication or removal. Never rely on a Disallow line
A page you actually want rankingYesUnblock it immediately. It cannot rank on its own content while blocked
A whole section blocked by an over-broad ruleYesNarrow the rule. This is the expensive version of this problem

The last row is where real money gets lost. A rule like Disallow: /products intended to block /products/compare will also block every product page you have. It looks like a small line in a small file, and the outcome is an entire catalog listed in Google as bare URLs with no descriptions, unable to rank for anything except their own names. If you are not sure which of your URLs are affected, check the whole set rather than the one that made you look: our bulk index checker reports coverage across thousands of URLs at once with a reason attached to each gap.

How to fix indexed though blocked by robots.txt

There are only two correct outcomes, and choosing between them takes one question: do you want this URL in Google's index or not?

If you want it indexed properly, remove the block and let Google read the page.

  1. Find the rule that matches. Open Search Console, use the URL Inspection tool on an affected URL, and it will name the blocking rule. Remember that the most specific matching rule wins, and that * and $ wildcards make rules match far more broadly than people intend.
  2. Delete or narrow that rule in robots.txt. Narrowing is usually safer than deleting, because the rule was written for a reason.
  3. Confirm the page returns 200, carries no noindex meta tag, no X-Robots-Tag: noindex header, and a self-referencing canonical.
  4. Get it re-crawled. Request indexing through the URL Inspection tool for a handful of priority URLs, make sure they are in your sitemap, and link them from pages Google crawls often. For larger batches, the official submission channels are covered on our instant indexing page.

If you want it out of the index, you have to do it in the opposite order from what feels natural.

  1. Remove the robots.txt block first. Google has to be allowed to fetch the page.
  2. Add <meta name="robots" content="noindex"> to the page, or send X-Robots-Tag: noindex in the response headers if it is not an HTML document.
  3. Wait for Google to crawl it, see the directive, and drop the URL. This is the step people skip, and it is the only step that actually removes anything.
  4. Only after the URLs are gone from the index, put the robots.txt block back if you still want it for crawl budget reasons.

Sequence is everything here. Blocking and noindexing at the same time is the single most common mistake in this whole area, and it leaves you in the worst state available: Google cannot fetch the page, so it cannot read the noindex, so the URL stays indexed forever with no content. You can confirm which of your pages carry a live noindex, and which ones are blocked from being read at all, with our noindex checker.

If the URL is genuinely urgent, for example a staging environment or something with customer data in it, use the Removals tool in Search Console to hide it from results for about six months while you implement the real fix. It buys time. It does not solve anything on its own.

How long does it take to clear?

Longer than the edit, and the delay comes in two parts. Google caches robots.txt for roughly 24 hours, so your change is not even visible to Googlebot straight away. After that, the URL has to be re-crawled before anything updates, and a page nobody visits and nothing links to internally can sit in the queue for weeks. Google's own guidance on removing a noindexed page from the index is that revisits may take months.

Practical expectations: important URLs with internal links and traffic usually turn around in days. Deep, rarely linked URLs take weeks to months. Requesting indexing in Search Console is worth doing for the handful of pages that matter and is capped at roughly ten to twelve URLs a day, so it is not a strategy for a section-wide fix. Internal links from frequently crawled pages do far more work at scale than repeated resubmission does.

Once the pages are back and being crawled on their own content, watch where they actually land rather than assuming recovery: tracking the positions those URLs hold week over week is the only way to tell a real recovery from a page that came back and then stalled.

What causes it in the first place?

CauseHow it happensFix
Over-broad DisallowDisallow: /products written to block one path, matching every URL under itAdd the trailing detail or use a more specific path
Wildcard doing more than intendedDisallow: /*? blocking every URL with a query string, including ones you needTarget the specific parameter instead
Staging rules shipped to productionA blanket Disallow: / from the staging config deployed with the releaseMake robots.txt environment-aware, and use HTTP auth on staging
Platform defaultsShopify, Wix and WordPress plugins ship default blocks on collections, filters or search pathsReview the generated file rather than assuming it is empty
Blocking to remove pagesSomeone added a Disallow to get URLs out of Google, which is not what it doesUnblock, noindex, wait for the crawl, then reblock if needed
Blocked URLs still in the sitemapThe sitemap advertises URLs robots.txt forbids, so Google learns them and cannot read themKeep the sitemap and robots.txt consistent. This one is easy to miss
Migration leftoversRules written for an old URL structure matching new paths after a replatformRe-audit robots.txt as part of every migration checklist

The sitemap row deserves a second look. Listing a URL in your sitemap is an explicit statement to Google that the page should be crawled, and blocking it in robots.txt is an explicit statement that it should not. Google resolves the contradiction by learning the URL and not being able to fetch it, which is exactly the state this report describes. Whenever this status appears at scale, comparing your sitemap against your robots.txt rules is the fastest place to find the cause.

Frequently asked questions

What does indexed though blocked by robots.txt mean?

It means Google added the URL to its index without ever fetching the page. Your robots.txt prevented the crawl, but Google discovered the address through links or your sitemap and listed it anyway. The result appears in search with no real title or description, because Google has never seen the page content.

How do I fix indexed though blocked by robots.txt?

Decide whether you want the URL indexed. If yes, remove the Disallow rule so Google can crawl and read the page normally, then request re-crawling. If no, remove the Disallow rule first, add a noindex meta tag or X-Robots-Tag header, and wait for Google to crawl the page and drop it. Blocking and noindexing together never works.

Is indexed though blocked by robots.txt an error?

No. Search Console reports it as a warning rather than an error, and Google describes it as informational. For faceted navigation, internal search and parameter URLs you blocked deliberately, it is the expected outcome and needs no action. It only becomes a real problem when it covers pages you wanted ranking or content that should not be public.

Why is Google indexing pages I blocked in robots.txt?

Because robots.txt controls crawling, not indexing. It tells bots which paths they may request and has no effect on whether an engine may list a URL it learned about elsewhere. If other sites link to the address, or your sitemap includes it, Google can index the URL on those signals alone without downloading a single byte of the page.

Does noindex work if the page is blocked by robots.txt?

No, and this is the trap. Google has to fetch the page to see a noindex directive, and robots.txt prevents that fetch, so the directive is never read. Putting noindex inside robots.txt does not work either. Google stopped honoring that unsupported rule on September 1, 2019.

How long does it take for blocked pages to leave the Google index?

Plan for weeks rather than days. Google caches robots.txt for about 24 hours, then the URL must be re-crawled before your noindex is seen, and Google notes that revisits can take months for rarely crawled pages. Requesting indexing speeds up a handful of priority URLs. The Removals tool hides a URL for roughly six months while the real fix takes effect.

The short version

This status is Google telling you that your block worked and your intent did not. Sort the affected URLs by pattern first, because most sites find the majority are faceted, parameter or internal search URLs that are fine exactly as they are. For the ones that are not fine, pick a direction and follow the sequence: unblock to rank, or unblock then noindex to remove. Never both at once, never noindex inside robots.txt, and never robots.txt as a substitute for authentication. Then check the whole property rather than the URL that caught your eye, because a rule broad enough to cause this is almost never affecting one page.

See Indexing sweep your coverage

Indexing bulk-submits your URLs through official methods, monitors coverage, diagnoses what is not indexed in plain English, and auto-resubmits. White-hat only, no spam, no guarantees that Google must index, just faster discovery.

Get every page indexed

Indexing bulk-submits your URLs through the official Google Indexing API, Bing IndexNow and sitemaps, monitors coverage, tells you in plain English why a page is not indexed, and auto-resubmits until it is found.

Official methods only · Coverage monitored in real time · Auto-resubmit

White-hat only · No spam, no PBNs, no black-hat · We speed discovery and re-crawl but Google decides what to index.