如何在Joomla中处理重复的内容/ URL?


11

我刚刚发现了一个主要的SEO问题,尽管我暂时已解决了该问题;我试图弄清楚为什么它可能首先发生,以及是否有错误或与Joomla本身有关。首先是问题:

当我使用Moz爬网一个站点时,它显示了主页的四个重复内容,这是意外的。因此,例如对于主页http://www.foo.com,它显示了重复的内容URL,如下所示:

foo.com/2-uncategorised/1-offers (canonical = foo.com/2-uncategorised/1-offers)
foo.com/2-uncategorised/2-enquiry (canonical = foo.com/2-uncategorised/2-enquiry) 
foo.com/2-uncategorised/3-products (canonical = foo.com/2-uncategorised/3-products) 

所有这些链接都只是在加载首页内容,而元数据详细信息来自本文。显然,这表明Joomla正在自动创建链接,而我发现4个链接都相同。文章中的链接是这样的:

index.php?option=com_content&view=article&id=1&catid=2&Itemid=1
index.php?option=com_content&view=article&id=2&catid=2&Itemid=1
index.php?option=com_content&view=article&id=3&catid=2&Itemid=1

Itemid = 1对应于这解释了为什么网页无法载入网页的菜单项。我尝试重新创建问题,但无法完成。根据添加内容的人员,以下是他们在创建这些文章和其中的链接时执行的步骤:

  1. 创建文章
  2. 使用内容编辑器中的“文章”标签添加指向其他文章的链接。
  3. 创建文章的菜单项

所以我想知道这里是否有明显的问题。我很困惑,因为有100多篇文章,但是只有大约5篇文章发生了。谢谢。

Answers:


15

此答案的目录:

  1. 同一项目编号下的内容
  2. 如何创建重复的内容/动态页面/ URL
  3. SEO观点
  4. 在Joomla中处理重复内容
  5. 参考和链接

1.为什么在相同的itemid下显示文章

首先,这不是为什么要获取重复的URL的问题。这些文章使用首页的商品ID,因为没有为其分配其他商品ID。

阅读更多有关此的内容:

这个也许也很有见地:



2.如何创建“重复内容” /动态页面/ URL

这实际上是动态网站的标准行为,这些动态网站通过使用URL参数以“ 字段-值”对的形式构造查询字符串来生成其页面。服务器/应用程序将接收查询,对其进行处理,然后将关联内容返回给浏览器。

为了更好地理解这一点,您可能想要在Joomla网站中禁用SEF Urls并研究页面的非SEF Url:

例:

index.php?option = com_content&view = article&id = 3&catid = 9&Itemid = 101

将上面的查询分为字段-值对,我们看到:

  • 选项= com_content
  • 视图=文章
  • id = 3
  • catid = 9
  • 物品编号= 101

这些是Joomla理解的fields-values,它们将尝试返回以下内容:

它将在com_content组件中进行查询,并使用文章视图显示ID为3的ID为3的内容项(文章),并使用ID为101的菜单项。


1页的许多URL变体

但是,同一文章可以显示更多的字段-值组合:

一些可能的组合可能是:

  • index.php?option = com_content&view = article&id = 3&catid = 9
  • index.php?option = com_content&view = article&id = 3&Itemid = 101
  • index.php?option = com_content&view = article&id = 3&Itemid = 102
  • index.php?option = com_content&view = article&id = 3&Itemid = 103
  • index.php?option = com_content&view = article&id = 3
  • index.php?option = com_content&view = article&id = 3&lang = zh-CN
  • index.php?option = com_content&view = article&id = 3&catid = 9&Itemid = 101&lang = zh-CN

  • index.php?option = com_content&view = article&id = 3&catid = 9&Itemid = 101&lang = zh-CN&print = 1

  • index.php?option = com_content&view = article&id = 3&catid = 9&Itemid = 101&lang = zh-TW&tmpl = component

如您所见,所有上述内容都从系统请求相同的数据,即id = 3的文章。这些导致以下事实:可以通过各种不同的url访问相同的内容/页面,并且在某些情况下可以以不同的布局显示。

*使用SEF网址中的Joomla启用,上述潜在的可能转化到超过1 SEF URL的同一篇文章/内容。



3. SEO的观点

现代搜索引擎(尤其是Google)都知道这种行为。通常,他们会尽力而为,为页面建立索引并将最合适的URL保留在搜索结果中。此外,谷歌透露,因此,对重复的内容没有实际的“ 惩罚 ”。

但是,在对同一内容/页面进行多次索引的情况下,主要问题是您可能失去页面排名和可能的最佳SEO性能,因为页面排名将被分割为1个以上的页面,而不是1个页面。 。

考虑到这一点,处理此问题是明智的,而不是让搜索引擎为URL编制索引,同时尝试猜测不同的URL显示的是相同还是不同的内容。
此外,控制站点的URL和应该索引的SE可以帮助您整体上产生更好的用户体验,因为站点用户只能在1个标准URL下找到相同的页面,并且可以为网站及其管理提供更坚实的结构。



4.如何处理重复内容

  • 在页面上使用规范URL。
    Canonical Urls将指示搜索引擎应认为应该爬网并保留在其索引中的页面的正确URL。

  • 使用INDEX / NOINDEX,FOLLOW / NOFOLLOW元数据。 在您的页面中使用这样的元数据,将指示搜索引擎是否希望它们对页面的内容编制索引,以及是否跟踪页面上的链接。

  • 使用301重定向/ htaccess。
    您可以将所有其他URL重定向到主要URL。这可以通过SEF Extensionshtaccess来实现。两者都提供强大的功能,但是考虑到能够使用正则表达式进行各种重定向/或使用mod_rewrite进行重写的功能,htaccess具有很大的灵活性。关于J扩展,当需要时,我通常使用sh404SEF

    更新:正如@Neil Robertson在评论中指出的那样:一个重要的重定向是从网站的非www版本到网站的www版本,反之亦然。将此添加到.htaccess文件中,以实现非www到www的重定向。

        ### Redirect non-www to www
        RewriteCond %{HTTP_HOST} !^www\. [NC]
        RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
        ### Redirect non-www to www - END 
    
  • 使用Google网站管理员工具
    Google网站管理员工具提供了一些选项,可用来调整搜寻器应如何使用您的URL参数

  • 使用站点地图
    提交给搜索引擎您站点的URL结构。


  • Google和其他主要SE 使用Robots.txt文件尊重您的Robots.txt。您可以指示他们不要抓取特定目录/ URL路径。

可以组合以上所有选项,以产生所需的结果。

*与其他地方一样,因此在Joomla中,良好的计划和内容组织总是有助于达到更好的结果。特别是对于Joomla,这还涉及干净的内容分类和菜单项结构。



5.参考和链接

Joomla SEO扩展

通常,在Joomla中,如果您想有效地处理此问题,您最终会安装第三方SEO-SEF扩展程序。



更多阅读:


1
这个论坛上最好的答案之一:)非常有帮助。感谢@FFrewin
Joomler '16

1
这是一个很好的答案。:)为完整起见,最好添加一些有关将网站的非www版本重定向到网站的www版本的信息,反之亦然。这通常被遗忘,但可能是所有网站(不仅仅是Joomla)上重复内容的主要原因。
尼尔·罗伯逊

看来新路由器最终将在Joomla 3.8中崭露头角,这将有助于简化url,而无需第三方扩展。
尼尔·罗伯逊

1
@NeilRobertson:我仍然认为仍然有改进的空间,为此需要一个完整而有效的解决方案来管理Joomla上的SEF URL /重复项,还有更多工作要做。
FFrewin

@FFrewin我同意。看起来某些第三方扩展也可能必须更新才能利用新路由器。
尼尔·罗伯逊

0

如果我有多个转到相同内容的菜单项,则使用菜单管理器中的“系统链接/菜单项别名”。这是一篇关于它的老文章;但该方法今天仍然存在:https//magazine.joomla.org/issues/issue-apr-2016/item/2997-avoid-duplicate-content-with-a-menu-item-alias

@Neil,我同意100%关于将非www内容与www内容重复阅读。这是强制www为非www的代码。将其放在您的htaccess文件中。此外,它也添加了https安全协议。这段代码不是唯一的方法,但这是我在许多站点上成功使用的方法。

RewriteCond %{HTTP_HOST} ^www.yourwebsite.com [NC]
RewriteRule ^(.*)$ https://yourwebsite.com/$1 [L,R=301]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.