用好语义化HTML5标签,让搜索引擎秒懂你的页面重点

2023 年 12 月 23 日|技术SEO|预计阅读时间 ≈ 13 分钟

语义化HTML5标签:不只是为了好看,更是为了SEO

咱们写网页,天天跟各种 HTML 标签打交道。像 <div>, <span>, <p> 这些老朋友,它们就像万能的积木块,啥都能装,方便我们布局页面。但它们有个特点:本身不带"含义"。浏览器和搜索引擎看到 <div>,只知道这是个块,里面装了啥?得靠猜。

这时候,语义化 HTML5 标签 就派上用场了。

语义化 HTML5 标签 不仅仅是容器,它们自带"说明书",告诉浏览器和搜索引擎:"我这里装的是特定类型的内容!" 比如老牌的 <head> 装元数据,<body> 装用户能看到的内容,这是基本常识。

今天咱们重点聊聊这几个新朋友:<header>, <footer>, <main>, <article>, <aside>, <section>,还有顺便提一下 <nav>

为啥是这几个?因为用好它们,就能清晰地告诉搜索引擎:"嘿!我这个页面的核心内容在这儿,旁边的那些是次要的!"

为啥要这么麻烦告诉搜索引擎?它自己不聪明吗?

你可能会说:"谷歌、百度现在都这么智能了,还需要我们指手画脚吗?"

确实,搜索引擎越来越聪明。但你想想:

  1. 避免误解和稀释: 一个页面上通常不止有核心内容,还有导航、广告、相关推荐、页脚版权信息等等。如果我们不加区分,搜索引擎可能会把这些"噪音"也当成页面主题的一部分,从而稀释了核心内容的权重,甚至搞不清你页面到底想讲啥。
  2. 掌控主动权: 与其让搜索引擎去"猜",不如我们主动、明确地告诉它重点在哪。这样更精准,效果更可控。
  3. 提升效率: 给搜索引擎划重点,能帮它更快、更准确地理解和索引你的页面。

想象一个场景: 你在运营一个汽车资讯网站。一个介绍"宝马X5评测"的页面,除了评测正文,右边栏可能推荐了奔驰GLE、奥迪Q7的相关文章,底部还有全站通用的汽车保养技巧链接。

如果不做语义化区分,搜索引擎看到的文本里混杂了宝马、奔驰、奥迪、保养等各种词汇。它可能会猜到主题是宝马X5,但也可能被干扰。如果我们用语义化标签把评测正文圈出来,告诉它"这才是主角",效果就会好很多。

案例证明:语义化标签真的有用!

空口无凭。看看这个案例:下面这张图显示了一个流量不错的网站,在某个时间点(红线处)全面应用了语义化HTML5标签来重构页面模板。结果呢?流量提升了大约30%! 这可不是小数目。(案例来源:与 Jason Barnard 的合作项目)

语义 HTML5 标签集成

这说明,清晰的结构对搜索引擎理解内容确实有很大帮助。

怎么用语义化标签给页面"划重点"?

人类看网页,扫一眼布局就知道哪是标题、哪是正文、哪是广告。但机器不行,它们看到的是一堆代码。我们需要用语义化标签构建一个对机器可见的"行政区划"。

核心思路:区分 "主要内容区" 和 "非主要内容区"。

重要提示: 语义化标签主要是给机器看的,用来表达结构和含义不要直接给它们添加样式来控制外观! 样式应该交给 CSS 类(Class)。你需要能够灵活地添加、删除或移动这些语义化标签,而不影响页面的视觉效果。

第一步:划分"大区" - <header>, <main>, <footer>

一个典型的页面,至少可以分为三个大块:

  • 页头 (<header>): 通常包含网站Logo、主导航、搜索框等全站性质的内容。
  • 主内容区 (<main>): 页面的核心内容所在地,每个页面的 <main> 区域应该是独一无二的。
  • 页脚 (<footer>): 通常包含版权信息、备案号、次要链接等。

你的 HTML 结构看起来应该是这样的:

1<body> 2 <header> 3 <!-- 页头内容,可能包含 <nav> --> 4 </header> 5 6 <main> 7 <!-- 页面的核心主体内容 --> 8 </main> 9 10 <footer> 11 <!-- 页脚内容 --> 12 </footer> 13</body>

<header><footer> 里可能还会包含 <nav> 标签来定义导航链接块,这很直观。

我们的重点在于 <main> 标签内部。

第二步:聚焦核心 - <article> 标签

<main> 区域装载了页面的主体信息,但这里面可能也混杂了一些不那么核心的东西。我们需要进一步聚焦。

<article> 标签 就是用来圈定"这块内容是独立的、自成一体的核心信息单元"的。

  • 它可以是一篇博客文章、一篇新闻报道、一个产品介绍、一个论坛帖子、一段用户评论,甚至一个独立的招聘信息等等。
  • 通常,页面的主要 <h1> 标题会包含在 <article> 标签内部。

现在,我们的结构细化为:

1<main> 2 <article> 3 <h1>页面主标题</h1> 4 <!-- 这里的文字、图片、视频等是当前页面的核心内容 --> 5 </article> 6 7 <!-- <main> 区域内可能还有其他非核心内容 --> 8</main>

第三步:隔离"噪音" - <aside> 标签

好了,核心内容用 <article> 圈起来了。那页面上其他"附加信息"怎么办?比如广告、相关文章推荐、作者简介、侧边栏小工具等。

这时候 <aside> 标签 就登场了。它的语义是"这块内容与主要内容(通常是 <article>)相关,但可以被认为是侧边栏、补充说明、广告、引述等,不是核心主体的一部分"。

<aside> 可以放在 <article> 内部,表示与该 article 直接相关的补充信息;也可以放在 <article> 外部但在 <main> 内部,表示与整个页面的主体内容相关度较低的附加信息。

结合 <aside>,结构变成:

1<main> 2 <article> 3 <h1>页面主标题</h1> 4 <!-- 核心内容 --> 5 6 <aside> 7 <!-- 与核心内容直接相关的补充信息,如作者简介、相关定义解释 --> 8 </aside> 9 </article> 10 11 <aside> 12 <!-- 与核心内容关系不大的附加信息,如广告、全站热门文章推荐 --> 13 </aside> 14</main>

通过 <aside>,我们明确告诉搜索引擎:"这些内容可以看看,但别把它们当成判断页面核心主题的主要依据!"

回到汽车网站的例子

现在我们用这套结构来优化之前的"宝马X5评测"页面:

1<main> 2 <article> 3 <h1>宝马 X5 深度评测:驾驶体验与优缺点分析</h1> 4 <!-- 这里是关于宝马X5评测的详细文字、图片、视频 --> 5 6 <aside> 7 <!-- 关于宝马X5历史、设计师访谈等直接相关的补充内容 --> 8 <!-- 宝马X5相关的保养建议或配件推荐 --> 9 </aside> 10 </article> 11 12 <aside> 13 <!-- 推荐奔驰GLE、奥迪Q7的文章链接 --> 14 <!-- 全站通用的汽车保养技巧链接 --> 15 <!-- 广告位 --> 16 </aside> 17</main>

这样一来,搜索引擎就能非常清晰地知道:

  1. 这个页面的绝对主角是"宝马X5评测"。
  2. <article> 内的 <aside> 是与主角紧密相关的补充信息,可以辅助理解。
  3. <main> 内但在 <article> 外的 <aside> 是相关度较低的附加信息,在判断核心主题时权重应该很低。

这样就有效避免了奔驰、奥迪等信息对"宝马X5评测"这个核心主题的干扰和稀释。

<section> 标签到底该怎么用?(避免误区)

<section> 可能是 HTML5 语义化标签中最容易被误用和滥用的一个。

<section> 的核心语义是:表示文档或应用程序中一个通用的、独立的部分 (section),它通常包含一个标题 (heading)。

关键在于 "独立的部分""通常包含标题"

常见误区:

  • 把它当成 <div> 的替代品来布局: 这是最大的误区!<section> 不是为了视觉分组,而是为了逻辑内容分组
  • 滥用 <section> 包裹一切: <header>, <footer>, <aside> 内部通常不需要 <section>
  • <section><section>: 除非有非常清晰的、多层级的独立内容块划分,否则尽量避免。

<section> 的正确用法:

  • 用在 <article> 内部: 这是最常见也最推荐的用法。当一篇长文章(<article>)可以被自然地划分为几个有独立主题、可以单独拿出来看的部分时,可以用 <section> 来包裹这些部分,并为每个 <section> 配上 <h2><h6> 的标题。
  • 页面级分块 (谨慎使用): 在少数情况下,如果一个页面(<main> 区域)确实由几个逻辑上独立、同等重要的部分组成(比如一个主页同时展示公司简介、核心服务、最新动态三个独立模块),可以用 <section> 来划分。但这种情况不如用 <article> 内部的 <section> 常见。

使用 <section> 的好处:

  • 更清晰的文档大纲: 有助于辅助技术(如屏幕阅读器)和搜索引擎理解文章的内部结构。
  • 潜在的 SERP 特性: 结构清晰、内容优质的 <section>,理论上可能被搜索引擎提取为"特色片段"或用于其他 SERP 特性(比如谷歌的 Fraggles)。

继续看汽车评测的例子,加入 <section>

1<article> 2 <h1>宝马 X5 深度评测:驾驶体验与优缺点分析</h1> 3 <p>这里是评测的引言和总体概述...</p> 4 5 <section> 6 <h2>外观设计与空间表现</h2> 7 <p>关于外观和空间的详细评测内容...</p> 8 </section> 9 10 <section> 11 <h2>动力操控与驾驶感受</h2> 12 <p>关于动力、操控、底盘滤震等的详细评测内容...</p> 13 </section> 14 15 <section> 16 <h2>内饰配置与智能化</h2> 17 <p>关于内饰做工、车机系统、智能驾驶辅助等的详细评测内容...</p> 18 </section> 19 20 <section> 21 <h2>优缺点总结与购买建议</h2> 22 <p>总结优缺点,给出购买建议...</p> 23 </section> 24 25 <aside> 26 <!-- 与宝马X5直接相关的补充信息 --> 27 </aside> 28</article>

在这个例子里,"外观"、"动力"、"内饰"、"总结"这几个部分逻辑上相对独立,都有自己的小主题,适合用 <section> 来划分,并配上 <h2> 标题。

总结:用好语义化标签,给你的SEO加分

简单回顾一下关键点:

  1. 结构清晰是王道: 使用 <header>, <main>, <footer> 划分页面大区;用 <article> 圈定核心内容;用 <aside> 隔离附加信息。
  2. 聚焦核心内容: 明确告诉搜索引擎页面的主题,避免被"噪音"干扰和稀释权重。
  3. 提升可访问性: 良好的语义化结构对屏幕阅读器等辅助技术非常友好。别忘了,搜索引擎蜘蛛是互联网上"视力最差"的用户群体!
  4. 结构与样式分离: 绝对不要用语义化标签来控制视觉样式!让 HTML 负责结构,CSS 负责表现。
  5. 谨慎使用 <section: 主要用于 <article> 内部划分有独立主题的部分,需配有标题,避免滥用。
  6. 对国内引擎同样有益: 规范使用语义化标签,有助于百度等国内搜索引擎更好地理解页面结构和内容质量。

更进一步

想做得更细致?还可以研究:

  • <figure><figcaption> 来标记图片及其说明文字。
  • <table><thead>, <th>, <tbody>, <caption> 等标签来构建结构化的数据表格,让机器更容易理解表格内容。

花点时间优化你的 HTML 结构,用好这些语义化标签,可能比你写一堆"伪原创"内容对 SEO 的帮助更大!

资源

关于 HTML5 的 维基百科页面 及新的语义元素。

语义元素的详细描述可以在 W3C Schools 网站上找到。