需要一种在分类中的话题添加“meta robots noindex”的方法

继续讨论 针对薄内容或修改元标签的 SEO

我也遇到了同样的问题。

我正在使用 WP-Discourse,它非常棒!但是,每发布一篇新博客文章,它都会在我的社区中创建一个标题完全相同的话题。两个 URL 拥有相同的标题并不是好事,因为它们在搜索结果中会相互争夺权重。

此外,话题中的评论也会被打印在博客文章下方,从而生成重复内容(多个 URL 上的内容相同)。

这两者都是巨大的 SEO 问题,可能导致域名受到惩罚。

如何解决?

解决方案很简单:在分类配置框中添加一个复选框:

[ ] 在搜索结果中隐藏该分类的话题

当勾选此复选框时,所有相关页面的头部都会插入 noindex 标签:包括分类本身、话题、分页等。

<meta name=“robots” content=“noindex, dofollow”>

这样,所有内容对用户仍然可见,但会被搜索引擎忽略。


无法解决问题的方法

让我先走几步,回应一些常见的建议。我看到过几个关于此问题的话题,但它们的建议实际上都无法解决问题。

Robots.txt

最常见的解决方案是在 robots.txt 中添加 “disallow: /c/category/id”。但这只会将分类本身从搜索结果中移除,而无法移除话题,而这正是主要问题所在。

话题的 URL 结构都相同,因此我们无法通过在 robots.txt 中添加“拒绝”行来简单地阻止它们。

例如:

Login | HSTS Redirection Community

取消列出话题

取消列出的话题对搜索引擎仍然可见。它会在社区列表中隐藏,但如果您拥有直接链接,仍然可以访问该话题。我们需要将用户引导至话题,因此我们会在博客文章中添加指向它的链接。因此,搜索引擎也会找到所有取消列出的话题。

请注意,对该链接添加 nofollow 属性并不会让 Googlebot 忽略它:Official Google Webmaster Central Blog: Evolving “nofollow” – new ways to identify the nature of links

同时,取消列出话题会导致用户参与度下降,因为用户无法在社区内从一个话题跳转到另一个话题。

因此,这个想法无法解决任何问题。它会导致参与度下降,同时完全无法将话题对搜索引擎隐藏。

要求登录才能查看该分类中的话题

当新用户点击评论按钮时,他/她将看到“此页面不存在”的消息,而不是话题内容。用户会认为网站出了问题并离开。因此没有评论,也没有新用户注册。这对参与度和可用性非常不利。


总之,在 Discourse 中添加此选项,或者如果有人能开发一个简单的插件,将非常有用。

它需要添加到核心功能中,否则 Googlebot 会忽略 JavaScript。

SEO 专家们会非常感激!

4 个赞

这并不能直接回答您的问题,但 Discourse 新增了一个名为“embed set canonical url”的站点设置,或许能对您有所帮助。启用该设置后,通过 WP Discourse 插件或 Discourse JavaScript 嵌入代码创建的 Discourse 话题,其规范 URL 将被设置为关联博客文章的 URL。

4 个赞

这确实有帮助,谢谢!

我之前不知道有这个新功能。

不过我有一个问题:

除了 wp-discourse 插件,我对嵌入机制不太熟悉。如果用户创建的话题中包含指向其他内部链接的内容,这些链接会被设置为规范链接吗?

1 个赞

不会。如果用户通过在作曲器标题字段中粘贴 URL 来创建主题,将会生成一个特色链接。但这不会导致该特色链接的 URL 被设为规范 URL。

当启用 embed set canonical url 站点设置时,具有关联 topic_embed 的主题,其规范 URL 将被设为该 topic_embed 的 URL。Discourse 的 JavaScript 嵌入代码会自动完成此操作。也可以通过 API 创建主题并传入 embed_url 属性来实现。我们的 WordPress 插件正是这样工作的。

3 个赞

您好 @simon 和团队——这个讨论串很棒!我的社区(https://community.americanradioclub.com/)也遇到了同样的问题。我想自动发布到 discourse,但对于(所有或部分)来自 wordpress 的帖子,我想在 discourse 讨论中设置 no-index,以避免重复内容并防止 SEO 受罚。有人找到好的解决方案了吗?谢谢!

3 个赞

@James_Cribbs 你解决这个问题了吗?

没有什么需要解决的。根本没有 SEO 问题。Discourse 提示原始问题在 wordpress-address 中。

如果有人想操纵 SER 以给出两个完全相同的命中,那么整个内容必须不同。

这个话题应该关闭。