현인
Robots.txt 알아보기 본문
robots.txt 파일은 검색엔진 크롤러가 사이트에서 접근할 수 있는 URL을 지정하는 파일이다. 주로 크롤러 요청으로 인해 사이트에 과부하가 발생하는 것을 방지하기 위해 사용한다. 다만, 이 파일은 웹페이지가 Google 검색결과에 표시되지 않도록 차단하는 수단으로 사용해서는 안 된다. 검색결과에서 페이지를 숨기려면 noindex 태그를 사용하거나 비밀번호로 보호해야 한다.
robots.txt 파일의 주요 용도
- 크롤러 트래픽 관리
- 크롤러가 특정 URL이나 리소스에 접근하지 못하도록 제한한다.
- 리소스 크롤링 차단단, 이러한 리소스가 페이지 이해에 중요한 역할을 한다면 차단해서는 안 된다.
- 중요하지 않은 이미지, 스크립트, 스타일 파일 등을 차단하여 크롤러가 불필요한 리소스를 크롤링하지 않도록 한다.
- 미디어 파일 검색결과 제외하지만 다른 페이지에서 연결된 파일에 대한 접근 자체를 막을 수는 없다.
- 이미지, 동영상, 오디오 파일 등이 Google 검색결과에 표시되지 않도록 설정할 수 있다.
robots.txt 파일의 한계
- 크롤러의 행동을 강제할 수 없음
- 잘 제작된 크롤러는 robots.txt 파일을 준수하지만, 이를 무시하는 크롤러도 존재한다. 민감한 데이터를 보호하려면 비밀번호로 보호하거나 서버 보안을 강화해야 한다.
- 검색엔진마다 구문 해석 방식이 다를 수 있음
- 일부 크롤러는 특정 규칙을 이해하지 못하거나 잘못 해석할 수 있다. 이를 방지하기 위해 모든 크롤러가 이해할 수 있는 적절한 구문을 사용해야 한다.
- 차단된 URL이 검색결과에 표시될 수 있음
- robots.txt로 차단하더라도 다른 페이지에서 해당 URL이 연결된 경우 검색결과에 URL이 표시될 수 있다. URL만 표시되며 페이지 내용은 표시되지 않지만, 이를 완전히 방지하려면 noindex 태그를 사용하거나 페이지 자체를 삭제해야 한다.
웹페이지를 검색결과에서 완전히 숨기는 방법
- noindex 태그 사용
- 검색엔진이 페이지를 색인하지 못하도록 한다.
- 비밀번호로 보호
- 서버에서 민감한 파일이나 페이지를 비공개로 설정한다.
- 페이지 삭제
- 검색결과에 노출되지 않도록 불필요한 페이지는 삭제한다.
robots.txt 파일은 크롤러 트래픽 관리와 리소스 차단에 적합하지만, 검색결과에서 페이지를 완전히 제외하려면 위와 같은 대안을 사용해야 한다.
robots.txt 파일 작성 및 제출 방법
robots.txt 파일은 검색엔진 크롤러가 웹사이트에서 특정 경로에 접근하는 것을 제어하는 파일이다. 이 파일은 사이트의 루트 경로에 위치해야 하며, 기본적으로 모든 파일은 크롤링이 허용된다는 점을 기억해야 한다. 작성 시 아래 지침을 따른다.
robots.txt 파일의 기본 구조
robots.txt는 한 줄에 하나의 규칙으로 구성되며, 크롤러의 접근 허용 여부를 설정한다. 아래는 간단한 예시이다:
User-agent: Googlebot
Disallow: /nogooglebot/
User-agent: *
Allow: /
Sitemap: <https://www.example.com/sitemap.xml>
- User-agent: Googlebot: Googlebot은 /nogooglebot/으로 시작하는 URL에 접근할 수 없다.
- User-agent: *: 나머지 모든 크롤러는 사이트 전체를 크롤링할 수 있다.
- Sitemap:: 사이트맵의 경로를 명시한다.
robots.txt 파일 작성 가이드라인
1. 파일 생성
- 텍스트 편집기(예: 메모장, TextEdit, vi, emacs)를 사용해 작성한다.*워드 프로세서는 사용하지 말 것!*워드 프로세서는 예상치 못한 문자를 추가해 크롤러에 문제를 일으킬 수 있다.
- 파일 이름은 반드시 robots.txt로 설정한다.
- 파일은 UTF-8로 저장하며, ASCII 문자를 포함해야 한다.
2. 파일 위치
- robots.txt는 웹사이트의 루트 디렉터리에 있어야 한다.예: https://www.example.com/robots.txt
- 하위 디렉터리에는 사용할 수 없다.예: https://www.example.com/pages/robots.txt → 적용되지 않음
- 하위 도메인이나 비표준 포트에도 각각의 robots.txt를 설정할 수 있다.예: https://subdomain.example.com/robots.txt
3. 적용 범위
- robots.txt 파일은 게시된 프로토콜(HTTP/HTTPS), 호스트 및 포트 내에서만 적용된다.예: https://example.com/robots.txt는 https://example.com/에만 영향을 미친다.다른 하위 도메인(https://m.example.com/)이나 프로토콜(http://example.com/)에는 영향을 주지 않는다.
4. 사이트맵 포함
- 사이트맵 URL을 명시하면 검색엔진이 페이지를 더 효율적으로 크롤링할 수 있다.예: Sitemap: <https://www.example.com/sitemap.xml>
작성 시 유의사항
- 규칙 기본값: robots.txt에서 명시적으로 차단하지 않는 한 모든 URL은 크롤링이 허용된다.
- 문자 제한: UTF-8 범위 밖의 문자는 Google이 무시할 수 있다.따라서 규칙이 무효화되지 않도록 표준 문자만 사용한다.
robots.txt 규칙 작성 방법
robots.txt 파일은 검색엔진 크롤러가 웹사이트의 특정 영역을 크롤링할 수 있는지에 대한 지침을 제공한다. 각 규칙은 크롤러의 행동을 제어하며, 아래 가이드라인에 따라 작성한다.
기본 규칙 작성 원칙
규칙 구성
- 하나 이상의 그룹으로 구성된다.
- 그룹은 User-agent 지시어로 시작하며, 하나 이상의 Disallow 또는 Allow 규칙이 포함된다.
- 각 그룹은 특정 크롤러를 대상으로 하거나, 모든 크롤러를 대상으로 설정할 수 있다.
- 크롤러는 규칙을 위에서 아래로 처리하며, 가장 구체적인 첫 번째 그룹의 규칙만 적용한다.
대소문자 구분
- 모든 규칙은 대소문자를 구분한다.
- 예: Disallow: /file.asp는 /file.asp에만 적용되며, /FILE.asp에는 적용되지 않는다.
주석 사용
- # 문자는 주석으로 처리된다.
# 이 규칙은 Googlebot만 차단합니다.
User-agent: Googlebot
Disallow: /
기본 동작
- 명시적으로 차단하지 않는 한, 모든 페이지는 크롤링이 허용된다.
Google 크롤러가 지원하는 주요 지시어
User-agent:
- 이 규칙이 적용될 크롤러를 지정한다.
- Google 크롤러의 이름은 Google 사용자 에이전트 목록을 참조한다.
- 별표(``)를 사용하면 특정 AdsBot 크롤러를 제외한 모든 크롤러에 규칙을 적용할 수 있다.
# Googlebot만 차단
User-agent: Googlebot
Disallow: /
# Googlebot과 AdsBot-Google 차단
User-agent: Googlebot
User-agent: AdsBot-Google
Disallow: /
# 모든 크롤러 차단 (AdsBot은 명시적으로 제외해야 함)
User-agent: *
Disallow: /
Disallow:
- 크롤링을 금지할 경로를 지정한다.
- 경로는 /로 시작해야 하며, 디렉터리의 경우 /로 끝나야 한다.
Disallow: /private/
Disallow: /confidential.html
Allow:
- 크롤링을 허용할 경로를 지정한다.
- Disallow 규칙을 재정의해 특정 하위 경로나 페이지에 접근을 허용한다.
Disallow: /private/
Allow: /private/public-page.html
Sitemap:
- 사이트맵 파일의 URL을 명시한다.
- 사이트맵 URL은 정규화된 URL이어야 하며, 사이트맵은 크롤링해야 할 콘텐츠를 표시하는 용도로 사용된다.
Sitemap: <https://example.com/sitemap.xml>
Sitemap: <https://www.example.com/sitemap.xml>
와일드카드 지원
- Google은 `` 와일드카드를 규칙에 사용할 수 있다.
- 예: Disallow: /private/* → /private/로 시작하는 모든 경로를 차단.
- $를 사용해 특정 확장자를 지정할 수 있다.
- 예: Disallow: /*.pdf$ → PDF 파일만 차단.
규칙 작성 예시
아래는 다양한 규칙을 포함한 예제이다.
# 모든 크롤러에서 사이트 전체를 크롤링 허용
User-agent: *
Allow: /
# Googlebot은 특정 디렉터리 차단
User-agent: Googlebot
Disallow: /private/
# 모든 크롤러에서 PDF 파일 차단
User-agent: *
Disallow: /*.pdf$
# 사이트맵 위치 지정
Sitemap: <https://www.example.com/sitemap.xml>
robots.txt는 크롤러의 행동을 제어하지만, 완전한 보호 수단은 아니므로 민감한 정보는 서버 측 보호 기능을 사용해 안전하게 관리해야 한다.
robots.txt 파일 업로드
robots.txt 파일을 작성한 후, 사이트의 루트 디렉터리에 업로드하면 검색엔진 크롤러에서 활용할 수 있다. 업로드 방식은 사용하는 호스팅 환경에 따라 다르므로 다음을 참고한다.
- 호스팅 서비스 문서 확인FTP 클라이언트나 호스팅 서비스의 파일 관리자 도구를 이용해 파일을 서버 루트 디렉터리에 업로드할 수 있다.
- 호스팅 서비스마다 파일 업로드 방식이 다르므로 사용 중인 서비스의 가이드를 확인하거나 "FTP 파일 업로드 [호스팅 서비스 이름]"과 같은 검색어를 활용한다. 예: "파일 업로드 Infomaniak".
- robots.txt 파일 위치 확인
- 업로드 후 https://example.com/robots.txt 형태로 파일에 접근 가능해야 하며, 하위 디렉터리나 비표준 위치에 배치해서는 안 된다. 예를 들어, **https://example.com/pages/robots.txt**는 잘못된 위치이다.
robots.txt 파일 테스트
업로드한 robots.txt 파일이 제대로 작동하는지 확인하는 과정은 다음과 같다.
- 파일 공개 여부 확인 예: https://example.com/robots.txt.
- 파일 내용이 정상적으로 표시되면, 크롤러가 접근 가능한 상태임을 확인할 수 있다.
- 브라우저에서 시크릿 창을 열고 사이트의 robots.txt URL로 접근한다.
- Google 도구 활용로컬 환경에서 테스트하려면 Google의 오픈소스 robots.txt 라이브러리를 활용할 수 있다.
- Google Search Console의 robots.txt 테스터를 사용하면 업로드된 파일을 테스트할 수 있다. 이 도구는 사이트 소유권 확인이 필요하며, 이미 업로드된 파일만 테스트 가능하다.
robots.txt 파일 Google에 제출
Google 크롤러는 robots.txt 파일을 자동으로 감지하고 활용한다. 다만, 변경 사항을 신속히 반영하려면 다음 절차를 참고한다.
- Search Console에서 확인
- Search Console의 robots.txt 테스터에서 업로드된 버전 보기를 클릭해 현재 서비스 중인 파일을 확인한다.
- 문제가 없으면 제출 버튼을 클릭하여 Google에 변경된 내용을 알릴 수 있다.
- Google의 캐시 새로고침
- Google은 기본적으로 24시간마다 robots.txt 파일을 다시 크롤링해 반영한다.
- 변경 사항을 빠르게 적용하려면 테스터의 제출 기능을 활용해 캐시를 새로고침한다.
알아 두면 좋은 robots.txt 규칙
다음은 알아 두면 좋은 몇 가지 일반적인 robots.txt 규칙이다. 링크를 참고하자.
Google의 robots.txt 캐시 새로고침 절차
- 서비스 중인 버전 확인
- Search Console에서 현재 서비스 중인 robots.txt 파일이 변경 사항을 반영했는지 확인한다.
- 제출 요청 활용
- 제출 버튼을 사용해 변경된 내용을 Google에 알리고, 새로운 버전을 즉시 반영하도록 요청한다.
- 최신 상태 점검Google은 기본적으로 24시간 내에 자동으로 업데이트하지만, 제출 기능을 통해 더 빠르게 반영할 수 있다.
- 페이지를 새로고침한 뒤, Google이 최신 버전을 반영했는지 확인한다.
robots.txt 파일은 검색엔진 크롤러의 접근을 제어하는 중요한 도구로, 이를 잘 활용하면 검색엔진 최적화(SEO)에 효과적으로 기여할 수 있다.
참고 자료
'CS 학습 > WEB' 카테고리의 다른 글
웹 브라우저는 무엇이며, 어떻게 동작하는가? (1) | 2024.10.29 |
---|---|
인터넷의 동작 원리, 웹과 인터넷의 차이 (7) | 2024.10.28 |
REST (2) | 2024.02.07 |
CSR과 SSR (1) | 2023.06.23 |