【发布时间】:2014-04-15 17:45:09
【问题描述】:
我正在使用 Codeigniter 构建我的网站。我的许多网址都包含多个斜杠,看起来像这样:
http://www.example.com/user/friend/mack/johnson/1023
我的问题是谷歌想要索引这个 URL 的几个不同的变体,比如:
http://www.example.com/user/friend/mack/johnson/
http://www.example.com/user/friend/mack/
http://www.example.com/user/friend/
http://www.example.com/user/
很遗憾,这些 URL 无处可去。有没有办法禁止 robots.txt 文件中允许的文件夹的子文件夹?我猜它看起来像这样:
Disallow: /user/*
Disallow: /user/*/*
Disallow: /user/*/*/*
Allow: /user/*/*/*/*
我有点害怕尝试这个。我真的不知道搜索引擎会如何反应。
关于答案:
似乎最具体的规则是遵循的规则。为此:
allow: /item/results/product/*/*/
allow: /item/results/product/*/*/*/$
disallow: /item/results/product/*/*/$
disallow: /item/results/product/*/*/*/*
允许
/item/results/product/some/thing/12345
和
/item/results/product/some/thing/12345/
但不是
/item/results/product/some/thing/
也没有
/item/results/product/some/thing/12345/a
【问题讨论】:
-
1.你怎么知道谷歌想要索引它们? 2. 访问这些 URL 时会发送哪些 HTTP 状态?
-
我在 Google 网站管理员工具中收到警告:google.com/webmasters/tools/home?hl=en“在过去 24 小时内,Googlebot 在尝试连接到您的网站时遇到了 238 个错误。您网站的整体连接失败率为 4.9%。”
-
报告显示了几个“未找到”和 404。虽然 4% 与最坏的情况相去甚远,但我真的想让 Google 知道特定类型的 URL 不会返回可行的结果。这些链接中的绝大多数都返回带有页眉和页脚的空白页面(其中有 1000 个,这可能会破坏我的 SEO。)
-
但是如果你正确地发送 HTTP 状态 404,搜索引擎已经知道他们没有什么有趣的东西可以找到。没有必要禁止 404 页面。
-
@unor:问题可能在于爬虫并不是特别聪明。他们会尝试点击
/user/foo,获得404,尝试/user/bar,获得404,然后/user/XXX以及他们拥有的所有其他组合,并不断获得404。然后操作爬虫(或监控代码)的人会看到所有这些 404 并决定完全停止爬取该站点,因为它得到了如此多的 404。另外,请求不是免费的。必须发送数以万计的 404 页面确实会消耗带宽和其他资源。最好告诉爬虫不要去寻找它不会找到任何有用的地方。