【スポンサーリンク】

WordPressの jQuery を jsDelivr に変えてみたけれど(CDNとパフォーマンス)

WordPressの jQuery を jsDelivr に変えてみたけれど(CDNとパフォーマンス)
  • WordPressのjQueryの読込みを高速化するために、CDNの jsDeliver に変更してみました。
  • しかし、結果としては ほとんど違いは出てきませんでした。
  • WordPressデフォルトのGoogle Cloud CDN 自体がすでに高速なCDNだったようです。
\記事が役に立ったらシェアしてね/
キーワード

キーワード:#JQuery(8)#CDN(4)

【スポンサーリンク】

1. jQueryがメインスレッドをブロックしている

Chromeの開発モードでパフォーマンスを見ていたら、「第三者コードの影響を抑えてください」という診断が目につきました。

jqueryライブラリの読み込みに時間がかかっているようです。

第三者コードの影響を抑えてください – 第三者コードによってメインスレッドが 1,180 ミリ秒間ブロックされました

jQueryがメインスレッドをブロックしている
コード転送サイズブロック時間
https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js?ver=3.6.131 KiB1,185 ms
https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.3.2/jquery-migrate.min.js?ver=3.0.14 KiB0 ms

2. 高速なCDNなら jsDelivr?

CDNで高速なドメインを調べてみると、jsDelivrが有力なようです。

ライブラリ配信なら jsDelivr 一択!(…)

CDN の中でも爆速です。

ライブラリ用 CDN は jsDelivr が無料 & 爆速で、これだけあれば十分 – 自主的20%るぅる(2019.08.26)

jQueryのバージョンを同じもので、jsDelivrから読み込んでみたいと思います。
jsDelivr から jQuery 3.6.1を読み込むには、以下のURLを使います。

https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.min.js
jquery CDN by jsDelivr – A CDN for npm and GitHub
jquery CDN by jsDelivr – A CDN for npm and GitHub

3. WordPressのjQueryを変更する

WordPressで使われる jQuery を変更するには、functions.php で wp_enqueue_scripts にアクションを追加します。いったん、既存のコードを解除して、再登録すればよいわけです1

add_action( 'wp_enqueue_scripts', function() {
    if ( is_admin() ) {
        return; // 管理画面は変更しない
    }

    if ( ! wp_script_is( 'jquery', 'registered' ) ) {
        return; // jqueryがない
    }

    // jqueryの登録解除
    wp_deregister_script( 'jquery' );
    wp_deregister_script( 'jquery-core' );
    wp_deregister_script( 'jquery-migrate' );

    $new_ver = '3.6.1';

    // jquery-core, jquery-migrateのエイリアス
    wp_register_script( 'jquery', false, [ 'jquery-core', 'jquery-migrate' ], $new_ver );

    //JQueryの登録
    $src = 'https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.min.js';
    wp_register_script( 'jquery-core', $src, [], $new_ver );

    // JQuery migrateの登録
    $new_ver = '3.0.1';
    $src = 'https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.3.2/jquery-migrate.min.js?ver=3.0.1';

    wp_register_script( 'jquery-migrate', $src, [], $new_ver );
} );

4. 結果:あまり変わらなかった

結果をみると、ちゃんと JSDelivr CDN から jqueryを読み込むことができました。
しかし、読み取り時間がほとんど変わっていません。

jquery.min.jsの読み取り時間
  • Google CDN:1,185 ms
  • JSDelivr CDN:1,080 ms
結果:あまり変わらなかった
コード転送サイズブロック時間
https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.min.js32.1 KiB1,080 ms
https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.3.2/jquery-migrate.min.js?ver=3.0.14.0 KiB780 ms
結果:あまり変わらなかった

jquery-migrateのコードは、同じ場所なので誤差だと思います。

どうも、「jsDelivrが最速」という情報は2019年のもの。
パフォーマンスを比較してみると、最近では Google Cloud CDN が改善されています。
日本国内のアクセスで見ても jsDelivrよりも速いようです(ほぼ差はないですが)。

CDNPerf – RUM data(2023-07-16)
CDNPerf – RUM data(2023-07-16)

これなら、わざわざ変更するスクリプトを入れるより、元に戻しておいた方がよさそうです。

こちらもどうぞ。

【検討中】 jquery-migrateを減らしてみたけど、戻した [WordPress]
【検討中】 jquery-migrateを減らしてみたけど、戻した [WordPress]
PageSpeed Insightsで「レンダリングを妨げるリソースの除外」を見てみると、jqueryに関する2つのスクリプトが目につきました。 (Google CDN)jquery.min.js?ver=3.6.1 (Cloudflare CDN)jquery-migrate.min.js?ver=3.0.1 これを除外できないか試みてみました。 jQueryスクリプトを入れ替え jQueryのスクリプトを入れ替えてみます。 (参考) jQuery CDN function...
LiteSpeed CacheがアップデートされてJQueryが遅延読込みされている 【ただしサイトスピードは高速化】
LiteSpeed CacheがアップデートされてJQueryが遅延読込みされている 【ただしサイトスピードは高速化】
ほとんどタイトルが全てなんですが、LiteSpeed Cacheプラグインのアップデートについてメモしておきます。 プラグインのアップデート一つでこんなに変わるんですね。 LiteSpeed Cacheのバージョンが3.5.0.1にアップグレードされた LiteSpeed CacheはWordPressのプラグインで、mixhostサーバーではサイトスピード向上のために利用することができます。 最近(2020年9月29日)バージョンが3.4.2→から3.5にアップデートされま...
【未解決】ページのスクロール パフォーマンスを高めるには?[jquery.min.js, PSI]
【未解決】ページのスクロール パフォーマンスを高めるには?[jquery.min.js, PSI]
PageSpeed Insightsに「イベントリスナーをpassiveにしなさい」という注意書きがありました。 どうも jQuery 関係に問題があるようですが、わかりません。 jQueryそのものを除くことも考えましたが、Cocoonテーマ内のいろんなプラグイン(カルーセル(slick)とか画像拡大表示(baguetteBox)など)が利用しているので、ちょっと難しそう。 スクロール パフォーマンスを高める受動的なリスナーが使用されていません エラーが気になる。たぶん、放...

(補足)

  1. 解除して再登録します。 – WordPress, jQueryをCDNに変える。バージョンを変える。 | ただ屋ぁのブログ
QRコードを読み込むと、関連記事を確認できます。

WordPressの jQuery を jsDelivr に変えてみたけれど(CDNとパフォーマンス)
【スポンサーリンク】
タイトルとURLをコピーしました