본문 바로가기
MAKESITE
무료 스캔 문의하기 로그인

점검 항목 · 검색 노출

robots.txt 없음 · 오류

없어서 문제가 되는 경우는 드뭅니다. 이 항목이 잡는 것은 대개 잘못 적혀 있는 경우이고, 그 결과는 사이트 전체가 검색에서 사라지는 것입니다.

심각도 보통 검색 노출 무료 스캔 판정 항목 /check/robots-txt

01DEFINITION

한 줄로 말하면

robots.txt 는 크롤러에게 어디를 읽어도 되는지 알려 주는 파일입니다. 없으면 대개 전체 허용으로 동작하므로 진짜 문제는 잘못 적혀 있을 때입니다. 개발 중에 넣은 전체 차단 한 줄이 오픈 후에도 남아 사이트가 검색에서 통째로 사라지는 것이 가장 흔한 사고입니다. User-agent 그룹을 어떻게 묶느냐에 따라 해석이 달라져서, 의도와 정반대로 동작하는 경우도 적지 않습니다.

02RISK

없으면 무슨 일이 생기나

개발 서버에서는 검색에 잡히면 곤란하니 전체 차단을 적어 둡니다. 그 파일이 그대로 운영 서버로 복사되면 그날부터 검색엔진은 우리 사이트의 어떤 페이지도 읽지 않습니다. 화면에는 아무 이상이 없고 광고를 돌리면 방문자도 들어옵니다. 검색 유입만 조용히 0 이 되고, 대개 몇 주에서 몇 달이 지난 뒤에 발견됩니다.

반대 방향의 사고도 있습니다. robots.txt 에 관리자 경로나 백업 디렉터리를 적어 두고 막았다고 생각하는 경우입니다. 이 파일은 누구나 열어 볼 수 있으므로, 거기 적힌 목록은 그대로 우리 사이트의 숨겨진 경로 안내가 됩니다. 크롤러는 이 파일을 지키지만 공격자는 지킬 의무가 없습니다.

문법이 미묘하게 틀린 경우도 흔합니다. User-agent 그룹을 어떻게 묶느냐에 따라 해석이 달라져서, 특정 크롤러에만 적용하려던 규칙이 전체에 걸리거나 그 반대가 됩니다. 이 경우 증상은 사이트 일부 섹션만 검색에서 사라지는 형태로 나타나 원인을 짐작하기가 더 어렵습니다.

03CHECK IT YOURSELF

직접 확인하는 방법

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

  1. 01
    파일을 직접 열어 본다

    도메인 뒤에 파일명을 붙여 요청합니다. Disallow 뒤에 슬래시만 있으면 전체 차단이고, 아무것도 없으면 전체 허용입니다. 이 한 글자가 정반대의 의미입니다.

    $ curl -s https://example.com/robots.txt
    User-agent: *
    Disallow: /          ← 사이트 전체 차단. 운영에 이게 있으면 사고다
  2. 02
    구글 서치 콘솔에서 확인한다

    서치 콘솔의 robots.txt 보고서는 구글이 마지막으로 읽어 간 내용과 문법 오류를 보여 줍니다. 우리가 지금 올린 파일이 아니라 구글이 실제로 알고 있는 내용이라는 점이 중요합니다.

  3. 03
    특정 주소가 막혀 있는지 개별로 본다

    서치 콘솔의 URL 검사 도구에 주소를 넣으면 그 주소가 크롤링 가능한지 알려 줍니다. 일부 섹션만 검색에서 사라졌을 때 원인을 좁히는 데 씁니다.

  4. 04
    사이트맵 줄이 있는지 본다

    robots.txt 안에 사이트맵 주소를 적어 두면 크롤러가 그것을 먼저 찾습니다. 이 줄은 절대주소여야 하고, 없다고 오류는 아니지만 있으면 색인 속도가 달라집니다.

    $ curl -s https://example.com/robots.txt | grep -i sitemap

04HOW TO FIX

고치는 방법

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

기본형을 적는다

대부분의 사이트에 이 정도면 충분합니다. 전체를 허용하고, 검색에 뜰 이유가 없는 관리 경로만 제외하며, 사이트맵 위치를 알려 줍니다.

User-agent: *
Allow: /
Disallow: /adm/
Disallow: /ops/

Sitemap: https://example.com/sitemap.xml
개발 서버에는 배포되지 않는 방식으로 차단한다

파일에 전체 차단을 적어 두면 언젠가 운영으로 복사됩니다. 개발 서버는 파일이 아니라 응답 헤더나 접근 제한으로 막는 편이 안전합니다. 헤더 방식은 배포 설정이 달라 따라오지 않습니다.

Header always set X-Robots-Tag "noindex, nofollow"
민감한 경로는 robots.txt 말고 인증으로 막는다

검색에 안 나오게 하는 것과 접근을 막는 것은 다른 일입니다. 관리자 화면이나 내부 문서는 로그인이나 IP 제한으로 막고, robots.txt 에는 아예 적지 않는 편이 낫습니다. 적는 순간 목록이 공개됩니다.

그룹을 나눠 적을 때는 순서에 주의한다

크롤러는 자기에게 가장 잘 맞는 그룹 하나만 따릅니다. 특정 봇 그룹이 있으면 그 봇은 전체 그룹의 규칙을 아예 보지 않으므로, 공통 규칙을 각 그룹에 다시 적어야 합니다.

User-agent: *
Disallow: /adm/

User-agent: Googlebot
Disallow: /adm/          ← 이 줄이 없으면 구글은 /adm/ 을 크롤링한다
Disallow: /preview/
주의. robots.txt 로 막은 페이지도 검색 결과에 주소만 뜨는 경우가 있습니다. 다른 사이트가 그 주소를 링크하면 크롤러가 내용을 못 읽은 채로 주소만 색인하기 때문입니다. 확실히 결과에서 빼려면 크롤링을 허용한 상태에서 noindex 를 쓰십시오. 막아 두면 noindex 를 읽지도 못합니다.

05FAQ

자주 묻는 질문

robots.txt 가 없으면 문제가 되나요

대개 문제가 되지 않습니다. 파일이 없으면 크롤러는 전체 허용으로 간주합니다. 다만 요청할 때마다 404 가 기록되고, 사이트맵 위치를 알려 줄 자리가 없어집니다. 두 줄짜리라도 두시는 편이 낫습니다.

robots.txt 로 막으면 검색 결과에서 사라지나요

반드시 그렇지는 않습니다. 크롤링을 막는 것과 색인에서 빼는 것은 다른 일입니다. 다른 사이트가 링크한 주소는 내용 없이 주소만 결과에 남을 수 있습니다. 결과에서 빼려면 크롤링을 허용한 채로 noindex 를 써야 합니다.

이미지나 CSS 도 막아도 되나요

막지 마십시오. 구글은 페이지를 실제로 그려 보고 평가하기 때문에 CSS 와 자바스크립트를 읽지 못하면 화면이 깨진 상태로 판단합니다. 모바일 대응 평가에서도 불이익이 생깁니다. 옛날 관행으로 이 경로들을 막아 둔 사이트가 아직 있습니다.

차단을 풀면 얼마나 빨리 검색에 다시 나오나요

사이트 규모와 크롤링 빈도에 따라 다르지만 며칠에서 몇 주가 걸립니다. 서치 콘솔에서 색인 요청을 하면 주요 페이지는 더 빨리 처리됩니다. 사라지는 것은 순식간인데 돌아오는 데는 시간이 걸린다는 점이 이 항목의 비용입니다.
여기까지는 항목 일반론입니다. 무엇이고 왜 문제이며 어떻게 고치는지는 감출 이유가 없어 그대로 적었습니다. 리포트에 들어가는 것은 귀사 사이트에서 실제로 어떤 값이 나왔는지 — 어느 주소의 어느 응답인지, 그 환경에서 어떤 순서로 적용해야 하는지, 예상 공수가 얼마인지입니다. 이 페이지만 보고 직접 고치셔도 되고, 실제로 그러시라고 적어 두었습니다.

GET STARTED

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

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