Fermer l’indexation du site de recherche via Kubernetes HAProxy Ingress

Dans Kubernetes, les ressources Ingress sont fréquemment utilisées comme contrôleurs de trafic, offrant un accès externe aux services situés dans le cluster. Ingress est essentiel pour routiner le trafic entrant vers votre service ; cependant, il peut y avoir des scénarios où vous souhaitez empêcher les moteurs de recherche d’indexer le contenu de votre service : cela pourrait s’agir d’un environnement de développement ou autre chose.

Ce billet de blog vous guidera à travers le processus de blocage de l’indexation de votre site sur Kubernetes Ingress en utilisant un fichier robots.txt, empêchant les robots de moteur de recherche de crawler et d’indexer votre contenu.

Prérequis

Pour suivre ce tutoriel, vous devriez avoir une base de connaissance de la structure de base de Kubernetes, des ressources Ingress et du contrôleur officiel HAProxy pour Ingress. Vous aurez également besoin d’accès au cluster Kubernetes et des permissions nécessaires pour faire des changements de configuration.

Notez que pour les besoins de cet article, je suppose que le contrôleur HAProxy pour Ingress est configuré en tant que contrôleur par défaut. Sinon, si vous n’avez pas sélectionné HAProxy comme contrôleur par défaut, vous devez ajouter l’option ingressClassName à tout exemple de code Ingress.

Étape 1 : Créer une ressource Ingress Kubernetes

Dans la première partie de notre voyage, nous configurons une petite ressource Ingress pour exposer notre service en dehors du cluster Kubernetes. Attention : pour le moment, tous les web crawlers auront accès au service. Pour appliquer le code ci-dessous, utilisez la commande kubectl apply -f ingress.yaml.

YAML

 

Étape 2 : Modifier la configuration Ingress

Le fichier robots.txt est utilisé pour contrôler comment les moteurs de recherche indexent les documents. Ce fichier spécifie les URL que les crawlers de moteurs de recherche peuvent accéder sur votre site Web. Le fichier le plus basique qui limite l’accès au service Web ressemble à ceci :

Plain Text

 

HAProxy n’exige pas que vous ajoutiez ce fichier à votre serveur Web ou site Web. Cela peut être réalisé avec la configuration suivante, qui doit être ajoutée à la section backend pour le groupe spécifique de serveurs :

Plain Text

 

Les annotations K8S régissent toutes les manipulations de la configuration frontend/backend de HAProxy pour une seule ressource Ingress. La liste complète des annotations HAProxy peut être trouvée dans la documentation officielle sur GitHub.

Dans notre cas, nous devons utiliser haproxy.org/backend-config-snippet avec le snippet HAProxy pour bloquer toute indexation. Pour ce faire, éditez, ouvrez votre fichier YAML de ressource Ingress, et ajoutez l’annotation suivante à la section metadata :

YAML

 

Étape 3 : Appliquer les modifications de configuration

Après avoir modifié le fichier YAML d’Ingress, enregistrez-le et appliquez-le au cluster Kubernetes en utilisant la commande kubectl : kubectl apply -f ingress.yaml.

Le contrôleur Ingress détectera les modifications et mettra à jour la configuration en conséquence.

Étape 4 : Vérifier la Configuration

Examinez le fichier robots.txt généré pour confirmer que la prévention d’indexation fonctionne correctement. Le contrôleur Ingress génère ce fichier en fonction des annotations que vous fournissez.

Récupérez l’IP externe ou le domaine associé à votre ressource Ingress et ajoutez /robots.txt à l’URL. Exemple :

Plain Text

 

Comme nous pouvons le voir, la réponse contient un fichier robots.txt qui empêche toute indexation par les moteurs de recherche.

Étape 5 : Tester la Prévention d’Indexation

Pour vérifier que les moteurs de recherche neindexent pas votre site, vous pouvez effectuer une recherche sur votre site sur les moteurs de recherche populaires. Notez que les résultats de recherche peuvent prendre du temps pour refléter les modifications, donc l’état d’indexation peut ne pas être pleinement mis à jour tout de suite.

Conclusion

Les annotations facilitent l’évitement de l’indexation par les moteurs de recherche lors de l’utilisation d’HAProxy Kubernetes Ingress. En ajoutant l’annotation appropriée à votre ressource Ingress, vous pouvez interdire aux robots de moteurs de recherche de crawler et d’indexer le contenu de votre site web. Une approche similaire peut être utilisée avec d’autres contrôleurs d’ingress, tels que Nginx, Traefic et d’autres encore. Une annotation similaire peut également être utilisée pour les ressources K8S Gateway API, qui remplacent activement les Ingress.

Enfin, robots.txt est une méthode honorée depuis longtemps pour que les créateurs de sites web indiquent si leur site doit être crawlé par divers bots ou non. Cependant, il semble que les crawlers d’IA de grande plateforme de langue (LLM) ignorent souvent le contenu de robots.txt et crawlent votre site malgré tout. Pour éviter de telles situations, utilisez la sécurité par mot de passe, noindex, ou les fonctionnalités d’équilibreur de charge d’entreprise comme load balancer de HAProxy AI-crawler, qui peuvent également être configurées comme une annotation K8S.

Source:
https://dzone.com/articles/close-site-search-indexing-via-kubernetes-haproxy