Cloudflare를 붙이면 속도/보안은 좋아지지만, SEO는 의외로 “기본 파일 3종(robots.txt, sitemap.xml, redirect)”에서 쉽게 삐끗합니다. 특히 캐시, 엣지 리다이렉트, 보안 규칙이 얹히면서 구글봇/빙봇이 보는 내용과 사람이 보는 내용이 달라지는 순간이 생깁니다. 아래는 Cloudflare 포함한 실전 운영 관점에서, 빠르게 원인을 좁히는 체크리스트입니다.

Cloud router connecting robots sitemap redirect documents illustration

먼저 “무엇이 막혔는지”를 파일/응답코드 기준으로 자르는 게 제일 빠릅니다.

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) 환경별 파일 혼선(스테이징/프리뷰).

Shield and document showing robots access control concept

  • 정상 응답: 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 강제… 이런 식으로요.

Redirect chain collapsing into single clean path diagram

  • 대표 정책 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 캐시 같은 변수가 섞이니, 고정 테스트 세트를 만들어 반복 확인하는 습관이 가장 큰 안전장치가 됩니다.