Les CDN (les Content Delivery Network) sont de plus en plus utilisés par les sites internet dès qu’ils atteignent un certain volume de trafic.
Parmi les CDN les plus utilisés, on peut citer Cloudflare et Akamai, mais aussi Fastly, Amazon CloudFront, Google Cloud CDN…
Au départ, on utilisait le plus souvent les CDN :
- soit pour réduire les temps de latence pour des sites consultés depuis les quatre coins de la planète
- soit pour optimiser la bande passante pour le téléchargement de médias (images, et surtout vidéos)
Aujourd’hui, ils servent aussi comme « barrière de sécurité » contre les attaques DDOS ou pour garantir la disponibilité des sites internet.
Les parts de marché des différents CDN en 2021 (source Scalahosting)
Les CDN sont de plus populaires, et, si l’on en croit leurs argumentaires commerciaux, sont excellents pour votre SEO.
Ce qui est vrai en principe, mais pas toujours ! Il y’a quelques points d’attention.
Google confirme que les CDN sont intéressants pour être mieux crawlés
Dans un billet sur le blog Google destinés aux développeurs, Martin Splitt et Gary Illyes donnent beaucoup de détails intéressants sur le comportement de Googlebot quand votre site utilise un CDN.
Vous trouverez ce billet ici:
https://developers.google.com/search/blog/2024/12/crawling-december-cdns?hl=fr
Voici ce que l’on apprend :
Notre infrastructure d’exploration est conçue pour permettre des vitesses d’exploration plus élevées sur les sites qui reposent sur un CDN. Cette information est déduite de l’adresse IP du service qui diffuse les URL auxquelles nos robots d’exploration accèdent. Cette méthode fonctionne bien, du moins la plupart du temps.
Gary Illyes et Martin Splitt
En clair, si vous passez par un CDN, vous avez activé un nouveau pouvoir magique qui vous permet de booster considérablement votre budget de crawl :
Si votre serveur commence à répondre lentement face à un nombre accru de requêtes d’exploration, une limitation est appliquée du côté de Google pour éviter que votre serveur ne soit surchargé. Le seuil de cette limitation est beaucoup plus élevé lorsque notre infrastructure d’exploration détecte que votre site repose sur un CDN et suppose qu’il est possible d’envoyer plus de requêtes simultanées, car votre serveur peut probablement le gérer, ce qui permet d’explorer votre boutique en ligne plus rapidement.
Gary Illyes et Martin Splitt
Oui, mais il faut « réchauffer » le cache du CDN pour que cela marche vraiment
Le comportement de crawl de Google est très différent d’un utilisateur normal. Il télécharge des ressources dans un ordre qui n’est fixé que par ses besoins d’exploration, il ne suit pas de parcours défini. Et il va appeler beaucoup de pages qui sont rarement consultées par les utilisateurs humains.
Or les serveurs Edge des CDN fonctionnent comme des caches , et les ressources stockées au plus près des utilisateurs expirent régulièrement, en fonction des instructions de mise en cache.
Si on demande une page web qui est dans le cache du serveur Edge : le téléchargement sera très rapide.
Si le contenu a expiré, alors le CDN deviendra « transparent » : au lieu de renvoyer lui-même la ressource demandée, il va juste jouer le rôle de « passe plat » et transmettre la requête à votre serveur web (l’infrastructure « origine » selon le jargon consacré).
Et là : pas de gain de performance. Mais alors aucun.
Et devinez qui, dans la majorité des cas, va tomber sur des pages « expirées » et va gentiment à la fois déclencher la mise en cache du contenu pour les prochaines visiteurs (merci Google) , et se prendre des performances digne d’un escargot asthmatique : Googlebot.
Donc il est fréquent de ne pas voir de vrais gains de performance dans le rapport « vitesse d’exploration » de la GSC pour un site, même en présence d’un CDN. Et il n’est pas rare d’avoir des performances pour Googlebot très dégradées par rapport à des utilisateurs normaux.
La solution : le « warming de cache »
Pour éviter ce phénomène, très fréquent mais frustrant, il y’a une solution très simple. Il suffit d’écrire un script qui va appeler les urls des pages à précharger dans le cache. Très souvent, on se sert des sitemaps XML comme source d’urls pour ces scripts.
Il y’a ensuite deux points importants à ne pas négliger :
- le script doit appeler des urls depuis une infrasture qui se situe hors de votre infra protégée et/ou accélérée par votre CDN (sinon cela ne chargera rien dans votre CDN)
- Les serveurs Edge de votre CDN sont potentiellement très nombreux. Il faut se limiter aux requêtes point vers les serveurs Edge prioritaires (ceux principalement utilisés par Googlebot => vous trouverez l’information dans les logs). En clair, si Googlebot crawle depuis les USA et la France, on peut n’effectuer d’appels d’urls que depuis les USA et la France !
- et si votre site compte des millions de page, c’est une bonne idée de ne pas appeler toutes les urls en même temps, mais d’étaler le préchargement sur plusieurs heures.
Même si vous ne parvenez pas à mettre en cache plus d’une page sur deux, les résultats pour votre budget de crawl et votre vitesse d’exploration risquent d’être impressionnants !
Si vous n’avez personne pour coder et si vous voulez vous simplifier la vie et aller plus vite, il y’a même des outils comme Cache Warmer pour Cloudflare
Les autres points d’attention
En principe, tous les CDN savent que ce n’est pas une bonne idée de bloquer le crawl de Googlebot. Par défaut, ils ne le font évidemment pas.
Mais je rencontre souvent des implémentations où Googlebot est bloqué !
Vous utilisez un CDN uniquement pour vos ressources (images, js, fontes etc…) mais pas vos pages web ? Ce n’est pas optimal
Attention, si vous n’utilisez un CDN que pour accélérer le chargement de ressources comme des bibliothèques javascript ou des images, autant cela améliorera les performances pour les utilisateurs normaux, autant ce n’est plus tout à fait vrai pour Googlebot.
C’est dû à sa manière de crawler : il appelle les urls par l’IP, et pas par host/nom de domaine. Et ces données sont mises en cache (pendant 24h) pour que le processus soit le plus efficace possible.
Mais si vous l’obligez à changer d’IP entre le code HTML et les CSS pour crawler votre site, le crawl devient beaucoup moins efficace. Vous l’obligez à passer par des résolutions de noms de domaine beaucoup, beaucoup plus souvent. Pensez-y !
La solution : dans tous les cas, mettez tout le site derrière le CDN, et cela résout le problème.
Est-ce réellement bloquant ? Non, c’est juste sous optimal, contrairement aux cas qui suivent.
Quand vos paramètrages bloquent Googlebot
Vérifiez que les IP de Googlebot n’ont pas été bloquées automatiquement
Sur la plupart des CDN existent des systèmes de sécurité qui bloquent automatiquement toutes les IP qui ont un comportement anormal ou qui consomment trop de ressources.
Pensez à vérifier régulièerment que, parmi ces IP, ne figurent pas des IP correspondant à Googlebot. Cela arrive rarement, mais cela arrive.
Désactivez les captcha pour Googlebot
Autre mesure classique pour les visiteurs de type bot : le captcha ! Pour vérifier si votre CDN envoie des captcha à Googlebot, testez les urls dans la Google Search Console (inspecter l’url puis tester l’url active)
Un captcha sur Cloudflare
Et quand vos CDN et/ou vos serveurs web dysfonctionnent
Prenez garde à ne pas renvoyer d’erreurs critiques via votre CDN (les codes 50x, à l’exception du code 503).
En particulier, quand votre serveur web est down, il est fréquent que le CDN se mette à renvoyer un code 502 « Bad Gateway ». Cela signifie qu’il a besoin de joindre le serveur pour vous répondre, mais celui ci ne répond pas. Si le problème persiste, Google va rapidement désindexer les urls concernées.
La solution consiste à savoir renvoyer des codes 429/503, qui indiquent que le serveur est indisponible. Googlebot repassera plus tard quand la panne sera réparée, et entre temps la page indexée restera dans l’index.
Parmi les autres erreurs « fatales » causées par les CDN pour votre référencement :
- les mauvaises configuration de DNS (qui peuvent impacter Googlebot mais pas les utilisateurs normaux dans certains cas particuliers)
- les délais d’inactivité du réseau : plus rares, mais quand votre CDN ne répond pas à Googlebot dans le délai attendu, vos pages seront désindexées. Cela arrive de temps en temps en cas d’attaques massives sur votre site ou le CDN, ou une mauvaise configuration
Conclusion : les CDN sont conseillés pour le SEO, mais il faut les exploiter et les configurer correctement
Même si les CDN utilisent souvent leurs atouts pour le SEO dans leur argumentaire commercial (à juste titre), ne pensez-pas qu’une mauvaise configuration / utilisation des CDN n’aura aucun impact fâcheux sur le crawl de Googlebot.
Apprenez à connaître ces pièges.
Et voici les pages concernant les paramétrages pour les bots de moteuirs de recheche pour les CDN les plus populaires
- Cloudflare: https://developers.cloudflare.com/bots/get-started/free/#visibility
- Akamai: https://www.akamai.com/products/bot-manager
- Fastly: https://www.fastly.com/products/bot-management
- F5: https://clouddocs.f5.com/bigip-next/20-2-0/waf_management/waf_bot_protection.html
- Google Cloud: https://cloud.google.com/armor/docs/bot-management