Dans ma quête d’optimisation des performances web, j’ai récemment choisi d’adopter l’excellente extension Perfmatters.
Utilisant au quotidien des serveurs managés via SpinupWP (et son extension compagnon) depuis 2022, je souhaitais une meilleure intégration entre les deux outils, notamment pour synchroniser les purges de cache côté serveur et côté WordPress.
En parcourant le code source du helper SpinupWP, j’ai identifié plusieurs hooks/action utiles que SpinupWP déclenche lors des différentes purges :
Les actions disponibles
Lors d’une purge complète du cache :
spinupwp_site_purged
Lors d’une purge de l’URL courante :
spinupwp_post_purged
Lorsqu’on purge une URL spécifique :
spinupwp_url_purged
Du côté de Perfmatters, plusieurs actions sont également appelées lorsqu’on purge le CSS ou le JS optimisé :
wp_ajax_perfmatters_clear_used_css
wp_ajax_perfmatters_clear_minified_css
wp_ajax_perfmatters_clear_minified_js
Et dans le cas de requêtes POST classiques (hors AJAX) :
admin_post_perfmatters_clear_used_css
admin_post_perfmatters_clear_minified
Les fonctions disponibles
Côté Perfmatters :
Perfmatters\CSS::clear_used_css();
Perfmatters\Minify::clear_minified('css');
Perfmatters\Minify::clear_minified('js');
Perfmatters\Fonts::clear_local_fonts();
Langage du code : PHP (php)
Côté SpinupWP :
// Purger tout le cache
spinupwp_purge_site()
// Purger un post spécifique
spinupwp_purge_post( $post_id|$post )
// Purger une URL précise
spinupwp_purge_url( $url )
Langage du code : PHP (php)
Le connecteur SpinupWP ↔ Perfmatters
Voici une première version fonctionnelle d’un petit plugin WordPress permettant de faire le lien entre SpinupWP et Perfmatters. Dès qu’une purge est déclenchée par l’un, l’autre suit automatiquement.
Il s’agit d’un simple fichier PHP à déposer dans le répertoire /wp-content/plugins/
puis à activer depuis l’admin WordPress.
Néanmoins, je cpmpte publier cette extension sur le repository WordPress.org très prochainement, le temps de voir comment SVN fonctionne 🙂
<?php
/**
* Plugin Name: Connect SpinupWP with Perfmatters
* Description: Automatically synchronize cache purges between SpinupWP and Perfmatters.
* Version: 1.0.0
* Author: La Boîte à Re
* License: GPL2+
*/
defined( 'ABSPATH' ) || exit;
add_action( 'spinupwp_site_purged', 'spsync_clear_perfmatters_cache' );
add_action( 'spinupwp_post_purged', 'spsync_clear_perfmatters_cache' );
add_action( 'spinupwp_url_purged', 'spsync_clear_perfmatters_cache' );
function spsync_clear_perfmatters_cache() {
if ( class_exists( '\Perfmatters\CSS' ) ) {
\Perfmatters\CSS::clear_used_css();
}
if ( class_exists( '\Perfmatters\Minify' ) ) {
\Perfmatters\Minify::clear_minified( 'css' );
\Perfmatters\Minify::clear_minified( 'js' );
}
if ( class_exists( '\Perfmatters\Fonts' ) ) {
\Perfmatters\Fonts::clear_local_fonts();
}
}
// Ajout du lien inverse : purge de SpinupWP quand Perfmatters est vidé
// Quand un utilisateur authentifié purge via Perfmatters
add_action( 'wp_ajax_perfmatters_clear_used_css', 'spsync_clear_spinupwp_cache' );
add_action( 'wp_ajax_perfmatters_clear_minified_css', 'spsync_clear_spinupwp_cache' );
add_action( 'wp_ajax_perfmatters_clear_minified_js', 'spsync_clear_spinupwp_cache' );
add_action( 'admin_post_perfmatters_clear_used_css', 'spsync_clear_spinupwp_cache' );
add_action( 'admin_post_perfmatters_clear_minified', 'spsync_clear_spinupwp_cache' );
function spsync_clear_spinupwp_cache() {
if ( function_exists( 'spinupwp_purge_site' ) ) {
spinupwp_purge_site();
}
}
Langage du code : HTML, XML (xml)
Perfmatters, une bonne alternative à WP Rocket ?
La réponse est clairement oui, surtout si vous utilisez déjà une solution de cache côté serveur (Nginx, Varnish, SpinupWP, voir WP FatestCache, WP Super Cache) ou un reverse proxy comme Cloudflare.
Perfmatters ne fournit pas de cache HTML intégré, mais se concentre sur la micro-optimisation : désactivation des scripts inutiles, gestion intelligente des ressources, lazy loading, prefetch, gestion des polices, optimisation CSS/JS, etc.
Plus léger et plus ciblé, Perfmatters est souvent un choix judicieux pour ceux qui veulent garder le contrôle sur leurs performances sans alourdir leur site. En ce sens, il se positionne comme une alternative moderne et pertinente à WP Rocket, surtout dans des stacks bien optimisées.
À noter que Perfmatters, propose une licence pour un nombre de sites illimités pour $124.95 par an (tandis que WP-Rocket vient d’arrêter de commercialiser ses licences pour sites illimités et propose désormais des licences annuelles pour 50 sites à 299 € ou 500 sites à 599 €)
NB : Cet article contient des liens affiliés — cela ne change rien pour vous, mais me permet de soutenir le contenu que je propose. Je ne « sponsorise » que des outils de qualité que j’utilise au quotidien.