サイト高速化:CF7でreCAPTCHAのJavascriptを特定のページでのみ読み込み(複数ページ対応)

当サイトもWordPressで構築していますが、Ver.5.8からWebPに対応しました!というので早速導入してみました。ん?話題と違う?と思った方はせっかちさんですね。

WebP対応したらば次にやることはGoogleの「PageSpeed Insights」で速度測定じゃあ!ってなりますよね?

それで当然やってみました。そしたら・・・


不要なトップページでreCAPTCHAのJavascriptが読み込まれて激重に

PageSpeed Insightsの結果はご覧の通り。ウェブ屋さんにあるまじきスコア。

 PageSpeed Insights result01

ぐぬぬぬー、せっかくWebPに対応したのに、激重の原因はなんじゃあ!!と見ていくと、まず第一にコレ↓がよくないとのこと。

これはコンタクトフォームの無いトップページでは単なる無駄。それなのに表示速度に超悪影響を与えていました。なんか・・Googleのサービスを使って足引っ張られるのって、凄く悔しい。


reCAPTCHAのJavascriptを特定のページでのみ読む込ませる方法

コンタクトフォームにはCF7(Contact form 7)を利用しています。そこでスパム対策としてGoogleのreCAPTCHAをインテグレーションしているわけですが、コンタクトフォームのあるページ以外では読み込ませる必要がありません。なので、読み込みを特定のページに絞りたいなーと思って探したところ、やっぱり神がいました。ネットには八百万の神々がいますね。

reCAPTCHAのJavascriptを不要なページから消す方法

↑こちらで紹介されている方法をもとに、以下のコードをテーマのfunctions.php に追加しました。

//reCAPTCHA JS読み込みをコンタクトページに限定
function load_recaptcha_js() {
if ( ! is_page( 'contact' ) ) {//フォーム設置ページのスラッグ
wp_deregister_script( 'google-recaptcha' );
}
}
add_action( 'wp_enqueue_scripts','load_recaptcha_js',100 );

複数のページで指定する場合

フォームを複数使っている場合は、以下のような形で指定できます。

//reCAPTCHA JS読み込みを指定したページだけにする
function load_recaptcha_js() { 
if ( ! is_page( array('スラッグ01','スラッグ02','スラッグ03') ) ) {//フォーム設置ページのスラッグ 
wp_deregister_script( 'google-recaptcha' ); 
} 
} 
add_action( 'wp_enqueue_scripts','load_recaptcha_js',100 );

 

さーて、これでどんな結果がでるか、早速また測定です。


表示速度爆上がりしました!

まずスマートフォンでの結果がこちら。

 PageSpeed Insights result03

えっ、38も上がるってすごくない??こんなに効果があったの初めて見ました。

そしてPCに至っては…

 PageSpeed Insights result05

出ました!90オーバー!!

確認すると、ちゃんと「使用していないJavascriptの削減」の項目が消えていました。

 PageSpeed Insights result04


結論:reCAPTCHAのJavascriptはコンタクトフォームだけで読み込むようにしましょう。

たったこれだけの作業でここまで効果がでるのは驚きでした。

スパム対策としてreCAPTCHAを導入しているサイトさんは多いと思いますが、サイトの高速化のためにも、読み込みのコントロールはとても簡単なので忘れないように作業しましょう(戒め)。

制作者近影

制作者 : 樋口 美徳(ひぐち みのり)
Webデザイナー・グラフィックデザイナー・イラストレーター
美大卒業後インターネット黎明期に独学でWebサイト制作を学び、1999年より日本の会社でデザイナーとして2008年まで勤務。勤務中2007年にドイツ・ベルリンへ移住し、以後フリーランスとして働いています。
夫と長女(大学生)、長男(高専生)の日本人4人家族でドイツ生活絶賛サバイバル中です。

制作者の紹介へ制作実績へお問い合わせ