你好 ![]()
我想分享一下我是如何改进我们论坛的访客流程的。由于我们的社区围绕电子烟展开,法律法规和严格的 18+ 年龄限制要求我们将主题对公众隐藏。如果访客尝试打开论坛上的任何未授权页面,系统会阻止访问并将他们重定向到 /login 页面。
虽然这条规则听起来很简单,但它曾引发严重的用户体验问题,而我现在通过一些自定义逻辑终于解决了这些问题。
为什么我们不使用内置的“需要登录”设置?
最明显的解决方案是在管理面板中简单地启用全局锁定。然而,由于一个巨大的原因,我们无法这样做:SEO(搜索引擎优化)。
如果使用内置锁定,Discourse 也会屏蔽搜索引擎爬虫(如 Googlebot、Bing 等)。这意味着论坛会在 Google 上失去排名,导致我们在搜索结果和 AI 推荐中完全消失。
现在,爬虫可以正常通过并索引内容,而人类访客会被拦截并重定向到登录页面。
问题:流失的访客
我们之前的自定义网关存在一个主要缺陷:
目标页面丢失: 如果有人从 Google 点击了某个特定主题,网关会立即将他们重定向到登录页面。访客丢失了他们原本想查看的具体文章,因为他们只看到了登录页面,导致许多人立即关闭网站(导致高跳出率)。
解决方案:现在的流程如何工作
我们现在使这一过程完全无摩擦。当访客通过外部链接到达时,后台会发生以下情况:
-
视觉预览(主题预览卡片): 为了避免让访客面对一个生硬的登录墙,登录表单上方会出现一个信息卡片。这立即展示了所请求主题的标题、封面图片、简短文本摘要、作者和回复数。这样,用户就能清楚地看到登录的价值所在。
-
即时重定向到内容: 一旦用户登录或注册,Discourse 会自动将他们直接重定向回他们想要阅读的具体主题。
通过这种逻辑,论坛完全符合严格的年龄限制法律,Google 可以无障碍地索引页面,而预览卡片向访客展示了他们即将解锁的内容,为他们提供了明确的登录理由。
