본문으로 건너뛰기
유환호 연락하기

홈 / 기록

네이버에서 옳았던 판단 일곱 개가 구글에서는 전부 다르게 작동했다

한눈에 답변

네이버 기준으로 옳다고 판단해 적용해 둔 설정 일곱 가지를 구글 관점에서 다시 대조했다. IndexNow 통지, 사이트맵 임계값, 쿼리 파라미터 방치, 페이지네이션 정규화 방식까지 전부 두 검색엔진에서 다르게 작동하고 있었다. 예를 들어 구글은 IndexNow를 채택하지 않았고, 네이버는 얕게 도는 크롤러라 방치해도 됐던 파라미터 URL을 구글은 성실하게 전부 따라가 약 2만 개를 만들어 냈다.

왜 다시 대조가 필요했나

네이버를 기준으로 만든 설정들이 실제로는 검색엔진마다 다른 전제 위에 서 있을 수 있다는 것을 확인하기 위해, 이미 적용해 둔 판단들을 구글 공식 지침과 하나씩 다시 맞춰 봤다.

무엇이 다르게 작동하고 있었나

일곱 가지 항목에서 차이가 드러났다.

  • 색인 통지: 네이버에는 즉시 알림을 보내는 방식을 썼는데, 구글은 이 방식 자체를 채택하지 않고 있었다. 사이트맵을 직접 통지하는 오래된 방식도 이미 폐지된 상태였다.
  • 얇은 페이지 배제 기준: 지역·조합 단위로 정한 최소 건수 기준은 방향은 맞았지만, 표본이 잘리면서 일부 페이지에는 과도하게 적용되고 있었다.
  • 쿼리 파라미터 URL: 정렬·범위를 나타내는 파라미터를 그대로 뒀는데, 네이버의 수집기는 그렇게 깊이 따라가지 않아 문제가 안 됐다. 반면 구글의 수집기는 성실하게 모든 조합을 따라가 약 2만 개의 파라미터 URL을 만들어 냈다.
  • 목록 페이지의 최종 수정일: 데이터베이스를 조회조차 하지 않는 페이지에도 일괄로 “오늘 갱신”이라고 표시하고 있었다.
  • 구·군 페이지: 사이트맵에서만 빼면 충분하다고 판단했는데, 구글은 사이트맵과 무관하게 내부 링크를 따라가며 수집한다. 필터 버튼 컴포넌트 하나가 이미 그 페이지들 전부를 링크하고 있었다.
  • 페이지네이션: 2페이지 이후를 1페이지로 정규화해 뒀는데, 구글의 공식 지침은 각 페이지가 자기 자신을 대표 URL로 선언하도록 권한다.
  • 이미지 프록시: 네이버용 썸네일은 자체 경로가 따로 있어 문제가 없었지만, 구글 이미지 색인에 쓰일 수 있는 프록시 서비스는 자체 규칙으로 이미지 경로 전체를 차단하고 있어 애초에 구글 이미지 색인이 불가능한 상태였다.

최종 수정일을 페이지마다 정밀하게 못 넣는 이유

데이터베이스의 갱신 시각 필드는 “내용이 바뀐 시각”이 아니라 “데이터가 마지막으로 손을 탄 시각”에 더 가깝게 기록되고 있었다. 수집 작업이 내용이 실제로 바뀌지 않아도 매번 그 값을 갱신하기 때문에, 이 값을 페이지 그룹별로 묶어도 사실상 전부 오늘 날짜가 된다. 그래서 명백히 거짓인 값(데이터를 읽지도 않는 페이지의 “오늘 갱신”)만 우선 걷어내고, 정밀한 해결은 나중 과제로 미뤘다.

이 사건에서 얻은 교훈

한 검색엔진을 기준으로 검증된 설정이 다른 검색엔진에서도 옳다는 보장은 없다. 두 검색엔진의 공식 지침과 실제 크롤러 동작 방식을 각각 따로 대조해야, 한쪽에서는 안전했던 설정이 다른 쪽에서는 의도치 않은 결과(수만 개의 파라미터 URL 같은)를 만들고 있다는 것을 발견할 수 있다.