사이트가 잘되기 시작하면 가장 먼저 느껴지는 변화가 느려짐입니다. 어제까지 괜찮던 화면이 오늘은 한 박자 늦게 뜨고, 관리자 화면은 더 답답해집니다. 이때 많은 분이 곧장 서버 사양을 올리는데, 대개 그것이 원인이 아닙니다.
워드프레스는 잘 만들어진 도구입니다. 느려지는 것은 도구의 한계가 아니라, 사이트가 커진 만큼 구성이 따라가지 못한 상태입니다. 원인은 대체로 셋 중 하나이고, 순서대로 보면 대부분 30분 안에 짚입니다.
느려짐은 한 종류가 아닙니다
먼저 구분해야 할 것이 있습니다. “느리다” 는 말 안에는 성격이 다른 두 가지가 섞여 있습니다.
브라우저 개발자 도구의 네트워크 탭을 열고 페이지를 한 번 새로고침해 보세요. 첫 번째 요청(문서)이 오래 걸리는지, 아니면 그 뒤의 이미지 · 스크립트가 오래 걸리는지만 봐도 어느 쪽인지 갈립니다. 이 구분 없이 손대면 엉뚱한 곳을 고치게 됩니다.
확인 1 — 최근에 무엇이 늘었나
느려짐은 대개 변화 직후에 옵니다. 지난 몇 주 사이에 새로 설치한 플러그인, 새로 붙인 외부 스크립트(채팅 위젯 · 광고 · 통계 · 폰트), 새로 만든 대형 페이지가 있는지 떠올려 보세요.
특히 외부 스크립트는 조용한 원인입니다. 우리 서버가 아무리 빨라도 그 스크립트가 응답하지 않으면 화면이 그 자리에서 멈춥니다. 하나씩 잠시 꺼 보면서 체감이 달라지는지 확인하는 것이 가장 빠른 검증입니다.
확인 2 — 페이지가 무거워졌나
콘텐츠가 쌓이면 페이지도 함께 무거워집니다. 특히 원본 크기 그대로 올린 사진 몇 장이 한 페이지에 있으면 그것만으로 체감이 크게 바뀝니다. 촬영 원본은 화면에 필요한 크기보다 훨씬 크고, 줄여서 올리는 습관 하나가 가장 값싼 성능 개선입니다.
목록 페이지도 봅니다. 한 화면에 글을 수십 개씩 불러오면 그만큼 데이터베이스가 일합니다. 한 페이지에 보여 줄 개수를 줄이는 것만으로 나아지는 경우가 많습니다.
확인 3 — 매번 처음부터 다시 만들고 있나
세 번째가 가장 흔하고, 가장 크게 개선되는 항목입니다. 기본 상태의 워드프레스는 방문자가 올 때마다 페이지를 새로 조립합니다. 방문자가 적을 때는 문제가 아니지만, 늘어나면 같은 계산을 수천 번 반복하게 됩니다.
이 반복을 없애는 것이 캐시이고, 대개 여기서 가장 큰 폭의 개선이 나옵니다. 다음 회차의 주제이기도 합니다.
서버를 키우는 것은 마지막입니다
사양을 올리면 분명 나아집니다. 다만 그것은 같은 낭비를 더 비싼 장비로 감당하는 방식이라, 다음 성장 구간에서 같은 문제가 다시 옵니다. 위 셋을 먼저 정리한 뒤에도 부족하다면 그때 올리는 것이 순서입니다.
성능을 계층별로 다루는 글은 성능 최적화 아카이브에 모여 있고, 원인 진단부터 캐시 구성까지 한 번에 맡기고 싶다면 최적화 지원 사업에 진단과 전후 측정이 함께 포함됩니다.
다음 회차
다음 회차는 캐시입니다. “캐시를 켜면 빨라진다” 는 설명은 절반만 맞습니다 — 캐시는 하나가 아니라 하는 일이 다른 계층 여럿이고, 그 차이를 알아야 잘못 겹치지 않습니다.