语义化标签和SEO,为什么要关注它?

Linus
Linus

原文发布于

2025年01月14日

/

最新更新于

2025年01月14日

/

阅读

12
0

SEO 需要了解的语义化标签知识很少,大家需要知道其背景就好,以及看下列一些简单的 HTML 标签,灵活运用在 SEO 中。

什么是语义标签?以及为什么要注意它

语义化 HTML(Semantic HTML),也称为语义标记(semantic markup),是一种编写 HTML 的方式或者,它强调内容的含义而不是其外观。

语义化标签通过清晰地定义网页中的不同部分和布局,使 HTML 更易于理解,在 AI 时代尤其重要。它可以帮助 AI 信息聚合、搜索引擎和用户设备确定网页的重要性和上下文,从而带来更好的可访问性和用户体验。并且,浏览器对这些带语义的标签都有默认的样式和行为。所以即便在 CSS/JS 加载失败的情况下,也能有比较好的展示效果。

例如,使用 <article> 括起博客文章或新闻项,可以清楚地向开发人员和机器表明,所包含的内容是独立的信息。类似地,<header><footer> 分别定义页面的页眉和页脚部分,提供清晰的结构线索,具体见下。

借用 Semrush 的示例图片,更清晰地展示一下:

前端之争

语义化标签可以让 HTML 变成更加纯粹的语义框架,使用 CSS 去填充样式、降低耦合。

在前端开发领域中,W3C 的标准是有点有心无力的,比如语义化标签规范已经出来了十年了,愿意遵循或者知道这个规范的人其实不多。

但规范永远都是人来遵守的,比如变量命名方式叫 abc 随便都可以,但还是要考虑给予其他人或系统方便,所以才有了各种命名法。

如果你不了解,在开发中采用或不采用语义化的还有一些常见的坑点,比如:

  • 命名冲突:Vue.js 组件和语义化 HTML 标签之间潜在的命名冲突。组件命名为 <article>,因为它可能会与语义标签 <article> 冲突。

  • 语义化标签自带隐式处理:比如 p 标签里面不能再嵌套块元素

  • DOM 大小增加:过多的 div 会增加 HTML DOM 的大小,从而可能影响页面加载速度,一般还要配合 Flexbox 和 Grid 等现代布局技术,减少不必要的嵌套。

Linus 个人的看法是,不要为了用而用,准确使用才可以。

需要了解的语义标签 - 这些就够了

高质量的内容是 SEO 最重要的一点,但如何好好使用,只需要了解这些就够了。以下是一些基本语义标签及其用法的列表:

标签

用法

<h1> - <h6>

定义不同级别的标题,<h1> 代表最重要的标题,<h6> 代表最不重要的标题。

<p>

定义段落。

<ul>

定义无序列表。

<ol>

定义有序列表。

<li>

定义列表项(用于 <ul><ol> 内部)。

<a>

定义超链接。

<strong>

强调文本的重要性,表示内容的重要性。

<b>

加粗文本,仅用于视觉上的强调。

<em>

强调文本,表示内容的强调语气。

<i>

使文本斜体,通常表示专业术语或外语短语等。

<img>

定义图像,alt 属性提供替代文本描述。

以下是不一定要遵循的列表,看情况而定:

Tag 标签

Description 描述

<article>

Defines independent, self-contained content 定义独立、自包含的内容

<aside>

Defines content aside from the page content 定义页面内容之外的内容

<details>

Defines additional details that the user can view or hide 定义用户可以查看或隐藏的其他详细信息

<figcaption>

Defines a caption for a <figure> element 定义 <figure> 元素的标题

<figure>

Specifies self-contained content, like illustrations, diagrams, photos, code listings, etc. 指定独立的内容,例如插图、图表、照片、代码列表等。

<footer>

Defines a footer for a document or section 定义文档或部分的页脚

<header>

Specifies a header for a document or section 指定文档或节的标题

<main>

Specifies the main content of a document 指定文档的主要内容

<mark>

Defines marked/highlighted text 定义标记 / 突出显示的文本

<nav>

Defines navigation links 定义导航链接

<section>

Defines a section in a document 定义文档中的一个部分

<summary>

Defines a visible heading for a <details> element 定义 <details> 元素的可见标题

<time>

Defines a date/time 定义日期 / 时间

可以在此处参考所有的 HTML Tag Reference