Robots.txt

Robots.txt 작성부터 업로드까지 총정리 가이드

robots.txt는 이름만으로도 뭔가 어렵고 대단한 것처럼 보이지만 사실 대단하지 않고 몇 가지만 따라하시면 쉽게 작성할 수 있는 텍스트 파일입니다. 한번 robots.txt가 무엇인지 간단히 알아보고 왜 써야하는지, 어떻게 만드는지 알아보겠습니다.

robots.txt란 ?

robots.txt는 검색 로봇이 웹 사이트를 크롤링할 때 어떤 페이지를 수집하고 어떤 페이지를 수집하지 않아야 할지를 안내해주는 파일입니다. 표지판 같은 역할이지요. 그렇기 때문에 만약 우리 웹사이트가 색인이 잘 되고 있지 않다라고 한다면, 아니면 아래 이미지와 같이 서치콘솔 상에서 우리 웹사이트 페이지가 너무 많이 구글에서 제외시키고 있다면 robots.txt를 한번 점검해보셔야합니다. 

그렇다면 robots.txt가 왜 필요한지 어떻게 만들어야하는지 알아보겠습니다.

Robots.txt는 왜 필요할까요?

서버 과부하 방지

먼저 robots.txt는 서버의 과부하를 방지합니다. 종종 작은 규모의 회사의 경우 제가 크롤러를 보내서 크롤링을 하게되면 서버가 다운되는 현상이 생깁니다. 이렇게 검색엔진 봇은 페이지를 여기저기 돌아다니며 페이지의 정보를 수집하기 때문에 만약 굳이 수집할 필요가 없는 페이지라고 한다면, robots.txt를 통해 크롤러가 수집할 수 없도록 하는 것이 서버 과부하 방지에 좋습니다. 

필요한 페이지만 빠르게

위에 내용과 연결되는데요, 물론 검색엔진은 알아서 크롤링 빈도수를 조절하지만 서버부하를 보고도 크롤링 수를 조정하기도합니다. “이 서버는 너무 자주 방문하면 터지겠네”하면서 빈도 수를 줄이게 되고 그러면 최신 업데이트된 페이지가 그만큼 늦게 구글이 가져가는 것이죠. 

robots.txt 는 어떻게 만들어야하나요?

robots.txt 파일은 사실 그렇게 엄청난 것도 대단한 것도 아닙니다. 이름처럼 텍스트 파일이죠. 크게 user agent, disallow, allow, sitemap 이 4가지 규칙만 지킨다면 금방 만들 수 있습니다.

구성요소

  • user agent: user agent는 검색엔진의 이름입니다. 구글만 해도 용도에 따라 Googlebot, Googlebot-image 등이 있고, 네이버는 Yeti, 빙은 Bingbot을 사용합니다. User agent리스트는 여기에서 확인해보세요.
  • disallow: 위의 user agent 이름을 가진 검색엔진은 들어오지 말라는 뜻입니다. 위에서 설정한 user agent가 들어오면 안되는 범위를 지정해줍니다. 
  • allow: disallow를 제외하고 들어오는 범위를 지정해줍니다. allow와 disallow 중 하나는 꼭 작성되어있어야합니다. 
  • sitemap: sitemap.xml파일 위치를 알려줍니다. robots.txt 파일의 위치는 항상 동일하기 때문에 위치가 다를 수 있는 사이트맵의 위치를 알려주는 것은 검색엔진이 sitemap위치를 더 잘 찾을 수 있도록 해줍니다. (사실 구글 서치콘솔에서 사이트맵을 등록하면 굳이 할 필요는 없습니다.)
  • 주석: 참고로 크롤러가 “#”를 사용해서 크롤러는 못보지만 사람은 볼 수 있는 형태로 만들 수도 있습니다. 개발자나 담당자가 메모를 적어놓을 수도 있지만 일반적으로 아래 이미지와 같이 재미있는 방식으로 사용하고 있습니다.
seer의 robots.txt 파일
나이키의 robots.txt 파일

어떻게 작성해야하나요?

Robots.txt는 텍스트파일이기 때문에 메모장에 만드시면 됩니다. 아래 애플의 robots.txt처럼 웹사이트가 큰 경우 매우 자세하게 작성하는 것이 좋지만, 아마 대부분의 웹사이트는 이렇게까지 할 필요가 없을 것입니다.

그렇다면 우리 웹사이트는 어떻게 작성해야할지 모를 때 사용하실 수 있도록 몇 가지 케이스를 가져왔습니다.

가장 기본적인 유형의 robots.txt

모든 검색엔진 봇에게 https://www.example.com/ad-min/ 이하와 /admin-image/이하의 페이지에는 들어오지 말라고 하는 방법입니다.

robots.txt 예시1

매우 제한적으로 자신이 지정한 페이지 유형만 방문하도록 하는 robots.txt

모든 검색엔진 봇에게 /public/이하의 페이지만 방문하도록 하는 방법입니다.

robots.txt 예시1

여기서 꼭 알아두셔야하는 것은 robots.txt는 방향만 알려줄 뿐, 페이지를 비공개처리한다는 의미는 아니며, 다른 경로 (소셜미디어, 다른 블로그의 링크 등)를 통해 색인이 될 수 있다는 점입니다. 보안을 위해서 페이지를 숨겨야한다면, 별도의 암호처리를 하시는 것이 좋습니다.

그리고 위에서 보시면 아시겠지만, 페이지가 서브디렉토리형태로 잘 구분되어있으면, 그만큼 정교하게 로봇을 제어하기 용이합니다.

어떻게 업로드 하죠?

robots.txt 업로드는 매우 간단합니다. filezila같은 프로그램을 사용해서 서버에 직접 업로드하는 방법이 있으며, 요즘 워드프레스나 다른 웹빌더에서는 robots.txt를 바로 작성할 수 있도록 플러그인이나 내장기능을 제공하고 있기 때문에 그리 어렵지 않습니다.

서버에 직접 업로드

CMS를 사용하고 있는 경우에는 robots.txt파일을 어딘가에 업로드할 필요는 없지만, 그렇지 않다면 직접 서버에 업로드 하는 것이 필요합니다.

(출처: https://itons.net/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-robots-txt-%ED%8C%8C%EC%9D%BC-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EC%B5%9C%EC%A0%81%ED%99%94/)

CMS를 활용한 업로드

각 CMS에는 robots.txt를 바로 에디팅할 수 있거나 파일을 업로드 하는 섹션이 있습니다. 작성한 robots.txt를 그대로 복사, 붙여넣기 하거나 파일을 드래그앤 드롭해서 업로드하시면 됩니다.

주의할 점

항상 루트 디렉토리에 업로드해야합니다.

robots.txt 파일을 직접 업로드하는 경우 항상 루트 디렉토리에 업로드해야함을 잊지마세요.

보안을 위해서는 사용하지마세요.

robots.txt는 검색엔진이 가야할 방향을 제시하는 것이고 로봇도 그것을 따를 뿐입니다. 다른 블로그나, 소셜미디어 등에서 링크를 타고 들어갈 수도 있습니다. 그리고 원한다면 Screaming Frog 같은 크롤링 도구를 통해 웹사이트를 크롤링할 수 있습니다. 그렇기 때문에 보안을 위해서라면 다른 웹페이지 보안방법을 사용하셔야합니다.

색인이 된다면? 다른 참조를 통해 색인된 것입니다.

위에서 말씀드린 것과 같이 robots.txt로 막아놨는데 왜 노출이되지?라고 한다면, 그것은 다른 참조를 통해 색인된 것이고 어떤 참조하였는지는 구글 서치콘솔을 통해 아래와 같이  확인할 수 있습니다.

지금까지 robots.txt에 대해서 알아보았습니다. robots.txt는 사실 대규모의 웹사이트가 아니라면 큰 영향을 미치지 않지만 그렇다 하더라도 최적화를 위한 가장 첫단계이니, 위에서 말씀드린 몇 가지만 따라하셔서 최적화의 첫걸음을 떼시기 바랍니다.

관련 게시물