본문 바로가기
MAKESITE

점검 항목 · 검색 노출

네이버 크롤러(Yeti) 차단

구글에서는 정상으로 나오는데 네이버에서만 안 보인다면, 첫 번째로 확인할 곳은 robots.txt 한 줄입니다.

심각도 높음 검색 노출 무료 스캔 판정 항목 /check/naver-crawler

01DEFINITION

한 줄로 말하면

네이버의 수집 로봇 이름은 Yeti 입니다. robots.txt 가 이 이름을 막고 있으면 네이버 검색에는 사이트가 존재하지 않는 것과 같습니다. 구글은 정상인데 네이버에서만 안 나오는 증상의 첫 번째 원인이고, 해외 제작 템플릿이나 봇 차단 설정을 그대로 가져다 쓸 때 의도 없이 걸리는 경우가 대부분입니다. 국내 방문자가 주 고객이면 색인 여부를 좌우하는 한 줄입니다.

02RISK

없으면 무슨 일이 생기나

국내를 상대로 하는 사업에서 네이버 유입이 빠지는 것은 검색 유입의 절반 이상이 사라지는 일과 같습니다. 그런데 이 고장은 화면에 아무 증상을 남기지 않습니다. 사이트는 정상으로 열리고, 구글에 검색하면 잘 나오고, 관리자 화면에도 경고가 없습니다. 대표님이 회사 이름을 네이버에 쳐 보고 나서야 발견되는 종류이고, 그때는 이미 몇 달이 지나 있는 경우가 많습니다.

원인의 대부분은 의도한 차단이 아닙니다. 해외에서 만들어진 테마나 워드프레스 플러그인이 자기 기본값으로 봇 차단 목록을 들고 오는데, 그 목록을 만든 사람에게 Yeti 는 트래픽만 쓰는 낯선 이름입니다. 국내 사이트에 그 설정이 그대로 얹히면 가장 중요한 크롤러가 조용히 막힙니다. 보안을 이유로 사람이 아닌 접속은 일단 막아 두라는 오래된 지침이 남아 있는 서버에서도 같은 일이 생깁니다.

별표 그룹의 전체 차단에 함께 걸리는 경우도 흔합니다. 개발이나 검수 기간에 색인을 막아 두려고 적어 둔 한 줄이 공개 후에도 남아 있는 것인데, 이때는 네이버만이 아니라 모든 검색엔진이 같이 막힙니다. 다만 발견은 네이버 쪽에서 먼저 되는 편입니다. 국내 방문자가 실제로 찾는 경로가 그쪽이기 때문입니다.

03CHECK IT YOURSELF

직접 확인하는 방법

아래는 저희를 거치지 않고 지금 해 보실 수 있는 방법입니다. 결과를 저희에게 보내실 필요도 없습니다.

  1. 01
    robots.txt 에 Yeti 가 어떻게 적혀 있는지 본다

    이름이 보이면 그 그룹의 규칙이 Yeti 에게 적용됩니다. 이름이 안 보이는 것은 허용을 뜻하지 않습니다 — 다음 단계를 이어서 확인하셔야 합니다.

    $ curl -s https://example.com/robots.txt | grep -in -A3 -i "yeti"
  2. 02
    별표 그룹에 전체 차단이 걸려 있는지 본다

    Yeti 전용 그룹이 없으면 크롤러는 별표 그룹을 따릅니다. 여기에 전체 경로 차단이 있으면 이름을 따로 적지 않아도 막힌 상태입니다.

    $ curl -s https://example.com/robots.txt | head -n 20
    # User-agent: *
    # Disallow: /            ← 이 두 줄이면 전체 차단입니다
  3. 03
    네이버 서치어드바이저의 수집 진단으로 확인한다

    네이버가 직접 제공하는 도구입니다. 사이트를 등록하면 robots.txt 를 어떻게 해석했는지, 특정 주소를 수집할 수 있는지를 네이버 쪽 판정으로 볼 수 있습니다. 우리 쪽 해석과 네이버 쪽 해석이 다를 때 어느 것이 맞는지 정하는 자리입니다.

  4. 04
    접속 로그에 Yeti 가 실제로 오는지 센다

    허용돼 있으면 이 이름이 로그에 주기적으로 남습니다. 설정을 고친 뒤에는 며칠 지나 다시 세어 보시면 실제로 읽어 가기 시작했는지 알 수 있습니다.

    $ grep -ic "yeti" /var/log/httpd/access_log

04HOW TO FIX

고치는 방법

서버 환경에 따라 적을 자리가 다릅니다. 아래는 가장 흔한 구성 기준이고, 적용 전에 현재 설정을 백업하십시오.

Yeti 전용 그룹을 만들어 허용한다

크롤러는 자기 이름이 있는 그룹 하나만 읽고 나머지는 무시합니다. 그래서 전용 그룹을 만들면 별표 그룹의 내용과 무관하게 이쪽이 적용됩니다. 다만 무관하다는 말은 공통으로 막고 싶던 경로도 함께 무시된다는 뜻이라, 그 경로를 이 그룹 안에 다시 적어야 합니다.

User-agent: Yeti
Allow: /
Disallow: /adm/
Disallow: /bbs/login.php
개발 기간에 걸어 둔 전체 차단이 남아 있는지 확인한다

공개 전에 색인을 막아 두는 것은 옳은 습관이고, 문제는 공개 후에 지우는 절차가 빠져 있는 것입니다. 오픈 체크리스트에 이 한 줄을 넣어 두시면 다음 사이트에서 같은 일이 반복되지 않습니다.

User-agent: *
Disallow: /            ← 공개 후에는 남아 있으면 안 되는 줄
사이트맵 주소를 robots.txt 에 적는다

허용은 읽어도 된다는 표시일 뿐, 어디에 무엇이 있는지는 알려 주지 않습니다. 사이트맵을 선언해 두면 크롤러가 목록을 먼저 받고 시작하므로 새 글이 반영되는 속도가 달라집니다.

Sitemap: https://example.com/sitemap.xml
앞단 보안 장비가 사용자 에이전트로 막고 있지 않은지 본다

robots.txt 는 허용인데 방화벽이나 보안 서비스가 봇 이름을 보고 차단하는 경우가 있습니다. 이때는 요청이 로그에 아예 안 남거나 403 으로만 남아서, 파일만 봐서는 원인을 못 찾습니다.

주의. 저희가 판정하는 것은 robots.txt 에 Yeti 가 어떻게 적혀 있는가 하나입니다. 허용은 수집의 조건이지 노출의 보장이 아니어서, 허용한 뒤에도 검색 결과에 나오기까지는 시간이 걸리고 내용과 구조가 함께 갖춰져야 합니다. 네이버는 사이트 등록과 사이트맵 제출을 별도 절차로 두고 있으므로, 차단을 푸는 것과 등록하는 것은 다른 일로 보시는 편이 맞습니다.

05FAQ

자주 묻는 질문

robots.txt 에 Yeti 를 안 적으면 막힌 건가요

아닙니다. 이름이 없으면 크롤러는 별표 그룹의 규칙을 따릅니다. 그래서 별표 그룹이 전체 허용이면 Yeti 도 허용이고, 전체 차단이면 이름을 적지 않아도 차단입니다. 판정에서 갈리는 것은 이름의 유무가 아니라 실제로 적용되는 그룹의 내용입니다.

Yeti 를 허용하면 네이버에 바로 나오나요

바로 나오지는 않습니다. 허용은 후보에 들어가기 위한 조건이고, 실제 수집과 노출에는 시간이 걸립니다. 네이버 서치어드바이저에 사이트를 등록하고 사이트맵을 제출하시면 그 과정이 빨라집니다. 저희는 특정 검색엔진에서의 노출 여부나 순위를 측정한다고 말씀드리지 않습니다.

트래픽이 부담되는데 막으면 안 되나요

수집량이 실제로 부담이 된다면 전체를 막는 대신 무거운 경로만 제외하시는 편이 낫습니다. 검색 결과에서 사라지는 대가는 대개 서버 비용보다 큽니다. 어느 경로가 부담을 만드는지는 접속 로그에서 요청 수가 많은 주소를 세어 보면 나옵니다.

구글에는 나오는데 네이버에만 안 나옵니다

이 항목이 그 증상의 첫 번째 후보입니다. 다만 원인이 이것 하나만은 아닙니다. 사이트 등록이 안 돼 있거나, 페이지에 색인 거부 표시가 붙어 있거나, 앞단 보안 장비가 봇을 막고 있는 경우도 같은 증상으로 나타납니다. 위 확인 순서대로 하나씩 지워 나가시면 됩니다.
여기까지는 항목 일반론입니다. 무엇이고 왜 문제이며 어떻게 고치는지는 감출 이유가 없어 그대로 적었습니다. 리포트에 들어가는 것은 귀사 사이트에서 실제로 어떤 값이 나왔는지 — 어느 주소의 어느 응답인지, 그 환경에서 어떤 순서로 적용해야 하는지, 예상 공수가 얼마인지입니다. 이 페이지만 보고 직접 고치셔도 되고, 실제로 그러시라고 적어 두었습니다.

GET STARTED

내 사이트는
이 항목을 통과할까요

주소만 넣으시면 이 항목을 포함해 39가지를 판정해 점수와 실패 개수를 보여 드립니다. 로그인도, 소유 확인도 필요 없습니다 — 전부 밖에서 관찰만 하는 항목이기 때문입니다.

무료 스캔 문의하기 로그인