블로그나 웹사이트를 운영하면 검색 노출이 중요한데, 그 전에 “뭘 보여주고 뭘 안 보여줄지”부터 정해야 한다. 이걸 담당하는 게 robots.txt와 meta robots 태그다. 비슷해 보여도 하는 일이 다르고, 잘못 쓰면 SEO에 바로 악영향이 간다.
robots.txt - 크롤러의 출입문
robots.txt는 웹사이트 루트에 놓는 텍스트 파일이다. 검색엔진 크롤러(Googlebot, Yeti 등)가 사이트에 방문하면 가장 먼저 이 파일을 읽고, 어디를 크롤링해도 되는지 확인한다.
User-agent: *
Allow: /
Disallow: /admin/
Sitemap: https://example.com/sitemap.xml
User-agent로 대상 크롤러를 지정하고, Allow/Disallow로 경로별 접근을 허용하거나 차단한다. Sitemap 지시어로 사이트맵 위치를 알려줄 수도 있다. robots.txt는 2022년 RFC 9309로 공식 인터넷 표준이 되었다. 이전에 작성한 robots.txt 세팅 가이드에서 기본 문법을 더 자세히 다뤘다.
직접 작성하기 번거롭다면 robots.txt 생성기로 빠르게 만들 수 있다.
SEO에서 중요한 이유
크롤 예산(crawl budget)이라는 게 있다. 구글은 사이트마다 크롤링에 할당하는 리소스가 정해져 있는데, 관리자 페이지나 중복 콘텐츠 같은 불필요한 경로를 크롤러가 돌아다니면 정작 중요한 페이지를 제때 크롤링 못 할 수 있다. robots.txt로 불필요한 경로를 차단하면 크롤러가 중요한 페이지에 집중하게 된다.
주의할 점
robots.txt로 크롤링을 차단해도 색인은 막을 수 없다. 다른 사이트에서 해당 URL로 링크를 걸면, 구글은 페이지 내용을 모른 채로도 URL 자체를 색인에 포함시킬 수 있다. 구글은 2019년 9월부터 robots.txt의 noindex 지시어 지원을 공식 중단했다. 색인을 막으려면 반드시 meta robots 태그나 X-Robots-Tag를 써야 한다.
그리고 robots.txt는 어디까지나 권고사항이라는 점도 기억해둬야 한다. 구글ㆍ네이버 같은 정상 크롤러는 규칙을 지키지만, 악성 봇이나 스크래퍼는 무시하고 들어온다. 민감한 경로를 숨기려는 보안 목적으로 쓰면 안 되고, 그런 건 서버 인증이나 접근 제어로 막아야 한다.
meta robots 태그 - 페이지별 색인 제어
meta robots는 HTML <head> 안에 넣는 태그로, 해당 페이지의 색인 여부를 크롤러에게 알려준다.
<meta name="robots" content="noindex, nofollow">

주요 지시어:
- noindex - 이 페이지를 검색결과에 표시하지 마라
- nofollow - 이 페이지의 링크를 따라가지 마라
- noarchive - 과거 캐시된 페이지 노출을 막던 지시어. 구글이 캐시 링크 기능을 없애면서 지금은 구글 검색에선 효과가 없다(빙 등 일부 검색엔진에는 남아있을 수 있음)
- max-snippet - 검색결과 스니펫 길이 제한
- max-image-preview - 이미지 미리보기 크기 제한(none/standard/large)
meta robots 태그 활용법에서 저품질 블로그 해결 사례도 다룬 적 있다.
별도로 지정하지 않으면 index, follow가 기본값이라 굳이 명시할 필요는 없다. 색인을 빼거나 링크를 무시시켜야 할 때만 쓰면 된다.
X-Robots-Tag - HTTP 헤더 방식
meta robots 태그는 HTML 파일에만 넣을 수 있다. PDF, 이미지, 동영상, JSON 같은 비HTML 리소스의 색인을 막으려면 meta 태그를 넣을 곳이 없다. 이때 쓰는 게 X-Robots-Tag HTTP 응답 헤더다.
X-Robots-Tag: noindex, nofollow
지시어 문법은 meta robots와 동일하다. 예를 들어 사이트의 모든 PDF를 검색결과에서 빼고 싶다면 Nginx나 Apache 설정에서 .pdf 확장자에 대해 이 헤더를 내려보내도록 걸면 된다. 특정 크롤러만 지정하는 것도 가능하다.
X-Robots-Tag: googlebot: noindex
비HTML 자원이 많은 사이트라면 meta robots만으로는 색인 제어가 불완전하다. 이 부분이 빠지면 검색결과에 엉뚱한 PDF가 노출되는 사고가 생긴다.
둘의 차이 정리
핵심은 간단하다.
- robots.txt: 크롤링을 차단한다. “이 경로는 오지 마”
- meta robots: 색인을 제어한다. “이 페이지는 검색결과에 넣지 마”
robots.txt로 크롤링을 차단해놓고 meta robots noindex를 넣어봤자 소용없다. 크롤러가 페이지를 못 읽으니 noindex 태그도 못 보는 거다. 색인을 확실히 막으려면 크롤링은 허용하되 noindex를 걸어야 한다. 이걸 반대로 해서 삽질하는 경우가 꽤 있다.
실전 활용
- 관리자 페이지, 테스트 환경: robots.txt로 크롤링 차단
- 중복 콘텐츠, 태그 페이지: meta robots noindex
- PDFㆍ이미지 등 비HTML 파일: X-Robots-Tag 헤더
- 사이트맵: robots.txt에 Sitemap 경로 명시
- 이미지 검색 노출:
max-image-preview:large설정
설정을 바꿨으면 구글 서치 콘솔의 robots.txt 테스터와 URL 검사 도구로 실제 적용 여부를 확인하는 게 좋다. 내가 막았다고 생각한 경로가 막혀 있지 않거나, 반대로 중요한 페이지가 막혀 있는 경우가 생각보다 많다.
구글이 최근 정리한 SearchAction과 FAQ 리치 결과 종료 같은 구조화 데이터 변경도 같이 챙기면 색인 제어 흐름이 더 일관된다.
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨 주세요.
로딩 중…