Google 검색 콘솔의 “크롤링됨 - 현재 인덱싱되지 않음” 버킷에 토픽 영구 링크와 페이지네이션 URL이 대량으로 유입되고 있습니다 (약 20년 된 포럼에서 가져온 데이터, Discourse 버전 v2026.9.0-latest, 셀프 호스팅 환경, 약 35,000개 URL).
확인된 내용:
Discourse는 긴 토픽의 크롤러에게 ?page=N 페이지네이션 링크를 제공합니다(실제 UI는 무한 스크롤이기 때문). JS 처리가 가능한 클라이언트(구글봇 렌더러 포함)가 이러한 ?page=N URL 중 하나를 로드하면, Discourse는 클라이언트 사이드에서 /t/slug//<post_number>로 리다이렉트를 수행합니다.
재현 방법:
- 어떤 게시글 번호나 ?page= 접미사가 붙은 토픽 URL을 콜드 상태(캐시 없음)로 가져오기:
GET /t///14 →
GET /t// → 동일한 canonical
GET /t///1 → 동일한 canonical
GET /t//?page=127 → (자기 참조, 정규화되지 않음) - 사이트를 정상적으로 로드(JS 활성화)하고, Ember 라우터를 통해 게시글 번호 접미사가 포함된 URL로 이동합니다(예: 추천 토픽에서 “첫 번째 읽지 않은 게시글로 이동” 링크 클릭). SPA 전환이 완료되면 document.querySelector(‘link[rel=canonical]’).href 값이 현재 게시글 번호 URL과 동일합니다 — 기본 토픽 URL을 가리키지 않습니다.
이는 Discourse 자체의 명시된 설계 의도와 모순됩니다. 2015년 이 스레드에서 @sam은 명확히 다음과 같이 언급했습니다:
▎ 토픽: canonical은 기본 토픽을 가리켜야 하며, 개별 게시글 페이지가 독립적인 검색 결과로 나타나는 것을 방지해야 합니다.
▎ 카테고리/목록 페이지: Google의 공식 가이드라인에 따르면 페이지네이션된 목록은 중복 콘텐츠가 아니므로 canonical을 완전히 제거합니다.
오늘날 관찰되는 현상은 다음 두 가지 방식으로 이러한 의도를 위반합니다:
- ?page=N(크롤러용 페이지네이션)이 포함된 토픽의 경우, 기본 토픽 대신 페이지네이션된 URL이 원본 서버 HTML에 canonical로 표시됩니다 — 토픽은(카테고리 목록과 달리) 명시적으로 항상 기본 URL로 축소되어야 했습니다.
- ?page=N에서 /t/slug/id/<post_number>로의 클라이언트 사이드 리다이렉트 후에도, 렌더링된 DOM의 canonical은 기본 토픽으로 리셋되지 않고 해당 게시글 번호 URL에 머물러 있습니다.
두 현상 모두 의도된 현재 동작이 아니라 2015년 설계 목표에 대한 회귀(regression)로 보입니다.
인덱싱에 중요한 이유: Google의 인덱싱은 렌더링된 DOM의 canonical 신호를 따릅니다. Google이 직접 도달하는 게시글 번호/페이지 접미사가 붙은 URL(예: “게시글 링크 공유” 기능 — 우리 포럼에서 WhatsApp/Discord를 통해 광범위하게 사용됨, 레거시 vBulletin ?p= 영구 링크를 게시글 번호 URL로 매핑하는 오래된 외부 백링크, 크롤러 자체의 탐색 등)은 기본 토픽으로 통합되는 대신 자체 canonical을 선언합니다. 검색 콘솔에서는 수천 개의 유사 중복 URL이 “크롤링됨 - 인덱싱되지 않음” 상태로 정체되어 나타납니다.
GSC 보고서에서 확인된 영향받은 URL 샘플(모두 2026년 9월 초에 마지막 크롤링됨):
/t/tengo-que-pasar-la-itv/21100/10
/t/new-honda-nsx-proyect/4910/69
/t/hacer-tubo-recto-sin-silencioso-del-catalizador-hacia-atras/25579/25
/t/kedada-japo-en-cataluna-2014/28148/75
/t/el-diario-de-patricio-de-la-plana/13286?p
팀에 질문: 10년 이상 된 이 문제에서, 해당 URL에 자기 참조 canonical을 사용하는 것이 현재 의도된 동작으로 변경된 것이 있는지, 아니면 회귀 문제로 재검토할 가치가 있는지 알고 싶습니다. 도움이 된다면 HAR 파일이나 추가 재현 예시를 제공할 수 있습니다.