블로그

SEO robots.txt 설정 완전 가이드, 작성부터 AI 크롤러 차단까지

seo-robots-txt-settings-guide

목차

홈페이지를 개설하고 구글 서치콘솔을 처음 연결하면 어딘가에서 robots.txt라는 단어를 마주치게 됩니다. 대부분은 “나중에 알아봐야지” 하고 넘기죠. 그런데 이 파일을 잘못 설정했거나 아예 방치했다면, 검색 노출에 생각보다 큰 영향을 미치고 있을 수 있습니다.

특히 요즘은 구글봇뿐 아니라 ChatGPT, Claude 같은 AI 서비스의 크롤러까지 사이트를 방문하기 때문에, 제대로 설정해야 할 이유가 하나 더 생긴 거죠. 검색 노출과 AI 인용을 동시에 챙기려면, robots.txt를 어떻게 설정하느냐가 달라져야 합니다.

robots.txt는 뭔가요?

robots.txt는 크롤러가 사이트를 방문하기 전에 읽는 안내서입니다. 어떤 페이지를 수집해도 되고, 어떤 경로는 접근하지 말아야 하는지를 크롤러에게 알려주는 텍스트 파일이에요.

파일 위치는 반드시 도메인 루트 디렉터리여야 합니다. example.com/robots.txt 형태로 접근 가능해야 하고, 서브도메인이 따로 있다면 서브도메인마다 별도 파일이 필요합니다.

한 가지 알아둬야 할 점은 robots.txt가 강제력이 없다는 겁니다. Googlebot, 네이버의 Yeti처럼 신뢰할 수 있는 크롤러는 이 파일을 준수하지만, 악성 봇은 무시하고 수집해 갑니다. 보안 목적으로는 쓸 수 없는 파일이에요.

robots.txt는 어떻게 작성하나요?

robots.txt 문법은 단순하지만, 형식을 틀리면 규칙 전체가 의도한 대로 동작하지 않습니다.

robots.txt 지시어 4가지

Google Search Central 공식 문서에 따르면 robots.txt에서 사용하는 지시어는 4가지입니다.

지시어역할
User-agent규칙을 적용할 크롤러 지정. *은 모든 크롤러
Disallow접근을 막을 경로 지정
AllowDisallow 범위 안에서 예외적으로 허용할 경로
Sitemap사이트맵 파일의 전체 URL 선언

규칙은 빈 줄로 그룹을 구분하고, 경로는 대소문자를 구분합니다. /Admin//admin/은 다른 경로로 처리됩니다.

실무 설정 패턴 3가지

실제로 자주 쓰이는 패턴은 크게 세 가지입니다.

① 전체 허용 (기본형)

 User-agent: *
 Allow: /
 Sitemap: https://example.com/sitemap.xml

모든 크롤러의 전체 접근을 허용하는 가장 일반적인 형태입니다.

② 관리자 경로 차단 (워드프레스)

 User-agent: *
 Disallow: /wp-admin/
 Allow: /wp-admin/admin-ajax.php
 Sitemap: https://example.com/sitemap.xml

워드프레스에서 관리자 페이지를 차단할 때 씁니다. admin-ajax.php는 프론트엔드 기능에 필요한 경우가 많아, 일반적으로 예외로 열어두는 것을 권장합니다.

③ 특정 봇만 차단

 User-agent: BadBot
 Disallow: /
 ​
 User-agent: *
 Allow: /

특정 크롤러만 골라서 차단할 때 씁니다. 크롤러마다 규칙 그룹을 나눠 작성합니다.

robots.txt 설정 실수가 검색 노출을 막는 이유는 뭔가요?

robots.txt 오류 중 가장 피해가 큰 건 “차단했다”고 착각한 채 방치하는 경우입니다. 의도와 다르게 동작하는 규칙이 사이트 전체 색인에 영향을 줄 수 있어요.

크롤링 차단과 색인 차단은 어떻게 다른가요?

robots.txt의 Disallow와 noindex는 하는 일이 다릅니다. 이 둘을 혼동하는 경우가 많은데, Google 공식 문서에서 명확히 구분하고 있습니다.

  • robots.txt Disallow: 크롤러의 페이지 접근(크롤링)을 막습니다
  • noindex 메타태그: 크롤링은 허용하되 검색 결과 색인을 막습니다

중요한 건, Disallow로 막은 페이지도 외부 사이트에서 링크가 걸려 있으면 URL 자체가 색인될 수 있다는 점입니다. 페이지 내용은 없이 URL만 검색 결과에 뜨는 상황이 생기죠.

반대로 noindex가 제대로 동작하려면 해당 페이지가 robots.txt에서 차단되지 않아야 합니다. Disallow와 noindex를 같은 페이지에 동시에 적용하면 noindex가 무효화됩니다. 구글 개발자 Martin Splitt도 이 조합을 명시적으로 피하라고 권고한 바 있습니다.

자주 발생하는 설정 오류 유형

대소문자 오류: /Admin//admin/은 별개 경로입니다. 의도한 경로가 차단되지 않을 수 있어요.

슬래시 유무 혼동: /search는 해당 파일만, /search/는 해당 경로 전체를 차단합니다. 범위 자체가 달라지거든요.

CSS·JS 파일 차단: 스타일시트나 자바스크립트 파일을 차단하면 구글이 페이지를 제대로 렌더링하지 못할 수 있고, 이는 SEO에 부정적인 영향으로 이어질 수 있습니다.

Disallow: / 실수: 루트 경로를 차단하면 사이트 전체가 차단됩니다. 스테이징 환경 설정을 그대로 라이브에 올렸을 때 자주 발생하는 오류예요.

설정 후에는 반드시 구글 서치콘솔의 robots.txt 검사 도구로 의도한 대로 동작하는지 확인하세요.

AI 검색에 인용되려면 robots.txt를 어떻게 설정해야 하나요?

그런데 점검해야 할 크롤러가 구글봇에서 끝나지 않습니다. ChatGPT, Claude, Perplexity 같은 AI 서비스는 각자의 크롤러를 운영합니다. 이 크롤러들은 구글봇과 목적이 다르고, 차단 여부가 AI 검색 인용 가능성에 직접 영향을 줍니다.

AI 크롤러 종류와 역할

AI 서비스의 크롤러는 크게 학습용인용용으로 나뉩니다.

크롤러운영사목적
GPTBotOpenAIChatGPT 학습 데이터 수집
ChatGPT-UserOpenAI실시간 브라우징·인용
ClaudeBotAnthropicClaude 학습 데이터 수집
Claude-UserAnthropic실시간 인용
Claude-SearchBotAnthropic검색 색인용 수집
Google-ExtendedGoogleGemini·Vertex AI 학습
PerplexityBotPerplexity검색 색인 및 인용

Anthropic 공식 문서에 따르면 2024년 7월부터 anthropic-ai, claude-web 같은 구 이름은 deprecated됐습니다. 현재는 위 표의 이름으로 설정해야 합니다.

Google-Extended는 구글 검색 순위나 색인에는 영향이 없고, Gemini 학습에만 사용됩니다. 차단해도 구글 검색 노출에는 변화가 없어요.

학습 봇 차단, 인용 봇 허용 설정법

문제는 이 구분을 고려하지 않은 설정에서 생깁니다. SEJ 분석에 따르면 당시 조사 대상 사이트 중 ClaudeBot을 차단한 비율이 69%, GPTBot은 62%에 달했습니다. 콘텐츠 무단 학습을 우려한 조치인데, 여기서 놓치는 게 있습니다.

학습 봇을 차단해도 인용 봇(ChatGPT-User, Claude-User)까지 함께 차단하면 AI 검색 결과에서 인용될 기회 자체가 사라집니다. Princeton 연구팀의 GEO 연구에 따르면 AI 검색 최적화 전략을 적용했을 때 노출이 최대 40% 향상된 것으로 나타났습니다. 다만 이 효과는 크롤러가 콘텐츠에 접근 가능한 상태를 전제로 합니다.

학습은 막되 인용은 열어두는 설정을 분리해서 적용할 수 있습니다.

 # 학습 봇 차단
 User-agent: GPTBot
 Disallow: /
 ​
 User-agent: ClaudeBot
 Disallow: /
 ​
 User-agent: Google-Extended
 Disallow: /
 ​
 # 인용 봇 허용
 User-agent: ChatGPT-User
 Allow: /
 ​
 User-agent: Claude-User
 Allow: /
 ​
 User-agent: Claude-SearchBot
 Allow: /
 ​
 User-agent: PerplexityBot
 Allow: /

콘텐츠 저작권이 민감하다면 학습 봇만 선별적으로 차단하고, AI 검색 인용을 원한다면 인용 봇은 허용 상태로 두는 게 현실적인 전략입니다.

마무리

robots.txt는 한 번 설정하고 잊어버리는 파일이 아닙니다. 새로운 AI 서비스가 생길 때마다 크롤러 이름이 추가되고, 운영사 정책도 바뀝니다. 지금 당장 도메인/robots.txt로 접속해서 현재 설정 상태를 확인해 보세요. 의도치 않게 차단하고 있는 것이 있을 수도 있습니다.