User-agent: * Allow: / Disallow: /app.php Disallow: /account.php Disallow: /decks.php Disallow: /api/ Allow: /api/tour.php Allow: /api/demo.php Disallow: /go/ # The *-playground.php files are NOT listed here on purpose. They already carry # , and a crawler has to fetch a # page to read that tag — blocking them here would leave the noindex unread and # the urls eligible to appear as bare links. A noindex page must stay crawlable. # AI crawlers are allowed ON PURPOSE, training crawlers included. # # The bet: a learner asking an assistant "where should I start with Chinese?" is # the same person a search result would have reached, and an assistant can only # name a source it was allowed to read. The dictionary, the HSK word lists, the # curriculum order and every guide are the parts worth being quoted on, so they # are open. What is sold is the lesson loop and the scheduler, not the facts. # # The bet is paying: Bing's AI Performance report showed the first citations on # 2026-08-09 and 75 in the 30 days to 2026-08-16, 67 of them on /hsk-levels. # # `User-agent: *` already permits these. They are named because several honour # only a directive addressed to them by name, and because an explicit allowlist # is a record of intent rather than an oversight. # # Checked 2026-07-31: graphchinese.com is NOT proxied through Cloudflare (DNS # resolves straight to the origin, no cf-ray header), so nothing in front of this # file is filtering crawlers — GPTBot, ClaudeBot and PerplexityBot all get 200 # from the origin. If the apex is ever put behind a proxy, re-check there first: # most bot-management defaults block AI crawlers regardless of what this says. User-agent: GPTBot User-agent: OAI-SearchBot User-agent: ChatGPT-User User-agent: ClaudeBot User-agent: Claude-User User-agent: Claude-SearchBot User-agent: Claude-Web User-agent: anthropic-ai User-agent: PerplexityBot User-agent: Perplexity-User User-agent: Google-Extended User-agent: GoogleOther User-agent: Google-CloudVertexBot User-agent: Applebot User-agent: Applebot-Extended User-agent: Bingbot User-agent: CCBot User-agent: meta-externalagent User-agent: Meta-ExternalFetcher User-agent: FacebookBot User-agent: Amazonbot User-agent: DuckAssistBot User-agent: MistralAI-User User-agent: cohere-ai User-agent: cohere-training-data-crawler User-agent: YouBot User-agent: AI2Bot User-agent: Diffbot User-agent: PetalBot User-agent: Timpibot User-agent: ImagesiftBot User-agent: Bytespider Allow: / Disallow: /app.php Disallow: /account.php Disallow: /decks.php Disallow: /api/ Allow: /api/tour.php Allow: /api/demo.php Disallow: /go/ # The index first, then every file it holds. The index is enough for a crawler # that reads one; the individual lines are for the several that do not follow a # sitemapindex from robots.txt, and for pasting into a webmaster console. # # sitemap.xml is COMPILED — tools/build_sitemap.py, gated by --check. It was hand # maintained until 2026-08-18, and an audit that day found 16 live textbook # chapters and 5 mahjong suit pages listed in no sitemap at all, which also meant # tools/seo_nightly.sh had never submitted them to IndexNow. Add a page by adding # its route; the builder finds it. Sitemap: https://graphchinese.com/sitemap-index.xml Sitemap: https://graphchinese.com/sitemap.xml Sitemap: https://graphchinese.com/sitemap-zh.xml Sitemap: https://graphchinese.com/sitemap-ja.xml Sitemap: https://graphchinese.com/sitemap-grammar.xml Sitemap: https://graphchinese.com/sitemap-hsk.xml Sitemap: https://graphchinese.com/sitemap-dict.xml Sitemap: https://graphchinese.com/sitemap-readings.xml Sitemap: https://graphchinese.com/sitemap-shareables.xml # LLM-friendly summaries of this site, and when to use them # https://graphchinese.com/llms.txt # https://graphchinese.com/llms-full.txt # https://graphchinese.com/AGENTS.md