brunch

You can make anything
by writing

C.S.Lewis

by 세오 Jun 27. 2020

Bot을 Disallow하라:거절의 SEO

Robots.txt에  Disallow를 더 잘해야 하는 이유

Robots.txt 에 'Allow:/'를 표기하여, 크롤링 봇의 접근을 허용하는 것이 SEO의 시작임은 누구나 아는 사실이다. 그런데 아래와 같이 모든 봇에 대하여 Allow 처리해두면 끝이 날까? 이번 글은 적절한 Disallow를 처리하는 것이 어떻게 SEO에 도움을 되는지 말씀드리려고 한다. 바쁘신 분은 'Disallow는 Crawling budget의 효율성을 높인다.'부터 읽으셔도 된다. 다만 전반적인 이해를 위해 윗 문단도 함께 읽어주시면 좋겠다. 

LG전자 Robots.txt




슬기로운 Robots.txt 사용법


Robots.txt에 대한 오해


Robots.txt에 대한 흔한 오해 중 하나는 "크롤링 봇을 차단 혹은 허용하기 위해서 존재한다"는 것이다. 예전에는 사이트의 정보유출을 우려해 'Disallow' 걸어두었다. 혹은 봇 트래픽으로 부터 우리사이트의 네트워크를 지키기위해서 이기도 했다. 그러나 보안과 네트워크 이슈해결 관점으로만 Robots.txt가 존재 하는 것은 아니다.


SEO의 입장에서 Robots.txt 중요한 기능은 크롤링 트래픽을 '조율'하는 것이다. '조율'은 문제를 어떠한 목적을 이루기 위해 조정해가는 방법이다. 구글 봇의 접근을 허용하는 것을 넘어 Robots.txt를 이용해서 해결해야 하는 또 다른 문제가 존재한다. 해외 SEO 전문가들은 이를 'Crawling budget'이라는 개념으로 접근한다. 

조율 調律  
1. [명사] 악기의 음을 표준음에 맞추어 고름.
2. [명사] 문제를 어떤 대상에 알맞거나 마땅하도록 조절함을 비유적으로 이르는 말.

출처 : 표준대국어사전


Crawling budget 낭비


'Crawling budget' 은 구글 봇이 한 사이트에 대해 '크롤링을 수행하는 페이지수'정도의 의미로 쓰인다. 구글 봇은 사이트 인기도에 따라 하루에 일정 수준의 페이지만 큼만 크롤링을 진행한다. 발견되는 URL 마다 모두 수집하는 것은 아니라는 뜻이다. 페이지가 수천 개 정도의 규모의 사이트에서는 이는 문제가 되지 않는다. 하지만 이커머스 플랫폼이나 콘텐츠 플랫폼과 같은 사이트는 상황이 좀 다르다. 기본적으로 사이트들은 많은 수의 문서를 가졌다. 그리고 문서(제품) 숫자 외에도 여러가지 이유가 있다. 아래의 예시를 보자. 인터파크의 한 제품이다. 링크를 들어가 보시면 아시겠지만 두 링크는 같은 상품이다.


proNo (제품번호)는 7267787703으로 같다. 그러나 dispno(디스플레이 번호), smidl(의미는 알 수 없다), pisl(의미는 알 수 없다) 등은 다른 URL 요소(매개변수)가 있다. 이러한 매개변수 자체가 문제는 아니다. 분석을 위해서 필요할 수 있고, 때론 특정한 기능을 구현하기 위해 필요할 수 있다. 여러 가지로 필요한 부분이다. 다만 구글 봇은 이러한 페이지 하나하나를 다 크롤링 예산에 포함한다는 것이다. 


http://shopping.interpark.com/product/productInfo.do?prdNo=7267787703&dispNo=008001087&smid1=ssenpick

http://shopping.interpark.com/product/productInfo.do?prdNo=7267787703&dispNo=008001082&pis1=shop&pis2=product


매개변수뿐 아니라 생각보다 다양한 이유로 우리의 사이트의 'Crawling budget' 이 불필요한 곳에 낭비되고 있다. 날짜를 선택하는 기능, List를 소팅하는 기능, 리다이렉션 등 어려운 개발 용어가 아니라 우리가 자주 사용하는 많은 기능이 낭비를 일으킨다. 보다 자세한 크롤링 예산을 불필요하게 잡아먹는 페이지 구조에 대해서는 Webmaster Central 블로그의  What Crawl Budget Means for Googlebot 이라는 글을 읽어보시길 추천드린다.


Disallow는 Crawling budget의 효율성을 높인다.


결론은 소제목의 문장, 그 자체이다. 아래는 내가 가장 많은 벤치마킹을 진행하는 Glassdoor의 Robots.txt이다. (URL : https://www.glassdoor.com/robots.txt) 캡처 본은 일부분일 뿐인데, 많은 Disallow 조건들이 있다. 특정한 매개변수에 대한 조건, 폴더들에 대한 조건들을 세세하게 규정해두었다. 불필요한 매개변수와 꼭 검색에 노출되지 않아도 되는 문서들을 수집부터 막는 것이다.  

Glassdoor Robots.txt

Disallow 추가 실전 TIP


이 부분부터는 실제로 SEO를 하시는 분을 위해 작성했다. 서치 콘솔이 등록되어 있다는 가정하에 작성했기 때문에 미등록이신 분께는 죄송하다는 말씀을 드린다. 또 사이트 페이지수 1만 개를 넘지 않는 분은 굳이 이 작업을 할 필요가 없다. 그 이하 규모는 구글 봇이 스스로 잘 찾을 수 있으리라 본다. 물론 하시면 좀 더 효율성이 좋아지긴 할 것이다.



1. 크롤링 통계 확인하기

disallow 추가 작업을 위해서는 지금 우리 사이트의 크롤링의 수준을 확인해야 한다. 아래의 보고서를 통해서 크롤링 통계를 확인하시면 된다. 일일 평균 크롤링 페이지수가 우리 사이트가 가진 콘텐츠를 적절하게 색인할 수 있을지 고민해보셔야 한다. 


[크롤링 통계 확인 보고서]

보고서 : https://www.google.com/webmasters/tools/crawl-stats

서치 콘솔 메뉴 위치 : '기존 도구 및 보고서' > '크롤링 통계' 

구글 가이드 : https://support.google.com/webmasters/answer/35253?hl=ko


출처 : searchmarketingcommunications.com


2. 색인 생성 범위 확인하기


이 단계는 실제로 적절하게 색인되고 있는지를 확인하는 단계라고 본다. 다만 이 보고서는 크롤링에 대한 보고서가 아니다. 거기에 색인수는 크롤링 현황뿐 아니라 여러 가지 요소에 영향을 받는다. 그래서 이 숫자만을 보고 모든 것을 단언할 수는 없다. 다만 구글 봇이 우리가 검색에 노출하기 원하는 페이지들을 적절하게 발견하여 크롤링해두었는지를 유추해 볼 수는 있다. 


[색인 생성 범위 보고서]

색인 생성 범위 보고서 : https://search.google.com/search-console/index

구글 가이드 : https://support.google.com/webmasters/answer/7440203?hl=ko


 아래의 상황이 발견된다면, 여러분의 사이트에 Disallow 작업을 진행하는 것을 고려해 볼 수 있다.


[Disallow를 고려해볼 상황]

별다른 오류도 없는데, 색인 범위의 숫자가 너무 적다

'제외됨' 항목 중  '크롤링됨 - 현재 색인 생성되지 않음'의 숫자마저 적다

 크롤링됨 - 현재 색인 생성되지 않음  발견된 URL 목록에 매개 변수만 다른 중복문서들이 많다


3. Diallow 리스트 만들기


그리고 난 후에 적절한 Disallow를 해야 할 것들- 기능하는데 필요하지 않은 매개변수, 내가 검색에 노출하지 않아도 되는 페이지, 동일한 내용을 담고 있지만 URL만 다른 페이지들- 찾아보시라. 그리고 아래 조건문을 참고하여 Robots.txt의 Disallow 리스트를 만들면 된다. 모든 페이지를 다 리스트 업 할 필요가 없다. 아래 조건문 3가지 정도만 기억하여서 URL을 그룹화해서 정리하시면 된다. 아래 조건문을 고려하면, 개발자와 이야기하는 부분이 쉬워진다. What Crawl Budget Means for Googlebot 의 모든 개발적인 문제 상황을 처리할 수 있다면 좋겠지만, 마케터나 기획자 수준에서 눈에 보이는 중복문서와 매개변수 만 정리하셔도 충분하실 것 같다.


[Disallow 조건문]

/폴더명/ : 해당 폴더에 속한 모든 웹문서는 수집하지 않음

/ABC$  : ABC로 끝나는 URL을 수집하지 않음

/*ABC : /이후 ABC를 포함하는 모든 URL (/123ABC, /1ABC/가나 등)

개발자 문서 : https://developers.google.com/search/reference/robots_txt?hl=ko#url-matching-based-on-path-values





악마는 디테일에 있다. 


크롤링 예산을 관리는 전체 SEO관점에서는 큰 부분은 아니다. 직접적으로 검색 순위를 결정하는 요소가 아니다. 이런 작업이 무슨 의미가 있는가 싶을 수 있다. 작업을 해도 여전히 신규 콘텐츠의 색인이 더딜 수 있다. 큰 변화를 체감하지 않을 수도 있다. 더욱이 모두가 신경 써야 할 사항도 아니다. 


그러나 언제나 "악마는 디테일에 있다". 성과가 더딜수록, 디테일에 부족함이 없는지 살피시기를 부탁드린다. SEO에서 게임 체인져는 없다. 한 땀 한 땀 쌓아 올린 최적화가 성과를 가져온다. 최적화가 순위 요소에만 국한되어서는 안 된다. 검색엔진에 대한 전반적인 부분에 대한 최적화도 신경 써주시면 좋겠다.



Robots.txt를 잘 만들면 사람의 마음도 '조율' 할 수 있습니다. 물론 미국 갈 수 있는 사람만요. :D

Glassdoor Robots.txt 는 설렌다. 우리 회사 Robots.txt에도 언젠가 저런 글이 올라갈 수 있을까?




작가의 이전글 한국에서 SEO로 살아남기 3부 -성과 관리 TIP
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari