Cloudflare를 붙이면 속도/보안은 좋아지지만, SEO는 의외로 “기본 파일 3종(robots.txt, sitemap.xml, redirect)”에서 쉽게 삐끗합니다. 특히 캐시, 엣지 리다이렉트, 보안 규칙이 얹히면서 구글봇/빙봇이 보는 내용과 사람이 보는 내용이 달라지는 순간이 생깁니다. 아래는 Cloudflare 포함한 실전 운영 관점에서, 빠르게 원인을 좁히는 체크리스트입니다.
먼저 “무엇이 막혔는지”를 파일/응답코드 기준으로 자르는 게 제일 빠릅니다.
1) 0단계: Cloudflare를 거쳐서 실제로 무엇이 내려가는지 확인
SEO 점검은 “서버 설정”보다 “최종 응답”이 기준입니다. Cloudflare가 끼면 origin(Nginx/Apache) 설정이 멀쩡해도 엣지에서 바뀔 수 있어요.
- 브라우저(특히 Safari): 사파리는 캐시/리다이렉트가 강하게 남는 편이라, 변경 직후에는 Private Window로 재확인하세요.
- curl: 가능한 한 단순한 도구로 최종 응답코드/헤더를 확인합니다. (예: robots.txt, sitemap.xml, 대표 URL의 /, /index.html 등)
- Cloudflare 캐시 여부: 응답 헤더에 CF-Cache-Status(HIT/MISS/DYNAMIC) 등을 확인해 “엣지 캐시가 끼는 구간”인지 구분합니다.
여기서 핵심은 “내가 바꾼 설정이 아직 반영되지 않은 문제(캐시/전파)”인지, 아니면 “규칙이 잘못되어 막는 문제(리다이렉트/보안)”인지 먼저 나누는 겁니다.
2) robots.txt 체크리스트: 막는 줄은 한 줄이면 충분합니다
Cloudflare 운영에서 robots.txt가 문제되는 패턴은 대부분 3가지입니다: (1) 403/503 같은 비정상 응답, (2) 실수로 전체 차단, (3) 환경별 파일 혼선(스테이징/프리뷰).
- 정상 응답: https://도메인/robots.txt 가 200으로 내려오는지 확인합니다. 301/302는 보통 괜찮지만, 연쇄 리다이렉트가 길면 크롤러가 포기할 수 있습니다.
- 차단 규칙: Disallow: / 한 줄이 모든 걸 막습니다. 배포 전/스테이징에서 쓰던 robots.txt가 본 도메인으로 섞이지 않았는지 확인하세요.
- Cloudflare WAF/봇 규칙: robots.txt 자체를 “의심 트래픽”으로 보고 차단하는 경우가 있습니다. 특정 User-Agent에서만 403이 나는지 체크하세요.
- 캐시: robots.txt를 캐시해버리면 수정 후에도 오래 남습니다. 운영 중에는 robots.txt는 짧은 TTL이 안전합니다.
- Sitemap 링크: robots.txt에 Sitemap: https://도메인/sitemap.xml 을 명시해두면 크롤러가 더 안정적으로 찾습니다.
팁: robots.txt가 200인데도 “검색엔진이 못 읽는다”면, 실제로는 200이지만 HTML(오류 페이지)이 내려가거나, 보안 챌린지 페이지가 섞이는 경우도 있습니다. 내용이 순수 텍스트인지도 확인하세요.
3) sitemap.xml 체크리스트: 캐시·압축·콘텐츠 타입이 관건
sitemap은 단순한 XML 파일이지만, Cloudflare에서 자동 압축/캐시/리라이트가 개입하면서 깨지는 경우가 있습니다. 특히 대형 사이트에서 sitemap index + 다수의 하위 sitemap으로 운영할 때 자주 보입니다.
- 접근성: https://도메인/sitemap.xml(또는 sitemap index)이 200으로 내려오는지 확인합니다.
- Content-Type: application/xml 또는 text/xml로 내려오는지 확인하세요. 간혹 text/html로 내려오면(오류 페이지) 검색엔진이 무시합니다.
- 압축(.gz): sitemap.xml.gz를 쓰는 경우, 다운로드가 깨지지 않는지/중간에 HTML로 바뀌지 않는지 확인합니다.
- 캐시 전략: sitemap을 지나치게 오래 캐시하면 “최근 URL 반영”이 늦어집니다. 반대로 너무 짧으면 origin 부하가 커질 수 있어요. 업데이트 주기에 맞추세요.
- URL 일관성: http/https, www/non-www, 슬래시(/) 유무가 섞이면 크롤러가 중복으로 인식합니다. sitemap의 URL은 canonical 정책과 동일해야 합니다.
Cloudflare를 쓰는 환경에서는 sitemap이 “엣지에서 오래 캐시된 옛 버전”으로 남아 있는지 확인하는 게 중요합니다. 변경했는데도 검색엔진이 계속 옛 URL을 본다면, 원인은 대개 캐시/전파입니다.
4) redirect 체크리스트: 301 체인, 루프, 그리고 Cloudflare 규칙 우선순위
운영에서 SEO를 망가뜨리는 리다이렉트는 보통 “하나가 잘못”이 아니라 “겹쳐서” 발생합니다. 예: origin에서 http→https, Cloudflare에서 www→non-www, 앱에서 trailing slash 강제… 이런 식으로요.
- 대표 정책 1개로 고정: https + (www 또는 non-www) + (슬래시 규칙) 을 한 번 정하고, 리다이렉트는 그 정책만 강제합니다.
- 301 체인 제거: A→B→C로 2번 이상 점프하면 크롤/사용자 모두 손해입니다. 가능하면 A→C로 한 번에 보내세요.
- 루프 점검: Cloudflare Redirect Rules/Page Rules와 origin(Nginx rewrite, app redirect)이 서로 “되돌리기”를 하면 무한 루프가 납니다.
- 엣지 우선순위 확인: Cloudflare에서 여러 규칙이 있다면 “어느 규칙이 먼저 적용되는지”를 정리하세요. 일부는 캐시 키/리다이렉트에 영향을 줍니다.
- 쿼리스트링 처리: UTM 같은 쿼리스트링을 유지할지/제거할지 정책이 필요합니다. 무조건 제거하면 분석이 망가지고, 무조건 유지하면 중복 URL이 늘 수 있습니다.
Safari에서 유독 “계속 옛 주소로 돌아가는 느낌”이 들면, 브라우저 캐시된 301의 영향일 수 있습니다. 규칙을 고친 뒤에는 Safari Private Window 또는 캐시 초기화로 체감 확인을 같이 해보세요.
5) Cloudflare에서 SEO를 흔드는 설정들(운영 관점 요약)
아래 항목들은 의도는 보안/최적화인데, SEO 관점에서는 “내용이 달라지거나 접근이 막히는” 원인이 되곤 합니다. 하나씩 끄라는 의미가 아니라, SEO 이상 징후가 있을 때 우선순위를 두고 확인하자는 체크리스트입니다.
- WAF / Bot Fight Mode: 크롤러를 오탐지해 403/챌린지 페이지를 줄 수 있습니다. robots/sitemap/주요 페이지를 먼저 예외 검토하세요.
- 캐시 규칙: HTML을 과하게 캐시하면 canonical/메타/본문이 예전 상태로 남아 색인이 꼬일 수 있습니다.
- 자동 최적화(예: 축소/변환): HTML/JS 변형이 일부 페이지에서만 발생하면 “크롤러가 보는 페이지”가 달라질 수 있습니다.
- Always Use HTTPS / HSTS: 방향성은 좋지만, 중복 규칙과 결합하면 리다이렉트 체인/루프가 생깁니다.
- 프리뷰/스테이징 공개: 인증 없는 스테이징이 열려 있으면 중복 콘텐츠가 생길 수 있고, 반대로 본 사이트가 실수로 차단되기도 합니다.
실무 팁은 “robots/sitemap/대표 URL 3개를 고정 테스트 세트로 만들고”, 설정 변경 때마다 동일하게 재검증하는 겁니다. 이렇게 하면 장애가 생겨도 되돌리기(롤백) 포인트가 명확해집니다.
6) 최종 SEO 체크리스트(운영자가 바로 쓰는 버전)
- robots.txt: 200 OK, 순수 텍스트, Disallow: / 실수 없음, sitemap 링크 포함
- sitemap.xml: 200 OK, Content-Type 정상, 최신 URL 반영, URL 정책(canonical)과 일치
- redirect: http→https, www 정책, 슬래시 정책이 “한 번에” 301로 수렴(체인/루프 없음)
- Cloudflare 보안: WAF/봇 규칙이 robots/sitemap/대표 페이지를 막지 않음(특정 UA에서 403 없는지)
- 캐시: robots/sitemap/HTML 캐시 TTL과 무효화(퍼지) 흐름이 운영에 맞음
- Safari 확인: 변경 후 Private Window로 301 캐시/콘텐츠 잔존 이슈 재확인
이 체크리스트에서 하나라도 “예상과 다르게 나온 URL”이 있으면, 그 지점부터 Cloudflare 규칙/Origin 설정/앱 레벨을 거슬러 올라가면 됩니다. 반대로 3종 파일과 대표 URL이 모두 정상인데도 색인이 흔들린다면, 그때는 canonical, noindex, 중복 콘텐츠(파라미터/프리뷰) 쪽으로 범위를 넓히는 게 효율적입니다.
마무리
Cloudflare 환경의 SEO 트러블슈팅은 복잡해 보이지만, 실제로는 robots.txt, sitemap, redirect “최종 응답”만 안정시키면 절반 이상이 해결됩니다.
운영 중에는 변경 직후 캐시/전파/Safari 301 캐시 같은 변수가 섞이니, 고정 테스트 세트를 만들어 반복 확인하는 습관이 가장 큰 안전장치가 됩니다.