Cómo cargar el script de reCAPTCHA con Contact Form 7 solo donde sea necesario

Cuando se está optimizando WordPress basándonos en las directrices de sistemas como PageSpeed Insights, salen a la luz la carga de scripts en páginas que ni tan siquiera hacen uso de los mismos, es algo habitual causa de plugins que incorporan estas librerías sin diferenciar si se hace uso de la funcionalidad asociada.

Una de las más habituales es reCAPTCHA de Google cuando está configurado desde el plugin Contact Form 7.

Para que las librerías de reCAPTCHA solo carguen en la página que disponga de algún formulario, podemos usar un pequeño hack que detectará si se usa el plugin Contact Form 7 en la página en la que está el visitante, y en caso afirmativo, elimina de la cola la carga de sus librerías.

Esto se haría añadiendo el siguiente código al final del fichero functions.php de la plantilla que está en uso.

add_action('wp_print_scripts', function () {
    global $post;
    if ( is_a( $post, 'WP_Post' ) && !has_shortcode( $post->post_content, 'contact-form-7') ) {
        wp_dequeue_script( 'google-recaptcha' );
        wp_dequeue_script( 'wpcf7-recaptcha' );
    }
});

Ahora bien, este método no es oficial y Contact Form 7 recomienda que la librería cargue siempre aludiendo a que de lo contrario la detección de bots no sería tan efectiva, por lo que se trata de un método que se debe usar bajo propio riesgo.