솔직히 그 토픽들이 topic_embed 레코드를 누락하게 된 원인이 무엇인지 정확히 모르겠습니다.
하지만 더 큰 그림을 본다면, 제가 이전에 제안했던 구성 방식을 따르는 것이 더 합리적이지 않을까요? 카테고리 설정에 noindex를 해당 카테고리 내 모든 토픽에 적용할 수 있는 체크박스를 직접 추가한다면, 임베드 기능을 의존하거나 해당 레코드가 실제로 존재하는지 걱정할 필요가 없게 됩니다.
그 구성이 사용자의 사이트에는 합리적일 수 있지만, 주제 임베드 캐노니컬 URL이 작동하는 방식과는 다른 기능입니다. 해당 기능을 구축할 수는 있지만, 커스텀 플러그인으로 직접 구현해야 합니다.
임베드용 캐노니컬 URL은 의도대로 작동하고 있습니다. 다만, 어떤 시점에 임베드 레코드가 삭제되었거나 사용자의 사이트에서 다른 작업이 수행된 것으로 보입니다. Discourse는 주제 임베드 레코드를 영구 삭제하지 않으므로, 다른 원인이 있었을 것입니다. 커스텀 작업을 수행하지 않는 한, 해당 주제들을 다시 게시하여 임베드 레코드를 다시 생성해야 합니다.
이 기능은 토픽 임베드와 동작 방식이 다르지만, 카테고리 수준의 인덱싱 제어는 모든 최신 CMS의 기본 SEO 요구사항입니다. 이 주제에 대한 다른 메타 토픽도 여러 개 있으며, 이를 네이티브 기능으로 지원하면 여러 사용 사례를 한 번에 해결할 수 있습니다.
Ruby가 제 주 스택이 아니기 때문에 AI를 활용해 플러그인을 만들어 볼 수도 있지만, 이 기능은 정말로 네이티브로 제공되어야 합니다.
누락된 레코드와 관련하여, 이를 유발할 수 있는 데이터베이스 명령어나 작업을 실행한 적이 없습니다. 또한 재게시도 현실적인 해결책이 아닙니다. 게시물이 약 50,000개에 달하며, 어떤 게시물들이 영향을 받았는지도 정확히 알지 못합니다. 이를 수정하려면 모든 항목을 찾아 삭제하고 다시 게시하기 위한 복잡한 API 스크립트가 필요합니다…
sitemap.xml은 일반적으로 하위 사이트맵을 가리키는 인덱스이므로, 먼저 하위 사이트맵을 확장한 뒤 각각에 대해 이 명령을 실행하세요. 사이트가 레이트 리미팅을 적용하고 있다면 sleep을 추가하세요.
나중에 이 내용을 찾는 분들을 위해 구분할 가치가 있는 한 가지: 헤더와 캐노니컬은 두 개의 독립적인 신호이며, 각각 독립적으로 실패할 수 있습니다 — 주제가 X-Robots-Tag를 잃어버리고도 올바른 캐노니컬을 유지하거나, 그 반대의 경우도 가능합니다. 둘 다 확인하세요: