{{ summaryTitle }}
{{ summaryValue }}

{{ summaryLine }}

Groups{{ resultsReady ? computation.values.group_count : '—' }} Rules{{ resultsReady ? computation.values.allow_count + computation.values.disallow_count : '—' }} Checks{{ resultsReady ? (computation.values.warning_count ? computation.values.warning_count + ' review' : 'Ready') : '—' }}

{{ policyExportStatus }}

Crawler policy inputs
Presets replace the current crawler groups. Custom keeps your edits.
Example: https://www.example.com. Paths, queries, fragments, and credentials are rejected.
Each location is emitted as an independent Sitemap: record.
Parsing replaces the current crawler groups after the pasted source passes structural checks.
{{ importStatus || 'Comments become group notes; absolute Sitemap records remain outside crawler groups.' }}
Crawler groups:
Open a group to edit one crawler token, path rules, and optional note.
The wildcard group applies when no more specific group matches.
Leave empty when the group needs no explicit Allow rule.
Protect private content with authentication even when it is disallowed here.
Zero is neutral. Google does not support the Crawl-delay record.
s
The neutral default omits the non-standard record.
Sorting does not change the longest-match rule.
{{ robotsText }}
{{ ledgerExportStatus }}
GroupUser-agentAllowDisallowCrawl-delayCopy
{{ row.group }}{{ row.user_agent }}{{ row.allow }}{{ row.disallow }}{{ row.crawl_delay }}
{{ chartExportStatus }}

The chart renderer is unavailable. The same counts remain available in the rule ledger.

{{ checksExportStatus }}
CheckStatusDetailCopy
{{ row.check }}{{ row.status }}{{ row.detail }}

Web crawlers can spend time on duplicate pages, search results, carts, account areas, generated filters, and other URLs that a site owner does not want routinely fetched. A root-level robots.txt file publishes crawl guidance for one protocol, host, and port. The HTTPS and HTTP versions of a host, or two different subdomains, therefore have separate policies.

The file groups rules beneath one or more crawler product tokens. A specific crawler group applies when its product token matches; the wildcard * group covers crawlers that have no more specific match. Inside the applicable group, the longest matching path wins. If equally specific Allow and Disallow rules match, Allow takes precedence under the Robots Exclusion Protocol.

Path matching begins at the first character of the URL path and is normally case-sensitive. A broad Disallow: /private/ rule can be narrowed with Allow: /private/help/. Reordering those two lines does not change which one wins because match length, not file order, controls the result.

  • Allow permits a matching path inside the selected crawler group.
  • Disallow asks a compliant crawler not to fetch a matching path.
  • Sitemap declares an absolute sitemap location independently of crawler groups.
  • Crawl-delay is a non-standard extension with crawler-specific support; Google does not support it.

Robots rules are neither authentication nor a reliable way to hide information. The file is public, non-compliant bots may ignore it, and blocked URLs can still be discovered through links or appear in search results. Private content needs access control, and indexing control may require an appropriate response header or page directive that the crawler can actually fetch.

A site-wide root block is useful for a staging origin only when that origin cannot be protected more strongly. Copying Disallow: / to production can remove the entire site from routine crawl access, so publication deserves the same review as a routing or firewall change.

How to Use This Tool:

Define the exact origin first, then write crawler groups around real URL paths rather than filesystem directories.

  1. Choose a Policy preset or import an existing policy. Import accepts supported records only and replaces the current crawler groups after the whole pasted file passes structural checks.
  2. Enter the Site origin as an HTTP or HTTPS origin without a path, query, fragment, or credentials, then add any absolute sitemap URLs.
  3. Set each crawler group's product token and add Allow or Disallow paths beginning with /. Keep a wildcard group when unmatched crawlers should receive a fallback policy.
  4. Enable Crawl-delay extension only for crawlers known to support it. Sorting rules changes their presentation but not longest-match behavior.
  5. Read Publish checks, inspect the generated policy, and confirm that no unintended group contains an unqualified Disallow: / before publishing it as lowercase /robots.txt.

Interpreting Results:

Open crawl policy means no Disallow rule is present. Selective crawl policy means at least one path is disallowed. Root crawl block means the wildcard group contains Disallow: / without an equivalent Allow: /.

  • A publish warning identifies a missing wildcard group, missing sitemap declaration, root block, or emitted Crawl-delay value. It does not predict how every crawler will behave.
  • Rule counts describe the generated file. They do not prove that the live origin serves it with a successful plain-text response.
  • Review the actual URL path and the longest matching rule when an exception appears ineffective; line order is not the deciding factor.

Technical Details:

The Robots Exclusion Protocol selects the crawler group with the most specific matching product token, then compares Allow and Disallow path patterns within that group. Path specificity is measured by matched octets, and a URL is allowed when no rule matches.

Rule Core:

Robots exclusion matching rules
Decision Governing rule Consequence
Group choice Use the most specific matching user-agent product token; use * only as the fallback Rules from unrelated groups are not combined
Path choice Use the matching Allow or Disallow path with the most octets A narrow exception can override a broader block
Equal match Prefer Allow when equivalent Allow and Disallow rules both match The URL remains crawlable for that group
No match Allow access Only explicit matching restrictions block a compliant crawler
Origin boundary Fetch /robots.txt from the same protocol, host, and port A policy on one origin does not govern another

Percent encoding and non-ASCII characters affect path comparison under RFC 9309. When URLs contain reserved or international characters, compare the encoded request path with the published rules instead of relying only on how the browser displays the URL.

Transformation Core:

Generation deduplicates non-empty sitemap and path lines, optionally sorts Allow and Disallow paths within each group, then emits comments, User-agent records, path rules, optional Crawl-delay records, and Sitemap records. Sorting affects readability only.

Robots policy generation boundaries
Input Accepted boundary Failure behavior
Crawler groups 1 to 20 Empty or oversized sets block generation
Rules per group Up to 100 Allow and 100 Disallow paths Every non-empty path must begin with /
Sitemaps Up to 10 absolute HTTP or HTTPS URLs Credentials and invalid absolute locations are rejected
Crawl delay 0 to 86,400 whole seconds The value is omitted unless the extension is enabled and the delay is above zero
Import text Up to 50,000 characters Unsupported directives, misplaced rules, or malformed records reject the entire import

Import recognizes comments, User-agent, Allow, Disallow, Crawl-delay, and Sitemap records. Consecutive User-agent records share one rule block and are expanded into separate editable groups. An unsupported directive is not silently preserved.

Limitations and Privacy Notes:

Policy generation and import parsing happen in the browser, but the finished file is meant to be public. Comments and path rules can reveal administrative routes, customer names, unreleased features, or internal structure.

  • Do not place secrets, credentials, or sensitive identifiers in comments, paths, or sitemap URLs.
  • Use authentication and authorization for private content; crawler compliance is voluntary.
  • Test the live response status, content type, encoding, and body after publication. This generator does not fetch or validate the deployed file.
  • Crawler extensions differ. A valid emitted Crawl-delay record still has no effect on crawlers that ignore it.

Worked Examples:

Keep one help path crawlable

A wildcard group can use Disallow: /account/ with Allow: /account/help/. For /account/help/reset-password, the Allow path is longer and wins. For /account/profile, only the broader Disallow path matches, so a compliant crawler should not fetch it.

References: