ContactForm 7: reCAPTCHA alleen laden wanneer het nodig is

Recaptcha en contactform 7

In WordPress kun je heel makkelijk formulieren maken, onder andere met behulp van de veelgebruikte plugin ContactForm 7. Webformulieren worden echter veel gebruikt door grappenmakers die je via die formulieren veel spam sturen. Dit kun je oplossen door het gebruik van reCAPTCHA van Google. Dit is een gratis dienst, ook fijn om te weten. Je gebruikt (laadt) dan een stukje code van Google. Dat stukje code controleert of diegene die de mail verstuurt wel een echte bezoeker is en geen bot die sites naloopt op webformulieren.

Voorheen moest je bij het gebruik van recapcha een eenvoudig sommetje oplossen of je kreeg een aantal foto’s te zien en dan moest je op alle foto’s klikken waar bijvoorbeeld een zebrapad op stond. Dat hoeft gelukkig nu niet meer omdat die technieken verbeterd zijn.

Voordeel en nadeel

Het voordeel van Google reCAPTCHA 3.0 is dat de gebruiker er niets voor hoeft te doen. Nadeel van het gebruik van Google reCAPTCHA is dat scripts geladen worden, ook als je op die pagina of dat bericht geen contactformulier hebt staan. Er wordt dus onnodig code geladen.

Alleen op pagina’s waar een ContactForm 7 formulier staat

Het toevoegen van onderstaand stukje code in je wp-config.php zorgt ervoor dat het Google reCAPTCHA script niet elke keer geladen wordt, maar alleen op pagina’s waar een ContactForm 7 formulier staat.

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' );
	}
});

Hiermee voorkom je niet alleen dat je onnodig een script gaat laden, je zorgt er ook voor dat de hinderlijke banner van Google reCAPTCHA niet meer op elke pagina wordt getoond. Bovendien heeft het nog een voordeel: Je zult zien dat je website een hogere waardering krijgt in Lighthouse. En dat betekent dat je website sneller is. De snelheid waarmee je website wordt geladen is medebepalend voor de ranking in Google. En uiteindelijk is dat wat je wilt. Een snellere website, die goed gevonden wordt.

(Visited 52 times, 1 visits today)