27 个首页 967 个标题,只有 69 个能用 HTML 锚点指到

HTML 锚点写法只有一行,卡住的是另一半:你要指的那个标题上有没有 id。2026-08-22 抓的 27 个首页共 967 个标题,带 id 的 69 个,18 个站一个都没有。

排名与引用4 分钟读完1106 次阅读
27 个首页 967 个标题,只有 69 个能用 HTML 锚点指到

实测 · 2026-08-22 · 27 个首页 · 单次抓取 · 只解析标题

样本与口径:2026-08-15 起一直在用的那 30 个站,2026-08-22 每站首页抓一次,浏览器 UA。按文档顺序记下每个 h1h6 的级别,以及它有没有 id 属性。

如果你在找 HTML 锚点怎么写,语法一行就够了。真正卡住的是下一步:你要指的那个标题上有没有 id。27 个首页共 967 个标题,带 id 的只有 69 个;18 个站一个都没有,从站外没办法指进这些页面的任何一处。

怎么测的

每站一次 HTTP 请求,不渲染、不重试。纳入规则跑数前定死:状态 200、响应体不少于 10,000 字节、含 <body。30 个里 3 个没过 —— stackoverflow.commedium.com 回 403,www.reddit.com 回的是 8,393 字节的空壳 —— 剩下 27 个首页、967 个标题。

数的是属性,不是行为。带 id 的标题能被指到,有没有人真的去指,这次没测。

HTML 锚点是怎么成立的

片段链接能跳过去,靠的是目标元素上那个标识符。HTML 标准 §3.2.6,2026-08-22 读到的原文:「An element's unique identifier can be used for a variety of purposes, most notably as a way to link to specific parts of a document using fragments, as a way to target an element when scripting, and as a way to style a specific element from CSS.」

MDN 在《Text fragments》那页把后果说得更直白,同一天读到:「The issue with linking to specific document fragments is that the author of the linked page needs to put an anchor in place to actually link to.」这个 author 就是你。你不加,别人事后加不上。

id 是门牌号。没有 id 的标题,是一间没挂号的房间。

967 个标题,69 个 id

69 个里有 47 个来自两个站。其余的接近于零,包括那些首页上标题最多的站。

站点标题数带 idh2 带 id
figma.com333229 / 30
techcrunch.com1051513 / 14
stripe.com57111 / 5
github.com2660 / 9
www.bbc.com15300 / 130
www.canva.com8300 / 36
www.cloudflare.com5100 / 4
vercel.com3000 / 17

BBC 首页有 153 个标题,其中 130 个是 h2,没有一个能被指到。整个面板都是这个形状:27 个站 455 个 h2,带 id 的 47 个。给小节起名字的那一级,十个里只有一个有门牌号。

唯一一个几乎全带 id 的站,用的是哈希

Figma 是这批里的例外,但把它的 id 读一遍,这个数字的成色就变了。抓到的原文是这样的:

<h2 id="fa13aad03260">What you can do in figma</h2>
<h2 id="f63ca98318ef">Explore all products</h2>
<h2 id="a7bffbcb4e92">Additional product resources</h2>

12 位十六进制,一节一个,构建工具生成的。它们确实能用 —— 在网址后面接 #fa13aad03260 就能落到那一节。但没人猜得到,没人记得住,构建一旦重新生成哈希,之前发出去的链接就静默失效。Stripe 那 11 个 id 是反过来的毛病:可读(bento-card-title-paymentsbento-card-title-billing),却挂在卡片的 h3 上,而上面那个给整节起名的 h2 没有 id。它 5 个 h2 里只有 1 个带。

顺带量到的两件事:跳级和开局

同一次解析还掉出来两个数。27 个首页里有 11 个的第一个标题不是 h1,8 个站在文档中间跳了级。

站点首个标题跳级
vercel.com连开六个 h5
techcrunch.comh3h3h5
www.cloudflare.comh15 处,含 h2h6
www.framer.comh13 处,全是 h3h6
news.ycombinator.com一个标题都没有无从跳起

Hacker News 首页有 3,623 个字符的可见文字,h1h6 一个都没有。Vercel 的文档开头连着六个 h5 才轮到第一个 h1 —— 那是一个用组件搭出来的导航菜单,看页面看不出来,读原始 HTML 才看得见。

这次测不到的部分

测的是首页,而首页恰恰是最不需要锚点的页型。没人会深链到一个营销首页的第三节。这批站的文档页和文章页大概率是带 id 的,本次测量看不到。

另外,数属性不等于数链接。这 69 个 id 有没有被谁指过、搜索引擎和答案引擎会不会指向页面里的某个片段,我们没测,也没查入站链接。

还有一层:有 id 不代表 id 稳定。Figma 那些哈希可能几年不变,也可能下一次部署就全换掉。从外面看,这两种情况长得一模一样。

对做站的人意味着什么

要做的事不多,而且不在首页上,在你的教程页、文档页和长文里。

  • 只要页面长过两屏,就给每个 h2 一个可读、稳定的 id
  • id 从标题文字来,别从计数器来 —— #pricing-for-teams 换了顺序还在,#section-4 换了顺序就指错地方。
  • 别让构建工具生成哈希就算完事。别人拼不出来的链接,等于没有。
  • 改版时别顺手重命名 id。片段链接不会报 404,它只是把人扔回页面顶部,你在日志里看不到。

一个页面能不能被逐节指到,正是 QueryWin 的检查项要报出来的东西之一。同一批数据的两篇邻居:首页有没有 h1 的实测量的是标题树的顶端,手册那篇 页面结构怎么写 AI 才摘得走讲的是每个标题底下该放什么。

常见问题

你们是怎么测的

2026-08-22 每站首页抓一次,浏览器 UA,不执行 JavaScript。把交付 HTML 里每个标题按文档顺序记下级别和 id。不渲染,不重试。

HTML 锚点怎么写

目标元素加 id,链接写成 # 加这个 id。语法只有这一句;这篇量的是另一半 —— 你想指的那个标题上,多半没有 id。

标题加 id 对 SEO 有用吗

它让一节变得可被指向,这是其他一切的前提。这次只测了谁有,没测它换来什么。谁给你一个具体的排名收益,那是他自己加的。

id 该怎么起名

用标题文字的小写短横线形式,页面内唯一。分享出去别人一眼看得懂,页面重排之后它仍然说得通。

27 个首页 967 个标题,只有 69 个能用 HTML 锚点指到