65.9K
CodeProject 正在变化。 阅读更多。
Home

DotNetNuke 搜索引擎优化第二部分——消除重复内容

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.58/5 (6投票s)

2007年3月26日

5分钟阅读

viewsIcon

41291

通过移除重复内容来提高您的 DotNetNuke 搜索引擎优化。

引言

在创建网站时,您必须注意避免重复内容,因为这会导致搜索引擎惩罚您的排名。如果搜索引擎看到重复的内容,它会给该页面一个非常低的 relevancy score - 想法是任何重复内容只有原始版本才是相关的。重复内容有两种:故意重复 - 即,从另一个网站复制,和无意重复 - 即,在同一网站的多个地方出现,而它本应只出现一次。如果您的内容是故意重复的,那么明显的解决方案就是删除它,或者至少用您自己的话重写它。然而,DotNetNuke 允许您无意中重复您的内容 - 您可能拥有重复的内容甚至没有意识到。我们将探讨无意重复内容的原因,以及如何处理它。

登录和注册控件

作为您的 DotNetNuke 网站皮肤的一部分,您可能拥有登录控件和注册控件,它们会渲染一个像这样的超链接:http://www.mywebsite.com/default.aspx?ctl=Login。点击此链接会重新加载页面,并且只显示登录或注册模块,而不是您放置在该页面上的模块。问题在于,搜索引擎会将普通页面和带有登录或注册控件的页面视为两个独立的物理页面。搜索引擎会将您的 ctl=Login 页面视为与普通页面大约 80% 重复,以及与 ctl=Register 页面大约 90% 重复。由于这两个控件可能几乎出现在每个 DotnetNuke 网站的页面上,重复的数量将是页面数量乘以 4。由于搜索引擎根本不需要索引登录或注册页面,我们将使用 robots.txt 将它们排除,方法如下。

隐私和条款控件

大多数 DotNetNuke 皮肤还将包含条款控件和隐私控件,它们会渲染一个像这样的超链接:http://www.mywebsite.com/default.aspx?ctl=Terms。点击此链接会重新加载页面,并且只显示条款模块或隐私模块。这两个模块是 DotNetNuke 网站重复内容的最严重问题。为什么会这样?看看您自己的 DotNetNuke 网站的条款页面和隐私页面。这些页面包含大量的文本,这些文本与外面几乎所有其他的 DotNetNuke 网站都 99.99% 重复,唯一的区别是网站管理员的电子邮件。通过拥有这两个页面,一个网站几乎完全重复了可以在数千个其他网站上找到的两段大文本。这些条款和隐私内容文本也可以在主要的 DotNetNuke 网站 www.dotnetnuke.com 上找到,该网站的页面排名非常高,为 8 - 那么搜索引擎会认为您抄袭了 DotNetNuke,还是 DotNetNuke 抄袭了您?显然,搜索引擎会认为您是抄袭者。那么,您的条款和隐私页面获得非常低的排名就不足为奇了,但这会对您网站的其余排名有什么影响呢?很难说,因为所有搜索引擎都是黑箱,它们不会告诉您它们如何计算排名。这绝对无助于提高网站的排名,并且应该立即修复。

使用 robots.txt 修复重复内容

现在我们已经确定了问题,我们该如何解决它?唯一的方法是使用 robots.txt 文件来排除所有以 &ctl=Login&ctl=Register&ctl=Privacy&ctl=Terms 结尾的页面。不幸的是,robots.txt 文件不支持通配符 URL,因此我们必须手动输入每一个 URL。如果我们使用的是正确的搜索引擎友好 URL,我们的 robots.txt 将如下所示:

User-agent: *
Disallow: /dnn/my-page.aspx?ctl=Login
Disallow: /dnn/my-page.aspx?ctl=Register
Disallow: /dnn/my-page.aspx?ctl=Privacy
Disallow: /dnn/my-page.aspx?ctl=Terms
Disallow: /dnn/another-page.aspx?ctl=Login
Disallow: /dnn/another-page.aspx?ctl=Register
Disallow: /dnn/another-page.aspx?ctl=Privacy
Disallow: /dnn/another-page.aspx?ctl=Terms

如果使用内置的 DotNetNuke 友好 URL,那么 robots.txt 将如下所示:

User-agent: *
Disallow: /dnn/TabId/111/ctl/Login/Default.aspx
Disallow: /dnn/TabId/111/ctl/Register/Default.aspx
Disallow: /dnn/TabId/111/ctl/Terms/Default.aspx
Disallow: /dnn/TabId/111/ctl/Privacy/Default.aspx
Disallow: /dnn/TabId/222/ctl/Login/Default.aspx
Disallow: /dnn/TabId/222/ctl/Register/Default.aspx
Disallow: /dnn/TabId/222/ctl/Terms/Default.aspx
Disallow: /dnn/TabId/222/ctl/Privacy/Default.aspx

其皮肤中包含这些控件的每一个页面都必须包含在 robots.txt 中。一旦被排除,搜索引擎将不再查看这些页面,您的重复内容最终将从搜索引擎的索引中删除。请耐心等待,搜索引擎有时更新速度不快。请注意,robots.txt 文件只能放置在 www.yourwebsite.com/robots.txt;搜索引擎不会在其他地方查找它。

结论

我们已经看到,无意中违反搜索引擎关于重复内容的规则并因此导致排名下降是可能的。我们还表明,解决方案是一组简单的规则,必须添加到您的 robots.txt 文件中。其中一些重复内容比其他内容更糟糕,而且由于这是一个非常简单的修复,所以没有借口不立即执行。

关注点

这篇文章的提交是 DotNetNuke 系列博客文章的一部分。原始博客文章“移除重复的 DotNetNuke 内容以提高 PR”可以在我的网站 www.bestwebsites.co.nz 上看到。本系列的上一篇文章 DotNetNuke 搜索引擎优化 也可以在 CodeProject 上找到。我们现在还发布了一个 DotNetNuke 模块,用于自动生成您的 robots.txt 文件内容,为您节省时间和精力 - DotNetNuke 4.x.x 的 SEO Robots.txt 生成器模块

历史

  • 2007 年 3 月 28 日:添加了指向上一篇文章 DotNetNuke 搜索引擎优化第一部分的链接。
  • 2007 年 3 月 31 日:“DotNetNuke Newsletter Vol. III, Number 3”提到了这篇文章。
© . All rights reserved.