[Contact Form 7] 必要なページのみCSSとJSを読み込む
CSS
が出てくる。「Contact Form 7」のCSS
は、お問い合わせフォームのページだけで読み込まれればいいので、それ以外のページでは読み込まないように改善して、PageSpeed Insightsのスコアがどれだけ改善するのか確認する。
Contents
改善前のPageSpeed Insightsスコア
モバイル:53 パソコン:98 WordPressのテーマは「Luxeritas」を使用しているのでパソコンはもともと高スコア モバイルはGoogleアドセンスを使っているため遅い * 2018年11月頃からPageSpeed Insightsの評価方法が変わって、Googleアドセンスやアナリティクスを導入していると速度評価が落ちる改善できる項目で表示される指摘
* 「…css/styles.css
」としか表示されていないので気づかなかったが「Contact Form 7」のCSS
だった。文字列にカーソルを当てると全文が表示されるよ
レンダリングを妨げるリソースを除外する
「Contact Form 7」はデフォルトの状態だと、CSS
とJavaScript
をすべてのページで読み込んでいる
なので、まず「Contact Form 7」のCSS
とJavaScript
の読み込みを停止し、次に必要なページ(今回は問い合わせフォーム)だけCSS
とJavaScript
を読み込む
CSS
とJavaScript
の読み込み停止
リソースの読み込み停止には2つの方法がある
wp-config.php
に以下のコードを追記する
define ('WPCF7_LOAD_JS', false); // JS読み込み停止
define ('WPCF7_LOAD_CSS', false); // CSS読み込み停止
* define( 'DB_COLLATE', '' );
とか、define()
が定義されている箇所に書く
それ以降に書いてはいけない
functions.php
ファイルに以下のコードを追記する
add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );
* 子テーマのfunctions.php
ファイルに書くこと
必要なページで読み込ませる
子テーマのfunctions.php
ファイルに以下のコードを追記
function enable_wpcf7_load() {
if( is_page( 'contact' ) ) {
if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
wpcf7_enqueue_scripts();
}
if ( function_exists( 'wpcf7_enqueue_styles' ) ) {
wpcf7_enqueue_styles();
}
}
}
add_action( 'wp_enqueue_scripts', 'enable_wpcf7_load' );
* is_page( 'contact' )
の’contact’は、今回のお問い合わせフォームのスラッグ名なので、必要ページのスラッグ名に置き換えること
* CSS
の読み込みはwp_enqueue_style()
、スクリプトの読み込みにはwp_enqueue_scripts()
を使うのだが、実際wp_enqueue_scripts()
はどっちも呼び出してくれる
簡単バージョン
上記ではリソースの停止と読み込みを2ステップで行なっているが、これを1ステップにした簡単バージョン 子テーマのfunctions.php
に記載する
add_action( 'wp', function() {
if ( is_page( 'contact' ) ) return;
add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );
});
* ページが’contact’でなければリソースの読み込み停止になっている
* add_action( 'wp', function()
でアクション’wp’を指定すると、WPオブジェクトが設定された後に実行される。WPオブジェクトが設定されないとページの判定ができないそうだ
改善後のPageSpeed Insightsスコア
モバイル:43 パソコン:99 パソコンで98→99とスコアが1上がった モバイルはスコア下がったけどアドセンスの影響があるので今回の改善の評価はできない 改善できる項目で表示される指摘 「Contact Form 7」のCSS
が消えた。(問い合わせページを測定すると改善前と同じ指摘が出る)