Google抓取工具会找到robots.txt,但无法下载

时间:2010-08-19 16:40:17

标签: search-engine search-engine-bots

有人能告诉我这个robots.txt有什么问题吗?

http://bizup.cloudapp.net/robots.txt

以下是我在Google网站站长工具中遇到的错误:

Sitemap errors and warnings
Line    Status  Details
Errors  -   
Network unreachable: robots.txt unreachable
We were unable to crawl your Sitemap because we found a robots.txt file at the root of
your site but were unable to download it. Please ensure that it is accessible or remove
it completely.

实际上,上面的链接是一个行动机器人的路线的映射。该操作从存储中获取文件并以text / plain方式返回内容。谷歌表示他们无法下载该文件。是因为那个吗?

4 个答案:

答案 0 :(得分:4)

看起来它正在阅读robots.txt好了,但是你的robots.txt声称http://bizup.cloudapp.net/robots.txt也是你的XML站点地图的网址,当它真的是http://bizup.cloudapp.net/sitemap.xml时。该错误似乎来自Google尝试将robots.txt解析为XML站点地图。您需要将robots.txt更改为

User-agent: *
Allow: /
Sitemap: http://bizup.cloudapp.net/sitemap.xml

修改

它实际上比这更深入,Googlebot无法在您的网站上下载任何页面。以下是Googlebot请求robots.txt或主页时返回的例外情况:

  

此应用程序不支持无Cookie表单身份验证。

     

异常详细信息:System.Web.HttpException:无Cookie表单身份验证       此应用程序不支持。

[HttpException (0x80004005): Cookieless Forms Authentication is not supported for this application.]
AzureBright.MvcApplication.FormsAuthentication_OnAuthenticate(Object sender, FormsAuthenticationEventArgs args) in C:\Projectos\AzureBrightWebRole\Global.asax.cs:129
System.Web.Security.FormsAuthenticationModule.OnAuthenticate(FormsAuthenticationEventArgs e) +11336832
System.Web.Security.FormsAuthenticationModule.OnEnter(Object source, EventArgs eventArgs) +88
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +266

FormsAuthentication正在尝试使用无Cookie模式,因为它识别出Googlebot不支持Cookie,但是您的FormsAuthentication_OnAuthenticate方法中的某些内容会抛出异常,因为它不想接受无Cookie验证。

我认为最简单的方法是在web.config中更改以下内容,这会阻止FormsAuthentication尝试使用cookieless模式......

<authentication mode="Forms"> 
    <forms cookieless="UseCookies" ...>
    ...

答案 1 :(得分:2)

我以一种简单的方式修复了这个问题:只需添加一个robot.txt文件(与我的index.html文件位于同一目录中),即可允许所有访问。我把它排除在外,打算允许所有访问 - 但是Google Webmaster Tools可能会找到另一个由我的ISP控制的robot.txt吗?

所以对于某些ISP来说,似乎至少你应该有一个robot.txt文件,即使你不想排除任何机器人,只是为了防止这种可能的故障。

答案 2 :(得分:1)

生成robots.txt文件的脚本有问题。当GoogleBot访问该文件时,它将获得500 Internal Server Error。以下是标题检查的结果:

REQUESTING: http://bizup.cloudapp.net/robots.txt
GET /robots.txt HTTP/1.1
Connection: Keep-Alive
Keep-Alive: 300
Accept:*/*
Host: bizup.cloudapp.net
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

SERVER RESPONSE: 500 INTERNAL SERVER ERROR
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 19 Aug 2010 16:52:09 GMT
Content-Length: 4228
Final Destination Page

您可以在http://www.seoconsultants.com/tools/headers/#Report

测试标题

答案 3 :(得分:1)

我没有问题让你的robots.txt

User-agent: *
Allow: /
Sitemap: http://bizup.cloudapp.net/robots.txt

然而,它不是在执行递归robots.txt调用吗?

Sitemap应该是xml文件,请参阅Wikipedia