오랬동안 사이트 운영에 대해서 고민하면서 모든 고민의 방점을 속도에 마주어 왔습니다.
사이트 분석을 위해서 많이 사용하는 구글 애널리틱스 이용과 관련해서도 속도를 빨리 낼 수 있는 방법을 고민했습니다. 구글 애널리틱스를 설치하면 최소 6개 정도의 HTTP 요청이 증가하고 0.6초정도 지연됩니다.
그래서 이를 어떻게든 당겨 볼려고 많은 방법을 검토해 봤죠. 최근에는 사용자 서버에서 구동하는 self-host Google Analytics 방법을 적용해보기도 했습니다.
그러나 이러한 방법을 적용한 플러그인의 경우 HTTP 요청 수를 줄여준다는 주장도 있지만 webpagetest.org 등에서 체크해보면 요청 수는 큰 차이가 없습니다.
아마 webpagerest.org 테스트는 초기화 한 상태에서 테스트하기 때문에 이런 결과가 나왔다고 변명할 수는 있겠지만 이 또한 근본적인 해결책은 될 수 없다는 것을 보여줍니다.
근본으로 돌아가기
그리고 위와 같은 꼼수는 반드시 어디에선가 탈이나거나 뭔가 문제가 생기는 듯합니다.
그래서 결국 구글 애널리틱스에서 제안하는 방법 그대로 따르기로 하되, (원래 플러그인 설치를 별로 좋아하지 않는 관계로) 플러그인 설치없이 구글 애널리틱스 추적코드를 워드프레스 테마 함수 파일(functions.php)에 삽입하는 방식을 사용하기로 했습니다.
추적코드 삽입 위치에 대한 고민
여기서 또 고민에 빠집니다.
추적코드를 삽입하는 위치는 헤더, 콘텐츠 메인, 푸터에 모두 삽입 가능합니다.
워드프레스는 세군데 모두 함수를 지원하고 있습니다. head와 footer는 오래전부터 지원하고 있었고 워드프레스 5.2부터는 콘텐츠 메인에 삽입 가능한 함수가 생겼다고 합니다.
구글 애널리틱스 추적 코드를 헤더에 넣으려면 wp_head 함수를 사용하고, 푸터에 넣으려면 wp_footer함수를 사용하면 됩니다.
저는 속도를 중시하기때문에 조금이라도 늦게 로딩되는 footer를 선호했는데요. 이는 조금 잘못 생각하고 있었습니다.
무릇 모든 것의 최우선이 속도가 아니라 목적에 가장 부합하느냐가 먼저 고려되어야 합니다.
그런 관점에서 구글에서도 헤더에 삽입하는 것을 제안하고 있는데 그 이유는 가장 정확하기 때문입니다.
모든 웹 페이지는 헤더 부분이 먼저 로딩되고 중간 콘텐츠 그리고 맨 나중에 푸터 부분이 로딩되는데요.
그러다보니 웹 페이지를 열었다가 속도 등의 문제로 중간에 페이지를 닫아 버려는 경우가 발생하죠. 이 경우 추적코드가 footer에 있는 경우 상황을 인지하지 못하고 측정되지 않습니다. 뭐 이런 경우가 생각보다 많다는 것이 문제겠죠.
추적코드가 헤더에 있다면 중간에 페이지를 닫았다는 것을 알 수 있을 것이고 이런 문제가 계속된다면 콘텐츠에 문제가 있음을 감지할 수 있을 것입니다.
그리고 속도관련해 비동기로 추적코드가 로딩되기 때문에 헤더에 추적 코드가 있다고해도 그렇게 속도에 영향을 주지는 않는다고 합니다. 뭐 조금은 영향이 있겠죠.
결론은 아주 약간 속도의 저하는 있겠지만 정확한 사이트분석을 위해서는 헤더에 애널리틱스 삽입 코드를 넣어야 합니다.