先把当时的情况摆出来。主题为了提速把 img 的 src 换成占位 gif,真实地址放在 data-src,靠 JS 滚动时替换。图片搜索收录从 1.2 万张掉到 300 张,百度图片抓取日志里几乎全是那个 1×1 的占位图。

原因不止一个,得分开看。src 指向占位图,蜘蛛不执行滚动就不加载真实图。另一种情况是没有 noscript 兜底,禁用 JS 时页面没有图。

另外,data-src 不是标准属性,解析器不会当图片源。少数情况下是sitemap 里也没有图片地址,缺少第二条发现路径。

第一件事是看原图地址是否出现在 HTML 里

curl -s https://www.example.com/p/1 | grep -o 'data-src="[^"]*"' | head -5

随后检查首屏图有没有正常 src

curl -s https://www.example.com/p/1 | grep -o '<img[^>]*>' | head -3

接着确认有没有 noscript 兜底

curl -s https://www.example.com/p/1 | grep -c '<noscript>'

图片 sitemap 里带上原图地址

curl -s https://www.example.com/image-sitemap.xml | grep -o '<image:loc>[^<]*' | head

同一份数据我导出了两份,一份留底,一份拿来试。

别只看报错消失,验证要多做一步。HTML 里能直接看到原图地址,图片搜索收录两周内回到 8000 张以上,占位图不再出现在索引里。

懒加载留给首屏以下的图,首屏和正文第一张图必须带真实 src。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189