robots.txt가 유효하지 않음

robots.txt 파일은 검색엔진에 크롤링할 수 있는 사이트 페이지를 알려줍니다. robots.txt 구성이 잘못되면 다음과 같은 두 가지 문제가 발생할 수 있습니다.

  • 검색엔진이 공개 페이지를 크롤링하지 못하도록 하여 콘텐츠가 검색결과에 표시되는 빈도를 줄일 수 있습니다.
  • 이로 인해 검색결과에 표시하고 싶지 않은 페이지를 검색엔진이 크롤링할 수 있습니다.

Lighthouse robots.txt 감사 실패 방법

Lighthouse는 잘못된 robots.txt 파일을 신고합니다.

잘못된 robots.txt를 보여주는 Lighthouse 감사

보고서에서 robots.txt가 유효하지 않음 감사를 펼쳐 robots.txt의 문제를 확인합니다.

일반적인 오류는 다음과 같습니다.

  • No user-agent specified
  • Pattern should either be empty, start with "/" or "*"
  • Unknown directive
  • Invalid sitemap URL
  • $ should only be used at the end of the pattern

Lighthouse는 robots.txt 파일이 올바른 위치에 있는지 확인하지 않습니다. 올바르게 작동하려면 파일이 도메인 또는 하위 도메인의 루트에 있어야 합니다.

robots.txt 관련 문제 해결 방법

robots.txt에서 HTTP 5XX 상태 코드를 반환하지 않는지 확인합니다.

서버에서 robots.txt로 인해 서버 오류 (500년대 HTTP 상태 코드)가 반환되는 경우 검색엔진에서 어떤 페이지를 크롤링해야 하는지 알 수 없습니다. 사이트 전체가 크롤링되지 않아 새 콘텐츠의 색인이 생성되지 않을 수 있습니다.

HTTP 상태 코드를 확인하려면 Chrome에서 robots.txt를 열고 Chrome DevTools에서 요청을 확인합니다.

robots.txt을 500KiB 미만으로 유지

파일이 500KiB보다 크면 검색엔진이 robots.txt 처리를 도중에 중지할 수 있습니다. 이렇게 하면 검색엔진에 혼란을 주어 사이트가 잘못 크롤링될 수 있습니다.

robots.txt를 작게 유지하려면 개별적으로 제외된 페이지에 덜 집중하고 더 광범위한 패턴에 더 중점을 둡니다. 예를 들어 PDF 파일의 크롤링을 차단해야 하는 경우 각 개별 파일을 금지하지 마세요. 대신 disallow: /*.pdf를 사용하여 .pdf가 포함된 모든 URL을 허용하지 않습니다.

형식 오류 수정

  • robots.txt에서는 'name: value' 형식과 일치하는 빈 행, 주석, 지시어만 허용됩니다.
  • allowdisallow 값이 비어 있거나 / 또는 *로 시작하는지 확인합니다.
  • 값 중간에 $를 사용하지 마세요 (예: allow: /file$html).

user-agent의 값이 있는지 확인합니다.

검색엔진 크롤러에 따라야 할 명령어를 알려주는 사용자 에이전트 이름입니다. 검색엔진에서 관련 지시어 집합을 따라야 하는지 여부를 알 수 있도록 user-agent의 각 인스턴스에 값을 제공해야 합니다.

특정 검색엔진 크롤러를 지정하려면 게시된 목록의 사용자 에이전트 이름을 사용하세요. 예를 들어 크롤링에 사용되는 Google의 사용자 에이전트 목록을 참고하세요.

*를 사용하여 일치하지 않는 모든 크롤러와 일치시킵니다.

금지사항
user-agent:
disallow: /downloads/

정의된 사용자 에이전트가 없습니다.

권장사항
user-agent: *
disallow: /downloads/

user-agent: magicsearchbot
disallow: /uploads/

일반 사용자 에이전트와 magicsearchbot 사용자 에이전트가 정의되어 있습니다.

user-agent 앞에 allow 또는 disallow 지시어가 없는지 확인합니다.

사용자 에이전트 이름은 robots.txt 파일의 섹션을 정의합니다. 검색엔진 크롤러는 이러한 섹션을 사용하여 따라야 할 지시어를 결정합니다. 첫 번째 user-agent 이름 앞에 지시어를 배치하면 명령을 따르는 크롤러가 따르지 않습니다.

금지사항
# start of file
disallow: /downloads/

user-agent: magicsearchbot
allow: /

어떤 검색엔진 크롤러도 disallow: /downloads 명령어를 읽지 않습니다.

권장사항
# start of file
user-agent: *
disallow: /downloads/

모든 검색엔진은 /downloads 폴더를 크롤링할 수 없습니다.

검색엔진 크롤러는 섹션의 사용자 에이전트 이름이 가장 구체적인 명령어만 따릅니다. 예를 들어 user-agent: *user-agent: Googlebot-Image에 관한 지시어가 있다면 Googlebot 이미지는 user-agent: Googlebot-Image 섹션의 지시어만 따릅니다.

sitemap의 절대 URL을 입력하세요.

사이트맵 파일을 사용하면 검색엔진에 웹사이트의 페이지를 알릴 수 있습니다. 일반적으로 사이트맵 파일에는 웹사이트의 URL 목록과 URL이 마지막으로 변경된 시간에 관한 정보가 포함되어 있습니다.

robots.txt에서 사이트맵 파일을 제출하려면 절대 URL을 사용해야 합니다.

금지사항
sitemap: /sitemap-file.xml
권장사항
sitemap: https://example.com/sitemap-file.xml

자료