• Robots.txt vs Meta Robots Tag :: 마이구미
    웹 관련 2021. 11. 6. 15:40
    반응형
    이 글은 Robots.txt 와 Meta Robots Tag 를 비교한다.
    넓은 범위에서 보면 같은 목적으로 생각할 수도 있다.
    하지만 정확히 둘 사이의 차이를 알지 못한다면, 예상한 결과를 얻지 못할 수도 있다.
    Robots.txt - https://developers.google.com/search/docs/advanced/robots/intro?hl=ko
    Meta Robots Tag - https://developers.google.com/search/docs/advanced/crawling/block-indexing?hl=ko

     

     

    우선 Robots.txt 를 다시 한번 간단하게 설명한다. (옛날옛적에 작성한 짧은 글)

    Robots.txt 파일은 검색 엔진 크롤러의 접근을 막기 위해 사용한다.

    검색 사이트에 노출할 필요가 없는 관리자 페이지, 서비스 운영을 중단한 페이지, 노출할 필요 없는 페이지 등에 설정하곤한다.

    쉽게 이해하기 위해서는 도메인/robots.txt 를 접근하면 다른 서비스들의 설정을 보면 된다.

     

    특정 커머스 회사의 robots.txt 는 다음과 같다.

     

    User-agent: *
    Disallow: /
    
    User-agent: Googlebot
    Crawl-delay: 1
    Allow: /vp/products/
    Allow: /vm/products/
    Disallow: /*.css$
    Disallow: /*.js$
    
    User-agent: Googlebot-image
    ...
    
    User-agent: NaverBot
    ...
    
    User-agent: Yeti
    ...

     

    커머스 서비스라면 카테고리, 쿠폰, 이벤트 등 많은 페이지가 존재하겠지만, 상품 관련 페이지만 허용하고 있다.

    모든 페이지를 검색에 노출하지 않고, 상품에 집중하여 노출하는 모습을 볼 수 있다.

     


     

    최근까지 robots.txt 의 존재를 알고 있었지만, robot 관련 메타 태그의 존재는 알지 못했다.

    최근에 중단된 서비스 페이지가 구글 검색 결과에 노출되어 이를 검색 결과에서 제거해야하는 PR 을 통해 알게 되었다.

     

    <meta name="robots" content="noindex, nofollow">

     

    메타 태그는 robots.txt 에 비해 굉장히 유연하고 친숙하게 느껴졌다.

    그래도 "robots.txt 를 추가해야되지 않나?" 생각이 우선 들었다.

    몇몇 페이지에 적용하는 곳에서는 굉장히 유용하겠지만, 아예 전체 페이지에 막아야하는 경우에서는 robots.txt 가 낫다고 판단했다.

     

    robots.txt 를 제시한 이유를 설명하기 위해서는 2가지 용어가 필요하다.

    크롤링과 인덱싱이다.

    크롤러가 페이지 정보를 수집하는 과정을 크롤링, 수집 데이터를 검색 결과에 노출하는 것을 인덱싱이라고 볼 수 있다.

     

    여기서 본인이 제시한 의견은 다음과 같다.

     

    robots.txt 로 아예 크롤러 접근을 막아버리면, 수집도 못할거고 수집한 데이터가 없으니 검색 결과에도 노출되지 않을 것이다.

     

     

    인덱싱은 수집한 데이터가 존재해야지만 가능하다.

    즉, 크롤링이 있어야만 인덱싱이 가능하다는 의미로 인덱싱은 크롤링이 사전에 이루어져야한다.

    크롤러 입장에서도 우선적으로 robots.txt 를 보고 페이지 접근 허용 여부를 판단하는 것이 먼저이다.

    또 하나 다른 이유는 robots.txt 로 막지 않는다면, 크롤러가 실제 페이지의 파일을 읽으려고 요청하기 때문에 서버의 자원이 낭비된다.

     

    하지만 이미 페이지 정보가 수집되어 이미 검색 결과에 노출되고 있는 상황이라면 달라진다.

    구글 문서의 설명에 따르면 다음과 같다.

     

    robots.txt  파일은 주로 요청으로 인해 사이트가 오버로드되는 것을 방지하기 위해 사용하며, Google로부터 웹페이지를 숨기기 위한 메커니즘이 아닙니다. 웹페이지가 Google에 표시되지 않도록 하려면 noindex로 색인 생성을 차단하거나 비밀번호로 페이지를 보호해야 합니다.

     

    robots.txt 파일로 페이지가 차단되거나 크롤러가 페이지에 액세스할 수 없다면 크롤러는 noindex 지시어를 절대 확인하지 않으며 페이지가 검색결과에 계속 표시될 수 있습니다

     

     

    즉, 만약에 robots.txt 에서 Disallow 를 선언하고 HTML 파일에 Meta Robots Tag 도 선언한다면 무슨 일이 일어나는가?

     

    위에서 "크롤러 입장에서도 우선적으로 robots.txt 를 보고 페이지 접근 허용 여부를  판단하는 것이 먼저이다." 라고 언급했다.

    이로 인해, 크롤러가 페이지 접근을 아예 할 수 없기에, 미노출을 위한 메타 태그를 선언하더라도 읽지를 못한다.

    결과적으로 검색 결과에 계속 노출될 수 밖에 없다.

     

    크롤링 -> 인덱싱 순서로 이루어지더라도 robots.txt 는 크롤링, meta robots tag 는 인덱싱에 포커스를 맞추어 생각해야한다.

    검색 결과 노출 여부에 있어 robots.txt 를 쓰는게 좋은가? meta robots tag 가 좋은가? 는 잘못된 고민이다.

     

    잘못된 내용이 있다면 댓글로 알려주시길 바란다.

    반응형

    댓글

Designed by Tistory.