不少站长在做蜘蛛池入口页时,为了版式好看,把跳转链接做成了一张图片按钮,然后在后台问:搜索蜘蛛还能顺着这张图爬到目标 URL 吗?答案不取决于图片好不好看,而取决于这张图有没有被真正的链接标签包住。
先说结论:图片本身不产生链接关系
搜索引擎处理页面时,先解析 HTML 结构,再决定要不要渲染。图片在语义上只是资源,不是链接。搜索蜘蛛看到 <img src="/a.png">,最多是把 a.png 当成一张待抓取的图片资源,不会因为图片文件名或图片上写着某个域名,就去访问那个地址。
真正把两个 URL 连起来的,是 a 标签的 href。只有当图片被 <a href="目标URL"><img …></a> 这样包裹时,href 才会被当成链接解析,图片在这里只是可点击区域。
- img 的 src:作为资源被抓取,不产出新的页面 URL
- a 里的 img:点击跳转,外层的 href 会被正常解析
- alt 文本:只是文字描述,不会自动变成可访问地址
- CSS background-image:属于样式资源,通常不产生链接
- map / area 热点:area 上的 href 有可能被解析,但支持不稳定,不宜作为唯一入口
几种“看起来有链接、其实没有”的写法
- 整张图只挂一个,外面没有 a 标签,需要执行 JS 才跳转。
- 图片外面有 a,但 href 写成 “#” 或 javascript:void(0),真实地址藏在脚本里。
- href 指向一个跳转脚本,再由脚本 302 到目标 URL,链路多一跳,中间任何一环出问题都会断。
- 全站导航只用一张大图,没有任何文字链接兜底。
- 把目标 URL 直接写成 img 的 src,以为“图片地址就是链接”。
怎么核实入口页的图片链接有没有被跟进
建议按下面的顺序排查,不要一上来就加入口页数量:
- 打开入口页,右键查看网页源代码,搜索目标域名,看 href 里有没有出现。源码里搜不到、渲染后才有,说明依赖 JS,风险偏高。
- 用浏览器开发者工具看渲染后的 DOM,再搜一次,确认脚本有没有把 a 标签插进去。
- 在日志里按目标 URL 的路径过滤,确认搜索蜘蛛是否访问过该地址,而不是只看入口页本身的抓取记录。
- 用平台自带的抓取测试或本地带渲染的抓取对比,确认返回的 HTML 里是否包含链接。
- 图片站要额外检查懒加载,未触发时链接可能根本不在初始 HTML 中。
更稳妥的做法
图片链接不是不能用,而是不该当唯一入口。把文字链接和图片链接并列放置,href 直接写目标 URL,尽量减少中间跳转;锚文本可以简单,但要可读。入口页数量有限时,用 sitemap 或主动提交作为补充,让目标 URL 有一条不依赖入口页的发现路径。
搜索蜘蛛对纯图片、纯脚本的链路容忍度有限。把 href 写成静态可读的形式,链路越短越稳。
如果日志里入口页反复被抓,目标 URL 却始终没有访问记录,先别急着铺新页面,回头看一眼源码里到底有没有那个 href。多铺入口页并不保证目标 URL 被收录,但可以确定的是:源码里不存在的链接,蜘蛛很难靠猜走到。