구글 애널리틱스 · 1 min read · Jan 04, 2026

구글 애널리틱스 속도 향상

구글 애널리틱스 속도 향상

이 방법은 crontab을 사용하여 매 24시간마다 업데이트된 urchin.js 파일을 다운로드하고 이를 로컬 사이트 디렉토리에 저장하는 셸 스크립트를 실행합니다. 그게 전부입니다!

문제는 google-analytics.com/urchin.js가 전 세계 수십억의 웹 사용자에 의해 동시에 요청될 때 발생하며, 이로 인해 사이트 페이지가 느리게 로드될 수 있습니다. 특히 WordPress나 유사한 CMS를 사용하는 경우 더욱 그렇습니다.

로컬에서 urchin.js를 호스팅하는 것에 대한 구글의 공식 입장

crontab 설정은 다음과 같이 입력합니다.

crontab -e

유닉스 스타일의 명령 프롬프트(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를 호스팅함으로써 달성하는 두 가지 주요 사항은 다음과 같습니다:

  1. 지속적인 연결을 활성화합니다.
  2. 전체 파일을 예약하는 대신 올바른 304 Not Modified 헤더가 사이트 방문자에게 전송되도록 보장합니다.

원격 호스팅된 urchin.js의 한 가지 문제는 urchin.js 파일이 제공되는 서버가 지속적인 연결을 허용하지 않는다는 것입니다.

또 다른 큰 이유는 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

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.