Maintenir à jour un site WordPress consiste en une série d’opérations techniques allant de la simple mise à jour d’extension ou de thème à un nettoyage en profondeur de votre base de données.
En tant que spécialiste de la maintenance de site sous WordPress, je me suis donné pour challenge d’optimiser au mieux WP channel fort d’un historique de bientôt 10 ans d’existence.
Vos données sont précieuses,
ne prenez pas le risque de tout perdre.
Confiez-nous votre maintenance !
Mener à bien une cure de jouvence est une tâche longue et ardue. Prévoyez de sauvegarder autant de fois que nécessaire votre site avant d’opérer des nettoyages irréversibles. Notez que cet article ne passe pas en revue toutes les actions propre à une maintenance régulière d’un site WordPress mais s’attarde sur le nettoyage de sites avec un passif de plusieurs années. Les recettes ont directement été appliquées sur ce blog.
La base de données
Une base de données stocke l’ensemble des contenus et réglages de votre site. Elle peut rapidement s’engorger de données obsolètes qui parasitent l’ensemble. Un exemple concret concerne l’installation d’extensions qui peuvent créer des tables supplémentaires. Le problème est qu’une fois désinstallé depuis votre back-office, les tables sont rarement supprimées et restent présentes.
Avant d’aller plus loin, vous devez impérativement sauvegarder votre base de données et vous assurer que celle-ci est parfaitement fonctionnelle. Vous devez également maitriser un outil comme phpMyAdmin ou Adminer.
Supprimer les tables inutiles de votre base de données
Cette opération est loin d’être simple car elle nécessite tout d’abord d’identifier les tables à supprimer. Il faut donc avoir une certaine expérience pour savoir à quelles extensions correspondent les noms des tables. Certaines sont plus faciles que d’autres à identifier.
À partir de là, vous pouvez sélectionnez puis supprimer les tables n’ayant pas fait l’objet d’une suppression suite à la désinstallation d’une extension.
Pour ma part, j’ai réussi à économiser 70 Mo de données. Pas mal non ?
Modifier l’encodage de caractères en utf8mb4
Depuis WordPress 4.2, il vous faut basculer de utf8 à utf8mb4 pour l’encodage de caractères de votre base de données. Cette information est définie dans votre fichier wp-config.php lequel, rappelons-le, lie votre installation à votre base.
Certains hébergeurs ne supportent pas bien ce changement malheureusement. Pour les autres, vous devez ensuite vérifier l’interclassement de votre base de données qui est généralement défini sur latin1 dans les configurations serveurs par défaut.
À l’aide de phpMyAdmin, rendez-vous dans l’onglet Opérations puis Interclassement. Là, changez pour utf8mb4_unicode_ci. Vous pouvez faire de même pour l’ensemble des tables qui ne disposeraient pas du bon interclassement.
Effacer les trackbacks / pingbacks
Les rétroliens ou trackbacks sont des liens retours générés automatiquement dans les commentaires d’un article lorsqu’un site tiers émet un lien vers votre billet. Cette technique de maillage externe très ancienne n’est guère plus utilisée depuis de nombreuses années.
Fort de plus de 10 000 commentaires sur ce blog, j’ai donc lancé une commande SQL afin de les supprimer en totalité. Ils n’apportent rien d’intéressant pour le visiteur.
Pour comprendre la nuance entre les trackbacks et les pingbacks, rendez-vous sur le Codex.
Pour prévenir la création de tels liens, n’oubliez pas de désactiver l’option Autoriser les liens de notification d’autres blogs (pings et rétroliens) sur les nouveaux articles dans Réglages puis Discussion.
Supprimer les liens externes de vos commentaires
Le champ Site Web présent dans le formulaire de dépôt de commentaire permet de déposer un lien externe. Bien souvent, l’auteur du commentaire indique l’URL de son site Web. Cette fonctionnalité est largement utilisée pour générer du lien retour à moindre coût et sujet au spam. Elle n’apporte là encore pas grand chose pour le visiteur et nuit à votre référencement malgré l’ajout d’une balise nofollow
.
J’ai donc pris la décision de les supprimer en totalité via cette commande SQL.
Il vous faudra également modifier le formulaire de commentaire présent dans votre thème pour retirer le champ Site Web afin de prévenir tout nouvel ajout de lien externe.
Supprimer les champs personnalisés inutiles
Les champs personnalisés ou custom fields sont largement utilisés par WordPress afin de stocker des informations complémentaires au sein d’un contenu notamment. Les développeurs ont recours à l’extension Advanced Custom Fields pour générer facilement des champs personnalisés dotés d’une interface graphique. Comme toujours, un changement de thème ou la suppression d’une extension n’inclut pas le retrait des données obsolètes en base. À moins que vous ne souhaitiez les conserver pour plus tard, il vaut mieux les retirer.
Pour ce faire, je vous recommande l’utilisation de l’extension Delete Custom Fields qui vous fera gagner un temps précieux. Sinon, vous pouvez toujours utiliser des requêtes SQL.
Une extension d'aide à la suppression de champs personnalisés.
Taille : 19,0 Ko • Hits : 518Nettoyer les données orphelines, dupliquées et inutiles
Pour cette dernière opération, nous allons pouvoir automatiser le processus à l’aide de l’extension WP Sweep. Facile d’utilisation et particulièrement efficace, cette extension vous mâche le travail en exécutant de nombreuses requêtes SQL pour nettoyer votre base de données.
Une extension couteau-suisse pour nettoyer votre base de données WordPress.
Taille : 15,0 Ko • Hits : 756À utiliser sans modération avec une sauvegarde bien entendu !
Terminons en ajoutant qu’il vous faut surveiller les tables suspectes : j’entends par là celles qui sont anormalement lourdes en poids ou qui contiennent des centaines de milliers de lignes. Il est toujours bon d’identifier les causes à l’origine de ce phénomène afin de mener là encore de nouvelles optimisations.
Vérifier la présence des index et des clés primaires
Si vous rencontrez des soucis de performances sur MySQL, il peut être bénéfique de vérifier si les clés primaires ainsi que les index sont bien présents pour les tables concernées. Pour ce faire, il vous faudra passer par phpMyAdmin et comparer votre installation à une installation neuve de WordPress. Pensez également à installer de zéro les extensions que vous utilisez car certaines créent des tables additionnelles.
C’est une opération longue et fastidieuse mais utile si vous cherchez en vain la cause d’une saturation du serveur de base de données… pour en avoir vécu l’expérience récemment c’est quelque chose à laquelle on ne pense guère.
Les fichiers
Le fichier .htaccess
Un fichier .htaccess est un fichier masqué de configuration propre à Apache pour un répertoire donné. Généralement, il est situé à la racine Web de votre espace et vous permet, entre autres, de gérer :
- Vos règles de réécritures pour disposer d’URLS seo-friendly ;
- Vos redirections 301 ;
- Vos optimisations de cache ;
- Votre politique de sécurité (Content Security Policy) ;
Au fil du temps, il n’est pas rare de voir s’accumuler des lignes de code obsolètes qu’il conviendra de retirer avec précaution.
Le fichier wp-config.php
Le fameux fichier wp-config.php que nous créons tous lors de l’installation de WordPress ne fait pas que relier votre installation à votre base de données MySQL ou MariaDB.
Vous pouvez y injecter des paramètres avancés comme :
- L’augmentation de la limite mémoire ;
- L’obligation d’utiliser HTTPS dans l’administration ;
- La définition des adresses Web par défaut de WordPress ;
- Des clés de licences pour certaines extensions premium ;
- L’activation du cache ;
Là encore, il est possible de supprimer certaines lignes obsolètes mais surtout d’améliorer la fiabilité de votre site en y ajoutant celles mentionnées plus haut dans la liste. Pensez également à consolider la force du mot de passe de la base de données.
Les fichiers inutiles ou obsolètes
Au fil des années, certains fichiers de WordPress sont tout simplement supprimés de l’archive officielle. Toutefois, il est de votre ressort de supprimer les fichiers obsolètes car une mise à jour du coeur ne le fera pas. En apparence compliquée, cette opération est pourtant simple. Il suffit de télécharger la dernière version de WordPress et d’écraser les dossiers /wp-admin et /wp-includes et vérifier les fichiers présents à la racine. Pour ma part, une demi-douzaine de fichiers à la racine étaient devenus inutiles… c’est là le problème après une décennie d’écriture sur ce blog.
Au delà des fichiers propres à WordPress, vous devriez en profiter pour faire le ménage au niveau de la racine Web et surtout du dossier /wp-content car il n’est pas rare de rencontrer des dossiers qui n’ont rien à faire là. Il peut s’agir de thèmes ou d’extensions inactives, de dossiers de sauvegardes qui sont stockées au format ZIP et qui occupent une grande partie de votre espace de stockage – on ne laisse jamais les sauvegardes sur le serveur de production, d’anciens dossiers de cache, etc.
Vous connaissez des astuces pour faciliter la maintenance de votre site ? Partagez vos techniques en commentaires.
Bonjour,
Je viens de tomber sur votre article et j’aimerai vous demander quelques précisions face aux soucis que j’ai rencontré. J’ai utilisé le plugin phœnix média rename afin de changer le nom de mes nombreux fichiers images dans mon WordPress et malheureusement les anciennes url restent à l’intérieur bien que chaque image en ait une nouvelle. Je m’en suis rendue compte en voulant faire une copie de mon site via duplication avant la mise à jour WordPress 5.5, puis en vérifiant la santé de mon site ryske m’a indiqué que ces même url créent des erreurs 404. J’aimerai savoir si l’utilisation de wp sweep pourrait me permettre de les éliminer ou s’il y a un autre moyen. De même, je ne savais pas qu’un plugin installé puis désinstallé laissait des traces or je fais souvent des essais et j’aimerai pouvoir les nettoyer également et si possible conserver les modifications qu’ils aient pu apporter lorsqu’il s’agit d’optimisation d’image par exemple. Je m’explique j’ai utilisé smuch puis n’en ayant plus l’utilité je l’ai enlevé pour ne pas conserver trop de plugin inutile et mes images sont redevenues à l’identique… je me suis dit tant pis je le réinstalle et là il me dit que toutes les images sont déjà smuched … j’aurais besoin de quelque astuces de votre part pour éviter ce genre de pbs et éventuellement si possible les réparer. Je vous remercie par avance de tous les conseils que vous pourrez m’apporter. Cordialement
C’est une question complexe : en effet, l’installation d’extensions génèrent l’écriture d’informations en base de données et parfois même la création de nouvelles tables. La désinstallation d’une extension ne supprime pas ces données sauf si l’auteur prévoit ce cas et en informe l’utilisateur. Les développeurs procèdent ainsi afin de permettre la réactivation d’une extension tout en retrouvant les nombreux réglages et autres données souvent importantes (par exemple : des redirections en SEO).
Dans votre cas, il faudrait opérer des nettoyages en profondeur ou repartir d’une base propre en faisant une extraction du contenu. Ce ne sont pas opérations simple techniquement ni sans danger. Il faut, comme toujours, peser le pour et le contre pour en déterminer l’intérêt (bugs et autres ralentissements constatés, importance pour votre activité, etc.).
Bonjour ,
en recherchant des infos sur le fonctionnement de la BdD de WordPress je suis tombé sur cet tres bon article ; j’aurais une application particulière : j’ai retrouvé des notes où j’avais créé un site photo/example.com j’ai du l’oublier et ensuite j’ai créé un multisite example.com avec sous domaines test/example.com, blog/example.com, video/example.com qui fonctionnent ok.
Sauf que si j’essaie de me connecter sur photo/example.com…ça fonctionne toujours ! Et me renvoie sur http://example.com/wp-signup.php?new=…, sous-domaine “photo” qui bien sûr n’existe pas dans l’architecture du multisite…
Comment me débarrasser proprement de photo/example.com ?
A part dans l’immédiat faire une redirection vers example.com pour éviter les problèmes, je ne vois qu’un nettoyage de la BdD (apres sauvegarde of course..) mais comment identifier les champs de photo/example.com ?
Merci pour votre expertise et conseils…
Calade
Merci d’apprécier cet article !
Vous avez un historique compliqué et il m’est difficile de répondre avec précision à votre question. Il faudrait prendre le temps de retracer tout l’historique pour ensuite mener les opérations de nettoyage appropriées.
Merci pour cette mine d’informations !
Excellente procédure. Merci.