在 google search console 查看数据发现,我的网站 花野猫的数字花园 ,最近收录的数量一直在降。
当我在未索引的网站列表查看原因,并试图再重新提交任何页面时,live test 都不成功,提示 Page cannot be indexed: Not available due to a site-wide issue ,具体原因是 Page fetch Failed: Robots.txt unreachable 。
gsc 提交爬取请求时,提示 Page cannot be indexed: Not available due to a site-wide issue ,查看具体原因是 Page fetch Failed: Robots.txt unreachable
感情谷歌只要是 robots.txt 有问题就停止全站爬取。但问题是,我的 robots.txt 配置没问题。实时访问也完全正常的。
进一步,我在 gsc 的 settings —— Crawling —— robots.txt 的报告里看到对应的 robots.txt files 最近的 status 是 Not Fetched - N/A。再查看 versions ,发现一下获取得到一下获取不到的。
robots.txt 的获取时而正常时而不正常
点 open live robots.txt 按钮直接打开 url ,一点问题都没有。按理来说就算上次爬取不正常,我手动触发再爬取一次总行了吧。但 request recrawl 根本没有半点作用,可能异常的响应还是一直被谷歌缓存的,每次都请求重新爬取都 failed ,提示 Crawl error: Robots.txt unreachable
在 GSC settings —— Crawling —— robots.txt 中 request recrawl ,结果总是失败
排查
分析了一下 robots.txt 异常的原因,想来想去只有两种可能:1. 业务挂了 ;2. 网络问题
受影响的站点部署在阿里云上,我又对比了下,部署在 vercel 上的应用完全没有这个问题。
怀疑是海外 ip 访问被屏蔽,但用阿里云网站运维检测平台的网络拨测工具,测试境外节点访问我的云主机的情况,请求也全是 200。
用网络拨测工具查境外主机对阿里云上云主机的可用性
我在阿里云上只用了一台 ECS,没有使用 WAF,想不通哪里能拦截,在阿里云提工单,工程师也没法解决。
nginx 的日志 access.log 里面查不到谷歌的请求。
难道说是谷歌的 Bot 抓取的时候刚好业务宕机?但这失败的频率太高了吧?似乎大概率还是是网络问题。
用这个查,跟在 GSC 里查一样 https://search.google.com/test/rich-results?url=https%3A%2F%2Fhuayemao.run%2F
求助
我是触犯了什么天条吗?我该怎么办?