vtex.com: what it tells AI crawlers
On 27 October 2026, vtex.com's robots.txt allowed all of GPTBot, OAI-SearchBot, ClaudeBot, Claude-SearchBot, Google-Extended, PerplexityBot and CCBot.
Last verified 2026-10-28 03:59 UTC (daily run of 2026-10-27). Proof for that day.
- Panel
- top 10k (Tranco)
- robots.txt
- ok (HTTP 200) · https://www.vtex.com/robots.txt
unchanged since 2026-10-27 · sha256c42b6fbbcfdff309…· view as recorded - The * group
- allows applies to every agent without its own group
Per AI bot, 2026-10-27
| User agent | Verdict | How |
|---|---|---|
| GPTBot | allows | named in its own group |
| OAI-SearchBot | allows | named in its own group |
| ChatGPT-User | allows | named in its own group |
| ClaudeBot | allows | named in its own group |
| Claude-SearchBot | allows | named in its own group |
| Claude-User | allows | named in its own group |
| PerplexityBot | allows | named in its own group |
| Perplexity-User | allows | named in its own group |
| Googlebot | allows | through the * group |
| Google-Extended | allows | named in its own group |
| Applebot-Extended | allows | named in its own group |
| CCBot | allows | named in its own group |
| Bytespider | allows | named in its own group |
| Meta-ExternalAgent | allows | named in its own group |
| Amazonbot | allows | named in its own group |
| anthropic-ai | allows | named in its own group |
| cohere-ai | allows | named in its own group |
Other signals
| Publishes /llms.txt | no |
| Publishes /ai.txt | yes |
| Publishes /.well-known/tdmrep.json | no |
| Reserves TDM rights (TDMRep file, header or meta) | no |
| Declares Content Signals (robots.txt or header) | no |
| Says ai-train=no in a Content Signal | no |
| Points to an RSL licence (robots.txt License line or Link header) | no |
| Answers with an x402 payment offer (lower bound: only the homepage is probed) | no |
| Answers HTTP 402 Payment Required (lower bound: only the homepage is probed) | no |
| Sends noai / noimageai directives | no |
| Refused our fetcher (403 / challenge) | no |
robots.txt as recorded sha256 ddf7d24e469fcfff…
# robots.txt for vtex.com # Last updated: 2026-10-26 # Default: allow all crawlers User-agent: * Allow: / # Disallow sensitive and duplicate paths Disallow: /api/ # Social preview images are public, deterministic, and safe for unfurl crawlers. Allow: /api/social-card Disallow: /sign-in Disallow: /sign-up Disallow: /404 Disallow: /documents/*/legal/ Disallow: /documents/en-us/ParadigmB2B_Combine-26_vendor-Enterprise_VTEX.pdf # Block cookies policy PDF from indexing (redirected to compliance.vtex.com) Disallow: /*/trust/cookies-information/ Disallow: /*/trust/platform/cookies-information/ # Sitemaps Sitemap: https://www.vtex.com/sitemap.xml Sitemap: https://www.vtex.com/en-us/sitemap.xml Sitemap: https://www.vtex.com/pt-br/sitemap.xml Sitemap: https://www.vtex.com/es-mx/sitemap.xml # ─── AI crawlers ───────────────────────────────────────────────────────────── # One page, and one page only: the Cybernews statement. It already carries a # noindex, nofollow directive (metadataConfig) as an HTTP header AND as a meta # tag in the head, which keeps it out of Google and Bing. That does nothing # about AI crawlers, which do not index — they ingest — so the directive they # read is Disallow, and until 2026-09-12 ai.txt handed them a blanket # "Allow: /en-us/" that explicitly covered this page. # # THIS BLOCK REPEATS THE GLOBAL RULES ON PURPOSE. In robots.txt a named # user-agent group REPLACES the "*" group for that crawler — it does not # inherit from it. Listing only the Disallow below would have silently handed # these bots /api/, /sign-in and the rest. # # AND THE "*" GROUP DELIBERATELY DOES NOT GET THIS ENTRY. A Disallow stops the # crawl, so Googlebot would never fetch the page and never read the noindex # that de-indexes it — a blocked URL can still surface as a bare link. Disallow # and noindex are alternatives, not layers; see the note above this function. # Each is aimed at the crawler it actually works on. User-agent: GPTBot User-agent: OAI-SearchBot User-agent: ChatGPT-User User-agent: Google-Extended User-agent: CCBot User-agent: anthropic-ai User-agent: ClaudeBot User-agent: Claude-User User-agent: Claude-SearchBot User-agent: PerplexityBot User-agent: Perplexity-User User-agent: Bytespider User-agent: cohere-ai User-agent: Applebot-Extended User-agent: meta-externalagent User-agent: Amazonbot Disallow: /en-us/support/announcement/information-regarding-cybernewsarticle Disallow: /api/ Allow: /api/social-card Disallow: /sign-in Disallow: /sign-up Disallow: /404 Disallow: /documents/*/legal/ Disallow: /documents/en-us/ParadigmB2B_Combine-26_vendor-Enterprise_VTEX.pdf Disallow: /*/trust/cookies-information/ Disallow: /*/trust/platform/cookies-information/ # No blanket "Allow: /" here on purpose. Anything not disallowed is already # allowed by default, and a parser that resolves conflicts by precedence rather # than by specificity could read a blanket Allow as overriding the Disallow # above it. The rule is only worth writing if it cannot be misread. # See also: https://www.vtex.com/ai.txt
robots.txt versions
| From | Through | State | Version | |
|---|---|---|---|---|
| 2026-10-27 | 2026-10-27 | ok 200 | c42b6fbbcfdf | diff with previous |
| 2026-10-26 | 2026-10-26 | ok 200 | ddf7d24e469f |
Timeline of changes
| Date | What changed |
|---|---|
| 2026-10-27 | robots.txt changed |
Reconstructed history (Common Crawl)
From Common Crawl's robots.txt captures: what CCBot was served, one crawl per quarter. A separate series from the daily observations above; a 403 here means Common Crawl was refused, not this ledger.
| Crawl | Host | State | GPTBot | OAI-SearchBot | ChatGPT-User | ClaudeBot | Claude-SearchBot | Claude-User | PerplexityBot |
|---|---|---|---|---|---|---|---|---|---|
| 2026-09-21 CC-MAIN-2026-39 | www.vtex.com | ok view | allows | allows | unknown | allows | allows | unknown | allows |
| 2025-09-15 CC-MAIN-2025-38 | vtex.com | ok view | allows | allows | unknown | allows | allows | unknown | allows |
| 2024-09-16 CC-MAIN-2024-38 | vtex.com | ok view | partial | partial | unknown | partial | partial | unknown | partial |
| 2023-10-02 CC-MAIN-2023-40 | vtex.com | ok view | allows | allows | unknown | allows | allows | unknown | allows |
| 2022-10-03 CC-MAIN-2022-40 | vtex.com | ok view | allows | allows | unknown | allows | allows | unknown | allows |
| 2021-09-27 CC-MAIN-2021-39 | vtex.com | ok view | allows | allows | unknown | allows | allows | unknown | allows |
| 2020-09-28 CC-MAIN-2020-40 | vtex.com | ok view | allows | allows | unknown | allows | allows | unknown | allows |
| 2019-09-23 CC-MAIN-2019-39 | vtex.com | ok view | allows | allows | unknown | allows | allows | unknown | allows |
| 2018-09-24 CC-MAIN-2018-39 | www2.vtex.com | ok view | allows | allows | unknown | allows | allows | unknown | allows |
| 2017-09-25 CC-MAIN-2017-39 | www.vtex.com | ok view | allows | allows | unknown | allows | allows | unknown | allows |
| 2017-01-23 CC-MAIN-2017-04 | vtex.com | ok view | allows | allows | unknown | allows | allows | unknown | allows |
| 2016-10-03 CC-MAIN-2016-40 | www.vtex.com | ok view | allows | allows | unknown | allows | allows | unknown | allows |
| 2016-09-05 CC-MAIN-2016-36 | www.vtex.com | ok view | allows | allows | unknown | allows | allows | unknown | allows |
Evidence
Every daily observation of vtex.com is a leaf in that day's Merkle tree. Proof of the robots.txt line for 2026-10-27: audit path (JSON), day root and OpenTimestamps proof (complete (bitcoin block 973493)).
API: https://infrarabbit.com/crawlers/api/v1/policy/vtex.com