블로그 속도가 개선되려면 캐시 규칙의 핵심은 DYNAMIC에서 HIT로 바꾸는 것에 있다. DYNAMIC은 캐시 대상이 아니므로 원본 서버까지 매번 요청이 가고 응답이 늦어지지만, HIT가 되면 캐시에서 바로 응답해 응답 속도가 크게 빨라진다. 원인은 워드프레스가 기본적으로 헤더에 캐시 금지 신호를 보내기 때문인데, Cloudflare는 이를 존중해 DYNAMIC으로 표시한다. 따라서 해결 방법은 이 헤더를 무시하고 강제로 캐시하도록 설정하는 것이다. 예전의 페이지 규칙은 신규 무료 계정에서 막혀 now는 캐시 규칙(Cache Rules)로 설정한다.
설정은 한글 대시보드에서 두 개의 규칙을 순서대로 만든다. 먼저 바이패스 규칙은 관리자와 로그인 페이지, 미리보기, 비밀글, 댓글 작성자, POST 요청은 절대 캐시하지 않는 안전장치다. 식 편집에 http.request.uri.path 와 쿠키, 쿼리 등을 포함하는 여러 조건을 붙여 캐시 바이패스에 해당하도록 구성한다. 이 규칙의 요지는 “관리자, 로그인 사용자, 미리보기, 비밀글, 댓글 작성자, 그리고 POST 요청은 캐시에서 제외”다. 다음으로 강제 캐시 규칙은 공개 페이지를 무조건 캐시하도록 설계한다. 다만 로그인 요청이 2단계 규칙까지 걸리면 문제가 되므로 로그인 대상을 제외하는 not(...) 형식의 식으로 구성한다. 에지 TTL은 캐시 제어 헤더를 무시하고 이 TTL을 사용하도록 설정하고 7200(2시간), 브라우저 TTL은 원본 재정의 및 14400(4시간)으로 준다. 캐시 속임수 방어를 켜고, 장치 유형별 캐시는 끈다.
규칙의 위치는 바이패스 규칙이 위, 강제 캐시 규칙이 아래가 되도록 배치한다. 실제 적용은 1~2분 정도 소요되며, 시크릿 창에서 같은 주소를 두 번 열어 MISS → HIT로 바뀌는지 확인하면 된다. 테스트 시 HEAD 요청은 캐시 규칙에서 제외되므로 GET으로 확인해야 한다. 보호 페이지나 관리 페이지는 여전히 DYNAMIC이 표시되지만, 이는 제외식으로 인해 캐시 규칙의 적용에서 벗어나기 때문이며 두 규칙의 결과는 캐시 탐색 여부와 무관하게 동일하게 동작한다. 새 글 발행 시 옛 버전이 보일 수 있는데, 에지 TTL이 2시간으로 설정되어 있기 때문이며, 자동 플러그인으로 발행 시 해당 글의 캐시를 자동으로 비우게 하는 방법이 가장 편하다.
정리하면 DYNAMIC은 원본이 캐시하지 말라고 밝힌 상태이므로 발생하는 현상이며, 해결은 에지 TTL에서 캐시 제어 헤더를 무시하고 이 TTL을 사용하는 설정을 선택하는 것이다. 단 로그인/관리자/쿠키는 먼저 바이패스 규칙으로 차단해야 한다. 무료 플랜에서도 가능하며, 적용 후 HIT 비율이 올라가면 페이지 응답 속도가 크게 빨라진다. 필요 시 글 발행 시 즉시 캐시를 비우는 방법도 선택 가능하다.
#
CacheRules
#
캐시규칙
#
워드프레스캐시
#
워드프레스최적화
#
워드프레스속도
#
블로그속도
#
TTFB개선
#
DYNAMIC해결
#
Cloudflare
#
cfcachestatus
#
CDN캐시
#
클라우드플레어