- 表示高速化
- 更新日:

WordPressでJavaScriptを用いる際、どうやって読み込めばいいかわからなくなってしまうことがあると思います。
特に表示高速化にも気を遣うなら、この辺は必須ですよね。
この記事では
- そもそもWordPressでどうやってJavaScriptやそのライブラリを用いたファイルを読み込むのかわからない。
- PageSpeed Insightsのスコアが悪く、JavaScriptの読み込みを改善したいけど、どうしていいかわからない。
こんな悩みに答えていければと思います。
サイトリニューアルを検討されている方は、こちらの記事をご覧ください。
無料の高速化診断、実施中!
「PageSpeed Insightsのスコアが低い…」「どう改善すれば良いかわからない…」
など、表示速度の課題を感じている方に、表示速度が遅いページ一覧と原因・改善施策がわかる無料の高速化診断を実施中!サイトの現状を知りたい方、改善施策が知りたい方は、ぜひお気軽にお申し込みください。
目次
そもそも読み込み方に3種類ある
最初に、WordPress内でのJavaScriptの読み込み方法の種類について説明していきます。
もっと細かく分けることもできますが、ここでは大きく3種類で分けようと思います。
1,テンプレートに直接記述して読み込み
まずはWordPressテーマのテンプレートに記述する方法です。
よくあるのが、head内に<script>タグを記述して読み込んでいるパターンです。
<script src=”<?php echo get_template_directory_uri(); ?>/something.js” ></script>
後述しますが、正直なところ、表示が遅くなる可能性があるので、オススメはしません。
2,WordPressに内在する関数を用いて読み込み
2つ目はWordPressにある関数を用いて読み込む方法です。
具体的にはwp_enqueue_scriptsという関数を読み込みます。
functions.phpに下記のように読み込みます。
例
function read_js(){ wp_enqueue_script( ‘something’, get_stylesheet_directory_uri() . '/something.js',['jquery']); } add_action('wp_enqueue_scripts', 'read_js');
第一引数にスクリプトのハンドルとして使われる名前、
第二引数にJavasScriptファイルのURLを指定します。
注意があるとすれば、第三引数です。
ここに事前に読み込む必要のあるスクリプトを指定しておく必要があります。
実際にはjQueryを使用しているファイルを読み込む際に、第三引数に’jQuery’を含めた配列が記述がされることが多いです。
もちろん他にもライブラリを使用しているなら、それを事前に読み込むファイルとして指定しておく必要があります。
なお、他にも引数で指定できる項目があるので、関数の詳細はこちらをご覧ください。
3,プラグインを用いて読み込み
3つ目はプラグインを用いて読み込む方法です。
「Simple Custom CSS and JS」などが有名です。
管理画面からの管理も容易になり、テーマやコードに関する専門的な知識を持たないでもJavaScriptを反映しやすいのが特徴です。
プラグインをインストールすることで、動作が重くなったり、予期せぬエラーが起きたりする場合もありますので、それは注意です。
では、どう読み込むのが最適か?
ここまで3つの方法を示してきましたが、どうやって読み込めばよいのでしょうか。
管理のしやすさや実装のしやすさ等いろんな観点があるかと思いますが、今回は表示高速化の観点から最適な読み方を説明していきます。
基本のJavaScriptの読み込み方について
そもそもWordPress内だからといって、基本のJavaScriptの読み込み方と本質は何も変わりません。
JavasScriptそのものの読み込み方法についてはこちらの記事で解説しています。
ざっと要点をまとめると、下記のようになります。
- 基本はdefer属性を付与して読み込む
- サードパーティースクリプト等はasyncを使う
- シンプル、インラインはファーストビューで使う
なお、そもそもdeferがわからない等も、上記の記事で解説しているので、参考にしてみてください。
WordPress用にカスタマイズする
あとは、上記の事項をWordPressでも適応させるだけです!
1つ1つ説明していきます。
1,基本はdefer
WordPressでJavaScriptを読み込む際も、基本はdeferを用いた非同期読み込みをします。
なお、テンプレートに直接記述するパターンは基本のJavaScriptの読み込み方と同じなので、WordPressでの関数を用いた読み込み方について解説していきます。
wp_euqueue_script関数で読み込む際、デフォルトではdeferは付与されないので、
フィルターフックを用いて書き換えます。
function add_defer( $tag ) { if (is_admin()){ return $tag; } if ( strpos( $tag, 'jquery.js' ) ){ return $tag; } return str_replace( 'src', 'defer src', $tag ); } add_filter( 'script_loader_tag', 'add_defer', 10 );
注意点がいくつかあり、まず管理画面では実行しないことです。
is_adminを用いて回避しています。
そしてjQueryも回避します。
jQueryを用いているJavaScriptも全てdeferで読み込むのであれば、jQueryもdeferで読み込んで機能する場合もありますが、不具合に繋がるので、分からなければ避けておくのが無難です。
他のライブラリもdeferで読み込んでうまくいく場合もありますが、基本は避けておくとよいでしょう。
もちろん、他にも避けたい状況があれば、if文を用いて避けておきます。
また、特定のJavaScriptだけdefer属性をつけたい場合は
function add_defer( $tag, $handle ) { // deferで読み込みたいJavaScriptの、wp_enqueue_scriptで指定したハンドル名を指定 if ( 'something' === $handle ){ return str_replace( 'src', ' defer src', $tag ); } return $tag; } add_filter( 'script_loader_tag', 'add_defer', 10, 2 );
のようにif文を用いて、指定するのがよいです。
2,サードパーティースクリプト等はasyncを使う
サードパーティースクリプト等を使う場合はasyncで読み込みます。
基本はdeferの読み込み方法と同じです。
deferのところをasyncに置き換えます。
基本的にはasyncで読み込みたいスクリプトを指定するパターンが多いでしょう。
function add_async( $tag, $handle ) { // asyncで読み込みたいJavaScriptのwp_enqueue_scriptに指定したハンドル名を指定 if ( 'something’' === $handle ) { return str_replace( 'src', ' async src', $tag ); } return $tag; } add_filter( 'script_loader_tag', 'add_async', 10, 2 );
他のパターンで読み込む際もdeferをasyncに置き換えた読み込み方でよいです。
3,シンプル、インラインはファーストビューで使う
ファーストビューではシンプル(普通の読み込み)、インラインでの読み込みをしますが、
テンプレートに直接記述することがほとんどと思います。
wp_euqueue_scriptで読む際も特にカスタマイズする必要はありません。
プラグインを用いた読み込みに関して
なお、ここまでプラグインについて説明しませんが、
実はプラグインでも同様のことができます。
例えば、「Hummingbird (https://wordpress.org/plugins/hummingbird-performance/)」というプラグインを使えば、JavaScriptをdeferで読み込むことが可能です。
ただ、そもそもJavaScriptファイルの数がそこまでなかったり、テンプレートに簡単に記述することで設定が終わる場合も多く、
またasyncとdeferの片方しかできないプラグインも多いので、
直接記述することをオススメします。
まとめ
WordPressでもJavaScriptを用いる場合は表示速度に大きく影響します。
メンテナンスをしっかりすることで、JavaScriptを使いつつ、表示高速化も可能です。
この記事が参考になれば幸いです。
当サイトではこの他にもWebに関するお役立ち情報を多数ご紹介しています。
Web担当者の方、デジタルマーケティングに興味がある方はぜひご覧ください。
広告運用やSEO、解析・Web製作など、当社はWebに関わるベストソリューションをご提供しています。お悩み・ご相談も受け付けておりますので下記のボタンからお気軽にご連絡ください。
高速化診断 & 表示速度改善でユーザー体験とCVRを向上!
デジタルアイデンティティでは、Webサイトの表示速度に課題を感じている企業様向けに、無料の高速化診断とフロントエンドからインフラまで一貫対応する表示速度改善サービスを提供しています。
表示速度が遅いページ・原因が一覧でわかる高速化診断でサイトの現状を徹底分析。PageSpeed Insightsのスコア改善はもちろん、画像・CSS/JS・サーバー処理・インフラ最適化まで、技術力と実績に裏打ちされた幅広い施策で、SEO評価やCVR、UI/UXを総合的に底上げします。
こんなお悩み、ありませんか?
- まずはサイトの現状を診断してほしい…
- PageSpeed Insightsのスコアが低く、改善したい…
- ユーザー離脱や直帰率が高く、表示スピードが原因かもしれない…
- 高速化に詳しいエンジニアが社内にいない…
- 対策したがスコアが上がらない、改善方法がわからない…
多くの企業サイトやLP、ECサイトなどで成果を上げてきた表示速度改善のプロフェッショナルが、貴社サイトの課題を根本から解決します。