크롤러빌리티는 검색엔진 크롤러가 페이지와 필요한 리소스를 가져올 수 있는지를 뜻합니다. robots.txt 차단, 서버 오류, 로그인 요구 등으로 수집이 막히면 크롤러빌리티에 문제가 있다고 봅니다.
크롤러빌리티는 사이트의 접근 가능성을 진단할 때 SEO 업계에서 널리 쓰는 용어입니다. Ahrefs와 Semrush도 독립 항목으로 설명합니다.
크롤링과 크롤러빌리티의 차이
크롤링은 크롤러가 URL을 발견하고 페이지를 가져오는 과정입니다. 크롤러빌리티는 그 과정이 가능한 상태인지에 관한 개념입니다. 실제 수집이 실패했다면 robots.txt에서 금지한 것인지, 서버에 연결하지 못한 것인지, 연결 후 오류가 발생한 것인지 원인을 나눠 조사합니다.
검색로봇의 수집을 방해하는 원인
- robots.txt 차단: robots.txt에서 Disallow가 적용되는 경로는 규칙을 따르는 크롤러가 수집하지 않습니다. 다만 Google은 다른 페이지의 링크에서 주소를 발견하면 본문 없이 URL만 검색결과에 표시할 수 있습니다.
- 서버 오류: 페이지 요청에 서버가 5xx HTTP 상태 코드를 반환하면 내용을 가져오지 못합니다. 오류가 반복되면 검색로봇이 요청을 줄이거나 크롤링을 중단할 수 있습니다.
- 로그인 요구: 로그인해야 본문이 보이는 페이지는 일반 검색로봇이 내용을 가져올 수 없습니다. 검색에 공개할 핵심 정보는 로그인 없이 읽을 수 있는 페이지에 제공합니다.
- 내부 링크 미연결: 들어오는 내부 링크가 없는 고아 페이지는 사이트 안의 링크를 따라서는 도달할 수 없습니다. 검색로봇이 다른 경로로 URL을 발견했더라도 내부 링크로 연결해 두는 편이 좋습니다.
- JavaScript 의존 콘텐츠: 본문과 링크가 JavaScript 실행 후에만 나타나면 렌더링 과정에 문제가 없는지도 검사해야 합니다. JavaScript SEO에서는 초기 HTML과 실행 후 결과를 비교해 본문 누락과 리소스 로드 오류를 찾습니다.
robots.txt 자체에서 서버 오류가 나면
페이지의 오류와 robots.txt 파일의 오류는 영향 범위가 다릅니다. 크롤러가 robots.txt를 가져오지 못하면 사이트 전체에 적용할 규칙을 알 수 없어 수집에 영향을 줍니다.
Google은 robots.txt에 서버 오류가 발생하면 처음 12시간 동안 사이트 크롤링을 멈추고 파일 수집을 재시도합니다. 이후 30일 동안은 마지막으로 가져온 유효한 버전을 사용하며, 저장된 버전이 없으면 크롤링 제한이 없다고 봅니다. 30일이 지나도 오류가 계속되면 사이트에 전반적으로 접근할 수 있는 경우에는 robots.txt가 없는 것처럼 처리하고, 사이트 전체의 접근에도 문제가 있으면 크롤링을 중단합니다.
네이버 검색로봇 Yeti는 robots.txt가 5xx를 반환하면 모두 허용하지 않음으로 해석합니다. 다만 이전에 정상적으로 수집한 규칙이 있으면 그 규칙을 일시적으로 사용할 수 있습니다. 같은 오류 코드라도 Google과 네이버에 적용되는 처리 방침을 각각 확인해야 합니다.
수집 실패를 확인하는 방법
Google Search Console의 URL 검사에서는 크롤링을 허용했는지와 실제로 가져왔는지를 나눠 확인합니다.
- 크롤링 허용 여부: robots.txt가 이 URL을 차단했는지 보여줍니다.
- 페이지 가져오기: 실제로 서버에서 페이지를 가져왔는지 보여줍니다. robots.txt가 허용했더라도 연결 오류 등으로 실패할 수 있습니다.
사이트 전반의 접근 문제는 크롤링 통계 보고서의 호스트 상태에서 확인합니다. 이 보고서는 robots.txt 가져오기, DNS 변환, 서버 연결의 실패율을 바탕으로 정상, 과거 문제, 최근 문제를 표시합니다. 5xx 서버 오류가 반복되면 가용성 경고가 나타납니다.
네이버는 서치어드바이저에서 robots.txt 검증 기능을 제공합니다. 등록한 사이트의 robots.txt를 다시 가져와 Yeti가 실제로 어떤 규칙을 읽는지 확인할 수 있습니다.
Ahrefs나 Semrush의 사이트 감사는 여러 URL에서 반복되는 문제를 찾는 데 유용합니다. 다만 해당 도구의 크롤러가 성공했다고 Googlebot이나 Yeti도 같은 결과를 얻었다고 볼 수는 없습니다. 검색엔진의 공식 도구에서 실제 수집 결과를 대조합니다.
수집에 성공해도 색인되지 않을 수 있습니다
크롤러가 페이지를 읽었다고 검색결과에 반드시 표시되는 것은 아닙니다. 수집한 페이지에 noindex가 있거나 검색엔진이 다른 URL을 대표로 선택하면 해당 페이지는 색인에서 제외될 수 있습니다.
| 구분 | 확인하는 것 | 상태가 나쁠 때 생기는 일 |
|---|---|---|
| 크롤러빌리티 | 크롤러가 페이지에 접근해 가져올 수 있는가 | 본문을 수집하지 못하거나 최신 내용을 반영하지 못함 |
| 인덱서빌리티 | 크롤링된 페이지가 색인에 들어갈 수 있는가 | 페이지는 읽혔지만 검색 후보에서 빠짐 |
noindex와 캐노니컬처럼 색인에 영향을 주는 설정은 인덱서빌리티 점검에 해당합니다. 크롤링이 막혔는지와 읽은 페이지가 색인에서 제외됐는지는 구분해야 합니다.
자주 묻는 질문
크롤러빌리티가 있으면 색인도 보장되나요?
아닙니다. 크롤러빌리티는 접근 가능 여부만 봅니다. 크롤링된 페이지도 콘텐츠 품질이나 중복 판단에 따라 색인에서 제외될 수 있습니다.
크롤링을 허용했는데도 수집에 실패할 수 있나요?
가능합니다. robots.txt의 허용 규칙은 서버의 정상 응답까지 보장하지 않습니다. DNS 조회나 서버 연결에 실패하거나 서버가 5xx 오류를 반환하면 페이지를 가져오지 못합니다. URL 검사에서 크롤링 허용 여부가 정상이어도 페이지 가져오기 결과와 실패 사유를 확인해야 합니다.
네이버의 수집 상태는 어디서 확인하나요?
서치어드바이저의 URL 검사에서 개별 페이지의 수집 여부와 상태 코드를 확인합니다. robots.txt 차단이 의심되면 검증 기능에 해당 URL을 입력해 수집을 허용하는 규칙인지 검사합니다. 파일을 수정한 뒤에는 robots.txt 수집을 요청할 수 있습니다.
함께 알아두면 좋은 용어
- 크롤링: 검색로봇이 URL을 발견하고 페이지를 가져오는 과정
- robots.txt: 검색로봇에 크롤링 허용 범위를 알리는 파일
- HTTP 상태 코드: 서버가 요청을 어떻게 처리했는지 보여주는 응답 코드
- 고아 페이지: 내부 링크로 연결되지 않아 크롤러가 발견하기 어려운 페이지
- JavaScript SEO: JavaScript로 만든 페이지를 검색엔진이 읽을 수 있게 점검하는 작업
- URL 검사: 개별 URL의 크롤링과 색인 상태를 확인하는 기능
- 크롤 버짓: Google이 한 사이트에서 크롤링하려는 URL 범위
- 구글봇: 구글 검색이 웹페이지를 발견하고 읽기 위해 쓰는 크롤러