我管理的网站只有大约20-50页(文章,链接等)。不知何故,谷歌索引超过1000个链接(重复,URL中的不同字符串的相同页面)。我发现这些链接在网址中包含?date=
。我已经通过在Disallow: *date*
中编写robots.txt
来阻止,制作了一张XML地图(我之前没有过),将其放入根文件夹并导入Google网站站长工具。但问题仍然存在:搜索结果中的链接(可能会是)。我会轻松删除GWT中的URL,但是他们当时只能删除一个链接,并且不能逐个删除> 1000。
问题:是否可以在网址中包含$date=
的每个网页对原始网页进行动态301重定向,以及如何实现?我想Google会重新索引这些网页,重定向到原始网页,并从搜索结果中删除那些大量网页。
示例:
错误页面:www.website.com/article?date=1961-11-1
和 n 具有不同“日期”的相同网页
好页面:www.website.com/article
自动将所有坏页重定向到好页面。
我花了整整一天的时间试图解决这个问题,很高兴获得一些支持。谢谢!
P.S。至于我认为这个编码问题是在stackoverflow中问的正确的问题,但是如果我错了(请原谅我)将我重定向到正确的地方我可以问这个。
答案 0 :(得分:1)
您正在寻找the canonical link element,这就是Google建议解决此问题的方式(here是关于它的网站管理员帮助页面),并且它被大多数(如果不是全部)搜索引擎使用。放置像
这样的元素时<link rel='canonical' href='http://www.website.com/article'>
在页面标题中,href属性中的URI将被视为页面的“规范”版本,要编入索引的版本等等。
对于记录:如果重复内容不是html页面(例如,它是动态生成的图像),并且假设您正在使用Apache,则可以使用.htaccess重定向到规范版本。不幸的是,Redirect和RedirectMatch指令不处理查询字符串(它们严格用于URI),但您可以使用mod_rewrite来剥离部分查询字符串。例如,请参阅this answer了解相关方法。