一个页面技术上可有多个<h1>,但实际不应使用,因搜索引擎和屏幕阅读器仍视其为整页唯一主题,多<h1>会导致爬虫困惑、降权或忽略;应确保仅一个<h1>且位于<main>或<article>内,与<title>语义一致,并严格遵循层级结构。

一个页面到底能不能有多个 <h1>
技术上可以,但实际中不该。HTML5 允许多个 <h1>,但搜索引擎和屏幕阅读器仍默认它代表“整页唯一主题”。出现两个 <h1>(比如 logo 区一个、正文标题一个),爬虫会困惑哪个才是主干内容,可能降权或忽略其中一个。
常见错误包括:
- CMS 模板把站点名硬塞进
<h1>,再在文章区又输出一次 - 用
<div class="title">+ CSS 模拟<h1>,对 SEO 零权重 - SPA 应用路由切换时未重置
<h1>,导致多个页面共用同一标签
实操建议:用浏览器“查看页面源代码”,搜索 <h1>,确认只出现一次,且文本与 <title> 语义一致(如都是“iPhone 15 Pro 购买指南”,而非一个写产品名、一个写公司名)。
<h1> 和 <title> 哪个更重要?
<title> 是搜索结果里用户第一眼看到的标题,直接影响点击率;<h1> 是页面内第一个结构锚点,帮搜索引擎确认“这段文字是不是正文核心”。两者不互换,但必须协同。
立即学习“前端免费学习笔记(深入)”;
典型失配场景:
-
<title>写“上海咖啡馆推荐|2026精选Top10”,<h1>却是“欢迎光临我们的网站!”——主题割裂,削弱相关性得分 -
<h1>过长(如超过 60 字符),移动端被截断,用户无法快速理解页面意图,间接推高跳出率 -
<h1>被display: none或visibility: hidden隐藏——视为误导性标记,可能触发质量算法惩罚
正确做法:把 <h1> 当作正文开头的自然标题,不是关键词堆砌场。例如写教程页,<h1> 用“Git 分支管理实战:从创建到合并”,比“Git 教程 Git 分支 Git merge”更有效。
跳级使用 <h1> 到 <h3> 会怎样?
会破坏文档大纲(document outline)。浏览器和 SEO 工具依赖层级推导内容逻辑,<h1> 后直接 <h3> 就像书里“第一章”后面跳到“1.3.1 小节”,中间缺了“1.2”——解析器可能强行补全为 <h2>,也可能跳过逻辑校验,导致结构信号失效。
真实影响:
- SEO 工具(如 Screaming Frog)报告“标题层级不连续”,列为结构性警告
- 屏幕阅读器按大纲朗读时,可能跳过或错判子模块归属
- Google 的“精选摘要”倾向提取
<h2>作为答案卡标题,若<h2>缺失,这部分机会直接丢失
严格递进不是教条,而是信号保真。哪怕只有一级子内容,也该用 <h2>,而不是为了“省事”跳到 <h3>。
<main> 里没放 <h1> 有什么问题?
<main> 是语义化容器,告诉搜索引擎“这里才是主体内容”。如果 <h1> 套在 <header> 里的 logo 上,而正文区块没有 <h1>,爬虫可能把版权信息或导航链接误判为主内容。
尤其注意:
- 博客文章页、产品详情页这类独立内容,
<h1>必须出现在<article>或<main>内部,不能藏在页眉的<div>堆里 - 仪表盘首页等多模块页面,不要靠多个
<h1>划分区域,改用<section><h2>结构 -
<nav>只包真实导航链接,别把广告位或社交按钮塞进去——这会让爬虫混淆导航意图
最易被忽略的一点:<main> 只能出现一次,且不能嵌套在 <article> 或 <section> 里。它就是顶层内容容器,位置错了,整个语义链就松动了。



















