阻止谷歌抓取每个页面上的特定链接

时间:2012-10-08 16:54:37

标签: robots.txt google-custom-search

当我第一次使用LESS CSS开始开发我的网站时,我在判断时犯了一个愚蠢的错误。使用LESS,如果您在网址末尾包含#!watch,则可以看到实时更新。所以,作为一个适当的懒惰开发人员,我在我的开发页面上创建了一个按钮,只有我知道这将使用#!watch附加当前URL。

但是,Google将该href视为合法链接,现在我的所有页面都被编入索引两次 - 一次用于“普通”页面,一次用#!watch附加到URL。

我的问题是如何从Google索引中删除!#watch? robot.txt行会这样做吗?这不是一个问题,但我也在内部使用Google自定义搜索,因此当用户在我的网站中搜索时,我会为相同的内容提供太多结果。

2 个答案:

答案 0 :(得分:1)

您可以使用规范链接元标记。它告诉搜索引擎真正的页面路径是什么,因此应该只触发一次索引,尽管任何哈希标记或查询字符串都附加到路径。

http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html

看起来像:

<link rel="canonical" href="http://www.example.com/realPagePath/" />

答案 1 :(得分:1)

我要做的是设置一个sitemap.xml文档,其中每个违规链接都设置为过期。我编写了一个简短的python脚本来迭代每一行(大约18,000个链接)并吐出格式化的xml。它看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>http://oq.totaleclips.com/mpa/The_Rise_of_the_Guardians_The_Video_Game_(Game)#!watch</loc>      
        <expires>2012-10-08</expires>
    </url>
   ....... (many more url entries)
</urlset>

请注意<expires>标记,如果不是其他搜索引擎,则由Google读取,作为索引的截止日期。显然,它们仍会显示30-60天,然后将停止作为搜索结果返回。