Cloudflare 워드프레스 캐시 설정: 로그인·장바구니 응답이 섞이지 않는지 검증하기
AI Editter
비로그인 글 페이지를 캐시하면 원본 서버의 부담을 줄일 수 있습니다. 하지만 로그인 사용자에게 보이는 관리자 표시나 장바구니가 같은 HTML에 포함된다면 캐시 범위를 더 신중히 나눠야 합니다.
먼저 WordPress, 캐시 플러그인, Cloudflare 중 어떤 계층이 HTML을 저장하는지 목록으로 만듭니다. “Cache Everything”이라는 이름만 보고 사이트 전체에 적용하지 않습니다.
캐시할 경로와 제외할 요청을 적는다
| 대상 | 확인할 정책 |
|---|---|
| 공개 글·분류 | 비로그인 동일 응답이면 캐시 후보 |
| wp-admin·로그인 | 캐시 제외 |
| 미리보기·편집 | 인증과 쿼리 조건 확인 후 제외 |
| 장바구니·결제·내 계정 | 사용자별 응답이므로 제외 |
| API | 응답별 공개·비공개 구분 |
| 검색 | 매개변수와 개인화 여부 확인 |
실제 경로는 플러그인과 고유주소 설정에 따라 다릅니다. /cart/만 제외했다고 한국어 경로나 별도 결제 플러그인까지 포함되는 것은 아닙니다. 사용 중인 사이트의 실제 URL로 목록을 만듭니다.
로그인 쿠키와 경로를 함께 사용
공개 글 URL이라도 로그인 쿠키가 있으면 다른 HTML이 나올 수 있습니다. WordPress 로그인 쿠키와 쇼핑몰 세션 쿠키 등 실제 응답을 바꾸는 조건을 확인합니다.
Cloudflare의 쿠키 기반 캐시 우회 예제는 Cache Rules에서 쿠키 조건을 사용하는 방법을 설명합니다. 예제 쿠키 이름을 그대로 복사하지 말고 사이트에서 쓰는 이름과 패턴을 확인합니다.
규칙 간 우선순위와 겹침도 점검합니다. 넓은 HTML 캐시 규칙과 예외 규칙이 함께 적용될 때 최종 동작이 무엇인지 확인해야 합니다. 기능과 옵션은 사용 중인 요금제와 현재 UI에 맞춰 검토합니다.
원본 헤더와 엣지 TTL의 관계를 확인
원본의 Cache-Control, Set-Cookie와 Cloudflare의 Edge TTL 설정을 함께 확인합니다. 원본이 비공개로 보낸 응답을 규칙이 어떻게 처리하는지 실제 결과로 확인합니다.
Cache Everything 예제는 캐시 대상 확대 설정을 보여 주지만, 개인화 응답을 자동으로 모두 안전하게 분리해 주는 설계는 아닙니다. APO를 사용하는 경우에도 해당 기능과 기존 캐시 플러그인·규칙의 상호작용을 확인합니다.
두 계정과 비로그인 창으로 교차 시험
개인정보가 없는 시험 계정 A·B와 비로그인 브라우저를 준비합니다. A에서 공개 글과 개인 화면을 연 뒤 B와 비로그인에서 같은 주소를 엽니다. 순서를 바꿔 다시 확인합니다.
| 시험 | 기대 결과 |
|---|---|
| A 로그인 후 공개 글, 이어 비로그인 | 관리자 표시·개인 데이터 없음 |
| A 장바구니 추가 후 B 접속 | B에게 A 상품이 보이지 않음 |
| 글 미리보기 URL을 비로그인으로 열기 | 비공개 내용 접근 불가 |
| 공개 글 연속 조회 | 정책에 맞는 캐시 사용 |
| 글 수정 후 조회 | 정한 갱신 시간 안에 새 내용 |
| 로그아웃 후 뒤로 가기·새로고침 | 서버 응답과 브라우저 상태 구분 |
응답 본문과 CF-Cache-Status, Age, Cache-Control, 관련 쿠키를 함께 봅니다. 한 요청의 HIT 또는 BYPASS만으로 전체 사이트를 판정하지 않습니다.
수정과 삭제도 캐시 시험에 포함
글을 수정하고 제목·본문·이미지를 확인합니다. 목록·분류·검색·관련 글 영역에 이전 내용이 남는지도 봅니다. 비공개 전환이나 삭제 후에도 캐시된 내용이 계속 공개되는지 확인해야 합니다.
WordPress 플러그인이 Cloudflare 무효화를 수행한다면 API 권한과 실행 로그를 확인합니다. 별도 프런트엔드가 있다면 그쪽 캐시 갱신도 별도 경로일 수 있습니다.
문제 발생 시 좁은 범위부터 복구
개인화 응답이 잘못 캐시됐다고 의심되면 해당 경로의 캐시 적용을 중지하고 관련 캐시를 무효화합니다. 이전 규칙과 원본 헤더를 기록해 원인을 확인합니다. 캐시를 지웠다는 사실만으로 같은 규칙이 다시 잘못 저장하지 않는지 재시험해야 합니다.
성능은 캐시 가능한 공개 경로에서 비교합니다. 비공개 경로의 우회 비율이 높다고 예외를 없애지 않습니다. 안전하게 공유할 수 있는 응답을 더 잘 캐시하는 것이 목표입니다.