robots.txt
파일은 검색엔진에 크롤링할 수 있는 사이트 페이지를 알려줍니다. robots.txt
구성이 잘못되면 다음과 같은 두 가지 문제가 발생할 수 있습니다.
- 검색엔진이 공개 페이지를 크롤링하지 못하도록 하여 콘텐츠가 검색결과에 표시되는 빈도를 줄일 수 있습니다.
- 이로 인해 검색결과에 표시하고 싶지 않은 페이지를 검색엔진이 크롤링할 수 있습니다.
Lighthouse robots.txt
감사 실패 방법
Lighthouse는 잘못된 robots.txt
파일을 신고합니다.
보고서에서 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' 형식과 일치하는 빈 행, 주석, 지시어만 허용됩니다.allow
및disallow
값이 비어 있거나/
또는*
로 시작하는지 확인합니다.- 값 중간에
$
를 사용하지 마세요 (예: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