使用Canonical和/或prev / next链接的正确方法

时间:2017-09-20 01:25:57

标签: php html mysql html5 mysqli

我有一个网站 example.com ,它从数据库中提取信息,使用分页,这样每页只显示12个项目。

我允许用户按照自己的意愿查看信息(ORDER BY):

  • example.com/new/1(年DESC)
  • example.com/old/1(年度ASC)
  • example.com/alpha/1(title ASC)
  • example.com/recent/1(id DESC)

基本上,example.com?sort = new& page = 1

问题#1:

example.com example.com/recent/1 完全相同,我使用switch语句检查是否选择了任何排序功能,如果不是& #34;最近" (id DESC)被选中。

如果用户访问 example.com ,是否应将其重定向到 example.com/recent/1

问题#2:

我对如何设置关于排序(排序?)方法的Canonical链接感到困惑,我可以放一个example.com,还是我必须制作单独的Canonical链接?

<link rel="canonical" href="https://example.com/new/1" />
<link rel="canonical" href="https://example.com/old/1" />

不确定如何处理我的主页,因为它与/ recent / 1相同。

谢谢!

编辑:我没有尝试将文章分成几个部分,但让我们说通过分页显示几篇文章。

1 个答案:

答案 0 :(得分:0)

您有三种选择:

  • 基本网址分页大会化为&#34;默认&#34;网址。
  • 将所有内容统一到以bot为目标的未分页列表。
  • 结合使用这两个选项,并实现延迟加载分页。

将您的&#34;默认&#34;分页网址

无论您决定在您的base-url example.com/2还是特定路径example.com/recent/3上允许分页,都应将所有内容(使用prev / next)加入该网址。

如果我认为只能通过/recent/#访问备用页面,那么您应该将所有排序和分页网址简化为/recent/。然后将prev / next cannonicalization设置为有序网址。

/最近/ 4

  • 可以:/ recent
  • 上一篇:/ recent / 3
  • 下一篇:/ recent / 5

/最近/ 1

  • 可以:/ recent
  • 下一篇:/ recent / 2

/旧/ 7

  • 可以:/ recent
  • 上一篇:/ old / 6
  • 下一个:/ old / 8

这方面的主要原因来自于上一个/下一个规范化的目的和效果。特别是,它告诉搜索索引将所有页面视为单个大页面。结果是,就谷歌而言,订购网址之间的内容是相同的。

比简单的prev / next更聪明,并遵循谷歌的建议

另一种方法是在您的域根example.com上简单地显示对机器人的巨大(未标记)响应,并将每个页面设为规范化,其中prev / next特定于有序网址。

延迟加载

在您选择了上述选项的某些组合之后,我们应该仔细查看延迟加载您的搜索结果,并删除网址中的页码。

这涉及在视图之外使用ajax加载和卸载页面和项目。 EX:您的用户滚动到第7页,而ajax将页面8和9的项目加载到页面上,并从第3页和第4页的页面项目中删除。

如果你这样做,谷歌不会关心你是否正在创建以bot为目标的内容。事实上,他们建议将其用于AdSense seo的某些案例。

更多阅读

https://support.google.com/webmasters/answer/1663744?hl=en https://webmasters.googleblog.com/2011/09/pagination-with-relnext-and-relprev.html https://webmasters.googleblog.com/2013/04/5-common-mistakes-with-relcanonical.html