Optimiser le chargement de Contact Form 7 et reCaptcha pour des performances optimales

Optimiser le chargement de Contact Form 7 et reCaptcha pour des performances optimales
WordPress Lecture 2 minutes • 9 septembre 2024

Voici comment optimiser les performances de votre site si vous utilisez l'extension Contact Form 7 et également si vous avez activé la protection reCaptcha de Google. À vous le score PageSpeed au maximum !

Bien charger les ressources JavaScript et CSS de Contact Form 7

Sachez que par défaut, les fichiers scripts et styles de Contact Form 7, et de Google reCaptcha v3 se chargent automatiquement sur toutes les pages et articles de votre site WordPress.
Alors que Google et les utilisateurs exigent des sites internet toujours plus rapides et performants, cette façon de charger les fonctions est contre-productive.

A défaut d'une option proposée par l'auteur du module (pas de solution de sa part intégrée au module à ce jour), voici une solution testée et approuvée pour mettre fin à la charge inutile de votre serveur !

Le code magique pour booster vos performances PageSpeed si vous utilisez Contact Form 7

Copier/coller le code suivant dans le fichier functions.php présent à la racine de votre site thème WordPress :

/**
 * Contact Form 7 : charger les scripts et styles uniquement s'il y a un formulaire sur la page détectée
**/

// Disable contact-form-7 recaptcha enqueue action
remove_action( 'wp_enqueue_scripts', 'wpcf7_recaptcha_enqueue_scripts', 20 );

// Dequeue contact-form-7 scripts
function contact_form_7_dequeue_scripts() {
  wp_dequeue_script( 'contact-form-7' );
}
add_action( 'wpcf7_enqueue_scripts', 'contact_form_7_dequeue_scripts' );

// Dequeue contact-form-7 styles
function contact_form_7_dequeue_styles() {
  wp_dequeue_style( 'contact-form-7' );
  wp_dequeue_style( 'contact-form-7-rtl' );
}
add_action( 'wpcf7_enqueue_styles', 'contact_form_7_dequeue_styles' );

// Trigger contact-form-7 enqueue actions when form shortcode is executed
function contact_form_7_enqueue_scripts( $out ) {

// Remove dequeue actions
  remove_action( 'wpcf7_enqueue_scripts', 'contact_form_7_dequeue_scripts' );
  remove_action( 'wpcf7_enqueue_styles', 'contact_form_7_dequeue_styles' );

  // Enqueue contact-form-7 assets
  if ( wpcf7_load_js() ) {
    wpcf7_enqueue_scripts();
  }
  if ( wpcf7_load_css() ) {
    wpcf7_enqueue_styles();
  }
  wpcf7_recaptcha_enqueue_scripts();

  return $out;

}
add_filter( 'shortcode_wpcf7', 'contact_form_7_enqueue_scripts' );

C'est tout, à vous de jouer !

Laisser un commentaire

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