Dans un écosystème auto-hébergé composé de nombreux services (Docker, instances Web, outils tiers), la gestion du fichier robots.txt est souvent un casse-tête. Par défaut, soit le service ne propose rien (erreur 404), soit il propose un fichier générique qui ne protège pas les zones sensibles (comme l’administration ou les API), soit il est écrasé à chaque mise à jour du conteneur.
L’objectif de cette documentation est de montrer comment déléguer la gestion du robots.txt à Nginx Proxy Manager (NPM). Au lieu de laisser l’application gérer ce fichier, c’est le reverse proxy qui intercepte la requête et renvoie une réponse personnalisée. Cela permet d’harmoniser ses règles, de sécuriser ses services et de bloquer les robots d’intelligence artificielle de manière uniforme sur toute son infrastructure.
/admin, /settings, /api) avant même que l’application ne soit sollicitée.Pour chaque service exposé via NPM, la procédure est identique :
/robots.txt et servira le contenu défini.⚠️ Certaines configurations contiennent un lien vers le Sitemap Blabla Linux ! Remplacer ce lien par le vôtre, ou supprimer le ✔️
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "Sitemap: https://blablalinux.be/sitemap.xml\nSitemap: https://blablalinux.be/news-sitemap.xml\n\nUser-agent: *\nDisallow: /wp-admin/\nAllow: /wp-admin/admin-ajax.php\nDisallow: /wp-content/plugins/\nDisallow: /wp-content/cache/\nDisallow: /wp-content/themes/*.zip\nAllow: /wp-content/uploads/\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "Sitemap: https://wiki.blablalinux.be/sitemap.xml\n\nUser-agent: *\nDisallow: /a/dashboard\nDisallow: /a/settings\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /admin\nDisallow: /api/\nDisallow: /search\nAllow: /w/\nAllow: /c/\nAllow: /videos\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /media_proxy/\nDisallow: /interact/\nDisallow: /api/v1/instance/domain_blocks\nDisallow: /admin\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /admin/\nDisallow: /includes/\nDisallow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /user/login\nDisallow: /user/sign_up\nDisallow: /repo/migrate\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /settings\nDisallow: /admin\nDisallow: /login\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /admin\nDisallow: /api/\nAllow: /subscription/form\nAllow: /archive\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /admin\nAllow: /\n";
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "Sitemap: https://fichiers.blablalinux.be/sitemap.xml\n\nUser-agent: *\nDisallow: /files/\nDisallow: /*.png\nDisallow: /*.ico\nDisallow: /*.old\nAllow: /\n";
}
Pour parfaire cette installation, j’intègre au début de chaque fichier robots.txt une signature qui renvoie vers une page dédiée de mon Wiki.
Elle sert de référence publique pour expliquer aux administrateurs de robots (et notamment ceux des intelligences artificielles comme OpenAI, Claude ou Perplexity) que le blocage est géré de manière proactive directement au niveau du serveur. Cela évite de répéter de longues listes de blocage dans chaque fichier et centralise l’explication de ma démarche éthique et technique.
Lien de documentation utilisé : https://wiki.blablalinux.be/fr/blocage-robots-ia-nginx-proxy-manager