WordPress H1标签:修复标题层级问题

发布于 | 作者:Siteskyline
阅读时间:14分钟

你花费数小时精心打造完美的WordPress页面。内容扎实,关键词到位,你的SEO插件显示绿色勾号。

但打开浏览器的开发者工具检查标题结构,你会看到一些可能悄悄扼杀你自然流量的东西:损坏的标题层级。两个H1,网站标题被包裹在`

`中,部分从H2直接跳到H4,或者更糟——根本没有H1。

这不是一个 初学者错误。这是一个 结构性问题 问题根植于WordPress、主题、页面构建器和古腾堡编辑器的交互方式中,而大多数网站所有者从未意识到它的存在。

本指南旨在解决这个问题。无论你是自行管理内容的WordPress网站所有者,还是为众多客户建站的代理机构,你都将从这里了解如何 审计、诊断并彻底解决 WordPress中的标题顺序问题。


什么是H1标签?为什么它在WordPress中很重要?

H1标签(`

`)是最高级别的HTML标题元素。在语义HTML中,它向浏览器、搜索引擎和辅助技术表明: “这是本页的主要主题。”

将标题标签视为文档大纲:

H1 – Main page title (only one per page)
 ├── H2 – First major section
 │    ├── H3 – Subsection
 │    └── H3 – Another subsection
 ├── H2 – Second major section
 │    ├── H3 – Subsection
 │    │    └── H4 – Detail within subsection
 └── H2 – Third major section

跳过一个层级——从H2直接跳到H4——会破坏大纲。使用两个H1会造成结构歧义。使用H3标签进行视觉样式设计会引入幽灵标题,混淆爬虫。

特别是在WordPress中,这一点会迅速变得复杂。与手动编写每个标签的静态HTML页面不同,WordPress同时从至少四个不同来源生成标题标记:主题的页眉模板、文章标题、编辑器内容以及你添加的任何小工具或页面构建器模块。

谷歌实际上对H1标签的看法

我们先来澄清一个 排名争议 的问题。

2026年7月,谷歌的Gary Illyes在SEO办公时间播客中直接指出了这一点:按语义顺序排列标题确实有助于可访问性(特别是屏幕阅读器用户),但对谷歌的排名算法没有显著影响。John Mueller也表示,页面上多个H1标签不会混淆爬虫,且对SEO没有直接影响。

那么这些重要吗?

是的——但原因并非大多数SEO指南所说的那样。

在WordPress中关心标题结构的真正原因是:

  1. 无障碍合规性 ——WCAG 2.1成功标准1.3.1要求信息和关系可以通过编程方式确定。损坏的标题层次结构无法满足这一要求。
  2. 可爬取性和内容信号 ——虽然Google可以解析混乱的标记,但清晰的H1能给出关于页面主题的最明确信号,这在模棱两可的情况下很重要。
  3. 用户体验和停留时间 ——读者会浏览标题。逻辑层次结构有助于他们导航并停留更长时间——这两者都是间接排名信号。
  4. 技术审计整洁性 ——对于机构来说,标题问题在每个审计工具(Screaming Frog、Ahrefs、SEMrush、Rank Math、Yoast)中都会出现。即使直接排名影响存在争议,面向客户的报告看起来也很糟糕。

WordPress如何生成标题标签:冲突的四个来源

理解 为什么 WordPress标题结构损坏需要理解它生成标题的四个来源。

来源1:主题的头部模板

大多数WordPress主题在头部区域输出网站标题。较旧且编码不良的主题将其包裹在

标签中——在每个页面上都是如此。这意味着你网站上的每个页面都以相同的H1开头:你的品牌名称。

然后,当页面或文章标题渲染时(这 应该 应该是H1),它要么变成第二个H1,要么被降级为H2。

以下是在有缺陷的主题中的情况 header.php:

php

// Broken — site title as H1 on every page
<h1><?php bloginfo('name'); ?></h1>
<h2><?php the_title(); ?></h2>  // Post title wrongly demoted

它应该是什么样子:

php

// Correct — site title is a link or span, post title is H1
<p class="site-title"><a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a></p>
<h1><?php the_title(); ?></h1>

这是最常见的WordPress H1问题之一,除非检查页面源代码,否则完全不可见。你可能有一个SEO插件、绿色的可读性评分,以及 完美内容 ——但仍然在每个页面上输出重复的H1。

来源2:Gutenberg块编辑器

WordPress块编辑器引入了对H1行为的有意更改。默认情况下,Gutenberg不强调标题块中的H1选项——假设文章标题已经渲染为H1,因此内容区域的标题应从H2开始。

实际上,这产生了两个问题:

问题A: 有些主题确实 没有 将文章标题输出为H1。如果你的主题出于样式原因在

中渲染标题,而Gutenberg已从标题块选项中隐藏了H1,那么最终页面上将没有H1标签。

这正是Gutenberg仓库中一个长期存在的GitHub问题所标记的情况——用户请求为企业级和机构设置完全删除H1选项的能力,在这些设置中H1是在模板级别控制的。该问题突显了真正的困惑:编辑器的默认行为和主题模板需要显式协调,但WordPress没有为此提供自动检查。

问题B: 内容编辑器仍然可以通过更改标题级别在块编辑器中选择H1。如果你的主题已经将文章标题输出为H1,那么在内容区域内添加另一个H1块的编辑器会创建重复——并且不会出现警告。

来源3:页面构建器(Elementor、Divi、Beaver Builder)

页面构建器是WordPress中标题层次混乱的最大单一来源。

原因如下:页面构建器提供了精细的视觉控制。你可以将文本元素拖到任何位置,以任何方式设置样式,并分配任何标题级别。这对设计来说很强大。但对结构来说却是灾难性的。

典型的页面构建器标题问题如下:

  • 英雄区域:H1(正确)✓
  • 功能区域标题:H3(跳过了H2,因为“看起来更好”而选择)✗
  • 小部件区域标题:H2(看起来像节标题,但只是侧边栏小部件标题)✗
  • 推荐标题:H4(上面没有H3)✗
  • CTA标题:H2(回到更高层级,现在大纲完全不线性)✗

结果是标题结构在视觉上连贯但语义上毫无意义。屏幕阅读器和爬虫解析时会得到一个像损坏的目录一样跳来跳去的内容大纲。

InspectWP的文档明确指出了这种模式:作者和页面构建器用户根据标题的 外观 而非其逻辑含义来选择标题级别——如果H3在视觉上大小合适,他们就会选择H3,即使上面没有H2。

来源4:小部件和主题组件

WordPress小部件区域(侧边栏、页脚、页眉模块)通常会输出自己的标题。“最新文章”小部件可能会渲染为H2。主题内置的推广横幅可能使用H3。这些都不属于内容大纲,但它们出现在页面的标题结构中。

这会产生标题“噪音”,夸大轮廓的表面复杂性,并可能将内容标题推离其正确的层级位置。


WordPress中最常见的5个H1和标题层级问题

问题1:网站标题在每个页面中都被包裹在H1中

它看起来像什么: 你网站上的每个页面都有两个H1——你的网站名称和你的文章标题。

它影响谁: 使用较旧主题、构建不良的高级主题,或者任何开发者使用

进行网站品牌推广的主题。

如何检测: 右键点击任意页面→检查→在元素面板中搜索

。如果你看到网站名称在
部分被包裹在H1中,你就遇到了这个问题。

如何修复:

选项1:子主题编辑(开发者方法) 在你的子主题的 header.php,找到网站标题输出,并将其从

更改为

,并添加适当的类:

php

<p class="site-title">
  <a href="<?php echo esc_url(home_url('/')); ?>" rel="home">
    <?php bloginfo('name'); ?>
  </a>
</p>

选项2:CSS + aria-label(无代码解决方法) 如果你无法编辑主题文件,使用CSS重置网站标题上的H1样式:

css

.site-header h1.site-title {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

注意:这隐藏了 视觉上的 H1问题,但并没有解决结构性问题。H1标签仍然保留在标记中。

选项3:切换到一个结构良好的主题 遵循WordPress编码标准的主题(Twenty Twenty-Four、Kadence、GeneratePress、Astra)开箱即可正确处理此问题。如果你当前的主题有此问题,并且你不是开发者,切换主题通常是最可靠的修复方法。


问题2:主页上缺少H1

它看起来像什么: 你的主页有零个H1标签。SEO插件报告“未找到H1。”

它影响谁: 使用徽标图片进行品牌推广(隐藏网站标题)的网站,使用没有可见标题的静态首页的网站,或者主题的主页模板没有调用 the_title().

这是WordPress支持论坛中真实且反复出现的问题。原因通常是这样一个序列:网站标题设置为在页眉中显示,但用户将其隐藏(或用徽标替换),从而从页面中移除了唯一的H1。由于主页通常没有像博客文章那样的“文章标题”,因此不会自动生成H1。

如何修复:

具体针对主页: 在你的英雄区域或页面模板中添加一个H1。这可以是:

  • 一个可见的标题(“您的企业名称 | 服务类别”),同时也作为H1
  • 一个通过CSS添加的视觉上隐藏的H1(position: absolute; clip: rect(0 0 0 0);)提供了语义标记而不破坏视觉设计

在古腾堡中: 在主页内容顶部添加一个标题块,将其设置为H1,并使其成为英雄消息的一部分。


问题3:内容中跳过的标题级别

它看起来像什么: 内容结构从H2直接跳到H4,或者从H1直接跳到H3。

它影响谁: 任何编写长格式内容并使用标题进行视觉样式而非语义结构的人。

为什么重要: 正如InspectWP所指出的,当作者基于外观选择级别时,跳过标题级别就会发生——H3看起来合适,所以他们使用H3,不管前面是否有H2。

如何在古腾堡中检测: 点击块编辑器顶部工具栏中的信息图标(ℹ)。文档大纲面板会按顺序显示每个标题,并用警告标记跳过的级别。

如何修复:

  1. 在发布前使用文档大纲审核你的标题结构
  2. 为你的团队设置内容样式指南:H2用于主要部分,H3用于子部分,H4用于子子部分——永远不要跳过级别
  3. 使用Yoast SEO或Rank Math的内容分析——两者都会标记标题结构问题

问题4:页面构建器产生的多个H1标签

它看起来像什么: 使用Elementor或Divi构建的页面有三四个H1标签,因为每个主要部分都有自己的英雄风格“H1”标题。

如何修复:

在Elementor中:编辑每个标题小部件→检查HTML标签设置→仅将主要页面标题设置为H1,并酌情将所有其他标题更改为H2或H3。

在Divi中:编辑标题模块→高级→HTML标签→更改为正确的语义级别。

在Beaver Builder中:每个标题模块在样式选项卡中都有一个“标题标签”设置。逐一审核。


问题5:古腾堡H1可见性问题

它看起来像什么: 你的主题没有将文章标题输出为H1,并且古腾堡在标题块中隐藏了H1选项。你的页面没有H1。

如何修复:

对于管理需要将H1放置在内文区域的网站的开发者,您可以通过主题中的筛选器恢复H1选项。 functions.php:

php

// Allow H1 in the Heading block
add_filter( 'allowed_block_types_all', function( $allowed_blocks ) {
    return $allowed_blocks;
});

或者,切换至标题块的“以HTML编辑”视图,并在标记中手动设置<h1>。

对于代理机构设置,如果您想要 防止 阻止编辑者添加H1(因为模板控制了它),请使用 block_editor_settings_all 过滤器来限制编辑器中的标题级别。


如何审计您的WordPress标题结构(分步指南)

方法1:SkySEOManager免费插件

使用 SkySEOManager插件 内置的SEO分析器来查找所有与标题相关的问题。

阅读完整指南: 如何使用SkySEOManager审计您的WordPress网站以检查所有SEO问题

方法2:使用Siteskyline免费SEO分析器

访问我们的 免费SEO分析器 并输入您的URL,然后点击立即分析。

它将显示您所有标题标签的问题。

headline broken structure

WordPress H1层级:机构检查清单

如果您正在为客户构建或维护WordPress网站,标题结构需要成为您上线前和持续审计过程的一部分。以下是一个可重复使用的检查清单:

主题层面:

  • 标题中的网站标题不要使用<h1>包裹(请使用<p>, <span>, 或<div>)
  • 在所有文章类型中,文章/页面标题在<article>或<main>中呈现为<h1>
  • 首页只有一个<h1>——来自网站标题或主视觉区域
  • 归档页面(分类、标签、作者)有一个描述性的<h1>
  • 404页面有一个<h1>

内容层面:

  • 每个页面在内容区域恰好有一个<h1>(如果主题通过标题处理,则可以为零)
  • 主要部分使用<h2>
  • 子部分在<h2>部分内使用<h3>嵌套
  • 不要跳过标题级别
  • 标题不仅仅用于视觉样式

插件/构建器层面:

  • Elementor/Divi/Beaver Builder的标题元素具有正确的HTML标签设置
  • 小工具区域不会意外输出H1或H2标签
  • 所有关键页面上的SEO插件H1警告已解决

正确的WordPress标题层级——按页面类型

一种模式并不适合所有WordPress页面类型。以下是每种类型的正确结构:

博客文章/单篇文章页面

H1: Post Title (output by theme automatically)
  H2: First major section
    H3: Subsection
    H3: Another subsection
  H2: Second major section
    H3: Subsection
      H4: Detail
  H2: Third major section

首页(静态首页)

H1: Primary value proposition or page headline
  H2: Service category or feature group
    H3: Individual service or feature
  H2: Testimonials or social proof section
  H2: Call to action section

WooCommerce产品页面

H1: Product name (output by WooCommerce template)
  H2: Product description heading
  H2: Reviews
  H2: Related products

分类/归档页面

H1: Category name (e.g., "WordPress SEO Articles")
  H2: Post title within loop (if posts are displayed with headings)

破坏WordPress H1结构的常见错误

错误1:使用标题标签来设置文本样式 如果您想要大号粗体文本而不是章节标题,请不要使用H2。向<p>或<div>添加CSS类并进行视觉样式设置。为了美观而使用标题标签会污染您的结构大纲。

错误2:让编辑者凭视觉选择标题级别 如果没有内容样式指南,编辑者自然会倾向于标题级别,使得 外观 正确。一份简短的内部指南——“H2用于章节,H3用于子章节,切勿在内文中使用H1”——可以防止大多数问题。

错误3:安装WordPress主题前未检查标题结构 并非所有高级WordPress主题都能输出正确的标题标记。在确定使用某个主题之前,请检查演示文章:文章标题是否呈现为H1?网站标题在内页是否避免使用H1?

错误4:认为你的SEO插件涵盖了一切 Yoast和Rank Math会检查你正在编辑的文章。但它们不会捕捉由主题的标题模板、页脚小工具或存档页面模板引入的标题问题。仍然需要手动审核或使用Screaming Frog爬取。

错误5:修复视觉外观而非HTML结构 最常见的站点标题H1问题的“修复”是添加CSS使其看起来更小。这会在视觉上隐藏问题,但会留下损坏的标记。修复HTML标签,而不仅仅是样式。

Siteskyline

Siteskyline

Siteskyline 是一个优质的网络托管和 SEO 管理平台,致力于提供最佳的速度、安全性和优化工具。