Table des matières de l'article :
Alors que nous apportions notre aide à l'un de nos clients, www.viktec.net (un site d'évaluation technologique), qui se plaignait d'une navigation extrêmement lente, et que nous constations que tout était correctement configuré côté serveur avec une excellente pile logicielle comprenant Varnish Cache qui répondait correctement, et même un état de cache supplémentaire avec CloudFlare , nous nous sommes demandé ce qui pouvait bien clocher avec le site et nous avons effectué des recherches plus approfondies en analysant l'application et la base de données.
Il peut arriver assez fréquemment qu'un site qui donnait de bons résultats et une excellente satisfaction en termes de positionnement sur les moteurs de recherche puisse perdre le positionnement de nombreux mots indexés et peu après le voir littéralement disparaître des moteurs de recherche.
Il peut y avoir de nombreuses raisons à cela — un sitemap mal configuré, un cache qui ne se met pas à jour, un fichier robots.txt avec une interdiction incorrecte — mais dans cet article, je veux vous parler de l'importance d'avoir un site rapide et des conséquences néfastes qu'un site lent peut avoir sur les moteurs de recherche.
La lenteur est cette fois due à un plugin officiel Amazon pour WordPress : Amazon Associates Link Builder.
Le plugin WordPress Amazon Associates Link Builder vous permet d'intégrer des produits Amazon dans votre site de manière simple et attrayante, en quelques clics.
Amazon Associates Link Builder est l'extension WordPress officielle et gratuite conçue pour simplifier la recherche de produits Amazon à intégrer sur les sites des membres du programme Amazon Associates. Elle permet de créer des liens directs en quelques clics, sans quitter l'éditeur WordPress.
L'utilisation d'Amazon Associates Link Builder vous permet d'éviter d'avoir à intégrer manuellement des informations importantes sur les produits, telles que les noms de produits, les descriptions et les aperçus.
Le plugin Link Builder génère des codes abrégés que vous pouvez utiliser pour sélectionner les données produit Amazon dans différents formats d'affichage, puis les afficher sur votre site Web. Ci-dessous, nous examinerons les fonctionnalités du Link Builder et quelques exemples de la façon dont les affiliés l'utilisent pour améliorer leurs sites.
Heureusement, ce plugin a été abandonné le 9 mars 2020 , mais si vous l'avez installé, soyez TRÈS prudent.
Le problème
Le principal problème vient du fait que ce plugin ajoute des entrées dans la base de données WordPress dans la table wp_options, des entrées pour plusieurs millions de lignes.
Le fait de ne pas utiliser un tableau séparé en dit déjà long sur à quel point ce plugin peut être improvisé et le mauvais travail que les ingénieurs d'Amazon ont fait (oui, c'est leur plugin officiel) mais le fait qu'il puisse remplir le tableau en allant considérablement augmenter le temps d'interrogation de la BD est vraiment plus que très grave.
Des requêtes lentes sur la base de données équivalent à des pages lentes qui sont préjudiciables à la fois pour le visiteur qui s'impatiente et pour les robots d'exploration de Google qui, ayant des milliards de sites à explorer, s'impatientent également et passent au suivant.
Qu'est-ce que le budget d'exploration ?
La définition communément donnée du budget de crawl est le nombre de pages que Google explore dans une période de temps donnée.
En termes simples, le robot d'exploration de Google s'occupe d'explorer les pages Web et de les ajouter ultérieurement à l'index. Lors de l'opération, le logiciel recherche d'autres liens à suivre indépendamment ou en suivant les URL d'un sitemap.xml pour toujours analyser les nouveaux contenus.
Pour être identifiés lors de la connexion, les bots utilisent généralement un agent utilisateur, qui est une chaîne d'accusé de réception. En consultant le fichier log Apache sur notre serveur, on peut voir les visites de Googlebot, mais il y a aussi BingBot de Microsoft, Baiduspider pour le marché chinois et YandexBot pour la Russie.
L'exploration de sites comportant 100, 1000 ou 10 000 pages peut s'avérer particulièrement exigeante et, surtout, chronophage, étant donné qu'il existe des milliards de sites qui doivent être régulièrement vérifiés afin de détecter toute mise à jour ou modification de leur contenu.
D'où la nécessité de limiter le temps et les ressources dédiés à chaque site en fonction d'une série de facteurs qui récompensent certains sites avec un scan plus fréquent, tandis que d'autres ne seront que rarement vérifiés.
Pour se faire une idée concrète de la situation de votre site il faut forcément s'appuyer sur un système de surveillance des accès Googlebot et il existe différentes solutions.
La méthode la plus simple et gratuite consiste à utiliser votre compte Search Console dans la section Exploration > Statistiques d'exploration, où vous trouverez un graphique de l' activité de Google au cours des 90 derniers jours , indiquant la moyenne, les valeurs maximales et minimales du nombre de pages explorées chaque jour.
Il est évident que si le site comporte de nombreuses pages à explorer et qu'il est lent, les robots d'exploration de Google ne resteront pas des heures à récupérer la page et à indexer son contenu, mais passeront au site suivant sans récupérer ni indexer votre contenu, ce qui vous fera littéralement disparaître de Google.
Le discours veut examiner Google, mais il est valable pour pratiquement tous les moteurs de recherche.
Analyse du problème
La première étape à franchir lorsqu'un site devient extrêmement lent à mort est de profiler l'application pour comprendre les goulots d'étranglement.
Cela peut être fait de plusieurs manières, en utilisant des applications tierces comme New Relic, en utilisant des plugins de profilage comme Query Monitor, ou en allant au shell MySQL DB et en effectuant un SHOW FULL PROCESSLIST ; pour voir quelles requêtes passent le plus fréquemment et le timing utilisé par chacune d'entre elles.
Une solution saine, si vous disposez d'un accès root au système ou d'administrateurs système compétents comme nous qui se chargent également de surveiller vos performances et ne se contentent pas de vous vendre le forfait d'hébergement à 50 euros par an, consiste à utiliser Percona Toolkit comme nous l'avons écrit dans cet article.
Cependant, dans ce cas précis, c'était encore plus simple, car en accédant à la base de données avec l' utilitaire phpMyAdmin , il était impossible de ne pas remarquer que quelque chose n'allait pas : la table wp_options pesait 20 Go.
Une valeur inhumaine et insensée qui dépasse quelques dizaines de mégaoctets (une centaine au maximum) prouve et prouve au-delà de tout doute raisonnable que certains plugins écrivent des choses néfastes sur la table.
En fait c'était plein d'entrées avec un identifiant aalb_update_table_batch
Quelqu'un avait déjà remarqué le problème, comme on peut le lire dans ce fil de discussion sur l'assistance aux plugins : https://wordpress.org/support/topic/the-wordpress-db-has-increased-by-600mb-2/
La solution recommandée également dans le fil répertorié ci-dessus consistait à supprimer toutes ces entrées à l'aide de la requête SQL suivante :
SUPPRIMER DE wp_options OÙ option_name LIKE ('% aalb_update_table_batch%')
La table a commencé à se vider jusqu'à quelques dizaines de mégaoctets et le site a commencé à ouvrir des pages en moins de deux secondes contre plus de 10 secondes avant le nettoyage.
Remplacement du plugin Amazon Associates Link Builder par WP Money Click
Une fois que le client a compris que le plugin officiel d'Amazon était en train de tuer son site, il l'a remplacé par WP Money Click, moins connu mais bien meilleur et plus performant , que nous recommandons vivement à tous ceux qui travaillent dans le domaine de l'affiliation et de la comparaison de produits.
De plus, le remplacement du plugin a permis de convertir tous les shortcodes présents sur le site (on parle de centaines d'articles) au format WP Money Click, n'ayant ainsi pas à prendre beaucoup de travail ou de temps pour migrer vers le nouveau plugin .
Résultats et bénéfices obtenus
Les résultats obtenus sont ceux d'être revenus sur un site rapide et accrocheur avec de nombreux keyworks et contenus finalement indexés par Google comme on peut le voir sur la capture d'écran suivante obtenue via SeoZoom.
Comme vous pouvez le voir de fin mars à aujourd'hui (début avril), sur environ 1000 pages indexées, nous avons atteint plus de 20000 XNUMX.
Conclusions
Bien que dans ce cas précis nous voulions traiter ce plugin qui posait de gros problèmes, cela ne veut pas dire que c'est le seul plugin à générer des situations et des conséquences néfastes comme décrit ci-dessus.
Il y a simplement des plugins écrits plus ou moins mal qui ont tendance à ralentir le site de manière embarrassante, obtenant les mêmes effets néfastes que vous avez lu plus haut.
Soyez donc prudent à chaque fois que vous installez un plugin, et faites attention à la croissance de la Base de données si vous constatez un ralentissement excessif.
Pour obtenir des conseils sur le choix d'un plugin et la manière de le choisir, nous vous invitons à consulter cet article intitulé « Meilleures pratiques pour choisir des plugins fiables », qui vous aidera à examiner attentivement la meilleure solution.
Comme toujours, si vous rencontrez des problèmes de performances, n'hésitez pas à nous contacter. Vous êtes toujours la bienvenue.
