# yentaknows.ai # # Crawlable here: the static pages (/, /connector, /privacy, /terms), the # directory's text pages (/venues, /cities and each /cities/{city} landing, # /destinations) and the agent entrypoint /llms.txt. Every text page answers as # HTML to a browser or crawler and as Markdown to an agent that asks for it. # Disallowed below are the machine surfaces: /mcp answers POST only, /v1/ is the # JSON API the MCP tools are a second face of, and the health probes. The one # exception is /v1/public/ for user-initiated agents (their own group below); # indexing and training crawlers stay off /v1/ entirely. # # Served on the directory host only. Each venue and destination host serves its # own dynamic /robots.txt that grants every agent the same access as this file # (one group per agent rather than one per policy, and a host-derived Sitemap: # line), alongside its own text pages and /sitemap.xml. # # /sitemap.xml here is a sitemap index: the directory's own pages # (/sitemap-pages.xml), every published venue's /sitemap.xml and every published # destination's /sitemap-pages.xml (a destination's /sitemap.xml is itself an index # of its listing pages, and an index may not nest another). A Sitemap: # directive is absolute by spec and a static file cannot interpolate its host, # so the one below names the apex, which serves /sitemap.xml on every environment # (the bridge proxies it today, and still will once prod is up); per-host discovery is the # landing page's and the Link: header on the text pages. # # Content-Signal (contentsignals.org) states the use preference for the content: # it is partner-approved for publication, so search, AI input and AI training are # all "yes". It is a group member, so every group repeats it, and it equals # `sitemap.CONTENT_SIGNAL`, which the per-tenant robots.txt renders. User-agent: * Disallow: /mcp Disallow: /v1/ Disallow: /healthz Disallow: /readyz Content-Signal: search=yes, ai-input=yes, ai-train=yes # Every named crawler below — traditional search, AI answer-engine and training — # is welcome to read the public pages; each still skips the machine surfaces above (a # named group does NOT inherit the "*" group, RFC-9309 §2.2.1, so the disallows are # repeated rather than assumed). The agents named across the two groups below are # the canonical `ua.ROBOTS_ALLOW_AGENTS` list the dynamic per-tenant robots.txt # renders too, and the second group is `ua.ROBOTS_USER_INITIATED_AGENTS`; # `test_data_sitemap` and `test_robots_user_agents` pin the two surfaces so they # cannot drift back into separate hand-kept lists or policies. # # Every group lists its disallows before `Allow: /`. RFC 9309 picks the longest # match, so order does not matter to it, but a first-match parser (Python's # urllib.robotparser, for one) would otherwise stop at `Allow: /`. User-agent: Googlebot User-agent: Bingbot User-agent: GPTBot User-agent: OAI-SearchBot User-agent: ClaudeBot User-agent: Claude-SearchBot User-agent: Claude-Web User-agent: PerplexityBot User-agent: Google-Extended User-agent: Applebot User-agent: Applebot-Extended User-agent: Amazonbot User-agent: Bytespider User-agent: meta-externalagent User-agent: meta-webindexer User-agent: CCBot Disallow: /mcp Disallow: /v1/ Disallow: /healthz Disallow: /readyz Allow: / Content-Signal: search=yes, ai-input=yes, ai-train=yes # User-initiated agents: they fetch because a person asked their assistant a # question right now, not to index or train. They get the same page access as # above plus the public REST reads under /v1/public/, which answer the same # approved data as the pages. Nothing else under /v1/ is opened. The Allow # comes before the /v1/ disallow so a first-match parser reads it the same way. User-agent: ChatGPT-User User-agent: Claude-User User-agent: Perplexity-User User-agent: meta-externalfetcher Allow: /v1/public/ Disallow: /mcp Disallow: /v1/ Disallow: /healthz Disallow: /readyz Allow: / Content-Signal: search=yes, ai-input=yes, ai-train=yes # Directs crawlers to the apex sitemap; per-host sitemap discovery is via the # landing and the Link: header. Sitemap: https://yentaknows.ai/sitemap.xml