Google Analytics · 1 min read · Jan 04, 2026

Google Analyticsを高速化する

Google Analyticsを高速化する

この方法では、crontabを使用してシェルスクリプトを実行し、24時間ごとに更新されたurchin.jsファイルをダウンロードして、ローカルサイトディレクトリに保存します。それだけです!

問題は、google-analytics.com/urchin.jsが世界中の数十億のウェブユーザーによって同時にリクエストされると、サイトのページが非常に遅く読み込まれることです。特に、WordPressや同様のCMSを使用している場合は特にそうです。

ローカルでurchin.jsをホストすることに関するGoogleの公式見解

crontabを設定するには、次のように入力します

crontab -e

Unixスタイルのコマンドプロンプト(ssh)で、次を追加します:

11 12 * * * /home/user/websites/urch.sh >/dev/null 2>&1

シェルスクリプトの例:

#!/bin/sh
rm /home/user/websites/askapache.com/z/j/urchin.js
cd /home/user/websites/askapache.com/z/j/
wget http://www.google-analytics.com/urchin.js
chmod 644 /home/user/websites/askapache.com/z/j/urchin.js
cd ${OLDPWD}
exit 0;

ローカルでurchin.jsをホストすることで達成できる2つの大きなことがあります:

  1. 持続的接続を有効にします
  2. ファイル全体を予約するのではなく、正しい304 Not Modifiedヘッダーがサイト訪問者に返されることを保証します。

リモートホストされたurchin.jsの問題の1つは、urchin.jsファイルが提供されるサーバーが持続的接続を許可していないことです。

もう1つの大きな理由は、google-analyticsがurchin.jsを提供する際にCache-Controlヘッダーが正しく設定されているにもかかわらず、If-Modified-Sinceヘッダーに正しく304 Not Modifiedヘッダーで応答するのではなく、ファイルが変更されていないことを示すために、google-analyticsが再度全体のurchin.jsファイルを返すため、キャッシュ制御が無効になります。

この問題はwiresharkキャプチャで明確に見ることができます。

GET /urchin.js HTTP/1.1  
Accept: */*  
Referer: http://www.askapache.com  
Accept-Language: en-us  
UA-CPU: x86  
Accept-Encoding: gzip, deflate  
If-Modified-Since: Tue, 20 Mar 2007 22:49:11 GMT  
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SU 2.011; .NET CLR 1.1.4322; .NET CLR 2.0.50727; Alexa Toolbar; .NET CLR 3.0.04506.30)  
Host: www.google-analytics.com  
Connection: Keep-Alive
HTTP/1.1 200 OK  
Cache-Control: max-age=604800, public  
Content-Type: text/javascript  
Last-Modified: Tue, 20 Mar 2007 22:54:02 GMT  
Content-Encoding: gzip  
Server: ucfe  
Content-Length: 5675  
Date: Sat, 24 Mar 2007 18:23:12 GMT

注意: 最適な結果を得るためには、サーバーにキャッシングスキームが必要です。

かなり素晴らしいオーバーキルです!

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。