- Site Kitのどの機能がgsi/clientを全ページに挿入しているのか
- 89.8KiBのスクリプトがFCP・LCP・TBTにどう影響するか
- functions.phpでフロントエンドからスクリプトを除去するコード
- 対策後にPageSpeedスコアが53→72に改善した実測データ
問題の発見:PageSpeed Insightsの警告
PageSpeed Insightsのモバイルスコアが53点で、「使用していないJavaScriptの削減」にgsi/client(89.8KiB・うち69.5KiBが未使用)が表示されていました。さらにクリティカルパスに約790msを追加していたことが判明しました。
89.8KiBの未使用JavaScript

|
1 2 3 4 |
Other Google APIs/SDKs utility /gsi/client(accounts.google.com) 転送サイズ: 89.8 KiB 推定される削減サイズ: 69.5 KiB |
accounts.google.com/gsi/clientというスクリプトが、89.8KiBを転送し、そのうち69.5KiBが未使用と報告されています。つまり、このスクリプトの約77%がページ上で使われていないということです。
クリティカルパスへの影響
さらに深刻だったのは、「ネットワークの依存関係ツリー」を確認したときです。
|
1 2 3 4 5 |
クリティカル パスの最大待ち時間: 790 ms https://raplsworks.com - 227 ms, 153.88 KiB /gsi/client(accounts.google.com) - 471 ms, 90.94 KiB /gsi/style(accounts.google.com) - 790 ms, 1.38 KiB |
原因の特定:なぜフロントエンドに読み込まれるのか
原因はGoogle Site Kitプラグインの「Sign in with Google」機能です。wp-login.phpでのみ使用されるスクリプトが、Site Kitの実装により全フロントエンドページにも挿入されていました。どこから読み込まれているのか
gsi/clientの正体は、Googleの「Sign in with Google」機能を提供するJavaScriptライブラリです。Googleアカウントでのログインボタンやワンタップログインを実装するために使われます。
wp-login.phpでのみ使用されるものです。
しかし、Site Kitはこのgsi/clientスクリプトをフロントエンドのすべてのページにも読み込んでいたのです。
なお、Site Kitでは「Sign in with Google」以外にも、Consent Mode(同意モード)関連で予期しない挙動が発生することがあります。Consent APIの警告が出て困っている場合は、以下の記事も参考にしてください。
確認方法:Chrome DevToolsで実際に見てみる

- サイトのトップページを開く
F12キーでDevToolsを開く- 「Network」タブを選択
- フィルターに「
gsi」と入力 - ページをリロード
accounts.google.com/gsi/clientへのリクエストが表示されれば、同じ問題が発生しています。
また、ページのソースコード(Ctrl+U)を表示して「gsi」で検索すると、Site Kitが挿入した<script>タグを直接確認できます。
なぜこれが問題なのか:技術的な考察
外部ドメインへの接続コスト、後続リソースのリクエストチェーン、メインスレッドの占有が重なり、FCP・LCP・TBTのすべてのCore Web Vitals指標に悪影響を与えます。しかもフロントエンドではまったく使われていないスクリプトです。 「たかが89.8KiB」と思われるかもしれません。しかし、このスクリプトがパフォーマンスに与える影響は、単純なファイルサイズ以上のものがあります。1. 外部ドメインへの接続コスト
gsi/clientはaccounts.google.comという外部ドメインから読み込まれます。ブラウザがこのスクリプトを取得するためには、DNS解決、TCP接続、TLSハンドシェイク、リクエスト送信とレスポンス受信というステップを踏む必要があります。
自サーバーのリソースであれば接続が再利用されますが、外部ドメインの場合はこれらのステップを最初から行わなければなりません。特にモバイル回線(PageSpeed Insightsでは低速4Gでシミュレーション)では、この接続確立だけで数百ミリ秒かかります。
2. 後続リソースの連鎖
gsi/clientは単独では完結しません。読み込まれた後にgsi/styleという追加のリソースを要求します。つまり以下の連鎖が発生します。
|
1 |
HTML解析 → gsi/clientのダウンロード → gsi/clientの実行 → gsi/styleのダウンロード |
3. メインスレッドの占有
JavaScriptはブラウザのメインスレッドで解析・コンパイル・実行されます。89.8KiBのスクリプトは、展開後のコード量はさらに大きく、その処理にメインスレッドの時間を消費します。 メインスレッドが占有されている間、ページのレンダリングやユーザー操作への応答は待たされます。これがTBT(Total Blocking Time)の増加につながります。4. Core Web Vitalsへの影響
これらの要因が組み合わさることで、以下のCore Web Vitals指標に悪影響を与えます。| 指標 | 影響 | 理由 |
|---|---|---|
| FCP(First Contentful Paint) | 悪化 | クリティカルパスにスクリプトが追加され、最初のコンテンツ描画が遅れる |
| LCP(Largest Contentful Paint) | 悪化 | メインスレッドの占有によりレンダリングが遅延する |
| TBT(Total Blocking Time) | 悪化 | スクリプトの解析・実行がメインスレッドをブロックする |
5. そもそも使われていない
最も根本的な問題は、このスクリプトがフロントエンドでまったく使われていないことです。 「Sign in with Google」のボタンが表示されるのはwp-login.phpだけです。トップページや記事ページにGoogleログインボタンは存在しません。にもかかわらず89.8KiBのスクリプトを読み込み、外部への接続を発生させ、メインスレッドの時間を消費しています。
これは完全な無駄であり、除去しても機能には一切影響しません。
対策方法
推奨は子テーマのfunctions.phpでgsi/clientスクリプトをフロントエンドから除去する方法です。wp-login.phpでのGoogleログイン機能は維持したまま、不要なスクリプト読み込みだけを停止できます。 gsi/clientをフロントエンドから除去する方法はいくつかあります。方法1:functions.phpでスクリプトを除去する(推奨)
以下のコードを子テーマのfunctions.phpまたはCode Snippetsプラグインに追加してください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
/** * Site Kit の gsi/client をフロントエンドで無効化 * wp-login.php(ログインページ)では引き続き動作する */ // 方法A:登録済みスクリプトから除去 add_action('wp_print_scripts', function() { if (is_admin()) return; global $wp_scripts; foreach ($wp_scripts->registered as $handle => $script) { if (isset($script->src) && strpos($script->src, 'accounts.google.com/gsi') !== false) { wp_deregister_script($handle); } } }, 100); // 方法B:HTMLから直接除去(プラグインが直接出力している場合) add_action('template_redirect', function() { if (is_admin()) return; ob_start(function($html) { // gsi/client の script タグを除去 $html = preg_replace( '/<script[^>]*accounts\.google\.com\/gsi\/client[^>]*><\/script>/i', '', $html ); // gsi/style の link タグも除去 $html = preg_replace( '/<link[^>]*accounts\.google\.com\/gsi\/style[^>]*>/i', '', $html ); return $html; }); }); |
wp_enqueue_scriptで登録されている場合と、直接HTMLに出力されている場合があります。両方を記述することで、どちらのケースでも確実に除去できます。
方法2:Site Kitの「Sign in with Google」を無効化する
Site Kitの管理画面から機能自体を無効化する方法です。- WordPress管理画面 → Site Kit → 設定
- 「接続済みサービス」タブを開く
- 「Sign in with Google」の項目を探す
- 「切断」または「無効化」をクリック
方法3:条件付きで読み込む(上級者向け)
Site KitのフィルターフックでSign in with Googleの出力を制御する方法です。|
1 2 3 4 5 6 7 8 9 10 |
/** * Sign in with Google をログインページ以外で無効化 */ add_filter('googlesitekit_sign_in_with_google_enabled', function($enabled) { // ログインページ以外では無効化 if (!in_array($GLOBALS['pagenow'] ?? '', ['wp-login.php', 'wp-register.php'])) { return false; } return $enabled; }); |
対策後の確認
対策を適用した後、以下の手順で確認します。- サイトのキャッシュをクリア(キャッシュプラグインのキャッシュ削除)
- ブラウザのキャッシュもクリア(
Ctrl+Shift+Delete) - Chrome DevToolsのNetworkタブで「
gsi」をフィルタリング - トップページをリロードして、gsi/clientのリクエストが消えていることを確認
wp-login.phpに直接アクセスして、Googleログインボタンが正常に表示されることを確認(方法1の場合)
対策後の効果
パフォーマンススコアが53点→72点(+19点)に改善し、LCPは13.0秒→5.0秒と8秒短縮されました。TBTも260ms→30msまで大幅に減少しています。
| 指標 | 対策前 | 対策後 | 改善幅 |
|---|---|---|---|
| パフォーマンススコア | 53点 | 72点 | +19点 |
| First Contentful Paint | 7.5秒 | 3.2秒 | -4.3秒 |
| Largest Contentful Paint | 13.0秒 | 5.0秒 | -8.0秒 |
| Total Blocking Time | 260ms | 30ms | -230ms |
| Speed Index | 7.5秒 | 5.0秒 | -2.5秒 |
| 未使用JavaScript | 412 KiB | 54 KiB | -358 KiB |

あなたのサイトでも確認すべき理由
Site Kitは400万以上のアクティブインストールを持つ人気プラグインですが、gsi/clientの全ページ挿入に気づいているサイト運営者はごく少数です。PSIでは「Other Google APIs/SDKs」に分類されるため見落としやすい問題です。 この問題が厄介なのは、気づきにくい点にあります。 Site Kitは非常に人気のあるプラグインで、WordPressの公式ディレクトリで400万以上のアクティブインストールを誇ります。Sign in with Google機能を有効にしている(あるいはデフォルトで有効になっている)サイトは多いでしょう。 しかし、この機能が全ページにスクリプトを挿入していることに気づいているサイト運営者はどれだけいるでしょうか。 PageSpeed Insightsのレポートでは「Other Google APIs/SDKs」というカテゴリに分類されるため、一見するとGoogleの標準的なスクリプトに見えます。「Googleのスクリプトなら仕方ない」とスルーしてしまいがちです。チェックリスト
以下に該当する場合は、同じ問題が発生している可能性があります。- Google Site Kit プラグインを使用している
- PageSpeed Insightsで
gsi/clientが「使用していないJavaScript」に表示されている - Chrome DevToolsのNetworkタブで
accounts.google.com/gsiへのリクエストがある - ページのソースに
accounts.google.com/gsi/clientのscriptタグがある
まとめ
Site Kitの「Sign in with Google」がログインページ専用のgsi/client(89.8KiB)を全ページに挿入し、PageSpeedスコアを19点下げていた問題は、functions.phpでの除去コードで解決できます。 ポイントをまとめると以下のとおりです。- Site Kitの「Sign in with Google」は全フロントエンドページにgsi/clientスクリプトを挿入する
- 89.8KiBのうち69.5KiB(約77%)が未使用で、完全な無駄になっている
- 外部ドメインへの接続、リクエストチェーン、メインスレッドのブロックによりFCP・LCP・TBTすべてに悪影響を与える
functions.phpでフロントエンドからスクリプトを除去することで、ログイン機能を維持したまま対処できる- 実測でパフォーマンススコアが19点改善(53→72)し、LCPは8秒短縮された





コメント