robots.txt 설정


📖블로그 라이프: 취미 생활도 하고 돈도 벌고 » 2부 블로그 시작하기 » 검색엔진 등록 » 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 에 잘 나와있다.

네이버 블로그

사용자는 네이버 블로그의 robots.txt 에 접근할 수 없다.


네이버 블로그 robots.txt는 외부 검색엔진에 차단되어 있다

네이버 블로그는 기본적으로 검색엔진이 못 가져가게 설정되어 있다. 이래서 네이버를 가두리라고 부른다.

아래 주소를 열어보면 모든 검색로봇에게 크롤을 허용하지 않는다. 즉 구글이나 다음, 빙 등의 검색로봇이 못 가져간다.

https://blog.naver.com/robots.txt

네이버 블로그이 내 글을 구글, 다음 검색에 노출 하려면?

네이버 블로그를 구글 등에 노출되게 하는 방법이 있다. 네이버 블로그의 글을 발행할 때 옵션에서 ‘검색허용’ 을 체크하면 된다. 다행히 한 번 체크하면 계속체크되어 있다.

모바일에서는 환경설정 > 글쓰기 기본설정 > 검색허용을 체크하면 된다.

티스토리

티스토리도 사용자가 robots.txt에 접근할 수 없다. 네이버 블로그와 달리 로그인과 m 디렉토리 빼 놓고 다 허용되어 있다. 다음 검색 뿐만 아니라 네이버, 구글 검색엔진이 가져갈 수 있다. 티스토리 사용자는 robots.txt 에 신경 안 써도 된다.

https://www.tistory.com/robots.txt

User-agent: *
Disallow: /m
Disallow: /login
Disallow: /gateway
Allow: /

워드프레스

설치형 워드프레스는 서버를 모두 직접 접근할 수 있으니 robots.txt로 원하는대로 고칠 수 있다.

주소는 도메인/robots.txt 이다.

robots.txt 규칙을 알아야 한다. 기본적으로 모든 검색로봇을 허용하고, 특정 스팸성 로봇을 차단한다. 그리고 사이트맵 주소를 알려준다.

robots.txt 를 만들거나 테스트할 수 있는 툴

Robots.txt 파일 생성기

조건에 따라 robots.txt 를 생성할 수 있다.

robots.txt Validator and Testing Tool

서버에 올라가있는 파일을 테스트할 수도 있고, 만들기 전에 에디터에 입력한 후에 어떤 URL에 어떤 봇이 통과했는지 테스트할 수 있다.

구글 서치 콘솔 robots.txt 테스트 툴

미리 등록한 서치 콘솔의 사이트를 선택해서 robots.txt 에 오류가 있는지 테스트할 수 있다. 에디터로 입력하면 문법을 자동으로 검사해준다. 디렉토리를 지정해 구글 봇 중에서 통과하는지 차단하는지 테스트할 수 있다.

robots.txt 샘플

모든 검색 로봇 허용하기

예를 들 모든 검색로봇을 허용하고, 사이트맵 주소를 표시한다면 다음과 같다.

User-agent : *  
Allow : /
Sitemap: https://dobiho.com/sitemap_index.xml

관리자 화면 차단하기

관리자 화면을 검색엔진에 노출하지 않으려면 다음과 같이 하면 된다.

wp-admin 디렉토리는 허용하지 않는다. /wp-admin/admin-ajax.php를 허용하는 이유는 페이지를 릴로드하지 않고도 ajax를 통해 워드프레스와 검색로봇이 연결할 수 있게 해준다. 워드프레스는 기본적으로 이걸 허용하라고 한다.

User-agent : *  
Disallow: /wp-admin
Allow: /wp-admin/admin-ajax.php
Sitemap: https://dobiho.com/sitemap_index.xml

특정 검색로봇 차단하기

검색로봇이 크롤을 하기 위해 서버에 접속하는 것 자체도 서버에 부하를 준다. 한국어 블로그를 사용해서 외국에서 들어올 일이 없다면 중국이나 러시아 검색봇을 막아 서버 부하를 줄일 수 있다. 특히 바이두나 러시아 얀덱스봇이나 SemrushBot 처럼 크롤이 많아 서버 부하만 일으키는 봇을 막을 수도 있다.

User-agent : *
Allow : /

User-agent: BaiDuSpider
Disallow: /

User-agent:YandexBot
Disallow: /

User-agent:SemrushBot
Disallow: /

Sitemap: https://dobiho.com/sitemap_index.xml

지정한 검색봇만 허용하고 나머지는 다 차단하기

중국 바이두나 러시아 얀덱스 말고도 이런저런 검색봇이 엄청 많다.

내 경우 한국어로만 블로깅 하고 중국이나 러시아에서는 들어올일이 없다. 매번 찾아서 검색봇을 차단하는게 아니라 다 차단하고, 내가 지정하는 검색봇만 허용하게 할 수도 있다.

User-agent: *
Disallow: /

User-agent:Yeti
User-agent:Googlebot
User-agent:Googlebot-image
User-agent:Googlebot-Mobile
User-agent:Mediapartners-Google
User-agent:Adsbot-Google
User-agent:Daumoa
User-agent:bingbot
User-agent:slurp
User-agent:TelegramBot
User-agent:Twitterbot
User-agent:DuckDuckBot
User-agent:facebookexternalhit
Disallow: /wp-admin
Allow: /wp-admin/admin-ajax.php

Sitemap: https://dobiho.com/sitemap_index.xml

내 웹서버 access.log 를 보니 정말 모르는 봇이 많이도 크롤해간다. 네이버와 구글, 다음, 빙 정도만 와도 되는데 말이다.

robots.txt 으로 검색봇 차단 되는 것은 아니다. 권고사항이라 안 지켜도 된다.

따라서 차단한 검색로봇이 크롤해가는지 access.log 를 보고 아예 웹 서버에 막을 수 밖에 없다.