네이버 서치어드바이저에 웹사이트를 등록하고 수집 요청을 보냈는데 '수집보라(Yeti) 접근 불가' 메시지가 뜨면서 검색 노출이 전혀 되지 않는 경험을 해봤을 것이다. 웹사이트는 정상 작동하고 브라우저에서도 잘 접속되는데 네이버 크롤러만 내 사이트를 긁어가지 못해 답답했던 적이 있을 것이다. 다만 대부분의 개발자들은 이 오류가 발생했을 때 Nginx 방화벽 설정이나 User-Agent 차단 정책 때문이라는 정확한 원인을 모른 채 robots.txt만 수정하다 시간을 허비한다. 이번에는 네이버 수집보라(Yeti) 접근 불가의 정확한 원인이 무엇인지, 서버 레벨에서 왜 필요한지, 그리고 Nginx/Apache 서버 설정을 통해 어떻게 해결하는지 완벽하게 정리해서 소개하겠다.
네이버의 웹 크롤러는 Yeti(예티)라는 이름의 User-Agent를 사용한다. 네이버 서치어드바이저의 수집보라 기능은 이 Yeti 크롤러가 실시간으로 대상 URL에 HTTP 요청을 보내서 페이지 소스를 제대로 읽어올 수 있는지 진단하는 도구다.
웹 브라우저로 사이트에 잘 접속되는데 수집보라에서 접근 불가나 수집 실패가 발생하는 가장 큰 원인은 웹 서버(Nginx, Apache)나 Cloudflare 같은 WAF(웹 애플리케이션 방화벽)에서 Yeti의 User-Agent 헤더나 네이버 크롤러 IP 대역을 차단하고 있기 때문이다.
| 구분 | 일반 사용자 접속 | 네이버 Yeti 크롤러 접속 |
|---|---|---|
| User-Agent 헤더 | Mozilla/5.0 (Windows NT 10.0...) | Mozilla/5.0 (compatible; Yeti/1.1; +https://naver.me/spd) |
| 서버 차단 빈도 | 낮음 (정상 트래픽) | 높음 (의도치 않은 보안 룰/봇 차단 설정) |
| 주요 오류 증상 | 200 OK 정상 출력 | 403 Forbidden / 503 Service Unavailable |
네이버 크롤러 접근 차단을 해제하기 위해서는 차단 위치를 파악하고 순서대로 설정해 주어야 한다.
첫째, robots.txt 파일에서 Yeti의 수집을 허용하고 있는지 체크한다.
둘째, Nginx 또는 Apache 웹 서버 보안 설정에서 User-Agent 기반 차단 룰을 확인하고 예외 처리한다.
셋째, 서버의 iptables, ufw 또는 Cloudflare 보안 룰에서 네이버 IP 대역이 차단되어 있는지 확인한다.
실제 무의식적으로 설정된 봇 차단 옵션과 올바른 예외 처리 코드를 비교해보자.
✗ 잘못된 작성법 (Yeti 차단 또는 특정 에이전트 차단으로 수집 실패)
User-agent: *
Disallow: /
# 또는 네이버봇 명시적 차단
User-agent: Yeti
Disallow: /✓ 올바른 작성법 (모든 검색엔진 크롤러 수집 허용)
User-agent: *
Allow: /
User-agent: Yeti
Allow: /
Sitemap: https://example.com/sitemap.xml
✗ 잘못된 Nginx 설정 (악성 봇 차단 목록에 Yeti가 포함되거나 문자열 대소문자 매칭 오류로 403 반환)
# 잘못된 예시: bot 관련 문자열을 일괄 차단하다가 Yeti까지 403 차단되는 경우
if ($http_user_agent ~* (bot|crawler|spider)) {
return 403;
}✓ 올바른 Nginx 설정 (Yeti 및 주요 검색엔진 크롤러 예외 처리)
# 올바른 예시: 검색엔진 크롤러는 허용하고 악성 봇만 차단
map $http_user_agent $allowed_bot {
default 0;
"~*Yeti" 1;
"~*Googlebot" 1;
"~*bingbot" 1;
}
server {
listen 80;
server_name example.com;
# 악성 봇 차단 로직 적용 시 Yeti 예외 확인
if ($http_user_agent ~* (badbot|scraper|nikto) ) {
return 403;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}출력 및 확인 결과: curl 명령어로 User-Agent를 Yeti로 지정하여 테스트 시 HTTP 200 OK 응답이 정상 반환된다.
curl -I -A "Mozilla/5.0 (compatible; Yeti/1.1; +https://naver.me/spd)" https://example.com/
네이버 수집보라 설정을 진행할 때 흔히 저지르는 2가지 실수를 반드시 체크해야 한다.
✗ 잘못된 것: Cloudflare나 ModSecurity 등 웹 방화벽(WAF)에서 봇 관리(Bot Management) 기능을 무작정 활성화하여 Yeti의 IP를 자동 스팸으로 오인 차단하는 경우다.
✓ 올바른 것: Cloudflare WAF 룰 설정에서 User-Agent에 Yeti가 포함된 요청이나 네이버 서치어드바이저 공개 IP 대역에 대해 Bypass(우회) 규칙을 추가해야 한다.
✗ 잘못된 것: HTTPS SSL 인증서의 SNI(Server Name Indication) 미지원 설정이나 중간 인증서 누락으로 인한 SSL Handshake 에러를 단순 크롤러 오류로 착각하는 경우다.
✓ 올바른 것: ssl_certificate에 중간 인증서가 포함된 fullchain.crt를 정확히 지정하고 TLS 1.2 이상 보안 프로토콜이 지원되는지 검증해야 한다.
네이버 검색 노출의 기본은 크롤러가 막힘없이 내 사이트 콘텐츠를 긁어가도록 웹 서버 문을 열어두는 것이다. 과도한 보안 설정이나 잘못된 Nginx User-Agent 필터링 하나가 서비스 전체의 검색 유입을 차단하는 원인이 될 수 있다는 점을 잊지 말자. 이 글의 Nginx 예외 처리 설정과 curl 검증 방법을 참고해 서버 환경을 재점검하면, 네이버 서치어드바이저 수집보라에서 즉시 정상 수집 성공 상태로 전환되고 네이버 검색 노출을 성공적으로 이끌어낼 수 있을 것이다.