robots.txt 만드는 방법 5분 만에 이해하기
박예원 GP

robots.txt 파일은 왜 중요하고, 왜 필요할까요?
웹사이트를 운영하신다면 한 번쯤 이런 고민을 해보셨을 겁니다. 중요한 페이지는 검색되길 원하지만, 불필요한 페이지는 노출되지 않도록 막고 싶다는 고민 말입니다.
여기서 길잡이 역할을 하는 파일입니다. 검색엔진 크롤러에게 “이 페이지는 봐도 되고, 저 페이지는 보지 마세요”라고 안내하는 거죠.
잘 활용하면 SEO 성능을 최적화하고 불필요한 크롤링도 막습니다. 하지만 설정을 잘못하면 중요한 페이지까지 검색에서 사라지는 실수를 할 수도 있어요.
이 글에서는 개념부터 설정 방법까지 B2B 마케터도 쉽게 이해하도록 풀어서 설명해드리겠습니다.
끝까지 읽으시면 SEO 전문가가 아니어도 사이트의 검색 노출을 직접 관리하실 수 있습니다.
robots.txt의 정의와 중요성
검색 엔진 최적화라고 하면 많은 마케터가 콘텐츠 작성과 키워드 전략에 집중합니다. 하지만 검색 엔진이 사이트를 어떻게 크롤링하는지 아는 것도 그에 못지않게 중요한데요.
검색엔진 크롤러는 웹사이트의 모든 페이지를 자동으로 방문하고 색인합니다. 이 과정에서 robots.txt 파일이 크롤러가 어떤 페이지에 들어갈 수 있고 어떤 페이지에 들어갈 수 없는지 정해주기 때문입니다. Google 검색 공식 문서는 robots.txt를 “크롤러가 사이트에서 접근할 수 있는 URL을 알려 주는 파일”로 정의하고, 주로 사이트에 요청이 과도하게 몰리는 상황을 막는 용도라고 설명합니다.
웹사이트 루트 디렉터리에 두면 검색엔진에 특정 경로를 열거나 막는 명령을 전달합니다.
제대로 설정하면 불필요한 크롤링을 막고 중요한 페이지에 크롤링 예산(Crawl Budget)을 몰아줄 수 있어요. 반대로 설정이 어긋나면 사이트의 주요 페이지가 검색에서 빠지는 치명적인 오류가 생깁니다.
구글 검색 센터에 따르면 robots.txt는 단순한 규칙을 따르지만, 설정이 틀어지면 SEO에 곧바로 영향을 미칩니다.
그래서 올바른 설정 방법을 미리 알아 두어야 합니다.

robots.txt의 기본 문법과 구조
기본 구조는 검색 엔진 크롤러와 소통하는 간단한 명령어 몇 줄로 되어 있습니다.

각 줄에는 특정 검색엔진 크롤러(User-agent)와 그 크롤러에 적용할 규칙(Disallow, Allow 등)이 들어가죠.
User-agent 이해하기
검색 엔진 크롤러는 웹사이트의 콘텐츠를 수집해 색인합니다.
하지만 모든 검색 엔진이 같은 크롤링 규칙을 따르지는 않기 때문에 특정 크롤러만 겨냥해 규칙을 설정해야 할 때가 있습니다.
이때 쓰는 것이 User-agent 지시어입니다. User-agent는 특정 검색 엔진 크롤러에게 어떤 규칙을 적용할지 지정합니다.
예를 들어, Google의 크롤러는 “Googlebot”, 네이버의 크롤러는 “Yeti”, Bing의 크롤러는 “Bingbot”이라고 부릅니다.
특정 크롤러에만 규칙을 적용하고 싶다면 해당 User-agent를 지정하면 됩니다. 모든 크롤러에 한꺼번에 적용하려면 ‘*’ 기호를 씁니다.
User-agent: *
위 설정은 모든 검색 엔진 크롤러에게 같은 규칙을 적용하겠다는 뜻입니다.
Allow와 Disallow의 차이
robots.txt 파일은 검색 엔진 크롤러에게 특정 경로의 크롤링을 허용할지 차단할지를 지정합니다.
이를 위해 Allow와 Disallow 지시어를 사용합니다.
그 역할을 맡는 것이 Allow와 Disallow 설정이죠.
Allow는 특정 페이지나 폴더의 크롤링을 허용하고, Disallow는 반대로 차단하는 지시어입니다.
검색 엔진 크롤러는 기본적으로 모든 페이지를 크롤링하려 듭니다. Disallow를 쓰면 특정 경로만 골라 접근을 막을 수 있습니다.
예를 들어 ‘/admin’ 디렉터리는 관리자 페이지라 검색 엔진에 노출될 이유가 없습니다.
따라서 모든 검색 엔진 크롤러가 ‘/admin’ 디렉터리를 크롤링하지 못하도록 차단하려면 다음과 같이 설정할 수 있습니다.
User-agent: *
Disallow: /admin/
반대로 폴더 전체는 크롤링하지 못하도록 막으면서 그 안의 특정 페이지만 열어주고 싶다면 Allow 지시어를 씁니다.
User-agent: *
Disallow: /private/
Allow: /private/public-page.html
위 설정은 ‘/private/’ 디렉터리의 모든 페이지를 차단하지만, ‘/private/public-page.html’만 검색 엔진이 볼 수 있도록 열어두는 예제입니다. 비공개 자료가 섞인 디렉터리에서 특정 콘텐츠만 검색 엔진에 노출하고 싶을 때 쓰면 좋습니다.

robots.txt 작성법과 실무 활용
파일 작성 시 유의사항
robots.txt는 간단한 텍스트 파일로 만든 뒤 사이트의 루트 디렉터리에 올려야 합니다.
robots.txt가 없으면 검색 엔진 크롤러는 모든 페이지를 자유롭게 크롤링합니다.
작성할 때 유의할 점은 이렇습니다. (Google 공식 robots.txt 작성 가이드 기준)
- 파일 이름은 반드시 “robots.txt”여야 합니다.
- UTF-8 또는 ASCII 형식으로 저장해야 합니다.
- 검색엔진은 robots.txt를 실시간으로 반영하지 않으니 수정한 뒤에는 테스트해야 합니다.
robots.txt를 활용한 SEO 최적화 전략
크롤링 예산 최적화
검색 엔진 크롤링도 서버 자원을 씁니다. 크롤링 예산을 중요한 페이지에 몰아주려면 불필요한 페이지부터 막는 편이 효과적입니다.

User-agent: *
Disallow: /temp/
Disallow: /test/
Disallow: /admin/
이렇게 임시 폴더나 관리 페이지를 막아두면 검색 엔진이 쓸데없는 크롤링에 시간을 쓰지 않습니다.
중복 콘텐츠 문제 방지
같은 콘텐츠가 사이트 안에서 여러 URL로 제공되면 검색엔진이 중복 콘텐츠로 인식하기도 합니다.
이를 막으려면 robots.txt로 해당 페이지의 크롤링을 차단하면 됩니다.
User-agent: *
Disallow: /duplicate-page/
다만 이것만으로 완벽하게 해결되지는 않으니 canonical 태그와 같이 쓰는 편이 좋습니다.
사이트맵과 함께 사용하여 검색 성능 향상
파일에 사이트맵 위치를 적어두면 검색 엔진이 사이트 구조를 훨씬 빨리 파악합니다.
Sitemap: https://www.example.com/sitemap.xml
이렇게 설정하면 검색 엔진이 사이트맵을 참조해 사이트를 더 효율적으로 색인합니다.
robots.txt 설정 시 주의해야 할 사항
robots.txt와 Noindex의 차이
robots.txt는 검색 엔진이 페이지를 크롤링하지 못하게 막을 뿐, 그 페이지를 검색 결과에서 지워주지는 않습니다.

검색 엔진이 크롤링하지 않더라도 이미 색인된 페이지는 그대로 검색 결과에 남습니다. Google도 robots.txt는 “웹페이지를 검색 결과에서 제외하기 위한 수단이 아니다”라고 분명히 밝히며, 다른 사이트에서 링크가 걸리면 차단된 URL도 색인된다고 설명합니다.
이럴 때는 Noindex 메타 태그를 같이 걸어 검색 엔진이 그 페이지를 색인하지 않도록 지정해야 합니다.
Noindex 태그를 적용하면 검색 엔진이 그 페이지를 방문하더라도 색인에서 빼기 때문에 검색 결과에는 뜨지 않습니다.
여기서 한 가지 주의할 점이 있습니다. robots.txt로 크롤링을 막아 놓고 Noindex 태그를 걸면 검색 엔진이 그 페이지를 다시 방문하지 못해 Noindex 명령이 반영되지 않을 수 있습니다.
검색 엔진이 페이지를 크롤링하도록 열어둔 상태에서 Noindex 태그를 적용하는 방법이 가장 확실합니다.
<meta name=”robots” content=”noindex”>
이 설정은 Disallow와 같이 쓰면 더 효과가 좋습니다.
robots.txt 잘못된 설정으로 발생할 수 있는 SEO 문제
사이트 전체가 검색에서 제외되는 실수
User-agent: *
Disallow: /
위 설정은 사이트의 모든 페이지에서 검색 엔진 크롤러의 접근을 막습니다. 검색 엔진이 사이트를 찾아와도 단 한 개의 페이지조차 크롤링하지 못합니다.
개발 단계에서 사이트를 비공개로 두어야 할 때는 유용합니다. 하지만 실수로 운영 중인 사이트에 그대로 적용되면 검색 노출 전체가 끊깁니다.
그래서 robots.txt 파일을 손볼 때는 항상 Google Search Console에서 테스트해 뜻밖의 사고를 막는 편이 좋습니다.
특정 페이지만 차단하고 검색 노출이 중요한 다른 페이지는 살려두고 싶다면 아래처럼 설정하는 편이 낫습니다.
User-agent: *
Disallow: /admin/
Disallow: /private/
이 설정을 적용하면 모든 검색 엔진이 사이트를 크롤링하지 못하므로 검색 노출이 완전히 끊깁니다.

중요한 페이지가 색인되지 않는 문제
검색 유입이 중요한 페이지가 robots.txt 설정에 막혀 있지는 않은지 주기적으로 점검해야 합니다.
특정 페이지가 검색 결과에서 사라졌다면 파일 설정부터 확인하고, 검색 엔진이 그 페이지를 크롤링할 수 있는 상태인지 살펴보세요.
이때 Google Search Console의 URL 검사 기능을 활용하면 됩니다.
검색 엔진이 특정 페이지를 크롤링할 수 있는지, 색인은 되었는지 확인할 수 있습니다. 문제가 있다면 고친 뒤 색인 요청(Indexing Request)까지 바로 보낼 수 있죠.
또한, Google Search Console의 Coverage Report(색인 범위 보고서)에서는 어떤 페이지가 크롤링과 색인을 마쳤는지, 어떤 페이지가 막혀 있는지 한눈에 확인할 수 있습니다.
이 보고서를 주기적으로 들여다보면 뜻밖의 색인 누락을 미리 발견해 대응할 수 있습니다.
함께 읽으면 좋은 글
- 기술 SEO 완전 가이드: 크롤링·인덱싱·렌더링·속도·구조를 잇는 실무 허브
- 캐노니컬 태그 (Canonical Tag)
- 사이트맵 중요성과 생성 방법 3가지
- 오픈 그래프 태그 (Open Graph Tag) 오류 해결 방법
- H1 태그 정의와 올바르게 사용하는 방법
이 주제를 우리 비즈니스에 적용하고 싶으시다면 — 관련해서는 SEO 서비스에서 성장의 접근 방식을 보실 수 있고, 구체적인 상황 진단이 필요하시면 상담 문의로 연락 주세요. 트래픽 양이 아니라 매출이 될 1명을 기준으로 답해 드립니다.
자주 묻는 질문 (FAQ)
robots.txt로 차단하면 검색 결과에서 완전히 사라지나요?
아닙니다. robots.txt는 크롤링을 막는 도구이지, 색인까지 막아주지는 않습니다. Google 공식 문서도 robots.txt가 “웹페이지를 검색 결과에서 제외하기 위한 수단이 아니다”라고 명시합니다. 다른 사이트에서 링크가 걸리면 차단된 URL이 주소만 노출된 채 검색 결과에 남습니다. 검색 노출까지 막으려면 noindex를 써야 합니다.
robots.txt와 noindex 중 무엇을 써야 하나요?
목적이 다릅니다. 서버 부하를 줄이거나 특정 경로 크롤링을 막고 싶다면 robots.txt의 Disallow를, 검색 결과에 노출되지 않게 하려면 noindex 메타 태그를 사용합니다. 다만 robots.txt로 크롤링을 막아 둔 페이지는 크롤러가 noindex 태그를 ‘읽지 못해’ 명령이 반영되지 않습니다. 검색 제외가 목적이라면 크롤링은 열어둔 상태에서 noindex를 적용하세요.
robots.txt 파일은 어디에 두고 어떤 형식으로 저장해야 하나요?
Google 공식 가이드에 따르면 파일 이름은 반드시 robots.txt여야 하고, 사이트 호스트의 루트 디렉터리에 있어야 하며, UTF-8(ASCII 포함)로 인코딩된 텍스트 파일이어야 합니다. 루트가 아닌 하위 경로에 두면 크롤러가 아예 인식하지 못합니다. 수정한 내용은 실시간으로 반영되지 않으니 변경한 뒤에는 테스트해야 합니다.
실수로 사이트 전체가 검색에서 빠졌어요. 무엇을 확인해야 하나요?
가장 흔한 원인은 Disallow: / 설정이 운영 사이트에 그대로 적용된 경우입니다. 모든 페이지의 크롤링을 차단하니 검색 노출이 통째로 사라집니다. robots.txt 설정을 먼저 점검하고, Google Search Console의 URL 검사 도구로 해당 페이지의 크롤링·색인 가능 여부를 확인하세요. 색인 범위(Coverage) 보고서를 보면 어떤 페이지가 차단됐는지 한눈에 파악됩니다.
