サイトの表示が遅い原因、Contact Form 7 の読み込みは必要な時だけに
先日、「PageSpeed Insights」を使って、運営している自分のサイトの読み込み速度を計測しました。
>> サイトの読み込み速度が気になって。実際に計ってみました
私の持っているサイトのうち、3つはほとんど同じワードプレステーマを使い、同じような構成です。
それなのに、なぜスピードがこんなに違うのか、気になっていました。
具体的には、
- ここ弐番館(ブログで稼いで楽隠居)は、95点くらい
- 社会保険労務士その他登録のブログ は、80点くらい
- 3級知的財産管理技能士徹底ガイド は、80点を切るくらい
なぜだろう・・・わかりました!
Contact Form 7 は、そのJavaScriptと、CSSスタイルシートをすべてのページでロードしていたから
ちゃんと「PageSpeed Insights」の「最適化についての提案」をしっかり読めば、簡単にわかる話でした。
今までは、あんまり「最適化」には興味がなくて、読んだことがありませんでした。
「スクロールせずに見えるコンテンツのレンダリングをブロックしている JavaScript/CSS を排除するといいよ」と書いてあります。
JavaScriptやCSSがジャマだ、ということですね。
JavaScriptは、ほとんど使っていないはずですが・・・と不審に感じながらも続きを読んでみると、
レンダリングをブロックする JavaScript を除去してください:
- jquery.js?ver=1.12.4
- jquery-migrate.min.js?ver=1.4.1
何だ何だ?
なぜ、こんなものを読み込むんだ?
いったい誰だ?
次のCSS 配信を最適化してください:
- style.css
- styles.css?ver=5.0.2
style.cssは分かります。
私のテーマのスタイルシートです。
もうひとつの、styles.css?ver=5.0.2って何者?
誰がこんなもん、読み込んでいるんだ??
Contact Form 7 さんでしたか
はい。
読み込みの遅かった2つのサイトには、「お問い合わせ」ページがありました。
有名なプラグイン、Contact Form 7 を使っています。
作者さん、ありがとうございます。
いつも便利に、使用しております。
お世話になっているうえに、作者さんのサイトに解決のヒントまで書いてありました。
参考にしたページはこちらです。
必要な場合だけ JavaScript とスタイルシートをロードさせるには
こちらのページに、2ステップで解決方法が書かれています。
- 「ステップ 1: すべてのページで JavaScript と CSS スタイルシートをロードしないようにする」
- 「ステップ 2: コンタクトフォームを含んだページで JavaScript と CSS スタイルシートをロードする」
お問い合わせページ用に、phpファイルを別に作る方法ですね。
phpファイルをこれ以上増やしたくない私としては、functions.php に書くことにしましょう。
さっそくコードを作って、functions.php に追記しましょう
私がブログで Contact Form 7 を使っているのは「お問い合わせ」ページだけ。
パーマリンクは「/otoiawase/」です。
・・・英語、苦手なんです。
普通の人は「/contact/」を使うと思いますので、下記の「/otoiawase/」を「/contact/」に変更してください。
(コピペする場合には自己責任でお願いします。また十分に検証してからお使いください。)
// contact form 7 のファイルを必要な場合(/otoiawase/)だけ読み込む
function wpcf7_file_load() {
add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );
if( is_page( 'otoiawase' ) ){
if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
wpcf7_enqueue_scripts();
}
if ( function_exists( 'wpcf7_enqueue_styles' ) ) {
wpcf7_enqueue_styles();
}
}
}
add_action( 'template_redirect', 'wpcf7_file_load' );
サイトの読み込みが、すっかり速くなりました
90点以上が、当たり前に出るようになりました!
あとできそうなのは、画像の圧縮です。
う~ん、これまた気が重い・・・。
スポンサーリンク
コメントを残す