01DEFINITION
한 줄로 말하면
robots.txt 는 크롤러에게 어디를 읽어도 되는지 알려 주는 파일입니다. 없으면 대개 전체 허용으로 동작하므로 진짜 문제는 잘못 적혀 있을 때입니다. 개발 중에 넣은 전체 차단 한 줄이 오픈 후에도 남아 사이트가 검색에서 통째로 사라지는 것이 가장 흔한 사고입니다. User-agent 그룹을 어떻게 묶느냐에 따라 해석이 달라져서, 의도와 정반대로 동작하는 경우도 적지 않습니다.
02RISK
없으면 무슨 일이 생기나
개발 서버에서는 검색에 잡히면 곤란하니 전체 차단을 적어 둡니다. 그 파일이 그대로 운영 서버로 복사되면 그날부터 검색엔진은 우리 사이트의 어떤 페이지도 읽지 않습니다. 화면에는 아무 이상이 없고 광고를 돌리면 방문자도 들어옵니다. 검색 유입만 조용히 0 이 되고, 대개 몇 주에서 몇 달이 지난 뒤에 발견됩니다.
반대 방향의 사고도 있습니다. robots.txt 에 관리자 경로나 백업 디렉터리를 적어 두고 막았다고 생각하는 경우입니다. 이 파일은 누구나 열어 볼 수 있으므로, 거기 적힌 목록은 그대로 우리 사이트의 숨겨진 경로 안내가 됩니다. 크롤러는 이 파일을 지키지만 공격자는 지킬 의무가 없습니다.
문법이 미묘하게 틀린 경우도 흔합니다. User-agent 그룹을 어떻게 묶느냐에 따라 해석이 달라져서, 특정 크롤러에만 적용하려던 규칙이 전체에 걸리거나 그 반대가 됩니다. 이 경우 증상은 사이트 일부 섹션만 검색에서 사라지는 형태로 나타나 원인을 짐작하기가 더 어렵습니다.
03CHECK IT YOURSELF
직접 확인하는 방법
아래는 저희를 거치지 않고 지금 해 보실 수 있는 방법입니다. 결과를 저희에게 보내실 필요도 없습니다.
-
01
파일을 직접 열어 본다
도메인 뒤에 파일명을 붙여 요청합니다. Disallow 뒤에 슬래시만 있으면 전체 차단이고, 아무것도 없으면 전체 허용입니다. 이 한 글자가 정반대의 의미입니다.
$ curl -s https://example.com/robots.txt User-agent: * Disallow: / ← 사이트 전체 차단. 운영에 이게 있으면 사고다
-
02
구글 서치 콘솔에서 확인한다
서치 콘솔의 robots.txt 보고서는 구글이 마지막으로 읽어 간 내용과 문법 오류를 보여 줍니다. 우리가 지금 올린 파일이 아니라 구글이 실제로 알고 있는 내용이라는 점이 중요합니다.
-
03
특정 주소가 막혀 있는지 개별로 본다
서치 콘솔의 URL 검사 도구에 주소를 넣으면 그 주소가 크롤링 가능한지 알려 줍니다. 일부 섹션만 검색에서 사라졌을 때 원인을 좁히는 데 씁니다.
-
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"
검색에 안 나오게 하는 것과 접근을 막는 것은 다른 일입니다. 관리자 화면이나 내부 문서는 로그인이나 IP 제한으로 막고, robots.txt 에는 아예 적지 않는 편이 낫습니다. 적는 순간 목록이 공개됩니다.
크롤러는 자기에게 가장 잘 맞는 그룹 하나만 따릅니다. 특정 봇 그룹이 있으면 그 봇은 전체 그룹의 규칙을 아예 보지 않으므로, 공통 규칙을 각 그룹에 다시 적어야 합니다.
User-agent: * Disallow: /adm/ User-agent: Googlebot Disallow: /adm/ ← 이 줄이 없으면 구글은 /adm/ 을 크롤링한다 Disallow: /preview/
05FAQ
자주 묻는 질문
robots.txt 가 없으면 문제가 되나요
- 대개 문제가 되지 않습니다. 파일이 없으면 크롤러는 전체 허용으로 간주합니다. 다만 요청할 때마다 404 가 기록되고, 사이트맵 위치를 알려 줄 자리가 없어집니다. 두 줄짜리라도 두시는 편이 낫습니다.
robots.txt 로 막으면 검색 결과에서 사라지나요
- 반드시 그렇지는 않습니다. 크롤링을 막는 것과 색인에서 빼는 것은 다른 일입니다. 다른 사이트가 링크한 주소는 내용 없이 주소만 결과에 남을 수 있습니다. 결과에서 빼려면 크롤링을 허용한 채로 noindex 를 써야 합니다.
이미지나 CSS 도 막아도 되나요
- 막지 마십시오. 구글은 페이지를 실제로 그려 보고 평가하기 때문에 CSS 와 자바스크립트를 읽지 못하면 화면이 깨진 상태로 판단합니다. 모바일 대응 평가에서도 불이익이 생깁니다. 옛날 관행으로 이 경로들을 막아 둔 사이트가 아직 있습니다.
차단을 풀면 얼마나 빨리 검색에 다시 나오나요
- 사이트 규모와 크롤링 빈도에 따라 다르지만 며칠에서 몇 주가 걸립니다. 서치 콘솔에서 색인 요청을 하면 주요 페이지는 더 빨리 처리됩니다. 사라지는 것은 순식간인데 돌아오는 데는 시간이 걸린다는 점이 이 항목의 비용입니다.
RELATED
같이 보시면 좋은 항목
GET STARTED
내 사이트는
이 항목을 통과할까요
주소만 넣으시면 이 항목을 포함해 25가지를 판정해 점수와 실패 개수를 보여 드립니다. 로그인도, 소유 확인도 필요 없습니다 — 전부 밖에서 관찰만 하는 항목이기 때문입니다.