Check & monitor · Robots.txt
Robots.txt: how the robots.txt file controls crawling, with examples and disallow rules
Robots.txt is four directives and a text file, and it is still the single most destructive line of code most sites ever ship. One stray Disallow: / pushed live with a staging config has taken more sites out of Google than every algorithm update combined.
Submit · monitor coverage · official methods only
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.
Coverage
indexed
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
In short
Robots.txt is a plain text file at the root of a domain that tells crawlers which paths they may request. Google supports exactly four fields in it: user-agent, allow, disallow, and sitemap. It controls crawling, not indexing. Google states that it cannot index the content of pages disallowed for crawling, but it may still index the URL and show it in search results without a snippet. Google honors the file up to 500 kibibytes and generally caches it for up to 24 hours.
Last updated July 2026
The confusion at the heart of it is simple. People reach for robots.txt when they want a page out of Google, and that is not what it does. Robots.txt controls whether a crawler may fetch a URL. Indexing is a separate decision, made separately. Block a page and Google will not read its content, but it can still list the bare URL if other sites link to it. Worse, blocking a page means Google can never crawl it, which means it can never see the noindex tag you also added, so the tag does nothing forever.
This page is the reference: the four fields Google actually supports, the syntax rules that trip people up, working examples you can copy, and the mistakes worth checking for right now. If you want to know whether your robots.txt is currently costing you pages, the console above shows you what is indexed and what is not.
Official methods only
White hat · no spam, no PBNs
Why it works
What your team gets with robots.txt
Crawling, not indexing
Robots.txt decides whether a crawler may fetch a URL. It does not decide whether Google indexes it. Those are two different jobs and mixing them up is how pages get lost.
Four fields, no more
Google supports user-agent, allow, disallow and sitemap. Directives you may have seen elsewhere, including noindex inside robots.txt, are not supported and are silently ignored.
See the damage, if any
A rule that blocks more than you intended does not announce itself. Coverage monitoring shows which URLs are blocked by robots.txt right now, so a bad rule surfaces in days, not quarters.
What it handles
Submitted, monitored and fixed, automatically
Indexing submits your URLs through the official Google Indexing API, Bing IndexNow and clean XML sitemaps, watches coverage across both engines, and flags any page that drops out with a plain-English reason so you can resubmit and get it back.
- Flags URLs currently blocked by robots.txt across your whole site
- Separates blocked-by-robots from noindex and canonical exclusions
- Alerts you when a previously indexed URL becomes blocked
- Confirms your sitemap is declared and reachable
- Resubmits pages through official channels once a block is lifted
Not indexed yet
/blog/seo-guide-2026 is discovered but not indexed
thin content signal, queued for re-crawl via the Indexing API
Why Indexing
One place to submit, monitor and fix coverage
Not a black-hat indexer that risks your site, not a free checker that only tells you the bad news. Indexing unifies official submission and live coverage monitoring, the white-hat way, across Google and Bing.
Submits the official way
Bulk-submit through the Google Indexing API, Bing IndexNow and clean XML sitemaps. We speed discovery and re-crawl using methods the engines support, never spam, PBNs or black-hat tricks.
Monitors coverage live
You do not refresh a search bar one URL at a time. Indexing watches which pages are in Google and Bing, catches anything that drops out, and tracks time-to-index across your whole site.
Diagnoses and resubmits
Every non-indexed page comes with a plain-English reason, then auto-resubmits through the official API so it gets another shot. Google still decides, but nothing waits in the dark.
At a glance
The four robots.txt directives Google supports
Google honors exactly these four fields. Anything else in the file is ignored. Verified against the Google robots.txt specification, July 2026.
| Directive | What it does | Example | Notes |
|---|---|---|---|
| user-agent | Names the crawler the following rules apply to. Starts a group. | User-agent: Googlebot | Use * for all crawlers. Google AdsBot crawlers ignore the * group and must be named explicitly. |
| disallow | Tells the named crawler not to request paths matching this pattern. | Disallow: /admin/ | An empty Disallow: means allow everything. Disallow: / blocks the entire site. |
| allow | Carves an exception out of a broader disallow rule. | Allow: /admin/public-page.html | The more specific rule wins, regardless of the order the lines appear in. |
| sitemap | Points crawlers at your XML sitemap. Independent of any user-agent group. | Sitemap: https://example.com/sitemap.xml | Must be a full absolute URL. You can list more than one. |
The rules Google actually applies
The specification is short, and the parts people get wrong are always the same handful.
Location and name are fixed. The file must be at the root of the host, at /robots.txt, and the filename is lowercase. A file at /pages/robots.txt does nothing at all. Each subdomain and each protocol is a separate host with its own file, so blog.example.com needs its own robots.txt and does not inherit the one from example.com.
Matching is prefix-based, and only two wildcards exist. The asterisk matches zero or more characters and the dollar sign anchors to the end of the URL. Trailing wildcards are pointless because Google ignores them: /fish* and /fish are treated identically. Paths are case sensitive, so Disallow: /Admin/ does not block /admin/.
- Must live at the host root: https://example.com/robots.txt, lowercase filename
- Every subdomain and protocol needs its own file, nothing is inherited
- Google honors up to 500 kibibytes; anything past that is ignored
- Google generally caches the file for up to 24 hours, adjustable with Cache-Control
- Wildcards: * matches any run of characters, $ anchors the end of the URL
- Paths are case sensitive; the most specific matching rule wins, not the first
Robots.txt examples you can copy
Allow everything, which is what most sites should ship. An empty disallow value means no restriction:
User-agent: * / Disallow: / and nothing else is the nuclear option. It blocks every crawler from every URL. This is the line that ships by accident from a staging environment and takes a site out of search. If you take one thing from this page, make it a habit of checking this line after every deploy.
Blocking a directory while keeping one file inside it crawlable is the classic use of Allow. The more specific rule wins, so the exception works regardless of line order:
Blocking one crawler while leaving the rest alone needs its own group. Each user-agent line starts a new group, and a crawler only obeys the most specific group that names it, so a bot named explicitly ignores the * group entirely.
- Allow everything: User-agent: * then Disallow: (empty value)
- Block the whole site: User-agent: * then Disallow: / (dangerous, check after every deploy)
- Block a folder: User-agent: * then Disallow: /admin/
- Block a folder but allow one file: Disallow: /admin/ then Allow: /admin/public.html
- Block URLs by extension: Disallow: /*.pdf$ (the $ anchors the end)
- Block search and filter URLs: Disallow: /*?sort= and Disallow: /*?filter=
- Declare your sitemap: Sitemap: https://example.com/sitemap.xml
The five mistakes that actually cost traffic
Shipping the staging robots.txt to production. A build pipeline that copies the wrong config file writes Disallow: / on a live site, and nothing breaks visibly. The site keeps loading, the pages keep working, and rankings quietly evaporate over the following weeks. Check /robots.txt after every deploy.
Blocking a page and adding noindex at the same time. This is the one that feels clever and is self-defeating. If Google cannot crawl the URL it cannot read the noindex tag, so the tag never takes effect and the URL can sit in the index indefinitely. To remove a page, allow the crawl and serve noindex.
Using robots.txt to hide private data. The file is public and anyone can read it, so listing Disallow: /internal/customer-exports/ tells the whole internet exactly where to look. Private means authentication, not a disallow rule.
Blocking CSS and JavaScript. Google renders pages. Block the assets and Googlebot sees a broken layout, which affects how it assesses the page. There is almost never a good reason to disallow your asset directories.
Assuming a block removes an existing page. It does not. Blocking crawling on a URL already in the index tends to freeze it there, snippet and all, because Google cannot re-crawl to discover it should change. Removal needs noindex on a crawlable page.
Good questions
Questions about robots.txt
Explore more
More ways teams get every page indexed
Stop guessing. Get every page indexed and keep it that way.
Bulk-submit your URLs through the official Google and Bing channels, monitor coverage, and resubmit anything that drops out, automatically. White hat only, so we speed discovery without ever guaranteeing what Google chooses to index.
Google Indexing API · Bing IndexNow · sitemaps · coverage monitoring · official methods only