#
# robots.txt
#
# This file is to prevent the crawling and indexing of certain parts
# of your site by web crawlers and spiders run by sites like Yahoo!
# and Google. By telling these "robots" where not to go on your site,
# you save bandwidth and server resources.
#
# This file will be ignored unless it is at the root of your host:
# Used: http://example.com/robots.txt
# Ignored: http://example.com/site/robots.txt
#
# For more information about the robots.txt standard, see:
# http://www.robotstxt.org/robotstxt.html
User-agent: *
# CSS, JS, Images
Allow: /core/*.css$
Allow: /core/*.css?
Allow: /core/*.js$
Allow: /core/*.js?
Allow: /core/*.gif
Allow: /core/*.jpg
Allow: /core/*.jpeg
Allow: /core/*.png
Allow: /core/*.svg
Allow: /profiles/*.css$
Allow: /profiles/*.css?
Allow: /profiles/*.js$
Allow: /profiles/*.js?
Allow: /profiles/*.gif
Allow: /profiles/*.jpg
Allow: /profiles/*.jpeg
Allow: /profiles/*.png
Allow: /profiles/*.svg
# Directories
Disallow: /core/
Disallow: /profiles/
# Files
Disallow: /README.md
Disallow: /composer/Metapackage/README.txt
Disallow: /composer/Plugin/ProjectMessage/README.md
Disallow: /composer/Plugin/Scaffold/README.md
Disallow: /composer/Plugin/VendorHardening/README.txt
Disallow: /composer/Template/README.txt
Disallow: /modules/README.txt
Disallow: /sites/README.txt
Disallow: /themes/README.txt
Disallow: /web.config
# Paths (clean URLs)
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /filter/tips
Disallow: /node/add/
Disallow: /search/
Disallow: /user/register
Disallow: /user/password
Disallow: /user/login
Disallow: /user/logout
Disallow: /media/oembed
Disallow: /*/media/oembed
# Paths (no clean URLs)
Disallow: /index.php/admin/
Disallow: /index.php/comment/reply/
Disallow: /index.php/filter/tips
Disallow: /index.php/node/add/
Disallow: /index.php/search/
Disallow: /index.php/user/password
Disallow: /index.php/user/register
Disallow: /index.php/user/login
Disallow: /index.php/user/logout
Disallow: /index.php/media/oembed
Disallow: /index.php/*/media/oembed
Disallow: /search*
Disallow: /search/*
Disallow: /country/*?*
Disallow: /publications?*
Disallow: /worldmap?*
# Prevent OpenAI, GPTBot, Amazonbot, etc. (won’t stop them, but polite bots obey).
# These bots often cause high load and don’t respect crawl-delay or disallow rules.
User-agent: GPTBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
User-agent: Amazonbot
Disallow: /
User-agent: meta-externalagent
Disallow: /
User-agent: facebookexternalhit
Disallow: /
User-agent: OAI-SearchBot
Disallow: /
User-agent: MJ12bot
Disallow: /
User-agent: BLEXBot
Disallow: /
User-agent: SemrushBot
Disallow: /
User-agent: DotBot
Disallow: /
User-agent: AhrefsBot
Disallow: /
User-agent: Yandex
Disallow: /
User-agent: PetalBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Sogou
Disallow: /
User-agent: ZoominfoBot
Disallow: /
User-agent: MauiBot
Disallow: /
User-agent: AlibabaBot
Disallow: /
# Limiting Friendly Bots with Crawl Delay.
# This doesn’t enforce limits, but compliant bots (like Bingbot) will follow it.
# Note: Googlebot ignores Crawl-delay, so this is mainly for Bing, DuckDuckGo, etc.
User-agent: *
Crawl-delay: 10
# Protecting Resource-Heavy Endpoints.
# - /contextual/render is a Drupal AJAX endpoint that shouldn’t be hit by bots.
# - /pantheon_healthcheck is internal and doesn't need indexing.
User-agent: *
Disallow: /contextual/render
Disallow: /pantheon_healthcheck