我最近开始使用Google Webmaster Tools。
我很惊讶地看到谷歌试图索引的链接数量。
http://www.example.com/?c=123
http://www.example.com/?c=82
http://www.example.com/?c=234
http://www.example.com/?c=991
这些是作为合作伙伴网站链接存在的所有广告系列。
目前,我们的机器人文件一直被拒绝,直到网站完成为止 - 就像网站上的每个页面一样。
我想知道处理这样的链接的最佳方法是什么 - 在我使robots.txt文件限制较少之前。
我担心他们会被视为不同的网址,并开始出现在谷歌的搜索结果中。它们都对应于同一页面 - 给予或接受。我不希望人们发现它们并点击它们。
到目前为止,最好的想法是呈现包含查询字符串的页面,如下所示:
// DO NOT TRY THIS AT HOME. See edit below
<% if (Request.QueryString != "") { %>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<% } %>
我需要这样做吗?这是最好的方法吗?
编辑:结果不是一个好的方法。事实证明,Google在与没有NOINDEX的另一个页面具有相同内容的页面上看到NOINDEX。显然它认为它们是相同的,NOINDEX优先。结果,我的网站完全从Google中消失了。警告:它可能是我同时做的其他事情,但我不会冒这种风险。
答案 0 :(得分:4)
rel="canonical"
就是为此而设计的。 Google posted a blog article about it.
答案 1 :(得分:1)
是的,Google会将其解释为不同的网址。
根据您的网络服务器,您可以使用重写过滤器删除搜索引擎的参数,例如Tomcat为url rewrite filter,Apache为mod rewrite。
就个人而言,我只是重定向到删除了跟踪参数的同一页面。
答案 2 :(得分:0)
这似乎是最好的方法,除非页面存在于它自己的文件夹中,在这种情况下你可以修改robots.txt文件只是为了忽略该文件夹。
答案 3 :(得分:0)
对于不应编入索引的资源,我更喜欢在页面加载中执行简单的返回:
if (IsBot(Request.UserAgent)
return;