# vegeats.app robots.txt (policy of 2026-09-21, lane legal_pages) # # ---- LAUNCHED 2026-10-07 ---------------------------------------------- # # The site is public. All three pre-launch locks are off, in this order # (never re-order it -- the robots and noindex locks must go in the same # deploy as the 401 or before it, never after, or the site is briefly # crawlable while still saying it is private): # 1. the three `Disallow: /` lines marked PRE-LAUNCH, deleted from this # file, one from each of the three groups that are otherwise let in. # 2. `X-Robots-Tag: noindex` on /*, deleted from app/site/_headers. # 3. the basic-auth 401 in functions/_middleware.js, lifted by setting the # Pages secret SITE_PUBLIC=1. # # Nothing else in this file changed at launch, and nothing below this header # is pre-launch scaffolding: the `Disallow: /` at the foot of the file is the # deliberate full block on SEO scrapers and unnamed AI crawlers, and it # stays. See DEPLOY.md, "Launching". # # STILL TO DO: submit the sitemap in Search Console and Bing Webmaster. # # ---- The policy -------------------------------------------------------- # # Riley wants Veg Eats found, recommended and cited by search engines and by # the AI answer products (ChatGPT, Gemini, Claude, Perplexity, Copilot). # So: # * PUBLIC PAGES (/, /place/*, /city/*, /cities.html, /map.html, # /search.html, the legal pages) are open to the search and answer # agents named below, and to the big labs' training crawlers. # * THE DATA BEHIND THE PAGES (bulk files, map tiles, page shards and # every API route) is closed to every crawler, named or not. # * EVERYONE ELSE -- generic scrapers, dataset builders, data brokers, # SEO scrapers, unnamed AI crawlers -- gets nothing (the last group, # plus the catch-all `User-agent: *`, which after launch still lets # ordinary search engines not named here index the public pages). # # A crawler obeys the ONE group that names it most specifically and ignores # the others, which is why the data rules are repeated in every group. # # robots.txt is a request, not a lock. The ones that do not honour it are # handled by the token gate on /m/*, Cloudflare's per-crawler AI controls, # bot rules and rate limits, and the Terms (terms.html section 10). # scratchpad/legal_pages/NOTES.md has the Cloudflare side. # ---- Everyone else, including search engines not named below ------------- User-agent: * # The data behind the pages: bulk files, tiles, shards and APIs. Disallow: /m/ Disallow: /q/ Disallow: /_t/ Disallow: /_p/ Disallow: /_s/ Disallow: /t/ Disallow: /g/ Disallow: /la. Disallow: /desc. Disallow: /venues.js Disallow: /terms.js Disallow: /cuisines.js Disallow: /places.js Disallow: /onboard-stats.js Disallow: /onboard-places.js Disallow: /*.json$ Disallow: /v/ Disallow: /signup/ Disallow: /account/ Disallow: /billing/ Disallow: /welcome.html Disallow: /search.html? Disallow: /map.html? Allow: /.well-known/tdmrep.json # ---- Search and answer agents: public pages yes, data no ------------------ # Googlebot (Google Search, AI Overviews), Bingbot (Bing, Copilot, and part # of ChatGPT search), OpenAI's search index and user fetches, Anthropic's, # Perplexity's, DuckDuckGo's AI answers, and Apple (Siri, Spotlight). User-agent: OAI-SearchBot User-agent: ChatGPT-User User-agent: Claude-SearchBot User-agent: Claude-User User-agent: PerplexityBot User-agent: Perplexity-User User-agent: Googlebot User-agent: Bingbot User-agent: DuckAssistBot User-agent: Applebot Disallow: /m/ Disallow: /q/ Disallow: /_t/ Disallow: /_p/ Disallow: /_s/ Disallow: /t/ Disallow: /g/ Disallow: /la. Disallow: /desc. Disallow: /venues.js Disallow: /terms.js Disallow: /cuisines.js Disallow: /places.js Disallow: /onboard-stats.js Disallow: /onboard-places.js Disallow: /*.json$ Disallow: /v/ Disallow: /signup/ Disallow: /account/ Disallow: /billing/ Disallow: /welcome.html Disallow: /search.html? Disallow: /map.html? Allow: /.well-known/tdmrep.json # ---- Model TRAINING crawlers: public pages yes, data no -------------------- # FLIP THIS BLOCK ALONE to change the training decision: replace everything # under these four User-agent lines with a single `Disallow: /`. # Riley's call (2026-09-21): being in the models is part of being # recommended. Google-Extended also governs whether Gemini may ground its # answers in our pages; Applebot-Extended is Apple Intelligence's. Both are # opt-out tokens that never crawl, and neither affects Google or Apple # search. User-agent: GPTBot User-agent: ClaudeBot User-agent: Google-Extended User-agent: Applebot-Extended Disallow: /m/ Disallow: /q/ Disallow: /_t/ Disallow: /_p/ Disallow: /_s/ Disallow: /t/ Disallow: /g/ Disallow: /la. Disallow: /desc. Disallow: /venues.js Disallow: /terms.js Disallow: /cuisines.js Disallow: /places.js Disallow: /onboard-stats.js Disallow: /onboard-places.js Disallow: /*.json$ Disallow: /v/ Disallow: /signup/ Disallow: /account/ Disallow: /billing/ Disallow: /welcome.html Disallow: /search.html? Disallow: /map.html? Allow: /.well-known/tdmrep.json # ---- Blocked entirely: dataset builders, generic scrapers, data brokers, # SEO scrapers and AI crawlers not on the allow lists above ------------------ # From the community list at github.com/ai-robots-txt/ai.robots.txt # (checked 2026-09-21). Link-preview agents (facebookexternalhit, Slackbot, # Twitterbot, Discordbot, LinkedInBot) are deliberately NOT here, so shared # links still unfurl. User-agent: AddSearchBot User-agent: AgentTimes User-agent: AI2Bot User-agent: AI2Bot-DeepResearchEval User-agent: Ai2Bot-Dolma User-agent: aiHitBot User-agent: AIWebIndex User-agent: amazon-kendra User-agent: amazon-QBusiness User-agent: Amazonbot User-agent: AmazonBuyForMe User-agent: Amzn-SearchBot User-agent: Amzn-User User-agent: Andibot User-agent: Anomura User-agent: anthropic-ai User-agent: ApifyBot User-agent: ApifyWebsiteContentCrawler User-agent: Aranet-SearchBot User-agent: atlassian-bot User-agent: Awario User-agent: AzureAI-SearchBot User-agent: bedrockbot User-agent: bigsur.ai User-agent: Brightbot User-agent: Brightbot 1.0 User-agent: BuddyBot User-agent: Bytespider User-agent: CCBot User-agent: Channel3Bot User-agent: ChatGLM-Spider User-agent: ChatGPT Agent User-agent: Claude-Code User-agent: Claude-Web User-agent: Cloudflare-AutoRAG User-agent: CloudVertexBot User-agent: cohere-ai User-agent: cohere-training-data-crawler User-agent: Cotoyogi User-agent: CragCrawler User-agent: Crawl4AI User-agent: Crawlspace User-agent: Cursor User-agent: Datenbank Crawler User-agent: DeepSeekBot User-agent: Devin User-agent: Diffbot User-agent: Diffbot-User User-agent: DoubaoBot User-agent: Echobot Bot User-agent: EchoboxBot User-agent: ERNIEBot User-agent: ExaBot User-agent: ExaSearchBot User-agent: FacebookBot User-agent: Factset_spyderbot User-agent: FirecrawlAgent User-agent: FriendlyCrawler User-agent: GeistHaus-PageFetcher User-agent: Gemini-Deep-Research User-agent: Google-Agent User-agent: Google-CloudVertexBot User-agent: Google-Firebase User-agent: Google-Gemini-CLI User-agent: Google-NotebookLM User-agent: GoogleAgent-Mariner User-agent: GoogleAgent-URLContext User-agent: GoogleOther User-agent: GoogleOther-Image User-agent: GoogleOther-Video User-agent: HenkBot User-agent: iAskBot User-agent: iaskspider User-agent: iaskspider/2.0 User-agent: ICC-Crawler User-agent: ImagesiftBot User-agent: imageSpider User-agent: img2dataset User-agent: ISSCyberRiskCrawler User-agent: kagi-fetcher User-agent: Kangaroo Bot User-agent: Kimi-SearchBot User-agent: Kimi-User User-agent: KimiBot User-agent: KlaviyoAIBot User-agent: KunatoCrawler User-agent: laion-huggingface-processor User-agent: LAIONDownloader User-agent: Lightpanda User-agent: LinerBot User-agent: Linguee Bot User-agent: LinkupBot User-agent: Manus-User User-agent: meta-externalagent User-agent: Meta-ExternalAgent User-agent: meta-externalfetcher User-agent: Meta-ExternalFetcher User-agent: meta-webindexer User-agent: MistralAI-Index User-agent: MistralAI-Training User-agent: MistralAI-User User-agent: MistralAI-User/1.0 User-agent: Mozilla-Tabstack User-agent: MyCentralAIScraperBot User-agent: NagetBot User-agent: netEstate Imprint Crawler User-agent: newsai User-agent: NotebookLM User-agent: NovaAct User-agent: OAI-AdsBot User-agent: omgili User-agent: omgilibot User-agent: OpenAI User-agent: opencode User-agent: Operator User-agent: PanguBot User-agent: Panscient User-agent: panscient.com User-agent: PhindBot User-agent: Poggio-Citations User-agent: Poseidon Research Crawler User-agent: QualifiedBot User-agent: Querit-SearchBot User-agent: QueritBot User-agent: QuillBot User-agent: quillbot.com User-agent: QwenBot User-agent: Reflectionbot User-agent: SBIntuitionsBot User-agent: Scrapy User-agent: SemrushBot-OCOB User-agent: SemrushBot-SWA User-agent: Shap-User User-agent: ShapBot User-agent: Sidetrade indexer bot User-agent: TavilyBot User-agent: Terra Cotta User-agent: TerraCotta User-agent: Thinkbot User-agent: TikTokSpider User-agent: Timpibot User-agent: TongyiBot User-agent: Trae User-agent: TwinAgent User-agent: UseAI User-agent: VelenPublicWebCrawler User-agent: WARDBot User-agent: Webzio-Extended User-agent: webzio-extended User-agent: wpbot User-agent: WRTNBot User-agent: YandexAdditional User-agent: YandexAdditionalBot User-agent: YiyanBot User-agent: YouBot User-agent: ZanistaBot User-agent: AhrefsBot User-agent: SemrushBot User-agent: MJ12bot User-agent: DotBot User-agent: DataForSeoBot User-agent: BLEXBot User-agent: serpstatbot Disallow: / Sitemap: https://vegeats.app/sitemap.xml