常见问题

入口页用图片或按钮做链接,没有可读锚文本,搜索蜘蛛还会跟过去吗

入口页里的链接如果只有图片、图标或按钮,没有可读文字,很多人担心搜索蜘蛛会漏掉目标 URL。本文区分图片链接、JS 按钮、CSS 背景图三种常见写法,说明爬虫判断是否跟进的依据是 href 而不是锚文本,并给出可落地的自查步骤。

常见问题

入口页用图片或按钮做链接,没有可读锚文本,搜索蜘蛛还会跟过去吗

先说结论:搜索蜘蛛判断一条链接要不要跟,看的是 a 标签里的 href,而不是这条链接上有没有可读的文字。图片链接只要包在 a 标签里、href 指向真实地址,照样会被发现;反过来,用 button 或 div 加 onclick 拼出来的按钮,哪怕视觉上很显眼,通常也不会被当成链接去抓。

一、图片链接:锚文本为空,但链接本身有效

把图片放进 a 标签,写成 a href 指向目标页,图片放进标签内部,这是最常见的写法。爬虫解析 HTML 时先取到 href,锚文本为空只是让这条链接少了描述信息,链接关系依然成立,目标地址会进入待抓队列。受影响的只有两件事:

  • 失去一个“别人怎么描述这个页面”的信号,对相关性的帮助弱于文字链接。
  • 图片的 alt 有时会被当作替代文本参考,但稳定性和权重都不如正文里的锚文本。

另外要区分懒加载:如果图片本身是懒加载,src 初始是占位图,只要 a 的 href 是静态写在 HTML 里的,发现环节不受影响;受影响的只是图片内容能不能被理解。

二、按钮和 onclick:这条路通常走不通

button 元素、div 加 onclick、onclick 里写 location.href 这类写法,浏览器点得动,爬虫在解析阶段一般不会执行。搜索引擎确实会渲染一部分 JavaScript,但渲染有成本、有排队,把入口页的发现环节押在渲染上并不划算。入口页的定位就是把 URL 送进队列,这一步越靠静态 HTML,越稳。

能写成 a 标签加 href 的链接,就不要写成 JavaScript 跳转。前者是结构,后者是行为,抓取端更认结构。

三、CSS 背景图和图片热区

用 CSS 背景图做的“按钮”,本身没有 href,爬虫找不到可跟的地址,等同于一段装饰。图片热区里的 area 标签带 href,理论上也是链接,但支持和传递都比较弱,不建议作为入口页的主要发现通道。

四、想让入口页的发现效率更高,可以这样自查

  1. 查看网页源代码,而不是浏览器渲染后的 DOM,直接搜目标域名,看完整 URL 能不能在 HTML 里搜到。
  2. 确认链接是 a 标签加 href 的形式,href 是可访问的绝对地址,不是井号或空值。
  3. 给图片链接补一句能说明目标的 alt,给纯图标按钮补一段可见的文字锚文本,便于判断这条链接指向什么。
  4. 顺手检查有没有 rel=nofollow、robots.txt 屏蔽、入口页 meta noindex 之类会把发现链路掐断的设置。
  5. 用日志看入口页被访问之后,目标 URL 有没有在接下来几天进入抓取队列。这一步能帮你分清是发现环节的问题,还是抓取与收录环节的问题。

五、小结

没有可读锚文本,不影响链接被发现,只影响被发现之后的判断。真正会掐断发现的是:href 根本不是真实链接、链接被 nofollow、或者入口页整体不被抓取。入口页的任务是把 URL 送进队列,把 href 写扎实、把入口页的抓取通道保持通畅,比在锚文本上反复纠结更有意义。发现只是第一步,后续能不能被收录,还取决于目标页自身的质量与可访问性。