User-agent: * Allow: / Disallow: /results/ Disallow: /api/ # Static asset paths. None of these are pages and none carry indexable copy, # but Cloudflare's Crawler Hints pushes every URL it sees to IndexNow, so Bing # keeps getting pinged about font, logo and data-feed files on every deploy. # Disallowed here so those submissions cannot turn into crawls. # Two paths are deliberately kept OUT of this list, both handled with # X-Robots-Tag: noindex in public/_headers instead: # /_astro/ — the suite is a client-rendered SPA, so Bingbot has to be able # to fetch the JS/CSS bundles or it cannot render a page at all. # /og/ — these are the og:image targets. Facebook, LinkedIn and Slack # crawlers all obey robots.txt, so a Disallow here would break # link previews. noindex is ignored by unfurlers and honoured by # search engines, which is the exact split we want. Disallow: /fonts/ Disallow: /logos/ Disallow: /benchmarks/ # Block automated scrapers and AI training crawlers from harvesting results. # llms.txt / llm.txt are explicitly allowed so agents can discover the # curated, LLM-friendly map even when result HTML and APIs are disallowed. # (Longest-match wins in robots.txt, so Allow for the file + Disallow for / # correctly scopes the grant.) User-agent: GPTBot Allow: /llms.txt Allow: /llm.txt Disallow: / User-agent: ChatGPT-User Allow: /llms.txt Allow: /llm.txt Disallow: / User-agent: CCBot Allow: /llms.txt Allow: /llm.txt Disallow: / User-agent: ClaudeBot Allow: /llms.txt Allow: /llm.txt Disallow: / User-agent: anthropic-ai Allow: /llms.txt Allow: /llm.txt Disallow: / User-agent: Bytespider Allow: /llms.txt Allow: /llm.txt Disallow: / User-agent: PerplexityBot Allow: /llms.txt Allow: /llm.txt Disallow: / User-agent: Amazonbot Allow: /llms.txt Allow: /llm.txt Disallow: / User-agent: FacebookBot Allow: /llms.txt Allow: /llm.txt Disallow: / User-agent: Google-Extended Allow: /llms.txt Allow: /llm.txt Disallow: / User-agent: cohere-ai Allow: /llms.txt Allow: /llm.txt Disallow: / User-agent: Scrapy Allow: /llms.txt Allow: /llm.txt Disallow: / # Written by @astrojs/sitemap at build time (emits sitemap-index.xml and # sitemap-0.xml); scripts/postbuild-sitemap.mjs copies the urlset to # /sitemap.xml. Lists every crawlable page (home, tabs, prompt + model detail) # while /results/ stays out of the index. Sitemap: https://openvibeeval.com/sitemap.xml # Yandex-only directive; every other crawler ignores unknown robots.txt rules. # In-href state params (run deep links on prompt pages, arena and comparator # deep links, models filters) create URL variants whose served HTML is # identical to the clean page. SuiteLayout already emits param-free canonicals # (Google's "alternate page with proper canonical tag" report reflects that), # but Yandex prefers its own Clean-param mechanism: it merges ranking signals # into the clean URL and skips crawling the variants instead of indexing them # separately. Parameter names are case-sensitive, so the camelCase params are # listed exactly as the hrefs emit them. No path prefix: none of these names # means anything different anywhere else on the site. welcome/bye/confirm only # arrive via 302s from the double-opt-in API routes and are scrubbed # client-side on /newsletter. Clean-param: run&runA&runB&prompt&model&harnessA&harnessB&mode&provider&q&search&welcome&bye&confirm