블로그 게시물을 카테고리 내에서 토론 앵커로 만들기 위해 RSS 플러그인(또는 수동 복사)을 사용하고 있습니다. Google은 이러한 "복사"된 콘텐츠를 좋아하지 않으며, 블로그의 SEO 평판에 피해를 줄 수 있다고 경고합니다.
물론 Discourse(또는 해당 카테고리)의 Google 인덱싱을 중지할 수는 있지만, 이것이 의도된 동작임을 정의하는 방법에 대해 경험하신 분이 계신가요? 예를 들어 "이 서브도메인은 블로그에 속하며, 링크 팜을 시도하는 것이 아닙니다"와 같은 것 말입니다. 그렇다면 이를 Discourse 설정에서 어떻게 구현해야 할까요?
rel=nofollow 또는 유사한 태그를 사용하면 최소한 백링크 팜 측면은 해결할 수 있을 것 같습니다(콘텐츠 중복 측면에 대해서는 확실하지 않음). 아마도 Google을 안심시킬 수 있는 "이것은 ~의 복사본입니다"라는 헤더가 있을까요?
문서를 링크한 이유는 embed truncate 설정이 활성화된 상태에서 embed set canonical url 설정을 활성화하는 경우에 대해 확신이 서지 않기 때문입니다. embed truncate가 활성화되면, Google이 Discourse에서 크롤링할 수 있는 것은 원래 기사의 일부 스니펫뿐입니다. 사용자가 “전체 게시물 보기” 버튼을 클릭하면 전체 기사가 iframe으로 표시됩니다. iframe의 콘텐츠는 Google에 의해 크롤링되지 않는다고 확신합니다. “5가지 흔한 실수” 문서의 첫 번째 항목은 이 문제를 어느 정도 다루고 있습니다.
브라우저의 웹 인스펙터로 보는 대신 페이지 소스를 직접 확인해 보세요. 페이지 소스를 볼 때 canonical URL이 RSS 게시물의 URL로 설정되어 있고, 웹 인스펙터로 HTML을 볼 때는 Discourse 토픽의 URL로 설정되어 있는 것을 볼 수 있을 거예요. 만약 그렇다면 RSS 토픽에 대해 중복 콘텐츠 경고가 표시되지 않아야 합니다.
embed set canonical url을 활성화한 상태에서, Discourse의 RSS 피드로 가져온 토픽을 웹 인스펙터로 볼 때 제가 확인하는 내용은 다음과 같습니다:
크롤러가 보는 측면에서 설정은 예상대로 작동하는 것 같지만, 저에게는 혼란스러웠습니다. 문제는 JavaScript가 활성화된 상태로 페이지를 볼 때 Discourse가 JavaScript를 통해 canonical URL 속성을 덮어쓰는 것 같습니다. 참고로, 해당 동작은 여기서 발생한다:
저는 curl -i | grep canon을 사용해 보았지만 잘못된 태그 URL(그리고 헤더도 없음)을 확인했습니다. 하지만 다른 UA로 다시 시도해 볼 수 있습니다(다소 이상하긴 하지만,) - 몇 번이나 게시글을 다시 생성해야 했기 때문에 제가 혼동한 것일 수도 있습니다. 여기서 업데이트하겠습니다.
맞습니다, 해당 링크는 SEO를 위한 것이 아니라 블로그 링크를 더 눈에 띄게 하고 싶다는 내부적인 욕구가 있었기 때문입니다. 그리고 같은 URL이니까요..
(하지만 요구사항 목록이 더 길어지는 것 같으니 rss-poll을 포크해야 할 것 같습니다(불행히도 대부분의 작업이 플러그인에서 이루어지지 않는 것처럼 보입니다). 임베드 코드도 확장 가능한가요?