# RailRoute — https://www.railroute.in # Canonical host is https://www.railroute.in; the apex redirects here. User-agent: * Allow: / # API surface: JSON only, nothing to index, and every route is reachable # from a rendered page anyway. Disallow: /api/ # Development scratch pages. Also noindex via X-Robots-Tag at the edge. Disallow: /demo Disallow: /modal-demo # Auth callbacks and account screens are per-user and never public. Disallow: /api/auth/ # The admin panel. Listed for crawlers that honour this file, and protected # by authentication for the ones that do not — a stranger gets the same 404 # a nonexistent route gives. See src/lib/admin/guard.ts. Disallow: /admin Disallow: /admin/ Disallow: /api/admin/ # Search results. Every /search?from=&to= URL is noindex already, and # Search Console counted 9,873 of them crawled by 2026-10-10 while 21,691 # real pages waited in "Discovered - currently not indexed". The crawl is # the budget those pages need. Bare /search stays open. The assistant group # below keeps /search, because those agents fetch it for a person. Disallow: /search? # --------------------------------------------------------------- # Assistants and retrieval crawlers. # # Named explicitly rather than left to the wildcard, because several of # these read only a rule addressed to them and a couple treat the absence # of one as a reason not to fetch at all. The public pages are open on # purpose: the timetable pages are published schedule information and the # search is the product. The API is closed to all of them — it is JSON # with nothing to cite, and every route behind it is reachable from a # rendered page. # # NOTE THAT THIS PROTECTS NOTHING. robots.txt is advisory and honoured only # by clients that choose to; `Disallow: /api/` saves crawl budget and is not # access control. What protects the API is authentication and rate limiting. # # Google-Extended is not a crawler. It controls whether pages Googlebot has # already fetched may be used for Gemini grounding and training, and has no # effect on Search indexing. Listed for the avoidance of doubt. # # THE NAMES BELOW WERE CHECKED AGAINST THE OPERATORS' OWN DOCUMENTATION, # not copied from an SEO post. As of August 2026: # # OpenAI (developers.openai.com/api/docs/bots) # OAI-SearchBot search indexing for ChatGPT search # ChatGPT-User fetches a page because a person asked about it # GPTBot training # Anthropic (support.claude.com, article 8896518) # Claude-SearchBot search indexing # Claude-User fetches a page because a person asked about it # ClaudeBot training # # Claude-User WAS MISSING FROM THIS FILE and is the one that matters most of # the three: it is the agent that fetches a page when somebody asks Claude a # question this site can answer. Claude-Web was listed and has been removed — # Anthropic no longer documents it, and a rule addressed to a retired token # is noise that makes the real ones harder to audit. # # THE TRAINING CRAWLERS STAY ALLOWED, which is the policy this file already # had rather than a new decision. It is recorded here so that changing it is # deliberate: appearing in AI search results does NOT require allowing # training, the two are separate crawlers with separate tokens, and the # search ones above would keep working unchanged if the training ones were # disallowed tomorrow. # --------------------------------------------------------------- User-agent: GPTBot User-agent: OAI-SearchBot User-agent: ChatGPT-User User-agent: ClaudeBot User-agent: Claude-SearchBot User-agent: Claude-User User-agent: PerplexityBot User-agent: Perplexity-User User-agent: Google-Extended User-agent: Applebot-Extended User-agent: Amazonbot User-agent: cohere-ai User-agent: Meta-ExternalAgent User-agent: CCBot Allow: / Disallow: /api/ Disallow: /admin Disallow: /admin/ Disallow: /api/admin/ Disallow: /demo Disallow: /modal-demo Disallow: /map-demo Crawl-delay: 10 Sitemap: https://www.railroute.in/sitemap.xml # A curated map of this site for agents, in llms.txt v2 form. Not a # directive — robots.txt has no such field, and no crawler is expected to # read this line. It is here because it is where a person looks first. # https://www.railroute.in/llms.txt