"사이트를 새로 만들었는데 두 달째 검색에 안 떠요."
저한테 이 말을 한 사장님이 있었어요. 콘텐츠도 좋고 디자인도 멀끔한데 구글에 한 줄도 안 잡혔습니다. robots.txt 파일을 열어봤더니 딱 두 줄이 있더군요. User-agent: * 와 Disallow: /. 개발 단계에서 검색을 막아두는 설정을 그대로 올린 거였습니다. 사이트 전체에 "들어오지 마세요" 표지판을 붙여놓고 손님이 안 온다고 한 셈이죠.
"robots.txt란 검색봇에게 우리 사이트의 어디는 들어와도 되고 어디는 들어오지 말라고 알려주는, 사이트 최상단에 두는 텍스트 파일이다." — 야무진SEO
이 작은 텍스트 파일 한 장이 사이트 전체의 검색 운명을 가릅니다. 그런데 막상 검색해보면 문법 나열만 잔뜩 나오고, 정작 "그래서 우리 사이트엔 뭘 써야 하나"는 안 알려줘요. 게다가 요즘은 GPTBot 같은 AI 크롤러를 막아야 할지 말지도 고민이 되죠. 이 글에서 문법, 흔한 사고, AI 봇 판단 기준까지 한 번에 정리하겠습니다.
robots.txt가 정확히 하는 일
robots.txt는 사이트의 루트 디렉토리에 위치하는 텍스트 파일입니다. 주소창에 www.yamujinseo.kr/robots.txt처럼 도메인 뒤에 /robots.txt를 붙이면 누구나 열어볼 수 있어요. 검색봇이 사이트에 들어오면 가장 먼저 이 파일부터 확인합니다.
여기서 꼭 짚어야 할 점이 하나 있어요. robots.txt는 명령이 아니라 권고입니다. 구글봇, 네이버 예티 같은 정상적인 검색봇은 이 규칙을 지키지만, 악성 봇은 그냥 무시하고 들어옵니다. 그래서 robots.txt로 민감한 정보를 숨기려는 건 위험합니다. 오히려 "이 경로에 뭔가 있다"고 광고하는 꼴이 되니까요.
robots.txt를 쓰는 진짜 이유는 따로 있습니다.
- 크롤링 예산 절약: 검색봇은 한 사이트에 무한정 시간을 쓰지 않습니다. 로그인 페이지, 장바구니, 내부 검색 결과처럼 검색에 뜰 필요 없는 페이지를 막아두면, 봇이 정작 중요한 콘텐츠에 집중하게 됩니다.
- 서버 부하 감소: 봇이 쓸데없는 페이지를 수천 번 긁으면 서버가 느려집니다.
- 사이트맵 위치 안내: robots.txt에 사이트맵 주소를 적어두면 봇이 우리 사이트 전체 구조를 빠르게 파악합니다.
문법 3줄이면 끝 — User-agent / Disallow / Allow
robots.txt 문법은 생각보다 단순합니다. 핵심 명령어는 세 개예요.
User-agent — 어떤 검색봇에게 적용할 규칙인지 지정합니다. *는 "모든 봇"이고, Googlebot처럼 특정 봇 이름을 적을 수도 있습니다.
Disallow — 막을 경로입니다. /부터 시작하는 상대 경로로 적습니다.
Allow — Disallow로 막은 폴더 안에서 특정 페이지만 다시 열어줄 때 씁니다.
가장 기본적인 형태는 이렇습니다.
User-agent: *
Disallow: /admin/
Disallow: /cart/
Allow: /
Sitemap: https://www.example.com/sitemap.xml
이 파일은 "모든 검색봇은 /admin/과 /cart/ 폴더만 빼고 나머지는 다 봐도 된다"는 뜻입니다. 맨 아래 Sitemap 줄로 사이트맵 위치까지 알려주고 있죠.
여기서 초보자가 가장 자주 놓치는 규칙이 있습니다. robots.txt에 명시하지 않은 경로는 전부 "허용"으로 간주됩니다. 그래서 "크롤링해도 되는 페이지"를 일일이 적을 필요가 없어요. 막고 싶은 것만 Disallow로 적으면 됩니다. 빈 사이트라면 사실 robots.txt가 없어도 전체 크롤링이 허용됩니다.
"robots.txt는 '뭘 허용할까'가 아니라 '뭘 막을까'만 적는 파일입니다. 명시 안 하면 기본은 전부 통과예요." — 야무진SEO
특정 봇만 따로 규칙을 줄 수도 있습니다. 예를 들어 구글봇에게만 추가로 막을 폴더가 있다면 이렇게 합니다.
User-agent: *
Disallow: /tmp/
User-agent: Googlebot
Disallow: /tmp/
Disallow: /test/
검색엔진별 봇 이름은 다 다릅니다. 구글은 Googlebot, 네이버는 Yeti, 다음은 Daum, 빙은 Bingbot입니다. 작성하기 전에 적용할 검색엔진의 봇 이름을 한 번 확인하고 쓰는 걸 권합니다.
경쟁사가 잘 안 다루는 빈틈 — 우선순위와 매칭 규칙
여기가 많은 가이드 글이 그냥 넘어가는 부분입니다. Allow와 Disallow가 충돌하면 어느 쪽이 이길까요?
예를 들어 이런 경우입니다.
User-agent: *
Disallow: /folder/
Allow: /folder/keep-this.html
/folder/는 막혀 있는데, 그 안의 keep-this.html은 허용입니다. 구글은 더 구체적인(긴) 규칙을 우선합니다. Allow: /folder/keep-this.html이 Disallow: /folder/보다 경로가 길고 구체적이니까, 이 파일 하나만 크롤링이 허용됩니다. 줄 순서가 아니라 경로의 구체성으로 판단한다는 게 핵심이에요.
저도 처음엔 "위에 쓴 규칙이 이긴다"고 착각했어요. 그런데 직접 사이트에 적용해보고 구글 서치 콘솔의 robots.txt 테스터로 확인하면서 규칙을 제대로 이해했습니다. 헷갈릴 땐 추측하지 말고 서치 콘솔에서 직접 테스트해보세요. 이게 가장 확실합니다.
와일드카드도 알아두면 유용합니다. *는 임의의 문자열, $는 URL의 끝을 의미합니다.
User-agent: *
Disallow: /*.pdf$
이건 "모든 PDF 파일을 막아라"는 뜻입니다. .pdf로 끝나는 모든 URL이 차단되죠.
사이트를 통째로 날려버리는 흔한 실수 4가지
robots.txt 한 글자 차이로 사이트 전체가 검색에서 사라질 수 있습니다. 실제로 자주 보는 사고들입니다.
1. Disallow: / — 사이트 전체 차단
이 글 맨 앞에서 말한 사례가 바로 이겁니다. 슬래시 하나만 적으면 사이트 전체가 막힙니다. 개발 단계에선 일부러 이렇게 막아두는 경우가 많은데, 라이브 오픈할 때 이 줄을 지우는 걸 잊으면 두 달째 검색에 안 뜨는 참사가 벌어집니다. 새 사이트를 오픈했다면 robots.txt부터 확인하세요.
2. CSS, JS 파일 차단
Disallow: /css/
Disallow: /js/
예전엔 이렇게 막는 게 유행이었지만 지금은 절대 하면 안 됩니다. 구글은 페이지를 실제로 렌더링해서 평가합니다. CSS와 JS가 막히면 구글이 페이지를 깨진 화면으로 보게 되고, 그러면 모바일 친화성이나 콘텐츠 품질을 제대로 평가받지 못해 순위에서 손해를 봅니다.
3. robots.txt로 색인을 막으려는 시도
robots.txt의 Disallow는 "크롤링하지 마라"이지 "검색 결과에 띄우지 마라"가 아닙니다. 미묘하지만 중요한 차이예요. 이미 다른 사이트에서 링크된 페이지라면, robots.txt로 막아도 URL만 검색 결과에 노출될 수 있습니다. 특정 페이지를 검색에서 완전히 빼고 싶다면 robots.txt가 아니라 해당 페이지의 <head>에 noindex 메타 태그를 넣어야 합니다.
4. 파일 위치와 이름을 틀림
robots.txt는 반드시 루트 디렉토리에 있어야 합니다. www.example.com/robots.txt여야지 www.example.com/blog/robots.txt는 인식되지 않습니다. 파일명도 전부 소문자 robots.txt여야 합니다. Robots.txt나 robot.txt는 작동하지 않아요.
AI 크롤러, 막아야 할까 열어줘야 할까
이게 요즘 사장님들이 가장 많이 묻는 부분입니다. ChatGPT, Claude, Perplexity 같은 AI들이 웹을 긁어가는데, 우리 사이트를 보여줘야 할까요?
먼저 AI 크롤러도 robots.txt를 따릅니다. 주요 AI 봇 이름은 이렇습니다.
- GPTBot — OpenAI(ChatGPT)가 학습 데이터를 수집하는 봇
- OAI-SearchBot — ChatGPT 검색 기능이 실시간으로 참조하는 봇
- ClaudeBot — Anthropic(Claude)의 수집 봇
- PerplexityBot — Perplexity AI의 봇
- Google-Extended — 구글 제미나이 학습용 (검색용 Googlebot과 별개)
AI 봇을 모두 막고 싶다면 이렇게 적습니다.
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
그럼 막는 게 좋을까요? 저는 대부분의 비즈니스 사이트는 AI 크롤러를 열어두라고 조언합니다. 이유는 이렇습니다. 이제 사람들은 구글뿐 아니라 ChatGPT한테 "강남 SEO 업체 추천해줘"라고 묻습니다. 이때 AI가 답변에 우리 사이트를 인용하려면, AI 봇이 우리 콘텐츠를 읽을 수 있어야 해요. AI 검색이 새로운 유입 통로가 된 거죠. 이걸 다루는 게 GEO 최적화입니다.
"검색의 문이 구글 하나에서 ChatGPT, 제미나이로 늘어났어요. AI 봇을 막는 건, 새로 열린 문을 스스로 잠그는 것과 같습니다." — 야무진SEO
다만 예외도 있습니다. 콘텐츠 자체가 유료 상품인 경우(유료 강의 원고, 독점 데이터베이스 등)는 학습용 봇인 GPTBot, ClaudeBot, Google-Extended는 막고, 실시간 검색 참조 봇인 OAI-SearchBot은 열어두는 절충안을 권합니다. 학습엔 안 쓰이되 검색 인용은 받겠다는 전략이죠. 우리 콘텐츠의 성격에 따라 판단하면 됩니다.
실전 추천 robots.txt 템플릿
일반적인 기업/소상공인 사이트라면 이 정도면 충분합니다.
User-agent: *
Disallow: /admin/
Disallow: /wp-admin/
Disallow: /cart/
Disallow: /checkout/
Disallow: /*?s=
Sitemap: https://www.example.com/sitemap.xml
관리자 페이지와 장바구니, 결제, 내부 검색 결과만 막고 나머지는 다 열어둔 형태입니다. AI 봇 차단 줄이 없으니 ChatGPT 같은 AI도 우리 사이트를 읽어갈 수 있습니다. 도메인과 사이트맵 주소만 본인 것으로 바꿔서 쓰면 됩니다. 워드프레스가 아니라면 /wp-admin/ 줄은 빼세요.
robots.txt를 다 작성했으면 마지막으로 두 가지를 꼭 확인하세요. 첫째, 브라우저로 도메인/robots.txt에 접속해서 파일이 실제로 보이는지. 둘째, 구글 서치 콘솔의 robots.txt 테스트 도구로 의도대로 동작하는지 검증하는 겁니다. 이 두 단계가 사고를 막아줍니다. robots.txt는 기술 SEO의 기초 중에서도 가장 먼저 점검해야 할 항목입니다.
자주 묻는 질문 (FAQ)
robots.txt 파일이 꼭 있어야 하나요?
필수는 아닙니다. robots.txt가 없으면 검색봇은 사이트 전체를 크롤링해도 된다고 간주합니다. 다만 사이트맵 위치를 알려주고 불필요한 페이지를 막기 위해 만들어두는 것을 권합니다. 작은 사이트라도 사이트맵 한 줄은 넣어두면 좋습니다.
robots.txt로 막은 페이지가 왜 검색에 나오나요?
robots.txt의 Disallow는 크롤링만 막을 뿐 색인을 막지 못합니다. 다른 사이트에서 그 페이지로 링크가 걸려 있으면 URL만 검색 결과에 노출될 수 있습니다. 검색에서 완전히 빼려면 해당 페이지에 noindex 메타 태그를 넣어야 합니다.
robots.txt를 수정하면 언제 반영되나요?
검색봇이 다음번에 사이트를 방문할 때 새 robots.txt를 읽습니다. 보통 며칠 안에 반영되지만, 즉시 적용을 원하면 구글 서치 콘솔에서 robots.txt 다시 가져오기를 요청할 수 있습니다.
GPTBot을 막으면 구글 검색 순위에 영향이 있나요?
없습니다. GPTBot은 OpenAI 전용 봇이고, 구글 검색은 Googlebot이 담당합니다. GPTBot을 막아도 구글 검색에는 전혀 영향이 없어요. 다만 ChatGPT 답변에 우리 사이트가 인용될 기회는 사라집니다.
워드프레스도 robots.txt를 따로 만들어야 하나요?
워드프레스는 기본 가상 robots.txt를 자동 생성합니다. 하지만 실제 파일로 직접 만들어 올리면 더 세밀하게 제어할 수 있습니다. Yoast SEO 같은 플러그인에서도 편집할 수 있으니 한 번 확인해보세요.
robots.txt는 코드 한 줄도 모르던 시절의 저를 가장 많이 당황시킨 파일이었습니다. 슬래시 하나로 사이트 전체가 검색에서 사라질 수 있다는 걸 직접 겪고 나서야 무서움을 알았죠. 지금 우리 사이트의 도메인/robots.txt를 한 번 열어보세요. Disallow: / 한 줄이 숨어 있지는 않은지부터 확인하는 게 시작입니다.
직접 확인했는데 뭐가 맞는 설정인지 판단이 안 선다면, 무료 SEO 진단을 신청해보세요. robots.txt가 검색을 막고 있지는 않은지, AI 크롤러 설정은 우리 사업에 맞는지 구체적으로 점검해 드립니다.