【问题标题】:Google: Disable certain querystring in robots.txt谷歌:禁用 robots.txt 中的某些查询字符串
【发布时间】:2013-10-07 11:18:47
【问题描述】:
http://www.site.com/shop/maxi-dress?colourId=94&optId=694
http://www.site.com/shop/maxi-dress?colourId=94&optId=694&product_type=sale

我有成千上万个类似上面的网址。不同的组合和名称。 我也有这些 URL 的重复项,它们具有查询字符串 product_type=sale

我想禁止 Google 使用 product_type=sale 将任何内容编入索引

这在 robots.txt 中是否可行

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于 SEO

标签: seo query-string google-search robot


【解决方案1】:

Google 支持 robots.txt 中的通配符。 robots.txt 中的以下指令将阻止 Googlebot 抓取具有任何参数的任何页面:

Disallow: /*?

这不会阻止许多其他蜘蛛抓取这些网址,因为通配符不是标准 robots.txt 的一部分。

Google 可能会花一些时间从搜索索引中删除您已阻止的网址。额外的 URL 可能仍会被编入索引数月。您可以在网站管理员工具被阻止后使用“删除 URL”功能加快处理速度。但这是一个手动过程,您必须粘贴要删除的每个单独的 URL。

如果 Googlbot 找不到不带参数的 URL 版本,使用此 robots.txt 规则也可能会损害您网站的 Google 排名。如果您通常链接到带有参数的版本,您可能不想在 robots.txt 中阻止它们。最好使用以下其他选项之一。


更好的选择是在每个页面上使用rel canonical meta tag

因此,您的两个示例 URL 都会在 head 部分包含以下内容:

<link rel="canonical" href="http://www.site.com/shop/maxi-dress">

这告诉 Googlebot 不要索引页面的这么多变体,而只会索引您选择的 URL 的“规范”版本。与使用 robots.txt 不同,Googlebot 仍然能够抓取您的所有网页并为其分配价值,即使它们使用各种 URL 参数。


另一种选择是登录Google Webmaster Tools 并使用“抓取”部分中的“URL 参数”功能。

在那里,单击“添加参数”。您可以将“product_type”设置为“不影响页面内容”,这样 Google 就不会使用该参数抓取和索引页面。

对您使用的每个不会更改页面的参数执行相同的操作。

【讨论】:

  • 这应该与moobot的回答结合起来。我认为奖励他/她是公平的,因为他们是新人。
  • 如果我将它添加到我的 robots.txt 文件中 User-Agent: * Disallow: /flickering/*?那只是不允许查询 flikcering 文件夹下的页面,但它仍然索引该文件夹中的所有页面?
【解决方案2】:

是的,这很简单。在您的 robots.txt 文件中添加以下行:

不允许:/*product_type=sale

前面的通配符 (*) 表示任何包含 product_type=sale 的网址将不再被 Google 抓取。

虽然它们可能仍保留在 Google 的索引中(如果它们以前存在的话),但 Google 将不再抓取它们,并且在 Google 搜索中查看时会说:此结果的描述不可用,因为此站点的robots.txt - 了解更多。

进一步阅读:Robots.txt Specifications

【讨论】:

  • 如何从索引中删除它们?
  • 将 URL 添加到 robots.txt 将不会立即将它们从索引中删除。它只会阻止 Googlebot 再次抓取它们。要从 Google 的索引中删除 URL,您需要添加 noindex 元标记或 rel 规范元标记(并让 google 抓取它们);或在 robots.txt 中手动输入每个网站管理员工具删除请求
猜你喜欢
  • 2016-06-26
  • 1970-01-01
  • 1970-01-01
  • 2014-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多