CDN이 ChatGPT의 문서 접근을 차단하고 있을 수도 있습니다 (robots.txt로는 확인할 수 없습니다)
요약
robots.txt 설정이 올바르더라도 CDN이나 WAF의 봇 보호 규칙 때문에 AI 크롤러가 사이트 접근에 실패할 수 있습니다. 이를 확인하기 위한 curl 명령어 활용법과 클라이언트 사이드 렌더링 문제 등 기술적 원인 및 해결 방안을 제시합니다.
핵심 포인트
- CDN/WAF의 봇 보호 규칙이 AI 크롤러를 차단할 수 있음
- robots.txt 허용 여부와 실제 HTTP 상태 코드는 다를 수 있음
- JavaScript 실행이 없는 크롤러를 위해 SSR 적용 권장
- curl 명령어를 통해 사용자 에이전트별 접근 상태 확인 가능
Linux / macOS
상태 코드 (Status Code)
curl -sI -A "GPTBot" https://yoursite.com/ | head -1
Windows PowerShell
상태 코드 (Status Code)
(Invoke-WebRequest -Uri "https://yoursite.com/" -UserAgent "GPTBot").StatusCode
Windows Command Prompt (CMD)
전체 헤더 (Full Headers)
curl -I -A "GPTBot" https://yoursite.com/
참고: yoursite.com을 귀하의 도메인으로 교체하세요.
만약 결과가 200 이외의 값을 반환한다면, AI 엔진은 귀하의 사이트를 읽을 수 없으며, 그 과정에서 robots.txt는 완벽하게 허용된 것처럼 보일 수 있습니다. 수천 개의 사이트를 감사한 결과, 약 27%가 적어도 하나의 주요 AI 크롤러 (crawler)를 차단하고 있었으며, 대부분은 robots.txt가 아닌 CDN 또는 WAF 계층에서 의도치 않게 차단되고 있었습니다.
왜 이런 일이 발생하는가
봇 보호 (Bot-protection) 규칙에는 그럴듯하게 들리는 기본 설정들이 포함되어 있습니다: 알 수 없는 사용자 에이전트 (user agent) 차단, 브라우저가 아닌 트래픽에 대한 속도 제한 (rate-limit), JavaScript가 없는 모든 요청에 대한 챌린지 (challenge). GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot은 일반적인 설정에서 이 중 적어도 하나에 걸리게 됩니다. 마케팅 팀은 깨끗한 robots.txt를 보게 되지만, 귀하의 에지 (edge)는 조용히 403을 반환합니다.
5분 감사 (The five-minute audit)
for UA in GPTBot OAI-SearchBot ChatGPT-User ClaudeBot PerplexityBot Bingbot; do
printf "%-16s %s\n" "$UA" "$(curl -sI -A "$UA" https://yoursite.com/ | head -1)"
done
그런 다음 에지 로그 (edge logs)에서 사용자 에이전트별로 그룹화된 403 오류를 확인하세요. 진실은 그곳에 있습니다.
두 번째 실패 원인: 클라이언트 사이드 렌더링 (client-side rendering)
여러 AI 크롤러는 JavaScript를 실행하지 않습니다. 만약 귀하의 H1 태그와 첫 문단이 하이드레이션 (hydration)을 통해 전달된다면, 크롤러는 빈 껍데기만 보게 됩니다. 인용되기를 원하는 모든 것은 서버 사이드 렌더링 (Server-render) 하세요. 테스트 방법은 DevTools가 아니라 view-source: 입니다.
크롤러를 명시적으로 허용하기 (Next.js App Router)
import type { MetadataRoute } from 'next'
export default function robots(): MetadataRoute.Robots {
...
robots.txt는 필요하지만 충분하지 않습니다. 실제로 영향을 미치는 것은 CDN 규칙입니다.
크롤링 가능 여부가 중요한가요?
그것은 전략이 아니라 전제 조건입니다. 검색 결과에 노출되는 것은 일반적인 검색 순위 (search ranking)로 결정되지만, 인용되는 것은 추출 가능한 구조 (extractable structure), 직접적인 답변 (direct answers), 명시적인 정의 (explicit definitions), 출처가 명시된 통계 (sourced statistics)를 통해 결정됩니다. 하지만 크롤러 (crawler)가 입구에서 403 오류를 받는다면 이 중 어느 것도 작동하지 않습니다.
저는 이에 대한 실시간 실험을 게시하고 있습니다: ChatGPT와 Gemini에게 매일 20개의 고정된 질문을 던지고, 가공되지 않은 답변 (raw answers), 인용된 출처 리더보드 (cited-source leaderboards), 그리고 검색되었으나 인용되지 않은 격차 (retrieved-but-not-cited gap)를 공개적으로 게시합니다 connectingdots.live/experiment
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기