Google 검색 인덱싱과 Discourse

여러분, 안녕하세요!

Google 크롤러가 Discourse 포럼을 인덱싱하는 데 문제가 없다는 여러 게시물을 읽어 보았습니다. 제 질문은 조금 다릅니다. Google은 각 토픽을 인덱싱 가능한 "페이지"로 간주합니까? 이렇게 묻는 이유는 우리 포럼의 토픽 중 상당수가 Google 데이터베이스에 없기 때문입니다. Google 검색 콘솔 데이터를 보면 이것이 확인됩니다:

존재하는 항목은 약 17,000개뿐이고, 포럼에는 수십만 개(아마도 수백만 개?)의 토픽이 있습니다. robots.txt 오류는 정당한 이유로 인덱싱되지 않아야 하는 페이지에 대한 것입니다. 이 상황은 크롤러가 오래된 토픽도 마땅히 해야 할 만큼 자동으로 방문하지 않는 것처럼 보입니다.

오래된 토픽이 적시에 더 많이 인덱싱되도록 보장하기 위해 조정해야 하는 설정이 있을까요? 첫 화면에 보이는 항목들의 경우, Google의 인덱싱과 검색 결과가 꽤 좋습니다. 이는 첫 화면 아래로 넘어가는 토픽에만 영향을 미치고 있습니다.

감사합니다,
Kirupa

실험으로, GoogleBot 사용자 에이전트 문자열을 사용하여 크롤러 보기로 Meta를 로드했습니다. 그리고 최신 목록의 666페이지까지 이동했는데, 여기에는 2017년 중반, 거의 3년 전에 마지막으로 업데이트된 주제들이 포함되어 있습니다.

목록 중 하나의 주제는 Deep-integration of Discourse within an Ionic App입니다. 로그인하지 않은 상태에서 Google 검색을 수행했는데, "integration discourse ionic"을 검색했을 때 해당 주제가 정확히 첫 번째 결과로 나타났습니다!!

Meta는 3만 개 미만의 주제를 가진 “작은” 인스턴스이지만, 모든 주제가 제대로 인덱싱된 것으로 보입니다. 오래된 도메인이며 모든 Discourse 관련 검색에서 1위 결과를 차지하고 있기 때문에, GoogleBot과의 “카르마”(신뢰도)가 충분하여 필요한 모든 것을 크롤링하기에 충분한 시간을 도메인에서 보내게 됩니다.

귀하의 포럼이 구형 소프트웨어에서 Discourse로 마이그레이션을 거쳤습니까?

인덱싱을 서둘러야 한다면 사이트맵 플러그인을 사용해 볼 수 있습니다.

표준 크롤링으로 모든 것을 잡을 수 있지만, 사이트맵을 사용하면 인덱싱이 더 빨리 진행될 수도 있습니다.

사용하신 경우 결과를 게시해 주세요.

또한, 구글에 100% 누락되어 있는, 포럼에 있는 훌륭한 고유 콘텐츠 5가지를 예시로 게시해 주실 수 있나요?

구글은 해당 주제(토픽)의 방문 횟수(카운터가 있는 경우)나 활성 전환이 발생하는 링크가 있는 주제도 함께 살펴볼 수 있습니다. 구글은 사용자가 “관심 없는” 것으로 판단하는 특정 페이지를 방문하지 않을 수 있습니다. 이를 확인하는 데에는 일반적으로 다음과 같은 트릭이 사용됩니다. 이는 SEO(검색 엔진 최적화)와 관련된 내용입니다. 다른 리소스에서 링크를 걸어두고 그 링크를 클릭해 보세요. 많은 양이 필요하지 않으며, 몇 번의 전환만으로도 충분합니다. 이렇게 하면 구글의 관심을 끌기에 보통 충분합니다. 사람들이 가는 곳에는 구글도 함께 있습니다.

대형 구글 사이트의 경우, 해당 페이지가 존재한다는 사실만으로는 부족합니다. 구글은 더 많은 신호가 필요합니다. 활동량, 클릭률, 조회 수 등이 그것입니다.

@Falco - 네, 포럼은 vBulletin에서 마이그레이션을 거쳤지만, 그건 2014년 말쯤이었습니다. 저는 구 포럼으로 가는 공개 링크를 모두 제거했기 때문에, 중복 콘텐츠로 인해 검색 인덱싱에 문제가 생길 위험은 없습니다.

@sam - 네, 몇 가지 예를 들어볼게요:

이 모든 게시물들은 지난 3년 동안 트위터나 공개 페이스북 페이지에서 공유해 본 적이 있는 것들이므로, 영원히 묻혀서 숨겨져 있는 것이 아닙니다.

사이트맵 플러그인 관련해서, 한번 시도해 볼게요. 찾을 수 있는 데이터를 모두 게시하겠습니다. 도움을 주신 모든 분들께 감사드립니다 :slight_smile:

감사합니다,
Kirupa

“js using generators animate example” 검색 시 제 3번째 결과입니다.

오늘 제가 올린 이 예시는 좋지 않은 선택이었을지도 모르겠습니다. 몇 시간 전 테스트를 위해 해당 항목을 수동으로 인덱싱에 제출했기 때문입니다. 7시간 전에 포럼 관리자 중 한 명이 이 검색어에 대해 확인한 내용은 다음과 같습니다:

말씀하신 대로 현재 상위 검색 결과 중 하나인 것이 맞습니다. 수동 인덱싱 제출이 이 결과에 어떤 영향을 미쳤을지 궁금합니다.

수정: 방금 사이트맵 플러그인을 설정했고, 사이트맵을 Google에 제출하여 인덱싱을 진행할 예정입니다!

@kirupa 님,

참고로, 구글이 동일한 도메인 내 두 사이트(예: kirupa.com)를 인덱싱할 때 유사한 콘텐츠가 있는 경우, 일반적으로 “벌칙”(실제로는 엄밀한 의미의 벌칙이라기보다 "정본 선택"에 가깝습니다)이 발생합니다. 즉, 구글의 알고리즘이 페이지 중 하나를 정본(canonical)으로 선택하고, 해당 페이지가 검색 결과에서 더 높은 순위를 차지하게 됩니다. (구글은 정본으로 판단되지 않는 페이지를 인덱스에서 제외하기도 합니다.)

구글은 이 문제에 대해 꽤 명확하게 입장을 밝힌 바 있습니다. 대부분의 경우 "중복 콘텐츠 벌칙은 신화"라는 것입니다. 실제로는 "정본화(canonicalization)"와 "선택"의 문제입니다:

사이트에 대부분 동일한 콘텐츠를 가진 여러 페이지가 있는 경우, 구글에게 선호하는 URL을 표시하는 몇 가지 방법이 있습니다. (이것을 "정본화"라고 합니다.) 정본화에 대한 자세한 정보. (참고 1)

예를 들어, 기존 사이트를 새 사이트와 함께 유지하는 경우, link canonical 태그를 사용하여 구글에게 새 사이트가 정본 사이트임을 알릴 수 있으며, 그러면 구글은 새 사이트를 우선시하게 됩니다.

더 나은 해결책은 검색 엔진이 이러한 URL을 크롤링할 수 있도록 허용하되, rel="canonical" 링크 요소, URL 파라미터 처리 도구 또는 301 리디렉션을 사용하여 중복으로 표시하는 것입니다. 중복 콘텐츠로 인해 웹사이트를 과도하게 크롤링하는 경우, Search Console에서 크롤 속도 설정을 조정할 수도 있습니다. (참고 1)

예시:

<link rel="canonical" href="https://forum.kirupa.com/t/js-tip-of-the-day-using-generators-to-animate/643058" />

@kirupa 님, 또한 다음과 같이 질문하셨습니다:

구글은 각 토픽을 인덱싱 가능한 "페이지"로 간주합니까? 이렇게 질문하는 이유는 우리 포럼의 토픽 중 상당 부분이 구글 데이터베이스에 없기 때문입니다.

구글과 무한 스크롤(infinite scroll)에 대한 훌륭한(다만 약간 오래된) 논의에 대해, 공식 구글 웹마스터 센트럴 블로그를 추천합니다. (참고 2):

https://webmasters.googleblog.com/2014/02/infinite-scroll-search-friendly.html

@kirupa 님, (이론이 아닌) 실용적으로 확인하는 방법 중 하나는 GSC(Google Search Console)를 사용하여 구글이 해당 페이지를 어떻게 표현하는지 그들의 "스크린샷"을 확인하는 것입니다. GSC의 “모바일 친화성 확인” 기능(예시)으로 쉽게 수행할 수 있습니다. 또한 Discourse에서 매우 긴 게시물을 가져와 구글이 해당 페이지의 어느 정도까지를 인덱싱(읽고 인덱싱)하는지 확인할 수 있습니다. 무한 스크롤과 구글의 인덱싱 방식에 대해 많은 의견이 있습니다. GSC를 사용하여 자신의 페이지를 확인하고 직접 살펴볼 수 있습니다.

구글의 Martin Splitt에 따르면 (참고 3 참조), 2020년 4월 14일에:

Splitt는 무한 스크롤(또는 "레이지 로딩"이라고도 함)에 의존하여 새 콘텐츠를 로드하는 뉴스 웹사이트를 예로 들었습니다.

즉, 이 경우 홈 페이지인 웹 페이지는 방문자가 화면 아래로 스크롤할 때까지 추가 콘텐츠를 로드하지 않습니다.

Splitt는 이것이 왜 문제가 되는지 설명합니다: “구글봇이 하지 않는 것은 무엇일까요? 스크롤을 하지 않습니다.”

구글봇이 하는 일은 페이지에 도착하여 즉시 보이는 것을 크롤링하는 것입니다.

Splitt가 언급한 바에 따르면, 구글봇은 페이지를 스크롤한 후에만 로드되는 콘텐츠를 크롤링할 수 없습니다.

언급했듯이, @kirupa 님, GSC의 도구를 사용하여 구글이 자신의 페이지를 어떻게 보고(및 인덱싱)하는지 스냅샷을 보여주는 것을 확인해 볼 수 있습니다.

구글의 Splitt가 2020년 4월에 말한 바에 따르면: “구글봇은 스크롤하지 않습니다.” (개요)

"구글 검색 인덱싱과 Discourse"라는 토픽 질문에 대해, 모든 사이트 소유자는 GSC를 사용하여 구글봇이 특정 페이지를 어떻게 인덱싱하는지 쉽게 결정할 수 있습니다.

제 추천은, 만약 구글봇이 자신의 페이지를 어떻게 인덱싱하는지에 대해 의문이 있다면 GSC(Google Search Console)를 사용하여 자신의 페이지를 확인해 보라는 것입니다. 이것이 조금이라도 도움이 되기를 바랍니다.

참고:

  1. How to Specify a Canonical with rel="canonical" and Other Methods | Google Search Central  |  Documentation  |  Google for Developers

  2. https://webmasters.googleblog.com/2014/02/infinite-scroll-search-friendly.html

  3. Google’s Martin Splitt Explains Why Infinite Scroll Causes SEO Problems

@neounix님, 정말 훌륭한 답변 주셔서 감사합니다! 곧 제안해 주신 내용들을 확인하고 따라 해볼게요 :slight_smile:

기존 포럼(kirupaForum)을 다시 공개하고, 새/활성 포럼에는 canonical 메타 태그를 추가하는 것이 좋은 아이디어인 것 같아요. 이번 주에 직접 실험해 보겠습니다.

그동안 Google Search Console에 약 30만 개의 항목이 포함된 사이트맵을 제출해 두었습니다.

@kirupa 님,

반갑습니다.

참고로,

Discourse 포럼은 이미 주제(topic)에 canonical 태그를 추가합니다.

아래는 포럼에서 가져온 링크이며, 예시 중 하나의 소스에서 해당 태그가 표시되는 모습입니다:

Screen Shot 2020-06-09 at 1.48.45 PM

Discourse 페이지에 이미 canonical 태그가 있음을 확인할 수 있습니다.

하나의 “기법”(공식적으로 지원되지는 않지만 실행은 가능함)은 해당 태그를 "기존 포럼"에도 추가하는 것입니다(새 포럼을 가리키도록 하거나), 또는 최소한 기존 포럼에 canonical 태그가 없도록 확인하는 것입니다.

그러나 솔직히 말하자면, 기존 포럼의 데이터베이스에서 Discourse 포럼의 올바른 주제 ID를 가져오려면 상당한 작업이 필요합니다(다른 목적으로 이미 수행했기 때문에, 현재 두 포럼 모두에서 이 정보를 사용하고 있어 직접 경험해 본 결과 가능하다는 것을 알고 있습니다).

Discourse에는 post_custom_fields 데이터베이스 테이블이 있으며, 여기에는 기존 포럼(주제 및 게시물 ID)에서 Discourse로의 매핑이 포함되어 있습니다. 원하신다면 Discourse에서 해당 데이터를 덤프하고 기존 포럼에 추가할 수 있습니다.

그 후, 원하신다면(특정 방식을 권하지는 않습니다) SEO 전략과 접근 방식에 따라 기존 포럼에서 새 Discourse 포럼을 가리키는 canonical 태그를 쉽게 생성할 수 있습니다.

일부 사람은 기존 포럼 페이지를 301 리다이렉트하는 방식을 선호합니다. 이는 전적으로 어떻게 관리하고 싶으시냐에 달려 있습니다! 301 리다이렉트를 원하신다면, Discourse 주제(및 게시물) ID와 기존 포럼 주제 및 게시물 ID 간의 매핑도 필요하다는 점을 유념해 두시기 바랍니다.

이 빠른 후속 답변이 @kirupa 님께 도움이 되기를 바랍니다.

좋은 하루 보내세요!