你发的图,百度真的“看见”了吗?
刚帮一个做家居装修的小博主查收录问题,她挺纳闷:“我每张图都写了alt,压缩也做了,怎么百度搜‘北欧风客厅’,出来的全是别人家的图?”点开她的文章一看——页面加载飞快,但百度抓取结果里,所有图片都是小方块。
问题就出在懒加载上。它本意是让用户刷得更顺,可百度爬虫不滑屏、不等JS、不模拟交互。你藏起来的图,它真就当不存在。
我帮她把首页三张主图改回普通<img>标签,一周后,这几张图全进了百度图片搜索结果页。不是玄学,是爬虫真的需要“一眼看到”。
懒加载让百度“失明”的3个技术细节
1. 占位符骗过了爬虫的眼睛
懒加载常用套路:把真实地址塞进data-src,src里只放一张1x1的透明图。比如:
<img src="blank.gif" data-src="sofa.jpg" alt="灰蓝色布艺沙发">
百度爬虫只认src里的链接。它扫到blank.gif,就去抓这张图——当然啥也抓不到。结果就是你的沙发图,在百度里显示成一个灰色小方块。
2. Intersection Observer 的兼容性陷阱
现在不少懒加载靠Intersection Observer判断图片是否进入可视区。这技术在Chrome、Safari里跑得溜,但百度爬虫用的渲染内核版本老,压根不触发这个API。它不会“滚动”,也不会“等待”,只静态读HTML。脚本再漂亮,它也当没写。
3. 异步加载打乱了爬虫的节奏
有些网站用JS动态生成图片标签,或者等用户滑到某处才拉取图列表。百度爬虫确实能跑JS,但超时时间很短——大概几秒。如果图片加载慢半拍,或者非得靠滚动触发,爬虫早收工走人了。你页面再快,它没等到图,照样跳过。
如何判断你的图片被懒加载坑了?
别凭感觉,直接看百度站长平台。
进“资源抓取”→“图片资源”,盯两个数:抓取失败数和有效收录数。
如果失败数一直高,点开看错误详情。常见提示有“内容为空”“链接超时”“格式错误”。尤其是大批图片同时报“链接超时”,基本就是懒加载脚本没执行,真实URL根本没露出来。
更直白的办法:用站长平台的“抓取诊断”,输一篇带图的文章链接,选“PC端”抓取。等结果出来,Ctrl+F搜<img,看看src属性里写的到底是真实图地址,还是loading.gif、placeholder.png这类占位符。
我自己试过一个装修案例页,抓取结果里12张图,11个src都是/images/loading.svg。改完头图和两张关键效果图后,这三张图三天内就出现在百度图片搜索里了。
3个不牺牲性能又能让百度收录图片的懒加载方案
方案一:用noscript标签做降级
最老实的办法:让爬虫和浏览器各取所需。你在懒加载图后面加一段<noscript>,里面放一张正常图。爬虫不执行JS,就乖乖读这段;用户浏览器支持JS,这段直接被忽略。
<img src="blank.gif" data-src="tile.jpg" alt="大理石瓷砖铺贴效果" class="lazy">
<noscript>
<img src="tile.jpg" alt="大理石瓷砖铺贴效果">
</noscript>
代码多写一行,但不用改逻辑、不挑浏览器、百度实测有效。
方案二:使用原生懒加载属性
HTML5自带loading="lazy",一行搞定:
<img src="kitchen.jpg" alt="开放式厨房设计" loading="lazy">
百度官方文档提过支持这个属性,我们实测主流装修类站点用它,首屏图基本都能被收录。唯一要注意:IE和部分老安卓机不认,但爬虫认——这就够了。
方案三:预加载关键图片
懒加载不是“所有图都要懒”。头图、封面、列表页第一张图,这些是百度判断内容主题的关键依据,必须让它第一时间看到。
建议在模板里设个简单规则:前2张图用普通<img>,从第3张开始加懒加载。既保住收录,首屏加载也不拖沓。
百度对懒加载的真实态度
百度没说“不支持懒加载”,它说的是:“我们会尝试执行JS,包括懒加载逻辑。”
重点在“尝试”二字。
它的渲染环境比你手机还保守,超时时间比你泡面还短;
它不会模拟滚动,也不等Intersection Observer回调;
如果你的懒加载脚本放在</body>底部,它可能还没读到就结束了。
所以别赌它能完美跑通你的代码。上面三个方案,核心就一条:把最关键那几张图的URL,明明白白写在src里,不绕弯,不藏掖。
今天就能执行的1个操作
打开你的 WordPress 后台(或你常用的建站后台),找一篇最近发布的、带图的文章。
复制这篇文章的网址,粘贴到百度站长平台的“抓取诊断”里,选“PC端”抓取。
等结果出来,按 Ctrl+U 查看源码,搜<img src=,确认前3张图的src是不是真实地址。
如果是loading.gif或placeholder.png,马上编辑这篇文章:把头图、第二张配图、第三张场景图这三张,手动改成普通<img>标签(删掉data-src、class="lazy"这些,只留src和alt)。
改完立刻点“重新提交”给百度抓取。
别等全站改完,先盯这三张图。3天后回站长平台看收录状态,有动静了,再批量处理其他重点页面。