# Blog posts, talks and papers stay open to everyone, including AI crawlers. # Only the photo gallery is restricted: the photographs are all rights reserved # and not licensed for AI training. See https://ericphanson.com/photos/license/ # # Scope note: the images themselves are served from eph-photos.b-cdn.net, a # different origin, so these rules do not reach them. The binding statement for # the image files is the IPTC/PLUS `plus:DataMining` property embedded in every # file, plus the TDMRep declaration at /.well-known/tdmrep.json. # # AI crawler list adapted from https://github.com/ai-robots-txt/ai.robots.txt # Kept verbatim from upstream, including a few tokens that contain spaces or # slashes ("Brightbot 1.0", "Kangaroo Bot", "iaskspider/2.0"). Those are not # valid product tokens under a strict reading of RFC 9309, so a strict parser # may skip them. They are left as-is to stay in sync with upstream, which is # what the bots themselves publish. # `Allow: /` is load-bearing, not decorative. Under RFC 9309 a group ends only # at a rule line -- blank lines, comments and Sitemap: do not end one. Without # a rule here, `*` merges into the AI-crawler group below and inherits its # Disallow rules, which silently de-indexes the gallery from Google and Bing. User-agent: * Allow: / Sitemap: https://ericphanson.com/sitemap.xml # --------------------------------------------------------------------------- # AI training and dataset crawlers: photo gallery disallowed. # --------------------------------------------------------------------------- User-agent: AI2Bot User-agent: Ai2Bot-Dolma User-agent: aiHitBot User-agent: Amazonbot User-agent: anthropic-ai User-agent: Applebot-Extended User-agent: bedrockbot User-agent: Brightbot 1.0 User-agent: Bytespider User-agent: CCBot User-agent: ChatGPT-User User-agent: Claude-Web User-agent: ClaudeBot User-agent: cohere-ai User-agent: cohere-training-data-crawler User-agent: Cotoyogi User-agent: Crawlspace User-agent: Diffbot User-agent: DuckAssistBot User-agent: FacebookBot User-agent: Factset_spyderbot User-agent: FirecrawlAgent User-agent: FriendlyCrawler User-agent: Google-Extended User-agent: GoogleOther User-agent: GoogleOther-Image User-agent: GoogleOther-Video User-agent: GPTBot User-agent: iaskspider/2.0 User-agent: ICC-Crawler User-agent: ImagesiftBot User-agent: img2dataset User-agent: imgproxy User-agent: ISSCyberRiskCrawler User-agent: Kangaroo Bot User-agent: meta-externalagent User-agent: Meta-ExternalAgent User-agent: meta-externalfetcher User-agent: Meta-ExternalFetcher User-agent: MistralAI-Training User-agent: NovaAct User-agent: omgili User-agent: omgilibot User-agent: PanguBot User-agent: Perplexity-User User-agent: PerplexityBot User-agent: PetalBot User-agent: Scrapy User-agent: SemrushBot-OCOB User-agent: SemrushBot-SWA User-agent: Sidetrade indexer bot User-agent: Timpibot User-agent: VelenPublicWebCrawler User-agent: Webzio-Extended User-agent: YouBot Disallow: /photos/ Disallow: /tags/photography/ # The site-root search index carries 138 photo entries -- caption, full # taxonomy, and a direct CDN thumbnail URL each. Leaving it open would hand a # crawler the whole gallery in one allowed file, which is the /photos/ rule # undone. It is a machine surface, not "the writing". Disallow: /index.json