javascript void 0 的链接会挡住抓取吗:5,272 个锚点里一条都没有
javascript void 0 这种写法在 27 个首页的 5,272 个锚点里一条都没出现;真正还在的是 58 个连 href 属性都没有的锚点,其中 51 个集中在两个站上。

实测 · 2026-08-28 · 27 个首页 · 单次抓取 · 5,272 个锚点
样本 / 口径:2026-08-15 起沿用的同一批 30 个站,2026-08-28 11:37(+0800)各抓一次,用浏览器 UA,不执行 JavaScript。把返回 HTML 里每一个 <a> 的 href、可见文字和属性逐条记下来,再对落盘的原始字节跑一遍正则复核。
在搜索框里打 javascript void 0 的人,多半是看到页面上某个链接点了没反应,或者在源码里翻到一串 href="javascript:void(0)",想知道它会不会让页面收不进搜索引擎。这批 27 个首页给出的答案很直接:5,272 个锚点里,这种写法一条都没有。真正还在的是另一种——58 个锚点根本没有 href 属性,其中 51 个集中在两个站上。
怎么测的
每个站一次请求,不渲染、不重试。纳入规则跑数前就写死:最终状态 200、解压后至少 10,000 字节、正文含 <body。30 个里有 3 个没过——stackoverflow.com 与 medium.com 返回 403,www.reddit.com 返回 8,393 字节的空壳——剩下 27 个,与前五批被剔的是同样三个站。
每个锚点只看 href 归一个桶:属性不存在、存在但为空、只有页内锚点、mailto:、tel:、javascript:、以及爬虫能拿去发请求的地址。然后对 27 份落盘 HTML 跑第二遍正则,直接在字节里数 routerLink=、带 href 的 <span>、以及有 onclick 却没有 href 的 <a>。
javascript void 0 到底算不算问题
算,但前提是它真的出现在你的页面上。Google《Make your links crawlable》(本日抓取)原文写的是:「Generally, Google can only crawl your link if it's an <a> HTML element (also known as anchor element) with an href attribute.」同一页把它认不出的几种写法原样列了出来:<a routerLink="products/category">、<span href="…">、<a onclick="goto('…')">,以及 href 的值写成 javascript:goTo('products') 这一类。
官方点名的就这四种。它们在 5,272 个锚点里各出现了多少次:
| 写法 | 条数 | 站数 |
|---|---|---|
href="javascript:…" | 0 | 0 |
routerLink= | 0 | 0 |
带 href 的 <span> | 0 | 0 |
| 有 onclick 无 href 的 a | 0 | 0 |
| 完全没有 href 属性 | 58 | 4 |
href="" | 3 | 1 |
那 3 条空 href 全在 github.com,锚文本都是 Reload——它本来就是个报错时的重试按钮,不是要指向哪儿。
58 个没有 href 的锚点,长什么样
是菜单。www.framer.com 有 28 个,带着 Platform、Solutions、Resources、Product 这些可见文字——你鼠标移上去会展开二级菜单,真正的落地页在展开的那一层里。substack.com 那 6 个是站内导航栏:Home、Subscriptions、Chat、Activity、Profile,每个都配了同名的 aria-label。
| 站点 | 无 href | 锚点总数 | 形态 |
|---|---|---|---|
| www.framer.com | 28 | 428 | 顶部菜单触发器,有文字 |
| www.nytimes.com | 23 | 125 | 无文字、无 aria-label、无图 |
| substack.com | 6 | 27 | 导航栏,有文字有 aria-label |
| techcrunch.com | 1 | 322 | 无文字 |
27 个站里有 22 个一条都没有。剩下的四个也不是「到处都是」,而且其中两个站上那些锚点本来就是控件,不是链接。
另外 5,214 个锚点
5,132 个(占 97.3%)带着爬虫能直接发请求的地址。另有 72 个是只跳页内的锚点,7 个是 mailto:。首页上没有一个站用 tel:。
| href 形态 | 条数 | 占比 |
|---|---|---|
| 可解析的地址 | 5,132 | 97.3% |
| 只有页内锚点 | 72 | 1.4% |
| 没有 href 属性 | 58 | 1.1% |
mailto: | 7 | 0.1% |
| 空 href | 3 | 0.1% |
页内锚点也集中:72 个里有 38 个在 webflow.com,6 个在 discord.com。一个首页的锚点数中位是 161,最少的 substack.com 27 个,最多的 www.framer.com 428 个。
做独立站的人该查哪两处
如果你在 2026 年排查「页面为什么没被收录」,手写的 javascript:void(0) 已经不是那个原因了。这批数据只留下两个还值得查的位置。
- 展开式菜单。触发器没有
href没关系,但它展开后的那些落地页,必须在别处还有一条真正的<a href>——页脚、站点地图,或者展开层本身的 HTML 里。 - 被做成链接样子的按钮。一个既没有
href又没有文字的<a>,就是个按钮。官方那句话说得很死:它找的是带href的锚元素,别的形态只能靠猜。
另外,查的时候要对着返回的 HTML 查,不是对着你的源码查。这次测的就是爬虫收到的那份字节。至于更上一层——请求到底有没有到你这儿——可以用 AI 爬虫可达性检查 在同一个页面上问另一个问题。
这次没测出来的三件事
第一,每个页面只抓一次、不跑 JavaScript,所以框架在加载后插进去的锚点,本次完全看不见——官方那页写了只要最终落成 <a href> 就仍然可抓,而我们没验证它们是不是真的落成了。第二,某个站那 23 个既无 href 又无文字的锚点到底是干什么用的,返回的 HTML 里没有文字、没有 aria-label、也没有图,我们不知道。第三,能解析不等于打得开:那 5,132 个地址一个都没有请求过,所以说不了其中有多少返回 200。
常见问题
你们是怎么测的?
2026-08-28 用桌面浏览器 UA 对每个首页各抓一次,先用容错解析器过一遍 HTML,再对同一份落盘字节跑一遍纯正则。数两遍是故意的:解析器会做归一化,字节层的正则不会。
没有 href 的链接还传权重吗?
官方文档只说它能抓的是带 href 的锚元素,其他形态「won't be parsed and extracted」,没有描述中间状态。本次测的是写法,不是结果。
页内锚点(#)要不要改掉?
这次没有把它算作问题。#section 是在你已经打开的这一页里跳转,同一批面板上另一篇 html 锚点实测 讲的就是它,它并不指向一个爬虫本来会漏掉的页面。
锚点没有文字怎么办?
那是同一个元素的另一半,数量比 58 大得多。方法写在同批发布的 a 标签怎么写 里。


