Quand il s’agit de la performance de WordPress, cette question revient assez souvent, et c’est comment supprimer les chaînes de requête (query string) des ressources statiques. Vos fichiers CSS et JavaScript ont généralement la version du fichier à la fin de leur URL, comme domain.com/style.css?ver=4.6. Certains serveurs et serveurs proxy sont incapables de mettre en cache les chaînes de requête, même si un en-tête cache-control:public est présent.

En les supprimant, vous pouvez parfois améliorer votre mise en cache. Cela corrigera aussi l’avertissement que vous pourriez voir dans GTMetrix et Pingdom et qui s’appelle  » Remove query strings from static resources ».

Supprimer les chaînes de requête des ressources statiques
Supprimer les chaînes de requête des ressources statiques

Veuillez garder à l’esprit que les chaînes de requête sont généralement là pour une raison. Le versioning sur les fichiers est utilisé par les développeurs WordPress pour contourner les problèmes de cache. Par exemple, s’ils sortent une mise à jour et changent le fichier style.css de ?ver=4.6 à ?ver=4.7, il sera traité comme une URL complètement nouvelle et ne sera pas mis en cache. Si vous supprimez les chaînes de requête et mettez à jour un plugin, la version mise en cache pourrait continuer à être servie. Dans certains cas, cela pourrait casser le frontend de votre site jusqu’à ce que la ressource en cache expire ou que le cache soit complètement vidé.

Les chaînes de requête sont également utilisées pour l’organisation dans les workflows de développement.

Supprimer les chaînes de requête des ressources statiques

Il y a plusieurs façons de supprimer les chaînes de requête, l’une avec un peu de code et l’autre avec un plugin WordPress. Si vous utilisez un CDN pour livrer vos ressources, cela n’est peut-être pas nécessaire car certains fournisseurs de CDN ont en fait la possibilité de mettre en cache les chaînes de requête. Vérifiez auprès de votre hébergeur Web et de votre fournisseur de CDN avant d’implémenter ce qui suit pour voir s’ils peuvent mettre en cache les chaînes de requête. Le CDN de Kinsta met en cache les chaînes de requêt.

  1. Supprimer la chaîne de requête des ressources statiques avec du code
  2. Supprimer une chaîne de requête des ressources statiques avec un plugin

1. Supprimer les chaînes de requête des ressources statiques avec du code

Vous pouvez facilement supprimer les chaînes de requête de vos ressources en quelques lignes de code. Après avoir fait une sauvegarde de votre site, créez un thème enfant et ajoutez ce qui suit au fichier functions.php de votre thème enfant

function remove_query_strings() {
   if(!is_admin()) {
       add_filter('script_loader_src', 'remove_query_strings_split', 15);
       add_filter('style_loader_src', 'remove_query_strings_split', 15);
   }
}

function remove_query_strings_split($src){
   $output = preg_split("/(&ver|\?ver)/", $src);
   return $output[0];
}
add_action('init', 'remove_query_strings');

Important : L’édition du code source d’un thème WordPress peut casser votre site si elle n’est pas faite correctement. Si vous n’êtes pas à l’aise de le faire, veuillez d’abord vérifier auprès d’un développeur. Ou, vous pouvez aussi profiter du plugin gratuit Code Snippets. Ce plugin vous permettra d’ajouter le code ci-dessus sans avoir à vous soucier de savoir s’il supprimera votre site.

Créez simplement un nouvel extrait et ajoutez le code ci-dessus. Sélectionnez « Exécuter uniquement sur le frontend du site », puis enregistrez l’extrait. Les chaînes de caractères de votre requête auront alors disparu ! Vous devrez peut-être vider le cache de votre site WordPress pour voir les changements prendre effet au niveau du frontend.

Suppression d'un extrait de code de chaîne de requête
Suppression d’un extrait de code de chaîne de requête

Avec des chaînes de requête (avant le code)

Voici un exemple de chargement de scripts avec des chaînes de requête.

Requêtes avec chaînes de requête
Requêtes avec chaînes de requête

Sans chaîne de requête (après le code)

Voici un exemple de scripts après avoir supprimé des chaînes de requête.

Requêtes sans chaîne de requête
Requêtes sans chaîne de requête

2. Supprimer une chaîne de requête des ressources statiques avec un plugin

Une alternative à l’utilisation de code est d’utiliser un plugin de performance WordPress qui a cette fonctionnalité intégrée. Le plugin Premium Perfmatters (développé par un membre de l’équipe de Kinsta), vous permet de supprimer les chaînes de requête des ressources statiques d’un simple clic. Il vous permet également d’implémenter facilement d’autres optimisations pour votre site WordPress, et fonctionne avec votre plugin de mise en cache actuel.

Supprimer les chaînes de requête avec le plugin Perfmatters
Supprimer les chaînes de requête avec le plugin Perfmatters

Plus de chaînes de requête

Après avoir utilisé l’une ou l’autre des options ci-dessus, vous ne devriez plus voir d’avertissement concernant les chaînes de requête dans les outils de test de vitesse de site Web tels que GTMetrix ou Pingdom.

Correction de l’avertissement remove query strings from static resources
Correction de l’avertissement remove query strings from static resources

Hébergez gratuitement votre site statique avec l’hébergement de sites statiques de Kinsta et déployez votre site web directement.