SEO

Robots.txt

Robots.txt는 웹사이트 루트 디렉토리(/robots.txt)에 위치하는 공개 텍스트 파일로, 검색엔진 크롤러가 사이트의 어떤 URL에 접근할 수 있는지를 안내하는 표준 프로토콜(Robots Exclusion Protocol)입니다.

Robots.txt는 웹사이트 루트 디렉토리(/robots.txt)에 위치하는 공개 텍스트 파일로, 검색엔진 크롤러가 사이트의 어떤 URL에 접근할 수 있는지를 안내하는 표준 프로토콜(Robots Exclusion Protocol)입니다.

왜 중요한가

검색엔진은 웹사이트마다 할당된 크롤 버짓(Crawl Budget)에 따라 하루에 방문하는 페이지 수가 제한됩니다. robots.txt를 올바르게 설정하면 관리자 페이지, API 엔드포인트, 중복 콘텐츠 등 불필요한 경로의 크롤링을 차단하여 크롤 버짓을 핵심 콘텐츠에 집중시킬 수 있습니다. 특히 수천 페이지 이상의 대규모 사이트에서는 이 설정이 검색 반영 속도와 전체 SEO 성과에 직접적인 영향을 미칩니다.

2025년 이후에는 GPTBot, CCBot, PerplexityBot, Google-Extended 등 AI 크롤러의 등장으로 robots.txt의 역할이 더욱 확대되었습니다. 공개 마케팅 콘텐츠라면 기본값은 크롤러 접근을 허용하고, 크롤 버짓을 낭비하거나 공개할 필요가 없는 경로만 제한하는 것이 안전합니다. AI 학습용 크롤러 차단은 콘텐츠 라이선스 정책과 AI 검색 노출 전략에 맞춰 별도로 판단해야 합니다.

주요 디렉티브

디렉티브설명예시
User-agent규칙을 적용할 크롤러를 지정합니다. *는 모든 크롤러를 의미합니다.User-agent: Googlebot
Disallow크롤링을 차단할 경로를 지정합니다.Disallow: /admin/
AllowDisallow로 차단된 상위 경로 내에서 특정 하위 경로를 허용합니다.Allow: /admin/public/
SitemapXML 사이트맵의 URL을 명시합니다. 파일 하단에 작성하는 것이 관례입니다.Sitemap: https://example.com/sitemap.xml
Crawl-delay크롤러 요청 간 대기 시간을 초 단위로 지정합니다. Googlebot은 이 디렉티브를 무시합니다.Crawl-delay: 10

설정 가이드

공개 블로그라면 기본 설정은 단순해야 합니다.

User-agent: *
Allow: /

Sitemap: https://example.com/sitemap.xml

Disallow는 내부 검색, 관리자 경로, 중복 필터 URL, API 엔드포인트처럼 크롤링할 필요가 없는 영역에만 추가합니다. 검색 크롤러는 열어두고 특정 AI 학습용 크롤러만 차단해야 한다면 user-agent를 분리합니다.

User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /*?*utm_

# AI 크롤러 차단
User-agent: GPTBot
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: anthropic-ai
Disallow: /

# 사이트맵
Sitemap: https://example.com/sitemap.xml

설정 시 유의할 점:

  1. 파일 위치: 반드시 도메인 루트(https://example.com/robots.txt)에 위치해야 합니다. 하위 디렉토리에 두면 크롤러가 인식하지 못합니다.
  2. 대소문자 구분: URL 경로는 대소문자를 구분합니다. Disallow: /Private//private/를 차단하지 않습니다.
  3. 규칙 우선순위: Google은 가장 구체적으로 일치하는 규칙을 적용합니다. AllowDisallow가 모두 일치한다면 더 긴 경로를 가진 규칙이 우선합니다.
  4. HTTP 상태 코드: robots.txt가 404 또는 410이면 제한 규칙이 없는 것으로 처리됩니다. 반대로 5xx가 반환되면 Google이 규칙을 확인할 수 없어 크롤링이 일시적으로 멈출 수 있습니다.
  5. 테스트 필수: Search Console의 robots.txt 보고서와 URL 검사 도구로 Googlebot이 파일을 가져올 수 있는지, 중요한 URL이 차단되지 않았는지 확인해야 합니다.
  6. 사이트맵 연동: Google Search Console과 Bing Webmaster Tools에 사이트맵을 직접 제출하는 것이 권장되지만, robots.txt에도 함께 명시하는 것이 좋습니다.

자주 하는 실수

  • 보안 도구로 오해하는 경우: robots.txt는 크롤러에게 보내는 요청일 뿐이며, 접근을 물리적으로 차단하지 않습니다. 민감한 페이지는 서버 인증, IP 차단 등 별도의 보안 수단을 사용해야 합니다.
  • Disallow와 noindex를 혼동하는 경우: Disallow는 크롤링을 차단할 뿐 인덱싱을 막지 않습니다. 외부 링크가 있는 페이지는 크롤링 없이도 검색 결과에 노출될 수 있습니다. 검색 결과에서 완전히 제거하려면 noindex 메타 태그를 사용해야 합니다.
  • noindex를 읽기 전에 페이지를 차단하는 경우: Disallownoindex를 동시에 적용하면 Google이 해당 페이지를 크롤링하지 못해 noindex 지시를 읽지 못할 수 있습니다.
  • 전체 사이트를 실수로 차단하는 경우: Disallow: /User-agent: * 아래에 설정하면 모든 크롤러의 전체 사이트 접근이 차단됩니다. 사이트 리뉴얼이나 스테이징 환경에서 이 설정을 사용한 뒤 프로덕션 배포 시 되돌리지 않는 실수가 빈번합니다.
  • CSS·JS 파일을 차단하는 경우: Googlebot은 페이지를 렌더링하여 콘텐츠를 평가합니다. CSS나 JavaScript 파일의 크롤링을 차단하면 렌더링이 불완전해져 SEO 점수가 하락할 수 있습니다.
  • robots.txt에 민감한 경로를 노출하는 경우: robots.txt는 누구나 열람할 수 있는 공개 파일입니다. /secret-admin-panel/처럼 비공개 경로를 Disallow에 명시하면 오히려 해당 경로의 존재를 외부에 알리는 결과를 초래합니다.

Sources:

inblog에서 활용하기

inblog는 검색엔진 크롤러의 접근을 기본 허용하며, AI 크롤러(GPTBot 등) 설정도 대시보드에서 관리 가능합니다.