Google이 동일한 페이지를 여러 번 인덱싱하는 문제: canonical 태그 오류

다음 내용을 Google에 입력해 보세요:

site:forum.hearingtracker.com/t/costco-kirkland-signature-9-0-product-information/45380

다음과 같은 결과를 볼 수 있습니다(1페이지당 48개 결과):

이것은 중복 콘텐츠 버그이며, Discourse 플랫폼에 있어 긴급한 SEO 문제로 간주되어야 합니다(현재 v2.4.0.beta3 +4 버전을 사용 중입니다).

이러한 현상이 발생하는 이유를 파악해 보았는데, 페이지 소스를 검사해 보니 페이지를 아래로 스크롤할 때마다 canonical 링크가 업데이트되는 것을 보고 놀랐습니다:

예시:
<link rel="canonical" href="https://forum.hearingtracker.com/t/costco-kirkland-signature-9-0-product-information/45380?page=2" />

따라서 여기의 논리는 긴 스레드가 페이지네이션된다는 것일 것입니다. 하지만 이것은 지연 로딩 SPA이므로, canonical은 전통적인 페이지네이션이 이루어지는 것처럼 동작하고 있습니다. 왜 이런 방식으로 구현했는지에 대한 논리는 솔직히 잘 모르겠습니다.

참고로, 페이지네이션에 대한 SEO 모범 사례는 2페이지 등에서 동일한 meta description과 title을 제공하지 않는 것입니다. 제 웹사이트 다른 부분에서 페이지네이션을 배포한 예시를 아래에 보여 드립니다:

질문:

  • 스레드의 페이지네이션 지점을 가리키는 canonical을 제공하는 것의 SEO적 논리는 무엇인가요?
  • 이 접근 방식이 어떤 식으로든 정당화된다면, 최소한 title과 meta가 Google 검색 결과에서 중복된 결과를 생성하지 않도록 보장할 수는 없나요?

이것은 잘못된 것입니다.

크롤러의 경우 Discourse는 20개의 게시글이 포함된 긴 페이지를 사용하므로, 모든 게시글이 정상적으로 크롤링됩니다. 봇을 위한 SPA는 존재하지 않습니다.

해당 스레드는 800개 이상의 게시글이 있으므로, 이는 예상된 결과입니다.

왜 그런가요? 실제 문제가 무엇입니까? 실제 검색에서 특정 단어를 검색했을 때, 해당 단어가 포함되지 않은 페이지로 링크가 걸리는 등의 문제가 발생하는 것인가요?

죄송합니다. SPA라는 용어가 적절하지 않았을 수 있습니다. 제 말은, 페이지네이션이 동적으로 이루어지기 때문에 Discourse 스레드가 일종의 단일 페이지 애플리케이션처럼 동작한다는 뜻이었습니다…

네, 그럴 수 있겠네요. 3페이지에서 특정 텍스트를 검색했을 때 Google이 3페이지로 안내해 주었으므로, 이는 좋은 신호인 것 같습니다. 페이지 내 위치는 정확하지 않았지만, 이 상황에서 최대한 근접한 결과라고 생각합니다.

결국 돌아와 보니, 긴 스레드에서 페이지네이션 canonical 태그를 사용하는 것이 합리적인 것 같습니다. 하지만 SEO 모범 사례를 살펴보면, 제목과 메타 설명이 동일한 페이지네이션된 콘텐츠의 인덱싱을 허용하지 말라고 안내하고 있습니다. 아마도 해결책은 연속된 페이지의 제목과 메타 정보를 변경하는 것일 것입니다. 참고:

출처: SEO-Friendly Pagination: A Complete Best Practices Guide

그렇게 하면 포럼의 일반 방문자에게 어떤 점이 더 좋을까요? 예를 들어 "2페이지"로 이동하려고 했는데 실제로는 “단일 페이지” 영역에 도착하게 된다면, 일부 방문자가 혼란을 겪지 않을까요? 존재하지 않는 페이지네이션 내비게이션을 찾다가 헛수고하지 않을까요?

구글에서 유입되는 트래픽이 줄어드는 것보다는 더 많은 혼란을 겪는 방문객이 낫습니다. 중복 콘텐츠는 실질적인 SEO 문제이며, 두 명의 Discourse 팀 멤버가 해당 댓글에 '좋아요’를 누른 것은 정말로 이해할 수 없는 일입니다.

그것을 "실제 SEO 문제"라고 부를 만큼 심각하다고 생각하지는 않습니다. AFAIK(제가 아는 한), rel="canonical"이 없는 경우 검색 엔진은 사이트가 선호하는 결과 URL(캐노니컬 URL) 대신 검색 결과와 가장 잘 일치하는 URL을 선택합니다.

아까 위에 올린 이미지를 건너뛰신 것 같네요… 여기에 텍스트를 첨부합니다:

존 뮬러(John Mueller)가 코멘트하기를, “우리는 페이지네이션을 다르게 취급하지 않습니다. 일반적인 페이지로 취급합니다.”라고 했습니다.

즉, 이전 권고와 달리 Google은 페이지네이션된 페이지를 하나의 콘텐츠로 통합된 페이지 시리즈로 인식하지 않습니다. 모든 페이지네이션된 페이지는 루트 페이지와 순위 경쟁에 참여할 수 있습니다.

Google이 SERP에 루트 페이지를 반환하도록 장려하고, Google Search Console에서 “중복된 메타 설명” 또는 “중복된 타이틀 태그” 경고가 뜨지 않도록 하기 위해 코드를 쉽게 수정하십시오.

루트 페이지가 다음 공식(형식)을 가진다면:

Root page SERP

후속 페이지네이션 페이지는 다음 공식(형식)을 가질 수 있습니다:

pagination page SERP

이러한 페이지네이션 URL의 페이지 제목과 메타 설명은 의도적으로 최적화되지 않은 상태로 두어, 루트 페이지 대신 이러한 결과가 표시되는 것을 방지하기 위한 것입니다.

이러한 수정에도 불구하고 페이지네이션된 페이지가 SERP에 랭킹된다면, 다음과 같은 전통적인 온페이지 SEO 전략을 시도해 보십시오:

  • 페이지네이션된 페이지의 H1 태그를 비최적화(de-optimize)하십시오.
  • 루트 페이지에는 유용한 온페이지 텍스트를 추가하되, 페이지네이션된 페이지에는 추가하지 마십시오.
  • 루트 페이지에는 최적화된 파일 이름과 alt 태그가 포함된 카테고리 이미지를 추가하되, 페이지네이션된 페이지에는 추가하지 마십시오.

아, 감사합니다. 중복 콘텐츠가 아니라 중복된 제목과 메타 설명 경고에 대한 우려였다는 점을 놓치고 있었습니다.

적어도 Discourse의 경우, 이러한 것들은 경고(warning)라기보다는 '알림(notice)'에 가깝습니다. 마치 "이것에 대해 몰랐다면 문제가 없는지 확인하고, 문제가 있다면 수정하세요"라고 하는 것과 비슷합니다. 토론이 너무 방황하여 첫 게시물에 적합했던 것이 주제 내의 모든 후속 게시물에 적용되지 않을 정도로 흐려지지 않기 때문에, 이러한 알림은 안심하고 무시하셔도 됩니다.

예를 들어, "1페이지"의 게시물이 "둥근 빨간 위젯"에 대해 논의하고 있고, "2페이지"에 이르러서는 "네모난 초록색 스프로킷"에 대해 논의하고 있다면, 회원들이 주제에 집중하도록 유도하거나 토론을 별도의 주제로 나누어야 합니다.