28 avril 2023

Pourquoi vous ne devriez pas utiliser WP Rocket en raison du dernier bogue modifié

Nous avons découvert un bug sérieux affectant WP Rocket qui pourrait sérieusement affecter le référencement de votre site.

WP Rocket est l'un des plugins WordPress les plus utilisés pour améliorer les performances du site Web. D'après les déclarations commerciales rapportées sur leur site internet, le plugin est actuellement utilisé par plus de 3 millions d'installations WordPress.

Nombre d'installations de WP Rocket

Cependant, compte tenu de l'énorme circulation, des multiples plans de licence et du fait que WP Rocket est l'un des plugins WordPress les plus convoités et les plus piratés de tous les temps, il est prudent de dire que WP Rocket fonctionne actuellement sur au moins 12 millions de sites WordPress dans le monde.

Ce plugin offre de nombreuses fonctionnalités utiles pour optimiser la mise en cache du site et améliorer les temps de chargement des pages. WP Rocket enregistre le cache sous forme de fichiers sur disque et propose de nombreuses options de configuration pour optimiser les performances du site.

Bien que WP Rocket soit une solution de mise en cache très populaire par rapport à d'autres concurrents, a un bogue sérieux qui pourrait affecter le classement et l'indexation de votre site. Ce bogue affecte le champ "dernière modification" qui est utilisé par les moteurs de recherche pour comprendre si une page a été modifiée récemment. Si ce champ n'est pas mis à jour correctement, les moteurs de recherche risquent de ne pas indexer correctement votre site et cela pourrait entraîner une diminution du trafic organique.

Par conséquent, il est important de prendre en compte ce bogue WP Rocket lorsque vous envisagez d'utiliser ce plugin pour votre activité en ligne. Dans ce texte, nous allons détailler ce bug et les conséquences qu'il pourrait avoir sur votre site. Si vous souhaitez tirer le meilleur parti de votre activité en ligne et vous assurer que votre site est bien classé dans les moteurs de recherche, vous devez éviter d'utiliser WP Rocket jusqu'à ce que ce bogue soit définitivement corrigé.

Un aperçu de l'en-tête HTTP de dernière modification.

L'en-tête HTTP "Last-Modified" est un champ d'en-tête utilisé dans la communication client-serveur pour fournir des informations sur la date et l'heure de la dernière modification d'une ressource Web. Ce champ est envoyé par le serveur au client dans le cadre de la réponse HTTP e contient la date et l'heure de la dernière modification de la ressource.

En-tête de la dernière modification

Son objectif principal est d'aider les clients à déterminer si une ressource Web a changé depuis le dernier accès, afin qu'ils puissent éviter de télécharger à nouveau la même ressource si elle n'a pas changé.

De cette manière, le champ "Dernière modification" permet de réduire le trafic réseau et d'améliorer les performances du site Web. Lorsqu'un client demande une ressource, il peut inclure un champ d'en-tête "If-Modified-Since" dans sa demande, contenant la date et l'heure de la dernière modification de la ressource qu'il a enregistrée. Si la ressource n'a pas été modifiée depuis le dernier accès, le serveur répond par un statut « 304 Not Modified », évitant ainsi de retransférer la ressource.

Dernière modification et robots d'exploration Google.

Le champ d'en-tête HTTP "Last-Modified" fournit des informations sur la date et l'heure de la dernière modification d'une ressource Web. Cependant, si ce champ n'est pas correctement configuré et renvoie toujours la date du jour, sans tenir compte de la date d'effet de la dernière modification de la ressource, certaines conséquences imprévues peuvent se produire pour les robots d'exploration de Google.

En particulier, si l'en-tête "Last-Modified" renvoie toujours la date et l'heure actuelles, les robots d'exploration de Google pourraient interpréter à tort la ressource comme une nouvelle page, même si elle n'a pas été modifiée. Cela pourrait entraîner une diminution des performances du site Web en termes d'indexation et de positionnement dans les résultats de recherche.

De plus, si le champ "Last-Modified" n'est pas défini correctement, le serveur peut envoyer une réponse "200 OK" même si la ressource n'a pas été modifiée depuis son dernier accès. Cela pourrait entraîner une augmentation du trafic réseau et une diminution des performances du site Web, car les robots d'exploration de Google pourraient télécharger à nouveau la même ressource, même si elle n'a pas été modifiée.

Budget de dernière modification et de crawl Google Bot incorrect.

Le budget d'exploration de Google représente la quantité de ressources d'un site Web que le moteur de recherche est prêt à consacrer à l'exploration et à l'indexation du site Web. Ce budget dépend de nombreux facteurs, notamment la qualité du site Web, la fréquence de mise à jour du contenu et la vitesse du site Web.

Crawl_budget_Google

Un en-tête HTTP Last-Modified toujours à jour peut être préjudiciable au budget d'exploration de Google, car il pourrait amener le moteur de recherche à consacrer des ressources inutiles à l'exploration de ressources qui n'ont pas été modifiées. En particulier, si l'en-tête Last-Modified est mis à jour chaque fois que le cache est régénéré, même si le contenu n'a pas changé, Google pourrait interpréter la ressource comme une nouvelle page et dépenser des ressources inutiles pour explorer cette page.

Cela conduirait à une utilisation inefficace du budget d'exploration de Google, qui pourrait être mieux utilisé pour explorer d'autres ressources plus pertinentes et à jour. De plus, une utilisation inefficace du budget de crawl de Google pourrait ralentir l'indexation des ressources les plus importantes du site Web.

Pour éviter ce problème, il est important de s'assurer que l'en-tête HTTP Last-Modified n'est mis à jour que lorsque la ressource a réellement changé. De cette façon, il est possible de garantir une bonne gestion du budget de crawl de Google et d'améliorer l'indexation globale du site.

WP Rocket et le bug de la dernière modification en détail.

Lorsque WP Rocket met en cache les publications et les pages WordPress sur le disque, remplace la date de dernière modification de l'article par celle de la génération ou de la régénération du cache. Cela signifie qu'à chaque fois que le cache est régénéré, WP Rocket met à jour le champ Last-Modified, même si la publication ou la page n'a pas été modifiée ou mise à jour depuis des années.

Plus précisément, WP Rocket détermine la date du fichier Cache produit sur le disque et propose cette date comme en-tête HTTP Dernière modification. Le code incriminé est le suivant :

Dernière-Modification-Bug-Wp-Rocket-Code

Comme nous pouvons le voir dans le code ci-dessus, WP Rocket renvoie l'en-tête Last-Modified, formatant la date récupérée à partir de la date du cache sur le disque via la fonction PHP filemtime().

La fonction filemtime() de PHP est une fonction native qui renvoie la date de la dernière modification d'un fichier. Cette fonctionnalité est très utile pour vérifier si un fichier a changé depuis une version précédente et pour mettre à jour le cache de fichiers.

Ce bogue peut causer des problèmes aux moteurs de recherche et autres crawlers qui utilisent le champ Last-Modified pour déterminer si une ressource a été modifiée depuis le dernier accès. Si le champ Last-Modified est mis à jour chaque fois que le cache est régénéré, même si la publication ou la page n'a pas été modifiée, les robots d'exploration pourraient alors interpréter à tort la ressource comme une nouvelle page, même si elle n'a pas été réellement modifiée.

Pour éviter le bogue Last-Modified, WP Rocket aurait dû mettre à jour l'en-tête HTTP dans les fichiers de cache produits en récupérant la date de dernière modification de la publication ou de la page directement à partir de la base de données WordPress. De cette façon, le champ Last-Modified serait toujours mis à jour uniquement lorsque la ressource a été réellement modifiée, garantissant une indexation correcte par les moteurs de recherche.

Pour mettre en place cette solution, WP Rocket aurait dû utiliser la fonction « get_post_modified_time() » de WordPress pour récupérer la date de dernière modification de la publication ou de la page. Cette fonction renvoie la date et l'heure auxquelles la publication ou la page a été modifiée pour la dernière fois, ce qui peut être utilisé pour mettre à jour correctement le champ Last-Modified dans l'en-tête HTTP.

Nous avons officiellement signalé le bogue à WP Rocket.

L'erreur que nous avons découverte est très grave, d'autant plus qu'il ne s'agit pas d'un oubli des développeurs, mais précisément du manque de principes fondamentaux et de pierres angulaires sur ce qu'est l'en-tête HTTP Last-Modified et à quoi il sert. Par conséquent, développer un plugin destiné à des millions, des dizaines de millions de sites Web sans avoir à l'esprit la logique de base du fonctionnement de la gestion des en-têtes n'est pas un fait sérieux mais très sérieux.

Nous voulions donc signaler le problème directement à WP Rocket, en incluant dans la demande de rapport un exemple hypothétique, dans lequel un article hypothétique publié le 24 décembre pour souhaiter aux lecteurs des vœux de Noël, entraînerait un en-tête Last-Modified ultérieur, et après le Le 24 décembre lui-même, bien que le message n'ait en aucun cas été modifié.

Wp-Rocket-Last-Modified-BugIls nous ont ignorés pour le moment et au lieu de nous remercier…

Il peut sembler absurde que face à un problème aussi grave signalé au support technique, ils se soient limités à nous informer qu'ils ne peuvent pas répondre à notre demande car notre licence Wp Rocket a expiré.

Ce n'est pas une blague, mais c'est vraiment ce qu'ils nous ont répondu dans le mail que nous rapportons ci-dessous.

Response-Mail-WP-Rocket-to-bug-Last-Modified

On peut se demander s'il est juste qu'une entreprise similaire avec une telle négligence continue à mériter l'entière confiance de ses clients, qui, ignorant la gravité de leur comportement, vont créer de réels dommages sur les sites de leurs clients sans même le savoir ou du moins vouloir savoir.

Pour l'instant nous avons sollicité la demande en utilisant les bons noms et en précisant que ce n'est pas nous qui leur demandons du soutien, mais c'est nous qui le leur offrons gratuitement compte tenu de leur ignorance sur le sujet.

Nous espérons un FIX dès que possible et en attendant nous vous conseillons de surveiller la situation sur les statistiques de crawl de Google et de mesurer les éventuels effets négatifs si vous l'utilisez déjà.

Vous avez des doutes ? Vous ne savez pas par où commencer ? Contactez-nous !

Nous avons toutes les réponses à vos questions pour vous aider à faire le bon choix.

Discute avec nous

Discutez directement avec notre support avant-vente.

0256569681

Contactez-nous par téléphone pendant les heures de bureau 9h30 - 19h30

Contactez-nous en ligne

Ouvrez une demande directement dans l'espace contact.

INFORMATIONS

Managed Server Srl est un acteur italien leader dans la fourniture de solutions système GNU/Linux avancées orientées vers la haute performance. Avec un modèle d'abonnement peu coûteux et prévisible, nous garantissons que nos clients ont accès à des technologies avancées en matière d'hébergement, de serveurs dédiés et de services cloud. En plus de cela, nous proposons des conseils système sur les systèmes Linux et une maintenance spécialisée en SGBD, sécurité informatique, Cloud et bien plus encore. Nous nous distinguons par notre expertise dans l'hébergement de CMS Open Source de premier plan tels que WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart et Magento, soutenus par un service d'assistance et de conseil de haut niveau adapté aux administrations publiques, aux PME et à toutes tailles.

Red Hat, Inc. détient les droits de Red Hat®, RHEL®, RedHat Linux® et CentOS® ; AlmaLinux™ est une marque commerciale d'AlmaLinux OS Foundation ; Rocky Linux® est une marque déposée de la Rocky Linux Foundation ; SUSE® est une marque déposée de SUSE LLC ; Canonical Ltd. détient les droits sur Ubuntu® ; Software in the Public Interest, Inc. détient les droits sur Debian® ; Linus Torvalds détient les droits sur Linux® ; FreeBSD® est une marque déposée de la FreeBSD Foundation ; NetBSD® est une marque déposée de la Fondation NetBSD ; OpenBSD® est une marque déposée de Theo de Raadt. Oracle Corporation détient les droits sur Oracle®, MySQL® et MyRocks® ; Percona® est une marque déposée de Percona LLC ; MariaDB® est une marque déposée de MariaDB Corporation Ab ; REDIS® est une marque déposée de Redis Labs Ltd. F5 Networks, Inc. détient les droits sur NGINX® et NGINX Plus® ; Varnish® est une marque déposée de Varnish Software AB. Adobe Inc. détient les droits sur Magento® ; PrestaShop® est une marque déposée de PrestaShop SA ; OpenCart® est une marque déposée d'OpenCart Limited. Automattic Inc. détient les droits sur WordPress®, WooCommerce® et JetPack® ; Open Source Matters, Inc. détient les droits sur Joomla® ; Dries Buytaert détient les droits sur Drupal®. Amazon Web Services, Inc. détient les droits sur AWS® ; Google LLC détient les droits sur Google Cloud™ et Chrome™ ; Facebook, Inc. détient les droits sur Facebook® ; Microsoft Corporation détient les droits sur Microsoft®, Azure® et Internet Explorer® ; La Fondation Mozilla détient les droits sur Firefox®. Apache® est une marque déposée de The Apache Software Foundation ; PHP® est une marque déposée du groupe PHP. CloudFlare® est une marque déposée de Cloudflare, Inc. ; NETSCOUT® est une marque déposée de NETSCOUT Systems Inc. ; ElasticSearch®, LogStash® et Kibana® sont des marques déposées d'Elastic NV. Ce site n'est affilié, sponsorisé ou autrement associé à aucune des entités mentionnées ci-dessus et ne représente aucune de ces entités de quelque manière que ce soit. Tous les droits sur les marques et noms de produits mentionnés sont la propriété de leurs titulaires respectifs des droits d'auteur. Toutes les autres marques mentionnées appartiennent à leurs titulaires. MANAGED SERVER® est une marque déposée au niveau européen par MANAGED SERVER SRL Via Enzo Ferrari, 9 62012 Civitanova Marche (MC) Italie.

JUSTE UN MOMENT !

Souhaitez-vous voir comment votre WooCommerce fonctionne sur nos systèmes sans avoir à migrer quoi que ce soit ? 

Entrez l'adresse de votre site WooCommerce et vous obtiendrez une démonstration navigable, sans avoir à faire absolument quoi que ce soit et entièrement gratuite.

Non merci, mes clients préfèrent le site lent.
Retour en haut de page