검색엔진 색인 최적화를 위한 robots.txt 설정 방법

블로그 일반

인터넷에서 정보를 찾을때 가장 많이 접속하는 사이트는 바로 네이버, 다음, 구글과 같은 검색 사이트 입니다.

이 검색 사이트는 웹이라는 네트워크에 출판된(publishing) 사이트의 HTML 문서를 검색엔진 로봇이 크롤링(Crawling)한 다음 검색 사이트의 자체 알고리즘으로 분석, 색인(Indexing) 하면 검색 사이트에서 방문자가 키워드로 검색시 검색 결과물로 색인한 페이지들을 보여주게 됩니다.

기업의 홈페이지, 블로그 서비스등 웹에 게시되는 모든 문서는 검색 엔진에 등록되어 검색 결과로 보여지기 까지 앞서 얘기한 같은 과정을 거치게 되는데 대부분의 문서는 웹에 공개되어 많은 방문자가 오길 기대하지만 반대로 공개되어 있는 문서이지만 검색 엔진에는 보여지고 싶지 않은 문서도 있을 것입니다.

이렇게 검색 엔진에 노출하고 싶은 문서와 그렇지 않은 문서를 검색엔진 로봇이 인식하게 설정해서 크롤링 범위를 지정하는 것이 바로 robots.txt 입니다.

robots.txt에서 설정한 접근 제어는 강제성이 없지만 네이버, 구글등 국내에서 가장 많이 사용하는 검색 엔진에서 robots.txt 설정을 권고하고 있는데 이는 robots.txt 규약을 준수한다는 뜻으로 검색 엔진 최적화(SEO)를 위해서라도 필수적으로 설정해야 합니다.

robots.txt 위치

1

https://domain.com/robots.txt

앞서 설명했듯이 검색엔진 로봇은 사이트(블로그)를 크롤링 할때 robots.txt 를 참고해 크롤링합니다.

작성한 robots.txt 파일은 루트 디렉토리에 위치해야 하며 robots 텍스트 문서 안에서 하위 디렉토리에 대한 검색엔진 로봇의 접근 제어를 설정해야 합니다.

robots.txt 작성 요령

예시

User-agent: *

Allow: /
Disallow: /admin/
Disallow: /private/
Disallow: /*.pdf$
sitemap: https://domain.com/sitemap.xml

robots.txt 파일의 내용 구성은 User-agent, Allow, Disallow로 구성되며 검색엔진 로봇별로 범위를 지정할 수 있습니다. 우선 각 문법에 대한 작성 요령은 위 예시와 같으며 다음과 같은 의미를 가지고 있습니다.

User-agent

User-agent 구문은 검색엔진 로봇 이름을 정의합니다. * 기호는 모든(All) 이란 의미를 가지며 모든 검색엔진 로봇에 대한 접근을 허용한다는 뜻입니다.

만일 특정 검색엔진 로봇(크롤링 봇)에 대해 색인 범위를 지정하고 싶다면 다음과 같이 설정할 수 있습니다.

User-agent: Yeti
User-agent: Googlebot
Allow: /

User-agent: Googlebot-image
Disallow : /

네이버 크롤링 봇 이름인 Yeti와 구글 크롤링 봇 이름인 Googlebot은 허용을, 구글 이미지 크롤링 봇(Googlebot-image)은 비허용으로 처리하는 예제입니다.

Allow

Allow 는 접근을 허용할 페이지를 설정하는데 / 는 최상위 페이지를 의미함으로 ‘사이트의 하위 문서를 크롤링해도 좋다’ 라는 의미입니다. 만일 Allow 선언되어있지 않다면 기본적으로 검색엔진 로봇은 허용(Allow)으로 간주합니다.

Disallow

Disallow 는 크롤링을 허용하지 않을 페이지를 선언합니다. 위 예시처럼 admin 하위 웹문서를 검색엔진에 노출시키지 않게 하고 싶은 경우에는 Disallow: /admin/ 과 같은 요령으로 지정하면 되겠습니다.

sitemap

사이트맵의 주소를 지정해서 크롤링 로봇이 따라갈수 있게(follow) 설정합니다.

패턴 규칙

패턴 규칙은 특정 확장자를 가진 파일을 검색엔진에 노출하고 싶지 않은 경우, 문서의 쿼리 결과값을 선언할때 유용하며 다음과 같은 요령으로 작성합니다.

Disallow: /image*/Disallow: /*.pdf$
Disallow: /*.hwp$
Disallow: /*.doc$

Disallow: /image*/ 는 image 로 시작하는 디렉토리에 대한 접근을 허용하지 않는다는 의미입니다. image-content, image-full 과 같은 디렉토리가 있다면 그 대상이 되겠죠.

만일 반대로 image로 끝나는 디렉토리의 접근 제어를 하고 싶다면 * 를 이름 앞에 두면 되겠습니다.

Disallow: /*.pdf$ 는 pdf로 끝나는 주소에 대한 접근을 허용하지 않는다는 의미입니다. 파일 이름이 어떻게 될지 알수 없으므로 * 로 모든 이름을 지정하고 주소 끝을 알리는 $ 를 선언합니다.

robots.txt 파일을 만들지 않은 경우?

robots.txt 파일이 루트 디렉토리에 위치하지 않은 경우 기본적으로 허용(Allow)로 인식해 모든 페이지를 크롤링합니다. robots.txt 내용에 Allow 구문이 없는 경우 기본적으로 모든 페이지 크롤링을 허용하는 것과 같은 맥락입니다.

4 댓글. Leave new

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Fill out this field
Fill out this field
유효한 이메일 주소를 입력해주세요.

네이버 블로그 주소 Id 변경 방법
네이버 블로그 주소 ID 변경 방법
네이버 블로그 주소 체계는 사용자의 네이버 아이디가 맨 뒤에 노출되게 되어 있으며 https://blog.naver.com/사용자ID 의 형식을 가지게 되는데요. 이와 같은 블로그…
google naver disable noarchive title
구글, 네이버 저장된 페이지 삭제 방법
저장된 페이지의 이해 블로그 또는 웹사이트를 운영하면서 방문자 수를 늘리기 위해 네이버, 구글등의 검색엔진에 사이트를 등록하게 됩니다. 등록 후 일정…