0

我有一个 Cakephp 网站,当我在 Google 中查找它时,即使该网站运行良好,它也会在描述中显示错误。

显示的错误:

$status = "Location: http://mywebsite.com/" header - [internal], line ?? 
Controller::header() - COREcake/libs/controller/controller.php, line 742     
Controller::redirect() ...

我用谷歌搜索“搜索互联网”的错误,发现几个 CakePHP 网站有同样的问题,它们工作正常,但他们的谷歌描述中有一个错误。元标记在源页面中正确显示。

有谁知道哪里错了?

我已将调试设置为零,上传了站点地图、robots.txt 文件,但即使 Bing 和 Yahoo 现在出现同样的问题,我仍然遇到同样的问题。

如果有任何机构可以帮我一把,我将不胜感激。

4

3 回答 3

3
  1. 对于可能被索引的站点,您应该始终将 debug 设置为零,否则可能会记录错误(尽管,您可以仅为您的 IP 将 debug 设置为 1)。
  2. 现在您的网站已被元描述中的错误索引,首先检查错误是否仍然存在并修复它。它可能已经解决了,但仍然在 google 的缓存中。之后,让 google 重新索引您的网站(看看Google Web Master Program,它很有帮助)。如果您还没有的话,还可以考虑一些基本的 SEO 内容,例如 sitemap.xml。
于 2012-01-03T22:21:38.003 回答
1

当您将浏览器的 UserAgent 字符串设置为与GoogleBot 的相同并且浏览器禁用 cookie 时会发生什么?如果您有任何取决于 cookie 值或 UserAgent 的服务器端逻辑,则很可能您没有收到错误,但 Google 的爬虫却收到了错误。

搜索结果是否链接到只有登录用户才能访问的页面?如果您的 Cake 应用程序试图根据不存在的登录用户身份查找数据,这将导致问题。

哦,将调试设置为零!

于 2012-01-03T22:33:02.980 回答
0

我一周前想通了。我使用第三方库进行浏览器检测,因为我不想重新邀请轮子。当我浏览代码时,我注意到创建它的人处理了所有可能的浏览器。他有一系列 if-elseif 语句,但没有 else 语句。

if(IE){
    do this
}
elseif(Firefox)
{
  do that
}
... for all the browsers

问题发生在爬虫访问页面时,由于条件找不到浏览器标头,因此输出错误消息。

为了解决这个问题,我刚刚添加了一个 else 条件,并将每个爬虫都视为 Firefox 浏览器。

于 2012-01-13T12:00:28.523 回答