Comment régler le problème « Les options chargées automatiquement peuvent affecter les performances » de l’écran de santé WordPress ? (avec SweepPress et Redis Cache)

Options de la base de données WordPress

Le problème des options de la base de données WordPress

L’essentiel à savoir pour comprendre

Quand l’écran de santé de WordPress vous reproche le problème « Autoloaded Option Could Affect Performance » (« Les options chargées automatiquement peuvent affecter les performances« ), c’est qu’il a détecté que la table « Options » de votre base de données charge trop de données.

Et ça, pour l’instant, vous ne comprenez pas ce que ça veut dire ni comment corriger ce problème. Je vais vous l’expliquer.

Commençons par poser l’essentiel des infos à connaitre :

  • WordPress est constitué de 3 choses :
    • Des fichiers qui font tourner WordPress, ses thèmes, ses plugins
    • Une base de données qui stocke les paramètres de WordPress, des thèmes, des plugins, et toutes les infos des contenus que vous publiez sur votre site (articles, pages etc)
    • Des fichiers « médias »
  • Une base de données est faite de tables (des tableaux avec lignes et colonnes) qui contiennent des champs qui contiennent des valeurs.
    • Par exemple, si ma carte d’identité était une base de données, elle contiendrait une table « Carte », qui aurait un champ « Prénom » dont la valeur serait « Ludovic ».
  • La base de données contient toujours une table « Options »
    • Cette table « Options » contient des réglages importants de WordPress, des thèmes et des plugins (qui peuvent aussi stocker d’autres données dans d’autres tables)
    • Chaque option a un champ « Autoload » avec une valeur « yes » ou « no »

Voici à quoi ressemblent les options dans la base de données d’un site WordPress :

Options de la base de données WordPress
Options de la base de données WordPress

Maintenant que vous avez compris ça, c’est là que les problèmes commencent.

Des options périmées ou inutiles

La table Options, sur un site qui a quelques mois ou années, sur lequel on a installé et désinstallé divers thèmes et plugins, se dégrade.

Elle finit par stocker des options périmées, liées à des thèmes et des plugins qu’on a désactivés ou désinstallés.

C’est scandaleux, vous allez me dire. Et je vous dirai qu’on est d’accord : les codeurs, les créateurs de thèmes et de plugins, font assez souvent mal leur travail. Ils permettent de désactiver ou désinstaller leurs thèmes et plugins, en laissant tout un tas de déchets derrière eux.

Certains le font même intentionnellement, en toute connaissance de cause. Leur but, qui peut passer pour légitime, est que si vous avez désinstallé leur thème ou plugin, et que plus tard vous l’installez à nouveau, vous retrouverez vos options telles quelles. Vous n’aurez donc pas à refaire toute la configuration.

Ce but peut apparaître légitime. Seulement, quand vous vous retrouvez avec les options de 20 plugins désinstallés, qui se chargent toujours sur chacun de vos pages deux ans plus tard, et plombent vos performances techniques… vous pouvez trouver cela un tantinet abusif.

Le pire, c’est qu’une partie de ces options a la valeur « autoload » à « yes ». Par exemple, vous avez désinstallé Elementor, WooCommerce, LiteSpeed etc, mais des dizaines de leurs options se chargent toujours – en autoload, donc – sur chaque page de votre site.

Bilan : Google PageSpeed va compter le temps qu’il met à charger chacune de vos pages, incluant ces options inutiles, et limitera votre trafic en raison de mauvaises performances. C’est ballot !

La solution : SweepPress et cache objet

Le concept de la solution

Conceptuellement, la solution peut s’exprimer ainsi :

  • il faut examiner chaque option
  • voir si elle est périmée ou non
  • si elle est périmée et inutile, il faut l’effacer
  • voir si elle est en autoload ou non
  • si elle est en autoload, alors il faut déterminer si cet autoload est pertinent ou pas
  • et si l’autoload semble superflu, alors il faut changer sa valeur et le passer de « yes » à « no »

Là, vous aurez un nouveau problème : en moyenne, le grand-public amateur n’a aucune idée de comment évaluer la pertinence de l’autoload d’une option donnée.

Moi, qui suis professionnel (mais pas codeur), qui viens de me former en autodidacte sur cette question très technique, je ne suis pas toujours 100% sûr de savoir faire le bon choix.

Donc je teste (après avoir sauvegardé la base de données !!), et j’agis selon mes connaissances :

  • une option autoloadée liée à un plugin qui n’intervient que dans l’admin de WordPress, par exemple Broken Link Checker ou Matomo, évidemment je n’ai aucun besoin de l’autoloader pour mes visiteurs
  • tandis qu’une option liée à l’affichage d’éléments sur mes pages, là je préfère la laisser en autoload yes

L’outil de la solution : le plugin SweepPress

Perso, j’utilise le plugin SweepPress en version gratuite pour inspecter et nettoyer mes options.

D’autres plugins font le job, et il serait possible de le faire direct dans la base de données.

Mais je préfère l’ergonomie simple et claire de SweepPress.

SweepPress me permet de lister très facilement toutes les options autoloadées, et de les classer par taille.

Il est évidemment prioritaire de désactiver les options autoloadées de grande taille, sans s’embêter avec des centaines d’options minuscules.

Ce qu’on veut, au final, c’est obtenir une taille d’options autoloadées inférieure à 1mo, et si possible, même, inférieure à 800 voire 600ko.

Ce n’est pas toujours faisable : un site rempli de fonctionnalités, multilingue, eCommerce etc etc, aura forcément beaucoup d’options autoloadées, plus qu’un simple site de 20 pages.

Bref, nettoyez tout ce que vous pouvez, vous y gagnerez toujours un peu de temps de chargement donc de trafic.

A noter : le nettoyage des options aide aussi à régler un autre problème fréquemment signalé dans l’écran de santé de WordPress : « Le temps de réponse du serveur est lent ». Google PageSpeed vous dit la même chose autrement : « Réduire le temps de réponse initial du serveur ».

Exemples d’options à nettoyer ou pas

Voici un exemple plus concret.

SweepPress me dit qu’un de mes sites a, parmi des centaines d’autres, les options suivantes :

Options en autoload ou pas
Options en autoload ou pas

On peut analyser ces options comme ceci :

  • 2 options sont liées à WooCommerce, un plugin activé : là, je ne touche à rien
  • 1 option, SnS_options, vient du plugin Scripts and styles, désactivé temporairement ou définitivement. L’option est en autoload, et pire, elle pèse lourd : 3k pour un plugin inactif, je n’aime pas ça. Donc, je désactive l’autoload, sans supprimer l’option
  • 1 option, PMXE, est d’origine inconnue. Elle ne pèse pas très lourd. Dans le doute, je ne fais rien.
  • 1 option, wp_all_export, vient aussi d’un plugin « inconnu » par SweepPress, mais en fait je peux l’identifier. Il s’agit évidemment de WP All Export, un plugin désinstallé. L’option est minuscule et de toute façon elle n’est pas en autoload, je pourrais ne pas m’en occuper. Mais comme elle est obsolète, je la supprime.

Redis Cache

Je ne comprends pas tout à 100% dans ce dont je vais parler là. Je vous donne donc mon opinion actuelle, qui est peut-être entachée d’erreur.

Je pense qu’on peut régler en grande partie le problème des options autoloadées, en activant un service de « cache objet ».

Le cache objet, à ce que j’ai compris, c’est un cache (ça, je sais ce que c’est : une sorte de mémoire), qui s’appliqué précisément aux données que les fichiers PHP de WordPress vont chercher dans la base de données à chaque chargement de page.

Par exemple, une de ces données est le nom de votre site. Votre thème stocke quelque part dans la base de données un champ « Nom du site », dont la valeur est le nom de votre site.

C’est super, mais c’est bête, aussi : c’est comme si, chaque fois qu’on me demande mon prénom, je répondais : « Euh, attends, je vais consulter ma carte d’identité. (5 secondes passent.) Je sais : je m’appelle Ludovic ! »

Le cache objet crée donc une mémoire temporaire, qui va se rappeler des principales infos nécessaires au bon affichage du site. Et notamment : de nos fameuses options !

Le meilleur système de cache objet est Redis Cache. Il faut qu’il soit disponible sur le serveur ! Si c’est le cas, il suffit de le configurer.

Je pense que le cache objet doit quand même s’installer sur une table options bien nettoyée. A quoi servirait de garder en permanence en mémoire des infos datant de l’année dernière ?

De plus, une table option non nettoyée peut atteindre des tailles considérables, qui réduiront les capacités du cache, fatigueront inutilement le serveur, gaspilleront de l’énergie.

Retour d’expérience

Core Web Vitals améliorés

J’ai fait ce que je viens de décrire, sur 4 de mes principaux sites web.

Mes notes PageSpeed et mes Core Web Vitals se sont améliorées (en partie à cause de l’optimisation des options, et en partie à cause d’autres optimisations) :

Amélioration des Core Web Vitals
Amélioration des Core Web Vitals

Du coup, les impressions de mes pages web dans Google et mon nombre de requêtes ont également augmenté d’environ + 15 à 20% :

Hausse des requetes après nettoyage des options
Hausse des requetes après nettoyage des options (graphique Looker Studio)

Bref, je considère qu’il s’agit là d’une optimisation concluante. Elle prend assez peu de temps et fait gagner de la visibilité.

Service ?

Si vous avez besoin d’aide pour optimiser votre table Options, faire le ménage dans l’autoload, ou installer un cache objet, vous pouvez m’acheter ce service d’optimisation.

En moyenne, je pense pouvoir régler le gros des problèmes en une prestation d’1 à 2h (1 s’il faut nettoyer les options OU installer un cache objet, et 2 s’il faut faire les 2).

Contactez-moi d’abord pour en discuter.

Note : si vous avez un micro-site (10 pages…) je ne pense pas que ce service soit indispensable dans votre cas. Votre priorité devrait plutôt consister à publier du bon contenu, par exemple en créant un blog d’entreprise.

Qu'avez-vous pensé de cet article ?

Cliquez sur une étoile pour donner votre avis

Avis moyen 5 / 5. Nombre d'avis donnés 3

Soyez le premier à donner votre avis



Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Besoin d'un hébergeur ?

Convivial, sympa, fiable, et pas cher,
O2Switch me semble être la meilleure offre actuellement sur le marché français.
C'est pourquoi j'y héberge tous mes sites. Hébergement O2Switch
Panier
//
Retour en haut