Cloudflare를 켠 뒤 “사람이 브라우저로 보면 정상인데, 검색엔진에서는 페이지가 덜 보이거나(색인 감소), Search Console에서 ‘차단됨/리디렉션 오류/소프트 404’가 늘어나는” 상황이 종종 생깁니다. 이때 원인이 의외로 쿠키인 경우가 많아요. 크롤러가 쿠키를 못 받거나, 쿠키가 있어야만 통과하는 흐름(동의 배너/봇 차단/세션)이 끼어들면 403 또는 302 루프가 만들어지기 쉽습니다.
아래는 SEO 관점에서 robots.txt → sitemap → redirect 순서로, 쿠키가 얽힌 크롤링 장애를 빠르게 걸러내는 체크리스트입니다.
1) 증상부터 고정하기: 크롤러에 실제로는 어떤 응답이 나가나
먼저 “검색 유입이 줄었다”를 원인으로 바로 들어가기보다, 크롤러가 받는 응답 코드/리디렉션 체인/쿠키 세트 여부를 짧게 고정해 두는 게 좋습니다. 사람은 이미 로그인/동의 쿠키가 있어서 정상처럼 보일 수 있거든요.
- Search Console: URL 검사에서 “페이지 가져오기” 결과(리디렉션, 차단, 렌더링 문제)를 확인
- Cloudflare Security Events: Googlebot/Bingbot 요청이 Managed Challenge/JS Challenge/Block으로 걸리는지 확인
- 원인 분류(빠른 기준)
- 403/401 증가: WAF/Bot Management 또는 원서버 접근제어가 크롤러를 막는 패턴
- 302/307 반복: 동의/언어/로그인/지역 리다이렉트가 쿠키 의존으로 꼬인 패턴
- 200이지만 내용이 얇음: 쿠키 없으면 “동의 필요/로그인 필요”만 보여 소프트 404처럼 인식될 수 있음
이 글의 나머지 체크는 “크롤러는 기본적으로 쿠키가 비어있거나 제한적으로만 유지한다”는 가정으로 진행합니다.
2) robots.txt 점검: 쿠키/챌린지에 가려지지 않게 만들기
robots.txt는 단순 텍스트지만, Cloudflare 앞에서 챌린지(Challenge)나 리다이렉트가 끼어들면 크롤러가 제대로 읽지 못합니다. 특히 “robots.txt 요청만 예외로 풀어야 하는데, 전체 사이트에 걸린 규칙이 먼저 적용”되는 경우가 있어요.
- robots.txt는 무조건 200으로 바로 응답해야 합니다. 301/302로 다른 경로로 보내면(예: /robots.txt → /ko/robots.txt) 크롤러가 예외 처리를 할 수 있어요.
- robots.txt에 Challenge/Block이 걸리지 않도록 Cloudflare에서 예외 규칙을 둡니다.
- 대상: URI Path equals /robots.txt
- 조치: WAF/Bot/Challenge를 우회(Allow/Skip 계열)하도록 구성
- 쿠키 기반 국가/언어 리다이렉트가 robots.txt에도 적용되는지 확인합니다. 사이트 전체에 “방문 첫 1회 쿠키 세팅 후 /kr로 이동” 같은 로직이 있으면 robots.txt까지 같이 밀려날 수 있습니다.
- 캐시 오염: robots.txt가 사용자별(쿠키별)로 달라지면 위험합니다. robots.txt는 개인화하지 말고, 동일한 내용을 항상 반환하세요.
핵심은 “robots.txt는 쿠키가 없어도, 봇이어도, 첫 방문이어도 동일하게 열려 있어야 한다”입니다.
3) sitemap 점검: 200 OK보다 중요한 건 ‘내용의 일관성’
sitemap.xml도 비슷합니다. 응답이 200이라고 끝이 아니라, 크롤러가 접근 가능한 URL만 들어있고, 접근 시 쿠키 없이도 같은 페이지를 받아야 합니다.
- sitemap.xml 요청을 Challenge/Block에서 제외합니다. (대상: /sitemap.xml, /sitemap_index.xml, /sitemap*.xml 등)
- 사이트맵에 있는 URL을 샘플로 10개만 뽑아 다음을 확인합니다.
- 쿠키 없이 접근 시 200/301이면 OK, 302 반복이면 위험
- 로그인/동의가 필요해서 “빈 콘텐츠”가 뜨면 색인 품질이 무너질 수 있음
- canonical이 자기 자신을 가리키는지(쿠키 없을 때 다른 언어/지역 URL로 canonical이 튀지 않는지)
- Cloudflare 캐시로 사이트맵이 오래 고정되어 신규 URL이 늦게 반영되는지 확인합니다. 사이트맵은 보통 자주 바뀌므로 Cache-Control을 명확히 두는 게 안전합니다.
사이트맵은 “발행 목록”이 아니라 “크롤러가 실제로 통과 가능한 목록”이어야 합니다. 쿠키 의존 페이지가 섞이면 전체 품질 신호에도 악영향을 줄 수 있어요.
4) redirect 점검: ‘동의/지역/로그인’ 쿠키 때문에 302 루프가 생기는 패턴
쿠키가 SEO를 흔드는 가장 흔한 형태가 리디렉션 루프입니다. 예를 들어 “첫 방문자는 /consent로 보내 쿠키를 세팅 → 원래 페이지로 복귀” 구조는 사람에겐 자연스럽지만, 크롤러에겐 무한 302처럼 보일 수 있습니다.
- 쿠키 없을 때도 최종 목적지 URL이 안정적으로 고정되는지 확인합니다.
- 지역/언어 리다이렉트를 쓴다면
- 가능하면 302(임시)를 사용하고, 최종 정착 URL에는 hreflang/canonical을 명확히
- 첫 진입에만 쿠키를 요구하는 로직이 있다면, 크롤러(User-Agent)나 특정 경로(robots/sitemap)에는 예외를 두는 것을 고려
- HTTP → HTTPS, www ↔ non-www 같은 “정규화 리디렉션”은 단 1번으로 끝나게 만듭니다. 여기에 동의/로그인 리다이렉트가 추가되면 체인이 길어져 오류가 늘어납니다.
- Cloudflare Redirect Rules를 사용 중이면, 조건에 “Cookie 존재 여부”가 들어가 있는지 특히 점검합니다. 특정 쿠키가 없을 때만 강제 이동시키는 규칙은 크롤러와 충돌하기 쉽습니다.
정리하면, “쿠키가 없을 때도 1~2번 이내의 리디렉션으로 200 페이지에 도착”이 목표입니다.
5) Cloudflare에서 특히 자주 걸리는 지점: Bot/WAF/Cache와 쿠키의 조합
Cloudflare는 보안과 성능을 위해 많은 기능이 앞단에서 동작합니다. 이 기능들이 쿠키와 결합하면 “사람은 통과, 봇은 실패”가 쉽게 됩니다.
- Bot Management / Super Bot Fight Mode
- 관리 화면에서 Googlebot/Bingbot이 Challenge로 잡히는지 확인
- 봇을 막아야 한다면, 최소한 검증된 검색엔진 크롤러는 예외 처리하는 방향이 안전
- WAF Managed Rules
- 특정 경로(/product, /category 등)에서만 403이 뜬다면 룰 매칭 가능성이 큼
- 쿠키 헤더가 길거나 특이한 패턴(동의 플랫폼 쿠키 등) 때문에 오탐이 날 수 있어 해당 룰 이벤트를 확인
- Cache(특히 “Cache Everything”류)
- 쿠키에 따라 HTML이 달라지는 페이지를 캐시하면, 크롤러가 “동의 안내 화면” 같은 것을 캐시로 받기도 합니다.
- 가능하면 HTML 캐시는 로그인/동의/개인화 경로를 제외하고, 캐시 키에 Cookie를 섞지 않거나(또는 반대로 과도하게 섞어서 히트율을 망치지 않도록) 정책을 명확히 둡니다.
여기서 중요한 포인트는 “크롤링 경로(robots/sitemap/대표 랜딩 URL)는 보안/캐시 규칙의 예외로 두고 단순화”입니다.
6) 최종 점검 체크리스트(운영용)
- robots.txt: 쿠키 없이 200 OK, 리디렉션/챌린지 없음
- sitemap.xml: 쿠키 없이 200 OK, 내용이 최신, 포함 URL이 쿠키 없이도 정상 도달
- 대표 URL 5개: 쿠키 없이 접속 시 302 루프 없음, 최종 200의 콘텐츠가 ‘진짜 본문’
- Cloudflare Security Events: Googlebot/Bingbot이 Block/Challenge로 잡히지 않음
- 리디렉션 체인: http→https, www 정규화 포함해 1~2 hop 이내
- 캐시 정책: 동의/로그인/개인화 HTML은 캐시 제외(또는 명확히 분리), 크롤링 필수 경로는 오염 방지
이 체크리스트를 통과하면, “쿠키 때문에 크롤링이 막히는 문제”의 80%는 현장에서 바로 윤곽이 잡힙니다.
마무리
Cloudflare 환경에서 쿠키는 보안/동의/개인화의 핵심이지만, 검색/크롤링 관점에선 “의존성이 생기는 순간” 문제가 됩니다. 특히 403과 302 루프는 Search Console에서 늦게 발견되는 경우가 많아, 운영 루틴에 넣어두는 게 좋습니다.
robots.txt와 sitemap은 무조건 단순하게, 리디렉션은 짧게, 보안/캐시는 크롤링 경로를 먼저 보호한다—이 세 가지만 지켜도 색인 흔들림이 크게 줄어듭니다.