Google 的 John Mueller 收到了有关 Search Console 如何验证丰富结果的错误的反馈。由于托管图片的 CDN 在处理对不存在的 robots.txt 的请求时出现错误,Google 将从富媒体搜索结果中删除图片。发现的错误在于搜索控制台和 Google 的富结果测试如何无法提醒发布者该错误并随后成功验证结构化数据。
编程上下文中的错误是指软件程序以意想不到的方式运行。错误并不总是编码中的问题,但在这种情况下,它可能是未能预料到一个问题,这反过来会导致意想不到的结果,比如这个。
提出这个问题的发布者试图使用谷歌的工具来诊断他们的富媒体搜索结果消失的原因,并惊讶地发现他们对这个特定的错误没有用处。
虽然此问题会影响 Google 食谱丰富结果中的食谱丰富结果图像预览,但此问题也可能是其他情况下的问题。
因此,最好意识到这个问题,因为它可能会以其他方式浮出水面。
丰富的结果图像预览消失了
问这个问题的人提供了发生的事情的背景。
他讲述了发生的事情:
“我想说,就丰富的配方结果而言,我们遇到了一个老虎陷阱。
我们有数十万个已编入索引的食谱,并且有大量来自食谱库的流量。
然后……过了一段时间,它停止了。
所有的元数据都检查出来了,谷歌搜索控制台说……这都是丰富的食谱内容,一切都很好,可以显示。
我们终于注意到,在预览中,当您预览结果时,图像丢失了。
谷歌似乎发生了变化,如果需要 robots.txt 才能检索图像,那么我们在工具中看到的任何内容实际上都没有说明任何内容是无效的。
所以这有点尴尬,当你检查一些东西说“这是一个有效的丰富食谱结果吗?” 它说是的,它很棒,它绝对很棒,我们有所有的元数据。
你检查了所有的 URL 和所有的图像都是正确的,但事实证明,你有一个 robots.txt 的新要求。”
约翰穆勒问:
“你的意思是你必须有一个robots.txt?”
提问的人回答说:
“我们发现,如果你从我们的 CDN 请求 robots.txt,它会给你 500。
当我们将 robots.txt 放在那里时,预览立即开始正确显示。
我认为这涉及抓取并将其放到静态站点上。
所以我们在操作上,我们发现添加 robots.txt 完成了这项工作。”
约翰·穆勒点了点头,说道:
“好的。
所以从我们的角度来看,并不是需要 robots.txt 文件。但它必须有一个正确的结果代码。
所以如果你没有 on,它应该返回 404。
如果您确实有一个,那么我们显然可以阅读。
但是,如果您为 robots.txt 文件返回服务器错误,那么我们的系统将假定服务器可能存在问题并且我们不会抓取。
从一开始就是这样。
但是这类问题,尤其是当您在 CDN 上并且它位于单独的主机名上时,有时真的很难发现。
我对富结果测试进行了成像,至少据我所知,它侧重于 HTML 页面上的内容。
因此,您在那里拥有的 JSON-LD 标记可能不会检查图像是否实际可获取。
然后,如果它们不能被提取,那么当然,我们也不能在轮播中使用它们。
所以这可能是我们需要弄清楚如何更好地突出显示的东西。”
CDN Robots.txt 的 500 错误响应可能导致问题
这是阻止难以诊断但可能导致许多负面问题的 SEO 问题之一,正如提问者指出的那样。
通常,对不存在的 robots.txt 的抓取会导致服务器响应代码为 404,这意味着 robots.txt 不存在。
因此,如果对 robots.txt 文件的请求生成 500 响应代码,则表明服务器或 CMS 上的某些内容配置错误。
短期解决方案是上传 robots.txt 文件。
但深入 CMS 或服务器以检查潜在问题可能是个好主意。
Robots.txt 提取的 500 响应代码
由于 CDN 返回 500 错误响应而对食谱富结果预览产生的负面影响可能是一个罕见的问题。
500 服务器错误响应代码有时会在代码中出现意外或缺失的内容时发生,并且服务器通过结束代码处理并抛出 500 响应代码来响应。
例如,如果您编辑 PHP 文件并忘记指出一段代码的结尾,那么这可能会导致服务器放弃处理代码并抛出 500 响应。
无论 Google 尝试获取 robots.txt 时出现错误响应的原因是什么,当这种情况发生在您身上时,请记住这是一个很好的问题。