Meta Robots와 X-Robots-Tag 지시어 이해하기
검색 엔진이 콘텐츠를 어떻게 취급하는지에 대한 페이지 수준 또는 리소스 수준의 제어가 필요할 때, 현대 SEO의 핵심에 두 가지 메커니즘이 있습니다: meta robots 태그(HTML 요소)와 X-Robots-Tag(HTTP 응답 헤더). 이 둘을 함께 사용하면 크롤러에게 페이지를 색인할지, 링크를 따라갈지, 캐시된 복사본을 보여줄지, 스니펫을 표시할지, 심지어 이미지 미리보기를 노출할지 — robots.txt를 건드리지 않고도 지시할 수 있습니다. 이 글은 모든 지시어, 봇별 타겟팅 작동 방식, 규칙 충돌 시 발생하는 일, 경험 많은 팀도 빠지는 실수에 대한 깊은 기술적 분석입니다.
Meta robots 태그 vs X-Robots-Tag: 무엇이 무엇인가
Meta robots 태그
HTML 문서의 <head> 안에 배치되는 meta robots 태그는 색인 지시어를 발행하는 가장 익숙한 방법입니다:
<meta name="robots" content="noindex, nofollow">
name 속성은 대상을 식별합니다(robots로 설정하면 모든 봇, googlebot 같은 특정 크롤러로 설정 가능). content 속성은 쉼표로 구분된 지시어 목록을 담습니다. HTML 안에 있기 때문에 브라우저와 크롤러가 실제로 웹 페이지로 파싱하는 문서에만 작동합니다.
X-Robots-Tag HTTP 헤더
X-Robots-Tag는 같은 결과를 달성하지만 HTTP 레이어에서 수행합니다:
X-Robots-Tag: noindex, nofollow
응답 헤더이기 때문에 HTML 페이지뿐만 아니라 모든 리소스 유형 — PDF, 이미지, 비디오 파일, JSON 피드, XML 사이트맵 — 에서 작동합니다. 따라서 검색 엔진이 색인할 수 있는 비HTML 자산을 제어하는 데 필수적입니다.
봇 접두사를 붙여 특정 봇을 대상으로 할 수도 있습니다:
X-Robots-Tag: googlebot: noindex
완전한 지시어 참조
noindex
크롤러에게 검색 인덱스에 페이지를 추가하지 말라고 지시합니다. 페이지가 이미 색인되어 있으면 다음 크롤링 후 제거됩니다. 비공개, 스테이징 또는 가치 낮은 페이지를 검색 결과에서 제외하기 위한 가장 중요한 지시어입니다. 참고: 크롤러가 지시어를 읽으려면 여전히 페이지에 접근할 수 있어야 합니다. robots.txt에서 URL을 차단하면 봇이 noindex 태그를 볼 수 없으므로, 외부 신호를 기반으로 페이지가 색인에 남아 있을 수 있습니다.
nofollow
크롤러에게 순위 매기기나 발견 목적으로 페이지의 아웃바운드 링크를 따라가지 말라고 지시합니다. 이는 개별 <a> 요소의 rel="nofollow" 속성과 다릅니다. 후자는 단일 링크를 대상으로 합니다. 메타 수준의 nofollow는 페이지의 모든 링크에 적용됩니다. 일괄 nofollow는 내부 링크 자산 흐름을 차단하고 중요한 페이지의 발견을 방해할 수 있으므로 제한적으로 사용하세요.
noarchive
검색 엔진이 검색 결과에 페이지의 캐시된 복사본을 표시하는 것을 방지합니다. 페이지는 여전히 색인되고 검색에 나타날 수 있지만, 사용자에게 "캐시됨" 링크가 보이지 않습니다. 시간에 민감한 콘텐츠나 오래된 형태로 보면 안 되는 가격 정보에 유용합니다.
nosnippet
검색 엔진이 결과 페이지에 텍스트 스니펫이나 비디오 미리보기를 표시하는 것을 중단합니다. 페이지는 여전히 순위에 오르고 나타날 수 있지만, 제목 아래에 설명이 없습니다. 이것은 강력한 도구입니다 — 대부분의 사이트는 스니펫의 혜택을 받으므로, 법적 또는 개인정보 요구사항이 있는 경우에만 적용하세요.
max-snippet:[숫자]
결과에 표시되는 텍스트 스니펫의 최대 문자 길이를 제어합니다. 예를 들어 max-snippet:50은 스니펫을 50자로 제한합니다. 0으로 설정하면 nosnippet과 동등합니다. -1은 제한 없음을 의미합니다 — Google이 유용하다고 판단하는 만큼의 텍스트를 사용할 수 있습니다. 스니펫을 완전히 제거하지 않고 길이를 미세 조정할 수 있습니다.
max-image-preview:[설정]
검색 결과에 표시되는 이미지 미리보기의 최대 크기를 정의합니다. 허용되는 값:
- none — 이미지 미리보기가 전혀 없습니다.
- standard — 기본 크기의 미리보기 이미지.
- large — 더 큰 미리보기로, Discover와 이미지 중심 SERP 기능에서 가시성을 높일 수 있습니다.
Google Discover 및 풍부한 시각적 결과에 페이지를 적격하게 하려면 max-image-preview:large 설정이 자주 권장됩니다.
max-video-preview:[숫자]
비디오 스니펫 미리보기의 최대 지속 시간(초)을 설정합니다. 0은 비디오 미리보기를 비활성화합니다. -1은 무제한 미리보기 길이를 허용합니다. 비디오 콘텐츠를 임베드하고 검색 엔진이 얼마나 보여줄 수 있는지 제어하려는 페이지에 관련됩니다.
unavailable_after:[날짜]
검색 엔진에게 특정 날짜와 시간 이후 페이지 표시를 중단하라고 지시합니다. 형식은 RFC 850 또는 ISO 8601을 따릅니다. 지정된 날짜 이후 페이지는 noindex 지시어가 있는 것처럼 처리됩니다. 이벤트 페이지, 기간 한정 프로모션, 만료 시 검색 결과에서 자동으로 사라져야 하는 채용 공고에 적합합니다.
<meta name="robots" content="unavailable_after: 2026-06-30T23:59:59+00:00">
notranslate
Google에게 검색 결과에서 페이지의 번역을 제공하지 말라고 지시합니다. 원본 페이지는 여전히 나타나지만, 다른 언어로 브라우징하는 사용자에게 "이 페이지 번역하기" 링크가 표시되지 않습니다.
noimageindex
페이지의 이미지가 색인되지 않도록 요청합니다. 이 지시어가 없는 다른 페이지에서 이미지가 참조되면 여전히 색인될 수 있습니다. 이 지시어는 모든 검색 엔진에서 보편적으로 지원되지는 않습니다.
봇별 타겟팅
두 메커니즘 모두 특정 크롤러를 타겟팅하는 것을 지원합니다. 메타 태그에서는 robots를 봇 이름으로 교체합니다:
<meta name="googlebot" content="noindex">
<meta name="bingbot" content="noarchive">
각각 다른 봇을 대상으로 하는 여러 메타 태그를 포함할 수 있습니다. 봇별 태그의 지시어는 해당 봇에 대해 일반 robots 태그를 재정의합니다. 예를 들어:
<meta name="robots" content="noindex">
<meta name="googlebot" content="index">
이 경우 Googlebot은 전용 태그에서 index를 보고 일반 noindex를 무시합니다. 다른 모든 봇은 일반 규칙을 따르고 색인하지 않습니다. 특정 검색 엔진에서만 콘텐츠를 원하는 시나리오에 강력합니다.
X-Robots-Tag 헤더에서 봇별 타겟팅은 접두사를 사용합니다:
X-Robots-Tag: googlebot: nosnippet
X-Robots-Tag: bingbot: noarchive
같은 HTTP 응답에 여러 X-Robots-Tag 헤더가 나타날 수 있으며, 각각 자체 봇 접두사와 지시어를 가집니다.
지시어 충돌 시 우선순위 규칙
검색 엔진이 충돌하는 신호를 어떻게 해결하는지 이해하는 것이 중요합니다. 일반적인 규칙은:
- 가장 제한적인 지시어가 우선합니다. meta robots 태그가
index라고 하고 X-Robots-Tag 헤더가noindex라고 하면, 페이지는 색인되지 않습니다. 검색 엔진은 적용 가능한 모든 지시어를 결합하고 가장 제한적인 해석을 적용합니다. - 봇별 지시어가 해당 봇에 대해 일반 지시어를 재정의합니다.
<meta name="googlebot">태그가 Googlebot에 대해<meta name="robots">보다 우선합니다. - robots.txt 차단은 지시어 읽기를 방해합니다.
robots.txt가 URL을 차단하면 크롤러는 페이지를 가져오지 않고, 메타 태그나 헤더를 읽지 못하며, 따라서 지시어를 처리하지 않습니다.noindex태그가 있는 차단된 페이지는 봇이 지시를 보지 못했기 때문에 색인에 남아 있을 수 있습니다. - 두 소스가 결합됩니다. Meta robots와 X-Robots-Tag는 상호 배타적이지 않으며 — 누적적입니다. 크롤러는 둘 다 읽고 적용 가능한 모든 지시어를 단일 지침 세트로 병합합니다.
흔한 실수와 방지 방법
크롤링을 차단하면서 noindex가 작동하기를 기대
가장 빈번한 오류입니다. 페이지가 robots.txt에서 차단되고 <meta name="robots" content="noindex">도 있습니다. 봇이 페이지를 가져올 수 없으므로 noindex 지시어를 볼 수 없습니다. 페이지는 수신 링크와 앵커 텍스트를 기반으로 무기한 색인에 남아 있을 수 있습니다. 해결: 페이지를 디인덱스하려면 봇이 noindex 태그를 읽을 수 있도록 크롤링을 허용하세요.
페이지네이션 또는 필터 페이지에 noindex를 부주의하게 적용
페이지네이션 목록 페이지를 noindex로 표시하면 해당 페이지에서 링크된 상품이나 기사가 고아 상태가 될 수 있습니다. 검색 엔진은 이를 담고 있는 페이지가 인덱스에서 제외되므로 내부 링크를 따르는 것을 중단할 수 있습니다. 해결: 페이지네이션 페이지를 색인 가능하게 유지하고, 메인 목록을 가리키는 rel="canonical"을 사용하거나, noindex, follow를 사용하여 인덱스 팽창을 방지하면서 링크 발견을 허용하세요.
"PageRank 조각" 목적으로 내부 링크에 nofollow 사용
몇 년 전 SEO 전문가들은 링크 자산을 분배하기 위해 내부 nofollow를 사용했습니다. Google은 자산이 여전히 소비되지만 — 재분배되지 않고 증발한다고 밝혔습니다. 해결: 적절한 사이트 구조와 크롤링 제어를 대신 사용하세요.
비HTML 리소스에서 X-Robots-Tag를 빠뜨림
PDF, 이미지 및 기타 미디어 파일은 메타 태그를 담을 수 없습니다. 색인되지 않아야 한다면 X-Robots-Tag 헤더가 유일한 옵션입니다. 많은 팀이 비HTML 콘텐츠 유형에 이 헤더를 추가하도록 웹 서버나 CDN을 구성하는 것을 잊습니다. 해결: Apache, Nginx 또는 CDN에서 필요한 파일 유형에 X-Robots-Tag 헤더를 주입하는 서버 수준 규칙을 추가하세요.
noindex 없이 스테이징 또는 개발 환경을 방치
실수로 공개된 스테이징 사이트에 noindex 지시어가 없으면 색인되어 프로덕션 사이트와 중복 콘텐츠 문제를 야기할 수 있습니다. 해결: 스테이징 환경을 항상 인증으로 보호하거나, 최소한 사이트 전체 noindex 메타 태그와 X-Robots-Tag 헤더를 적용하세요.
임시 콘텐츠에 unavailable_after 지시어를 무시
만료 후 몇 달이 지나도 검색 결과에 남아 있는 이벤트 페이지와 기간 한정 프로모션은 나쁜 사용자 경험을 만듭니다. 해결: 콘텐츠가 무관해지면 자동으로 디인덱스되도록 만료 날짜와 함께 unavailable_after를 사용하세요.
Spider.es로 지시어 감사하기
Spider.es는 검색 엔진 봇이 하는 방식으로 사이트를 크롤링하며, 모든 URL에 대해 meta robots 태그와 X-Robots-Tag 헤더를 모두 읽습니다. 감사 보고서는 다음을 표시합니다:
- 충돌하는 지시어가 있는 페이지(예: 헤더에는
noindex이지만 메타 태그에는index). robots.txt에 의해 차단되어 봇이 볼 수 없는 색인 지시어가 있는 페이지.- 필요할 때 X-Robots-Tag 헤더가 없는 비HTML 리소스.
- 디인덱싱을 트리거했어야 할 만료된
unavailable_after날짜.
정기적으로 크롤링하고 이러한 신호를 검토하면 색인 제어가 의도한 대로 작동하고 있는지 — 조용히 실패하지 않는지 확인할 수 있습니다.
마치며
Meta robots 태그와 X-Robots-Tag 헤더는 크롤링 제어의 정밀 도구입니다. robots.txt가 넓은 게이트라면, 이 지시어들은 무엇이 색인되고, 결과에 어떻게 나타나며, 언제 만료되는지를 미세 조정할 수 있게 합니다. 지시어 세트를 마스터하고, 우선순위 규칙을 이해하고, 흔한 함정을 피하고, 정기적으로 감사하세요. 검색 노출이 이에 달려 있습니다.