L’indexation efficace des pages web est essentielle pour la visibilité sur les moteurs de recherche. Cependant, les sites dont le chargement dépend fortement du JavaScript peuvent rencontrer des difficultés à être correctement explorés.
Sir Cache résout ce problème en générant des versions statiques des pages, garantissant ainsi des réponses rapides et une meilleure performance d’indexation via le rendu dynamique (pratique recommandée conforme aux directives de Google).
Son implémentation est flexible, pouvant être intégrée à des CDNs tels que Cloudflare et CloudFront ou configurée directement sur des serveurs web comme Apache et Nginx. L’intégration la plus efficace est au niveau du CDN.
Ce guide présente les prérequis, les étapes de configuration et des exemples pratiques pour l’installation de Sir Cache dans votre infrastructure. Il propose des modèles d’installation pour différents CDNs, mais il est également possible d’adapter la logique à d’autres formats si nécessaire.
Installation
Hypothèses
Pour installer Sir Cache sur votre site, vous devez essentiellement effectuer les tâches suivantes :
1. Être capable de détecter les accès provenant de Googlebot-mobile
2. Si une requête provient de Googlebot-mobile, être capable de modifier l’en-tête HOST de manière transparente (changer le domaine effectivement appelé)
3. Être capable de créer des exceptions pour les ressources que vous ne souhaitez pas servir statiquement (ceci permet de garder les prix produits à jour pour Google Shopping), ou lorsque l’User-Agent contient un indicateur spécial (pour éviter les boucles)
4. Être capable d’ajouter une chaîne présente dans un user-agent, ou une plage d’IP à une liste blanche, si votre infrastructure utilise un WAF
L’opération de base peut être résumée comme suit si l’on considère que votre site est https://www.domain.com.br/ et que votre compte Sir Cache renvoie les données vers https://i4c-domain.simplex.live/ :
1. Googlebot-Mobile accède à l’URL : https://www.domain.com.br/infos/about-us.html
2. Votre infrastructure doit alors détecter l’appel de Googlebot et rediriger la requête (type proxy transparent) en modifiant le HOST www.domain.com.br, qui est remplacé par i4c-domain.simplex.live
3. Ainsi, votre infrastructure effectuera l’appel vers https://i4c-domain.simplex.live/infos/about-us.html (en transmettant tous les en-têtes du client, tels que user-agent, cookies, etc.)
4. L’infrastructure de Simplex reçoit cet appel et renvoie à votre infrastructure la version statique optimisée de la page concernée
5. Votre infrastructure transmet ensuite le contenu reçu à Googlebot-Mobile pour l’URL initialement demandée : https://www.domain.com.br/infos/about-us.html
Annulation du risque de boucle infinie
Lorsque Sir Cache reçoit un appel de https://www.domain.com.br/infos/about-us.html, s’il n’existe pas encore de contenu statique généré, nous devons retourner à votre origine pour obtenir le contenu de la page et en générer une version statique.
Ce retour à l’origine se fait en utilisant les en-têtes fournis (User-Agent, Cookies, etc.), potentiellement avec un user-agent Googlebot-Mobile, ce qui peut provoquer une boucle d’appels infinie…
Pour éviter ce risque, cet appel depuis notre système vers votre origine est effectué avec l’ajout de "SimplexBypass" dans le user-agent ; cela empêche la boucle.
Exemples pratiques
Exemple 1 - Intégration avec le CDN Cloudflare
Voici le code typique pour un Worker Cloudflare
Exemple 2 - Intégration avec le CDN CloudFront
Étapes et exemple de configuration
Étape 1 : Créer une fonction Lambda
1. Accédez à la console AWS Lambda
2. Créez une nouvelle fonction Lambda. Choisissez l’option « Créer à partir de zéro »
3. Donnez un nom à votre fonction et sélectionnez un environnement d’exécution (Node.js ou Python sont des choix courants)
4. Dans « Permissions », sélectionnez ou créez un rôle d’exécution avec les autorisations de base Lambda et l’accès aux logs CloudFront
5. Cliquez sur « Créer une fonction »
Étape 2 : Écrire la logique de la fonction
Voici un exemple de fonction Node.js qui vérifie le User-Agent et modifie la requête si nécessaire
Étape 3 : Déployer la fonction Lambda sur Edge
1. Dans la console Lambda, sélectionnez Actions > Déployer sur Lambda@Edge
2. Configurez les options de déploiement :
3. Distribution CloudFront : sélectionnez votre distribution
4. Événement CloudFront : sélectionnez « Origin Request » pour modifier les requêtes avant qu’elles n’atteignent l’origine
5. Comportement du cache : spécifiez quel comportement sera affecté, ou choisissez « Default (*) » pour appliquer à tous
6. Confirmez le déploiement
Étape 4 : Tester la configuration
Après le déploiement de votre fonction vers Lambda@Edge, attendez quelques minutes pour que les changements soient propagés globalement.
Testez votre site pour vérifier que les requêtes sont bien modifiées et redirigées comme prévu en fonction du User-Agent de Googlebot-Mobile.
Exemple 3 - Intégration avec Apache2
Pour implémenter une logique similaire à celle du Worker Cloudflare sur un serveur Apache 2, utilisez la réécriture d’URL et configurez un proxy inverse avec les modules mod_rewrite ou mod_proxy.
Cette méthode permet de détecter le User-Agent des requêtes entrantes et, s’il s’agit de Googlebot-Mobile sans "SimplexBypass", de rediriger la requête vers un autre domaine ou sous-domaine.
Hypothèses
→ Apache 2 installé : assurez-vous que le serveur Apache est bien installé
→ Activer les modules : activez les modules mod_rewrite et mod_proxy (et mod_proxy_http si vous utilisez un proxy HTTP)
Vous pouvez les activer avec la commande a2enmod sur les systèmes Debian/Ubuntu
Accès au fichier de configuration
Vous pouvez accéder au fichier de configuration de votre site, généralement situé dans /etc/apache2/sites-available/ ou via un fichier .htaccess à la racine du site.
Exemple de configuration
Ajoutez les lignes suivantes dans votre fichier de configuration Apache ou .htaccess :
Exemple 4 - Intégration avec Nginx
Hypothèses
→ Nginx installé : assurez-vous que Nginx est bien installé sur le serveur
→ Configuration SSL : si le domaine utilise https://, configurez correctement le SSL, y compris les certificats (ex. : Let’s Encrypt)
→ Accès aux fichiers de configuration : accédez aux fichiers Nginx situés dans /etc/nginx/sites-available/ ou /etc/nginx/nginx.conf pour les configurations globales
Exemple de configuration