documentation
Kohinos v3 Doc générée le

Politique d'indexation — doc publique vs doc interne

La documentation Kohinos est servie en HTML statique. Une partie est destinée au grand public (utilisateurs, adhérents, prestataires, curieux) et doit être trouvable via les moteurs de recherche. Une autre partie est opérationnelle ou sensible (runbooks, sécurité serveur, invariants financiers, webhooks, ADR internes) et ne doit pas apparaître dans Google. Cette page documente le mécanisme et la liste.

⚠ Le noindex est une convention, pas un mur

noindex,nofollow + robots.txt sont respectés par les moteurs honnêtes (Google, Bing, DuckDuckGo, Qwant). Ils n'empêchent rien à un scrapeur hostile ou à un humain qui connaît l'URL. Pour le secret réel (mots de passe, IBAN, jetons API), il faut ne pas publier la page du tout, ou la mettre derrière une authentification HTTP basique au niveau du reverse proxy.

Mécanisme

Trois leviers complémentaires :

  1. Balise meta dans chaque page sensible : <meta name="robots" content="noindex,nofollow"> placée dans le <head>, juste après <meta charset> et <meta name="viewport">. C'est l'indicateur par page, lu par tous les moteurs.
  2. robots.txt à la racine (dochtml/robots.txt) : indique aux crawlers les répertoires entiers à éviter (/devops/, /dev/adr/, /dev/auto/, /versions/) et autorise explicitement les exceptions publiques (/devops/installation.html, /devops/cron.html).
  3. sitemap.xml : ne liste que les pages publiques. Sert d'indicateur positif à Google ("voilà ce qu'on veut indexer"), complémentaire de noindex qui est négatif.

Tableau : que diffuse-t-on, que cache-t-on ?

PageIndexableRaison
index.htmlOuiVitrine de la doc
roadmap.html, changelog.htmlOuiTransparence projet
versions.htmlOuiIndex des releases
versions/<tag>/NonSnapshots historiques — pas besoin de pollution SEO
user/*.htmlOuiDocumentation grand public (adhérents, prestataires…)
dev/index.html, dev/ssa.html, dev/api.htmlOuiDoc dev générique — utile à un contributeur potentiel
dev/ai-workflows.htmlNonConfig interne agents Claude — outillage de dev privé
dev/cryptographie.htmlNonDétails libsodium / format clés — surface d'attaque
dev/invariants.htmlNonLogique financière sensible (règles de conservation)
dev/webhooks.htmlNonDétails gateways HelloAsso / PayZen, secrets et signatures
dev/adr/*.htmlNonDécisions internes — pas un produit de communication
dev/auto/*.htmlNonDoc auto-générée à partir du code — signatures API internes
devops/installation.htmlOuiAide aux replications self-host (cohérent AGPL-3.0)
devops/cron.htmlOuiRéférence d'ordonnancement publique
devops/runbooks.htmlNonProcédures incident — touche à la base financière
devops/securite-serveur.htmlNonDétails hardening — info sensible
devops/observability.htmlNonSeuils d'alerte, structure des métriques internes
devops/backup-restore.htmlNonProcédure de restauration — touche à la donnée prod
devops/self-host.htmlNonDétails infra — utile en privé, pas en SEO
devops/ci-cd.htmlNonDétails pipeline et secrets
devops/pi-low-tech.htmlNonDétails déploiement matériel privé
devops/performance.htmlNonMétriques internes
devops/a11y-audit.htmlNonRapport d'audit interne (si présent)
devops/link-checker.htmlNonRapport interne lien-checker (si présent)
devops/seo-privacy.html (cette page)NonMéta-doc opérationnelle

Vérifier qu'une page est bien protégée

grep -L 'name="robots"' dochtml/devops/*.html
# (doit lister UNIQUEMENT les pages publiques : index.html, installation.html, cron.html)

grep -c 'name="robots"' dochtml/dev/adr/*.html
# (doit afficher 1 pour chacun)

Quand on ajoute une nouvelle page

  1. Décider : publique ou interne ? En cas de doute, par défaut → interne.
  2. Si interne : ajouter <meta name="robots" content="noindex,nofollow"> dans le <head>.
  3. Si interne : vérifier qu'elle est couverte par un Disallow de robots.txt (sinon ajouter une ligne).
  4. Si publique : l'ajouter dans sitemap.xml.
  5. Mettre à jour le tableau ci-dessus si la décision n'est pas couverte par les règles génériques.

Voir aussi