검색엔진이 내 사이트를 잘 가져가지 못하는 ‘진짜 원인’에 대해서 이야기를 해볼까 하는데요. 어떠한 원인이 있는지 한번 살펴보겠습니다.
검색엔진이 내 사이트를 잘 가져가지 못하는 원인
페이지 수가 많지 않아도 데이터베이스가 느리면 크롤링 문제가 발생한다라고 합니다.
시장 변화 요인
- 웹사이트 구조가 정적 → 동적으로 전환됨.
- JavaScript 기반 프론트엔드와 실시간 API 요청 증가.
- Google은 크롤링 자체보다 인덱싱 및 처리 비용을 더 중요하게 여김.
Googlebot이 내 사이트를 느리게 크롤링하거나 누락하는 원인
- 표면적 원인: 페이지 수가 많다 / 동적 콘텐츠 비중이 크다
- 구조적 원인:
- DB 쿼리 속도가 느려 Googlebot 요청을 감당하지 못함
- 캐시 미적용으로 매번 실시간 DB 호출 발생
- Googlebot은 대부분의 경우 서버에 HTML을 직접 요청
해결책
데이터베이스 쿼리 최적화
→ 크롤링 요청 시마다 발생하는 DB 호출 속도가 느리면 Googlebot이 탐색을 포기함.
- 느린 SELECT 문 파악 → 인덱스 추가
- WordPress라면, WP_Query 캐시 적용 및 쿼리 제한
- 복잡한 JOIN 제거 및 쿼리 단순화
→ 정적 콘텐츠 캐싱 구조 도입 (Cloudflare 활용)
- Googlebot은 로그인/세션 무시 → 정적 HTML을 더 잘 가져감.
- Cloudflare에서 정적 콘텐츠 경로에 대해 Page Rule 설정
- Cache Everything + Edge TTL 적용 (잘 사용해야함. 잘못하면 오히려 안좋음)
- 단, 동적 페이지는 예외처리 필요 (로그인, 장바구니 등)
Googlebot 전용 빠른 응답 구조 구성
→ Googlebot은 JS 실행 없이 HTML 기반 응답만 인식.
- User-Agent가 Googlebot일 때 서버에서 캐시된 정적 HTML 우선 응답
- 예: 서버에서 Bot 요청 식별 → HTML 캐시 전달 → 사람한텐 JS 기반 페이지 제공
전략 | 실패 시 리스크 |
---|---|
DB 최적화 | 기술적 역량 부족 시 효과 미비 |
캐시 전략 | 설정 오류 시 Googlebot까지 차단 가능 |
정적 응답 구조 | 서버 설정 미숙 시 전체 사이트 오류 가능 |
SEO에서 페이지 수보다 중요한 건 DB 쿼리 속도다.
느린 DB는 Googlebot을 쫓아낸다. 캐싱과 정적 응답 구조가 필수다.
크롤링 요청은 웹서버 → 애플리케이션 → DB → HTML 출력 경로를 따릅니다.
이 과정에서 DB가 병목이면, Googlebot은 그 페이지뿐만 아니라 전체 사이트에 대한 평가도 낮게 볼 수 있습니다.