Node.js 标题层级跳级检查:H1 直接蹦到 H3,机器读着费劲

网页的标题层级(H1、H2、H3…),是内容的"大纲",也是谷歌和 AI 理解页面结构的依据。合理的层级是逐级递进:H1 是总标题,下面分 H2,H2 下面再拆 H3。但很多页面层级是乱的:一个 H1 后面直接蹦到 H3,中间 H2 缺失;或者标题乱标,把该是 H3 的内容标成 H2。机器读这种乱层级,就像读一本没有章节层次的书,抓不住重点。这篇写一个 Node.js 工具,检查标题层级有没有跳级。

内容结构要清晰,谷歌的官方说明看这里:创建有帮助的内容。

工具能检查什么

  1. 按顺序列出页面所有标题及其层级
  2. 标出跳级(如 H1 直接到 H3)的位置

用 Node.js 原生 fetch,不装任何依赖。

完整代码

// heading-check.js
// 用途:检查标题层级是否跳级(如 H1 直接到 H3)
// 运行:node heading-check.js https://example.com/page
// 依赖:无(Node 18+ 自带 fetch)

const URL = process.argv[2] || 'https://example.com/page';

async function main() {
  const html = await (await fetch(URL, { headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0' } })).text();

  const headings = [...html.matchAll(/<(h[1-6])[^>]*>([\s\S]*?)<\/\1>/gi)].map((m) => ({
    level: parseInt(m[1][1]),
    text: m[2].replace(/<[^>]+>/g, '').trim().slice(0, 40),
  }));

  console.log('===== 标题层级检查 =====');
  console.log('标题顺序:');
  let prev = 0;
  let skipped = 0;
  headings.forEach((h) => {
    let flag = '';
    if (prev && h.level > prev + 1) {
      flag = '  <-- 跳级(H' + prev + ' 直接到 H' + h.level + ')';
      skipped++;
    }
    console.log('  H' + h.level + '  ' + h.text + flag);
    prev = h.level;
  });

  console.log('\n跳级问题:', skipped, '处');
  if (skipped) console.log('建议:标题按 H1→H2→H3 顺序递进,不要跳级');
  console.log('===== 结束 =====');
}

main();

怎么用

node heading-check.js https://你的域名/页面

运行后按顺序列出所有标题,跳级的地方会标注出来。

三个关于标题层级的点

层级要逐级递进。 H1 下面接 H2,H2 下面接 H3,别跳。跳级会让机器的"大纲解析"断档,也说明你的内容结构本身不够清楚,该有的一层没写。

一个页面一个 H1。 H1 是页面的主标题,讲清这页的主题。多个 H1 会让机器搞不清重点,没有 H1 又让页面"无主"。H1 一个,然后往下分 H2、H3。

标题要有实际内容。 标题是内容的骨架,每个 H2、H3 下面该有对应的正文。空标题、或者标题下面没内容,都是结构上的空洞,机器读着也空。

写在最后

标题层级是内容结构的外在表现,层级乱,说明内容组织得也乱。这个工具把标题顺序和跳级问题列出来,就像给页面做了一次"大纲体检"。把跳级补上、层级理顺,内容结构清晰了,谷歌和 AI 都更容易读懂。

觉得有用欢迎点赞、收藏、转发,有疑问评论区留言或私信交流。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐