Google:在robots.txt中禁用某些查询字符串

时间:2013-10-01 10:23:55

标签: seo query-string google-search robot

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中是否可行

2 个答案:

答案 0 :(得分:21)

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

Disallow: /*?

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

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

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


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

因此,您的示例网址在主题部分中将包含以下内容:

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

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


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

在那里,点击“添加参数”。您可以将“product_type”设置为“不影响页面内容”,以便Google不会使用该参数对网页进行抓取和索引。

enter image description here

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

答案 1 :(得分:9)

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

  

禁止:/ * product_type = sale

前面的通配符(*)表示Google不再会抓取包含product_type=sale的所有网址。

虽然他们以前可能仍然留在谷歌的索引中,但谷歌将不再抓取他们,并且当在谷歌搜索中查看时会说:由于此网站的原因,该结果的描述不可用robots.txt - 了解更多信息。

进一步阅读:Robots.txt Specifications