robots.txt란 무엇인가
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
크롤러를 위한 안내문
블로그를 운영하면서 여러 번 마주쳤지만 정확히 무엇인지 제대로 짚고 넘어간 적은 없었던 것이 robots.txt입니다. 이번에는 이게 정확히 무엇이고, 왜 필요한지, 어떤 형식으로 작성되는지 자료를 찾아본 내용을 정리해보려고 합니다.
robots.txt는 검색엔진의 크롤러에게 사이트의 어떤 부분을 방문해도 되고 어떤 부분은 방문하지 말라고 알려주는 안내문 같은 파일입니다. 홈페이지나 블로그의 도메인 주소 뒤에 슬래시와 함께 robots.txt를 붙이면 누구나 이 파일을 확인할 수 있습니다. 실제로 이 방법으로 제가 운영하는 블로그의 robots.txt 내용을 직접 확인해볼 수 있었습니다. 이 파일은 방문자를 막는 것이 아니라, 구글이나 네이버 같은 검색엔진의 크롤러에게만 해당하는 안내라는 점이 중요합니다.
저도 처음에는 이 파일이 방문자의 접근 권한과 관련된 것으로 오해했었는데, 정확히는 검색엔진의 자동화된 수집 행위만을 대상으로 한다는 것을 이번에 알게 되었습니다. robots라는 이름 자체가 자동화된 프로그램, 즉 로봇을 향한 규칙이라는 의미에서 붙여진 이름이라는 것도 함께 알게 되었습니다. 즉 사람이 그 주소로 직접 들어가는 것은 막지 않고, 자동으로 사이트를 훑어가며 정보를 수집하는 프로그램에게만 방향을 알려주는 역할을 합니다.
기본 문법 네 가지
robots.txt의 기본 문법은 몇 가지 항목으로 이루어져 있습니다. User-agent는 이 규칙이 어떤 크롤러에게 적용되는지를 지정하는 항목입니다. 별표 기호를 쓰면 모든 크롤러에게 적용된다는 뜻이고, 특정 크롤러의 이름을 넣으면 그 크롤러에게만 적용되는 규칙이 됩니다. Disallow는 크롤러가 접근하지 말아야 할 경로를 지정하는 항목이고, Allow는 반대로 접근을 허용하는 경로를 지정하는 항목입니다. 두 항목은 함께 쓰이는 경우가 많은데, 전체적으로는 넓게 차단해두고 그중 일부 경로만 예외적으로 허용하는 식으로 조합해서 사용하는 경우도 자주 볼 수 있었습니다. 마지막으로 Sitemap은 이 사이트의 사이트맵 파일이 어디에 있는지 크롤러에게 알려주는 항목입니다. 이 네 가지 항목만 이해하면 대부분의 robots.txt 파일은 어렵지 않게 읽을 수 있습니다.
애드센스 크롤러 확인
[블로그스팟은 왜 유독 리디렉션 오류가 자주 발생하는지 관련 글]에서 확인했던 것처럼, 이 파일은 플랫폼마다 기본값이 이미 설정되어 있는 경우가 많습니다. 직접 확인하는 방법을 알고 나니 궁금증이 풀리는 부분도 있었습니다. 제가 사용하는 블로그스팟의 robots.txt를 확인해보니, 특정 크롤러에게는 모든 경로를 허용하고, 일반 크롤러에게는 검색 결과 페이지나 공유 위젯 같은 특정 경로만 차단하고 나머지는 전부 허용하도록 기본값이 설정되어 있었습니다. 이런 기본 설정은 대체로 검토를 거쳐 만들어진 값이라 특별한 이유가 없다면 그대로 두어도 괜찮다는 것을 여러 자료를 통해 확인할 수 있었습니다. 오히려 잘 모르는 상태에서 이 파일을 직접 수정하려고 시도하는 것이, 아무것도 하지 않는 것보다 더 위험할 수 있다는 이야기도 여러 번 접했습니다.
특히 눈에 띄었던 부분은 특정 크롤러의 이름이 별도로 지정되어 있는 항목이었습니다. 저는 처음에 이 부분을 보고 어떤 크롤러인지 몰라 검색해봤는데, 알고 보니 애드센스가 광고를 게재하기 위해 사이트를 확인할 때 사용하는 크롤러의 이름이었습니다. 이 크롤러에게는 모든 경로를 허용해두어야, 애드센스가 사이트의 콘텐츠를 제대로 확인하고 그에 맞는 광고를 보여줄 수 있다고 합니다. 이름만 봐서는 이게 광고 관련 크롤러인지 짐작조차 하기 어려웠는데, 검색을 통해 정체를 확인하고 나서야 왜 이 항목이 다른 크롤러와 별도로 명시되어 있는지 이해할 수 있었습니다.
만약 이 크롤러의 접근까지 차단해두면, 애드센스 심사나 이후의 광고 게재에도 영향을 줄 수 있다는 이야기를 확인했습니다. 이 부분은 애드센스를 준비하는 입장에서 특히 눈여겨봐야 할 항목이라는 생각이 들었습니다. 다행히 제 블로그의 기본 설정에는 이 크롤러에게 모든 경로가 허용되어 있어서, 이 부분은 따로 손댈 필요가 없었습니다. 확인해보지 않았다면 계속 모르고 지나갔을 부분이라, 이번 기회에 꼼꼼히 살펴보길 잘했다는 생각이 들었습니다.
잘못 설정하면 생기는 문제
robots.txt를 잘못 설정하면 생기는 문제도 정리해볼 만합니다. 가장 흔한 문제는 크롤러에게 너무 많은 경로를 차단해서, 정작 검색에 노출되어야 할 페이지까지 크롤링되지 않는 경우입니다. 특히 개인 도메인을 새로 연결하거나 블로그 플랫폼을 옮기는 과정에서, 예전 설정이 그대로 남아 있거나 잘못 복사되면서 이런 실수가 생기는 경우가 많다고 합니다.
저도 도메인을 연결하는 과정에서 여러 설정을 한꺼번에 바꿨던 기억이 있어서, 그 무렵에 혹시 이 파일도 영향을 받지는 않았는지 다시 한번 확인해보는 계기가 되었습니다. 예를 들어 전체 사이트를 차단하는 설정을 실수로 넣어두면, 아무리 좋은 글을 써도 검색 결과에 전혀 나타나지 않을 수 있습니다.
반대로 너무 많은 경로를 허용해두면, 검색 결과 페이지나 태그 목록처럼 중복성이 높은 페이지까지 크롤링되면서 오히려 검색엔진이 사이트를 평가할 때 불리하게 작용할 수도 있다고 합니다. 같은 내용을 담은 페이지가 여러 주소로 중복해서 검색엔진에 잡히면, 검색엔진 입장에서는 어떤 주소를 대표로 보여줘야 할지 판단하기 어려워지기 때문이라는 설명도 있었습니다.
저는 이번에 색인이 잘 되지 않는 이유를 찾다가, 혹시 robots.txt 설정이 잘못된 것은 아닌지 의심한 적이 있었습니다. 실제로 확인해보니 검색 결과 페이지처럼 크롤링할 필요가 없는 몇몇 경로만 차단되어 있었고, 정작 제가 쓴 글이 있는 경로는 모두 허용되어 있었습니다. 처음에는 이 파일 자체가 문제의 원인일지도 모른다고 생각했지만, 확인해보니 robots.txt 자체는 색인 지연의 원인이 아니었습니다. 오히려 검색 결과 페이지를 차단해둔 것은 중복 콘텐츠 문제를 막기 위한 정상적인 조치였고, 제가 걱정했던 것과는 정반대로 사이트에 도움이 되는 설정이었다는 것을 뒤늦게 알게 되었습니다.
robots.txt와 사이트맵의 관계
이렇게 확인하는 과정에서, robots.txt와 사이트맵이 서로 다른 역할을 한다는 것도 다시 정리하게 되었습니다. robots.txt는 크롤러에게 어디를 가지 말아야 하는지 알려주는 파일이고, 사이트맵은 반대로 크롤러에게 사이트에 어떤 페이지들이 있는지 목록으로 알려주는 파일입니다. 둘 다 검색엔진이 사이트를 더 효율적으로 크롤링하도록 돕는 역할을 하지만, 하나는 제한하는 역할이고 다른 하나는 안내하는 역할이라는 점에서 서로 반대되는 성격을 가지고 있습니다. 그래서 robots.txt 안에 사이트맵의 위치를 함께 적어두는 경우가 많은데, 이렇게 하면 크롤러가 한 파일만 확인해도 어디를 가지 말아야 하는지와 어디를 가야 하는지를 동시에 파악할 수 있게 됩니다. [구글 서치콘솔에 사이트맵 제출한 경험 글]
블로그를 직접 운영하기 전까지는 robots.txt라는 이름조차 들어본 적이 없었습니다. 개설 당시에는 눈에 잘 띄지 않는 설정이라 신경 쓸 일이 없었지만, 이렇게 색인 문제를 계기로 처음 자세히 들여다보게 되었습니다. 검색엔진에 어떤 페이지가 노출되고 어떤 페이지가 노출되지 않는지는 단순히 글의 내용만으로 결정되는 것이 아니라, 이런 파일 하나가 뒤에서 조용히 영향을 주고 있다는 것을 이번에 알게 되었습니다. 앞으로 검색 노출과 관련된 문제가 생기면, 콘텐츠 자체를 의심하기 전에 이런 기술적인 설정부터 먼저 점검해보는 습관을 들여야겠다는 생각이 들었습니다. 이번에 robots.txt를 확인하는 방법을 알아두었으니, 다음에 비슷한 걱정이 들 때는 훨씬 빠르게 원인을 좁혀갈 수 있을 것 같습니다.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
