robots txt 는 웹사이트의 검색 엔진 최적화를 위한 기본입니다.
robots txt가 어떻게 설정이 되었는지에 따라 사용자들이 볼 수 있는 사이트의 상태가 변경하기 때문에 잘 설정하는 것이 중요합니다.
이번 시간에는 robots txt이 무엇이고 어떻게 robots.txt 설정에 대해 알아보도록 하겠습니다.
# robots txt 란?
robots txt는 검색 엔진 로봇에게 웹사이트를 어떻게 크롤링 해야 하는지 가이드를 해주는 역할을 합니다.
또한 크롤러에게 URL의 어느 부분에 액세스 가능한지 아닌지의 여부를 알려주며 웹사이트의 사이트맵을 가이드 하는 역할을 합니다.
robots.txt는 항상 사이트의 루트 폴더 또는 메인 디렉토리에 위치해야 하며 대부분 텍스트 파일로 설정이 되어 있습니다.
# robots.txt의 영향
이 파일이 미치는 영향은 여러가지가 있습니다:
- 웹페이지
웹페이지에 robots.txt를 사용하게 되면 검색 크롤러에 의한 페이지의 과부화를 방지할 수 있습니다.
사이트에 중요하지 않은 페이지 또는 중복이 되는 페이지가 있다면 굳이 크롤링이 필요하진 않겟죠?
robots.txt로 크롤링 트래픽을 관리하기 위해 이러한 페이지의 크롤링을 방지하는 것입니다.
하지만 여기서 명심해야 할 것은 이 파일을 이용해 웹페이지를 검색 결과에서 숨기면 안된다는 것입니다.
- 미디어 파일
robots.txt 파일로 이미지, 동영상과 같은 미디어 파일이 검색 결과에 노출되지 않게 할 수 있습니다.
사용자가 이미지, 동영상 파일에 연결하는 것은 막을 수 없으니 참고 바랍니다.
- 리소스 파일
페이지에 큰 영향을 주지 않는 요소가 있을 경우 robots.txt 파일로 이러한 리소스를 차단할 수 있습니다.
그러나 페이지에 중요한 영향을 끼치는 리소스는 이 파일을 사용해 차단하게 된다면 검색 크롤러가 페이지를 이해할 수 없기 때문에 그것을 주의해야 합니다.
# 제한 사항 이해하기
robots.txt도 제한 사항 몇 가지가 있습니다.
robots.txt가 페이지 모든 범위를 차단할 수 없기 때문에 다른 차단 방법을 알아보는 것도 중요합니다.
또한 설정할 때의 상황과 목표에 따라 설정하는 것이 중요하기 때문입니다.
- 일부 검색 엔진에서만 지원 가능
모든 크롤러가 같은 지침을 따르지 않습니다.
다시 말해, 각 크롤러마다 준수할 지침이 다르다는 것입니다.
robots.txt 지침을 잘 따를 수 있는 잘 제작된 크롤러가 있는 반면 그러지 못한 크롤러도 많기 때문입니다.
이러한 크롤러로부터 정보를 보호하기 위해서는 비밀번호를 이용해 서버 액세스를 차단하는 방법이 있습니다.
- 각 크롤러만의 다른 해석
모든 크롤러가 같은 해석 능력을 가지고 있지 않습니다.
같은 지침이어도 다르게 해석을 할 수 있기 때문에 정확한 단어와 구문을 이해하고 사용해야 합니다.
- 구글 색인
단순히 robots.txt만으로 액세스를 허용하지 않게 페이지 설정을 해도 다른 사이트에서 연결이 된다면 구글에서 색인이 됩니다.
URL 주소를 포함한 페이지의 앵커 텍스트와 기타 정보가 구글 검색 결과에 노출될 수 있는 위험이 있습니다.
URL이 구글 검색 결과에 나타나지 않게 하려면 noindex 메타 태그를 사용하거나 서버에 비밀번호를 걸어 놓는 것이 좋습니다.
# robots.txt 지시어 및 규칙
여러가지 용도로 robots.txt를 설정하기 위해선 어떤 용어와 규칙이 있는지 알아야 합니다.
쓰이는 용어를 이해를 한 뒤, 규칙을 설정하고 싶다면 도메인 주소에 /robots.txt를 입력하고 설정할 수 있습니다.
우선 몇 가지 용어를 소개하도록 하겠습니다.
robots.txt 지시어
• user-agent: 규칙이 적용 되는 크롤러의 이름입니다.
• disallow: 유저 에이전트의 디렉토리 또는 페이지 크롤링을 차단합니다.
• allow: 유저 에이전트의 디렉토리 또는 페이지 크롤링을 허용합니다. 구글봇에만 적용 가능하니 참고하시기 바랍니다.
• sitemap: 웹사이트의 모든 리소스를 나열한 목록 파일입니다.
• 크롤링 봇 이름: Googlebot (구글), Yeti (네이버), Bingbot (빙), Slurp (야후)
robots.txt 규칙
www.예시.com/robots.txt를 예시로 몇 가지의 규칙에 대해 알아보도록 하겠습니다.
robots.txt 크롤링 차단
사이트의 모든 콘텐츠를 크롤러로부터 차단하고 싶다면 아래와 같이 설정하면 됩니다.
앞서 설명했듯이 user-agent는 크롤링 봇을 말하며 *표시가 된 것은 모든 크롤링 봇을 말합니다.
Disallow는 페이지를 크롤링 하지 않게 하는 설정인데요, / 표시를 하면 크롤링 차단을 할 수 있습니다.
해석을 하면 모든 크롤링 봇으로부터 www.예시.com 홈페이지를 포함한 모든 페이지의 크롤링을 차단한다는 뜻입니다.
robots.txt 크롤링 허용
반대로 보든 크롤링 봇의 액세스를 허락하는 설정도 있습니다.
이렇게 disallow에 / 표시가 없으면 크롤링을 허락한다는 것을 나타냅니다.
다시 말해 모든 크롤링 봇이 www.예시.com 홈페이지를 포함한 모든 페이지의 크롤링을 허용한다는 뜻입니다.
특정 폴더를 크롤러로부터 차단하고 싶다면 아래와 같이 설정할 수 있습니다.
robots.txt 크롤링 차단 – 특정 폴더
특정 폴더를 크롤러로부터 차단하고 싶다면 아래와 같이 설정할 수 있습니다.
Googlebot은 구글의 크롤링 봇의 이름입니다. 이 봇을 차단하고 싶다면 user-agent에 해당 봇의 이름을 입력하면 됩니다.
만약에 특정 위치에만 크롤링 봇을 차단하고 싶다면 위치를 선정할 수 있습니다.
robots.txt 크롤링 차단 – 특정 위치
이렇게 되면 www.예시.com/example-subfolder/ 의 URL이 포함된 페이지의 크롤링을 차단할 수 있습니다.
동시에 여러 개의 디렉터리의 콘텐츠 크롤링 차단도 가능합니다.
robots.txt 크롤링 차단 – 특정 위치
위 파일 같은 경우는 크롤러가 캘린더와 정크 디렉터리를 액세스 할 수 없습니다.
- 특정 크롤러 차단하기 – 특정 웹페이지
크롤러가 특정 웹페이지를 액세스 못하게 차단할 수 있습니다.
robots.txt 크롤링 차단 – 특정 웹페이지
이렇게 설정하면 네이버의 크롤러 Yeti가 www.예시.com/example-subfolder/blocked-page.html 의 특정 페이지를 크롤링 하지 못하게 차단할 수 있습니다.
- 하나를 제외한 모든 크롤러 허용/차단 하기
위에 소개된 설정을 동시에 설정할 수 있습니다.
robots.txt 크롤링 차단 – 하나의 크롤러만 허용
이렇게 설정하면 Googlebot-news만 허용이 되면 나머지 크롤러는 액세스가 차단됩니다.
robots.txt 크롤링 차단 – 하나 제외한 모든 크롤러 허용
이렇게 될 경우 Unnecessarybot만 차단이 되며 나머지 크롤러는 사이트에 액세스를 할 수 있습니다.
반대로 하나의 크롤러만 허용하고 싶다면 아래와 같이 설정하면 됩니다.
robots.txt이미지 크롤링 차단
이미지를 크롤링하는 Googlebot-Image 봇은 이러한 상황에서 강아지와 관련된 이미지를 크롤링하지 못하게 됩니다.
모든 이미지의 액세스를 차단하고 싶다면 단순히 disallow에 /만 하면 크롤러가 이미지에 접근하지 못합니다.
robots.txt특정 문자열 URL 크롤링 차단
특정 문자열로 끝나는 URL을 차단하고 싶다면 $ 표시를 사용해야 합니다.
.xls는 엑셀 링크를 뜻하고 .gif는 GIF 파일을 뜻하는 문자열입니다.
크롤러의 해당 URL 액세스를 차단하고 싶다면 뒤에 $ 로 표기해야 합니다.
robots.txt설정하기
간혹 페이지에 robots.txt가 설정이 되어 있는지 모르는 경우가 있습니다.
이럴 때는 루트 도메인에 /robots.txt 마지막에 입력한 후 검색을 해보면 나옵니다.
결과로 no.txt가 뜬다면 robots.txt가 설정이 되어 있지 않은 상태입니다.
robots.txt를 설정하기 앞서 이 파일은 HTML 파일이 아닌 일반 텍스트 파일로 작성해야 하고 루트 디렉토리에 위치해야 합니다.
robots.txt를 만들기 위해서는 아래의 특징을 명심해야 합니다:
- 파일 이름은 robot.txt로 지정해야 합니다.
- 사이트 당 하나의 robot.txt 파일이 있어야 합니다.
- 철자 오류가 있으면 안됩니다: Robots.txt/robots.TXT는 인식이 안됩니다.
위 세 가지 뿐만이 아니라 앞서 설명된 지시어와 규칙을 염두하고 robots.txt를 만들어야 합니다.
robots.txt가 제대로 만들어졌는지 확인하고 싶다면 여기를 클릭해 확인해보세요.
주의할 점
더욱 더 효과적으로 robots.txt를 활용하기 위해 주의해야 할 점이 여러 개 있습니다:
- 크롤링이 되길 원하는 사이트의 콘텐츠 또는 리소스가 차단 되어 있지 않아야 합니다.
- robots.txt로부터 차단된 사이트의 링크는 nofollow 입니다. 따라서 사이트의 링크가 follow이길 원한다면 다른 차단 방법을 사용해야 합니다.
- robots.txt가 포함된 사이트는 모든 사람들이 액세스를 할 수 있기에 절대로 개인정보를 파일에 추가하지 않아야 합니다.
- 구글봇 그리고 구글봇 이미지와 같이 여러 크롤러가 있는 경우에는 각 크롤러가 이해할 수 있도록 정확하게 robots.txt를 만들어야 합니다.
- robots.txt 콘텐츠는 캐시에 하루에 한번은 업데이트가 되므로 파일을 업데이트 할 때 구글 서치 콘솔과 같은 도구로 다시 확인할 수 있습니다.