我正在寻找一个解决方案,以deindex所有的URL与查询字符串?te=从谷歌。从例子中,我想从谷歌的所有网址https://example.com/?te=的反索引。谷歌目前已经用相同的查询字符串索引了21k个URL,我希望它们都被解索引。我应该使用X机器人文件来这样做吗?有什么可能的解决办法呢?我尝试使用robot.txt阻止它们,使用命令
?te=
https://example.com/?te=
robot.txt
Disallow: /*?te=
但这对我没什么帮助。
wvt8vs2t1#
你的机器人。txt解决方案将主要工作,如果你给它足够的时间。Google通常会停止索引无法抓取的URL。但是,Google偶尔会根据外部链接对此类URL进行索引,而不会对页面内容进行索引。使用X-Robots-Tag是一个更好的主意。它将阻止谷歌索引页面。您需要从robots.txt中删除disallow规则,否则Googlebot将无法抓取您的URL并查看X-Robots-Tag。您还需要给予Googlebot时间来抓取所有页面。一些页面将在几天内开始被取消索引,但Googlebot可能需要几个月的时间才能完成所有这些页面。如果你使用Apache 2。4或更高版本,您可以在.htaccess中使用Apache的内置表达式来完成此操作:
X-Robots-Tag
robots.txt
disallow
.htaccess
<If "%{QUERY_STRING} =~ /te=/"> Header set X-Robots-Tag noindex </If>
如果你还在使用Apache 2。2或更早的版本中,您必须使用重写规则和环境变量来实现相同的效果:
RewriteCond %{QUERY_STRING} te= RewriteRule ^(.*)$ $1 [E=teinquery:1] Header set X-Robots-Tag noindex env=teinquery
我建议在命令行上使用curl进行测试,看看它是否正常工作。
curl --head "https://example.com/"
不应显示X-Robots-Tag: noindex行,但以下命令应显示该行:
X-Robots-Tag: noindex
curl --head "https://example.com/?te=foo"
1条答案
按热度按时间wvt8vs2t1#
你的机器人。txt解决方案将主要工作,如果你给它足够的时间。Google通常会停止索引无法抓取的URL。但是,Google偶尔会根据外部链接对此类URL进行索引,而不会对页面内容进行索引。
使用
X-Robots-Tag
是一个更好的主意。它将阻止谷歌索引页面。您需要从robots.txt
中删除disallow
规则,否则Googlebot将无法抓取您的URL并查看X-Robots-Tag
。您还需要给予Googlebot时间来抓取所有页面。一些页面将在几天内开始被取消索引,但Googlebot可能需要几个月的时间才能完成所有这些页面。如果你使用Apache 2。4或更高版本,您可以在
.htaccess
中使用Apache的内置表达式来完成此操作:如果你还在使用Apache 2。2或更早的版本中,您必须使用重写规则和环境变量来实现相同的效果:
我建议在命令行上使用curl进行测试,看看它是否正常工作。
不应显示
X-Robots-Tag: noindex
行,但以下命令应显示该行: