我们已将 Discourse 论坛的结构设置为严格通过群组控制类别可见性。我们的目标是为登录用户创造一个有组织、个性化的体验,同时确保公共内容出于 SEO 目的仍然可访问。我们当前的设置包括:
基于群组的访问 – 用户必须加入群组才能查看特定类别。
跟踪的类别 – 加入群组后,用户会自动跟踪其关联的类别。
静音类别的行为 – 静音的类别应默认折叠。
搜索权限 – 登录用户只能看到他们有权访问的类别的搜索结果。
SEO 的公共可见性 – 未登录的访问者(包括 Google 爬虫)应能够查看所有类别并对其进行索引。
入职要求 – 新用户必须在参与之前选择一个群组。
我们面临的挑战
1. 基于群组的类别可见性未按预期工作
- 当用户加入群组时,预期行为是群组的类别应显示在主页和类别页面上。
- 但是,这不会立即发生——有时类别根本不显示,或者仅在向下滚动后才显示。
- 较早创建的类别(例如“验血师”)行为正常,而新创建的类别(例如“法警”)显示需要更长时间或直到手动触发才出现。
- 用户经常只看到静音的类别,而不是预期的跟踪/关注的类别。
- 临时修复:如果用户手动取消静音至少一个类别,其他已加入的类别将开始正确显示。
2. 搜索结果显示不相关类别
- 登录用户正在看到他们无权访问的类别的搜索结果。
- 预期行为:Discourse 应将搜索结果限制为仅用户所属群组的类别。
- 观察到的行为:搜索仍然返回所有类别的结果,这意味着用户可以看到他们技术上不应访问的内容片段。
- 相关讨论:在 ask[.]discourse[.]com 上的讨论证实,Discourse 应该根据群组权限限制搜索结果。
3. SEO 与 Google 爬虫 vs. 限制访问
- 我们希望所有类别都能被 Google 索引,以便内容可以在搜索结果中被发现。
- 但是,我们不希望登录用户默认看到所有类别——只希望他们看到与其所选群组关联的类别。
- 当前问题:如果我们隐藏某个类别不让登录用户看到,它也会从 Google 中消失,导致无法索引。
- 理想解决方案:Google 应该能够抓取和索引所有类别,但登录用户的搜索结果仍应根据群组权限进行限制。
向社区提问
如何确保已加入的类别立即显示在静音类别之上?
如何在完全强制执行登录用户的搜索结果限制的同时,保持内容对 SEO 可见?
是否有办法允许 Google 索引所有公共类别,同时仍然对登录用户隐藏它们,直到他们加入群组?
在不阻止公共读者发现内容的情况下,强制在注册时选择群组的最佳方法是什么?
相关讨论与参考资料
基于群组的类别访问未按预期工作 – 关于类别可见性延迟、静音类别覆盖跟踪设置以及搜索行为问题的讨论。
[搜索结果受群组权限限制 (ask[.]discourse[.]com)] – 确认 Discourse 根据群组权限限制搜索结果,但我们需要一种方法来平衡这一点与 SEO。
问题视频演示:
