사이트를 런칭하고 한 달이 지났는데 구글 검색에 아무것도 안 뜨는 경험, 혹시 해보셨나요? 콘텐츠도 열심히 썼고, 사이트맵도 제출했는데 왜 색인이 안 되는 걸까. 알고 보니 robots.txt에서 전체 크롤링을 차단하고 있었습니다. 개발 중에 설정해 놓고 배포할 때 그대로 올린 거예요. 이런 실수가 생각보다 정말 흔합니다.
robots.txt가 하는 일
robots.txt는 웹사이트 루트 디렉토리에 위치하는 텍스트 파일입니다. 검색엔진 크롤러(봇)가 사이트에 방문하면 가장 먼저 이 파일을 확인해요. "이 경로는 긁어가도 되고, 이 경로는 긁지 마"라고 안내하는 역할입니다.
주의할 점이 있어요. robots.txt는 권고 사항이지 강제가 아닙니다. 구글봇 같은 주요 크롤러는 이 규칙을 존중하지만, 악의적인 봇은 무시할 수 있어요. 그래서 민감한 정보를 robots.txt로 숨기려는 건 좋은 방법이 아닙니다. 접근 제어가 필요하면 서버 설정이나 인증으로 막아야 해요.
기본 문법 빠르게 익히기
robots.txt 문법은 생각보다 간단합니다. 핵심 지시어 세 가지만 알면 돼요.
User-agent: 어떤 크롤러에 적용할 규칙인지 지정합니다. *는 모든 크롤러를 의미하고, Googlebot처럼 특정 봇 이름을 넣을 수도 있어요.
Disallow: 크롤링을 차단할 경로를 지정합니다. /admin/이라고 쓰면 admin 폴더 하위의 모든 페이지를 차단해요. 비어 있으면(Disallow: ) 아무것도 차단하지 않는다는 뜻입니다.
Allow: Disallow로 막은 범위 안에서 예외적으로 허용할 경로를 지정합니다. 구글봇은 Allow를 인식하지만, 모든 크롤러가 지원하는 건 아니에요.
Sitemap: 사이트맵 파일의 URL을 알려줍니다. 크롤러가 사이트 구조를 더 잘 이해할 수 있도록 도와주는 역할이에요.
실무에서 자주 보는 SEO 실수
개발 환경 설정을 그대로 배포하는 경우. 스테이징 서버에서 검색엔진 크롤링을 막아놓는 건 당연합니다. 문제는 그 robots.txt를 프로덕션에도 그대로 올리는 거예요. 배포 체크리스트에 robots.txt 확인 항목을 반드시 넣으세요.
CSS/JS 파일을 차단하는 경우. 예전에는 리소스 파일을 차단하는 게 일반적이었지만, 지금 구글은 페이지를 렌더링해서 평가합니다. CSS나 JS를 차단하면 구글봇이 페이지를 제대로 이해할 수 없어서 SEO에 불리해요.
중요 페이지를 실수로 차단하는 경우. 와일드카드(*)를 잘못 쓰면 의도치 않게 넓은 범위를 차단할 수 있습니다. Disallow: /page라고 쓰면 /page뿐 아니라 /pages, /page-about 등 /page로 시작하는 모든 경로가 막혀요.
robots.txt로 색인을 제어하려는 경우. Disallow는 크롤링을 막을 뿐, 색인을 막지 않습니다. 다른 사이트에서 해당 URL로 링크가 걸려 있으면, 구글이 크롤링 없이도 색인에 포함시킬 수 있어요. 색인을 확실히 막으려면 noindex 메타 태그를 사용해야 합니다.
올바른 robots.txt 작성법
대부분의 사이트에서 권장하는 기본 설정은 이렇습니다. 모든 크롤러를 허용하되, 관리자 페이지나 내부 검색 결과처럼 SEO에 불필요한 경로만 차단하세요.
파일 위치는 반드시 도메인 루트여야 합니다. example.com/robots.txt는 인식되지만, example.com/pages/robots.txt는 인식되지 않아요.
사이트맵 경로도 꼭 추가하세요. 구글 서치 콘솔에서 사이트맵을 제출하는 것과 별개로, robots.txt에도 명시하면 다른 검색엔진도 사이트맵을 찾을 수 있습니다.
변경 후 확인하는 습관
robots.txt를 수정한 뒤에는 구글 서치 콘솔의 "robots.txt 테스터" 도구로 특정 URL이 제대로 허용/차단되는지 확인해 보세요. 의도한 대로 동작하는지 바로 테스트할 수 있습니다.
또한 서치 콘솔의 "URL 검사" 도구에서 특정 페이지가 크롤링 차단 상태인지도 확인 가능합니다. 색인이 안 되는 페이지가 있다면 가장 먼저 robots.txt를 의심해 보세요.