Google Analyticsはサイト運営者にとって、無料で使用できる高機能なアクセス解析として唯一無二の存在だと思います。
WordPressを使ったサイトでも然りで、みんな使っているよね。
ページの表示速度が最近のSEOで重要視されている中、必須ともいえるGoogle Analyticsが起因のPageSpeed Insightsのスコア低下に困っていませんか?
わたしは少しでもスコアを上げようと、一時はGoogle Analyticsを設置していませんでした・・・。
そこまでするほど影響が大きいのかというと、スコア低下は5くらい下がります。
たった5かよっ!って感じですが、き~に~な~る~よ~ね~(;´Д`)
「第三者コードの影響を抑えてください 」と言われるのはなぜか
Google Analyticsが第三者(サードパーティ)のコードだからです。
自サーバー上にあるものではなく、訪問者に依存するものでもないもの。
第三者コードの影響を抑えなければならない理由として、PageSpeed Insightsでは以下のように説明しています。
第三者コードによって、読み込み速度が著しく低下する可能性があります。重複する第三者プロバイダの数を制限したうえで、ページのメインの部分を読み込み終えた後に第三者コードを読み込んでみてください。
https://developers.google.com/speed/pagespeed/insights/
読み込み速度が著しく低下する可能性、うん、確かに自サイトでは制御しきれない部分はある。
こういう風にPageSpeed Insightsでは最後の方で読み込むように言われるけど、Google Analyticsからはタグをヘッダーの一番上に設置するように言われた気が・・・。
これは・・・、どちらに従うかを迫られる・・・、決断の時!
Google Analyticsのタグはasyncで非同期になってるけどこれじゃダメなの?
asyncすれば非同期になって、他のCSSとかJavascriptとかhtmlとか、同時期に読み込むようになるからいいじゃん。
って思ったけど、非同期に読み込んでいても読み込み終わった時点でJavascriptを実行することでhtmlの読み込みが止まってしまうらしい。
▼以下の記事を参照しました。
https://www.wakuwakubank.com/posts/614-javascript-async-defer/
なるほど、htmlの読み込みを妨げないことこそが表示速度を上げるために大事なことだから、これは影響あるか。
Google Analyticsは遅延読み込みできた
遅延読み込みというと一般的にdefer属性を付与することを思い浮かべると思うけど、わたしは後から読み込まれること全般的に言えると考えています。
例えば画像の遅延読み込み。
あれはdeferとかないし、画面外の画像は読み込まないようにして、スクロール後に読み込ませているものです。
CSSやJavascriptでも同じように、スクロールしてから読み込むとか、2秒後に読み込ませるとか、そういうのも遅延読み込みだと思う。
Google Analyticsのタグにasyncやdeferを付けても警告は消えないけど、例えば2秒後に読み込むような遅延読み込みにすると・・・。
このブログではそうしてるんだけど、「第三者コードの影響を抑えてください 」とは言われなくなりました♪
もちろん、PageSpeed Insightsもスコアアップです!
Google Analyticsをどうやって2秒遅延読み込みさせるのか
自作したプラグインでやっています。
このプラグインの設定で、まず、
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
をhtml上から削除して、
https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX
を2秒後に読み込ませるような感じです。
JavascriptのsetTimeoutでやっているだけなので、詳しい人ならこんなプラグイン使わなくてもできると思います。
Google Analyticsを遅延読み込みしても大丈夫なの?
計測できるかできないかと言われたら、計測はできています。
ただ、厳密に言えば正確性には欠けると思います。
ページ表示後Javascriptを読み込むまでの2秒間の空白があるので。
アクセス数とか変わるのかってことだけど、わたしの場合は変化があるようには感じませんでした。
つまり、アクセス解析としては機能させつつ、PageSpeed Insightsのスコアがアップしたということです。
アクセス解析に反映されない可能性としては、ページ読み込み開始後2秒以内にブラウザを閉じるか、戻るかをした時でしょう。
そういうのはアクセスが無かったも同然ってことで(*‘∀‘)
あとがき
この記事ではGoogle Analyticsについて書いたけど、これは他の第三者コードでも言えます。
- YouTube
などなど、第三者コードって結構身近な存在。
どれも便利で、サイトのコンテンツを豊かにしたり見栄えを良くしたりしてくれるよね。
第三者は悪だ!って決めつけるのではなく、上手に付き合っていきたいところです(*´ω`*)