微格式

Frontend SELF ZH
第 11 级, 课程 3
可用

9.1 什么是微格式?

微格式(structured data)是向 HTML 文档添加元数据的一种方法,目的是改善搜索引擎和其他服务对网页内容的理解。微格式用于描述网页上的各种实体及其相互关系,有助于提高页面在搜索结果中的可见性,并提供附加功能,例如丰富片段。

微格式是添加到页面 HTML 代码中的结构化数据。它为搜索引擎提供有关页面内容的更多信息,例如内容类型、作者、发布日期、评分等。

微格式由两部分组成:词汇表——用哪些术语来描述实体,以及语法——如何把这些术语实际写进 HTML。这是两个不同的层面,不要混为一谈。

词汇表就是 Schema.org:一套公共的类型(Article、Product、Event、Organization 等)及其属性。Schema.org 由 Google、Microsoft、Yahoo 和 Yandex 发起,由开放社区维护,所有主流搜索引擎都能理解它。

语法就是书写方式。同一套 Schema.org 词汇表可以用三种不同的方式写出来:

  • JSON-LD:数据放在 <script type="application/ld+json"> 里作为独立的一块,不和页面结构混在一起。W3C 标准,Google 推荐的正是它。
  • Microdata:把 itemscope、itemtype、itemprop 属性直接写在 HTML 元素上。在 HTML Living Standard 中有定义。
  • RDFa(RDFa Lite 1.1):把 vocab、typeof、property 属性同样直接写在 HTML 元素上。W3C 推荐标准。

除了 Schema.org,还有针对特定场景的其他词汇表——比如 Open Graph(社交网络中的链接预览)和 microformats2。本节课我们使用 Schema.org。

9.2 Schema.org

Schema.org是用于在网页上结构化数据的数据类型和其属性的词汇表。它支持多种数据类型,例如文章、事件、组织、产品等。

Schema.org 的使用示例

文章 (Article):

HTML(原始页面,无标记)
    
      <article>
        <h1>文章标题</h1>
        <p>作者:作者姓名</p>
        <p>发布日期:2024年1月1日</p>
        <img src="https://example.com/image.jpg" alt="示例图片">
        <p>文章内容...</p>
      </article>
    
  
HTML + JSON-LD(同一页面,加上标记)
    
      <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "Article",
          "headline": "文章标题",
          "author": {
            "@type": "Person",
            "name": "作者姓名"
          },
          "datePublished": "2024-01-01",
          "image": "https://example.com/image.jpg",
          "publisher": {
            "@type": "Organization",
            "name": "出版社",
            "logo": {
              "@type": "ImageObject",
              "url": "https://example.com/logo.png"
            }
          }
        }
      </script>
    
  

产品 (Product):

HTML(原始页面,无标记)
    
      <body>
        <h1>产品名称</h1>
        <img src="https://example.com/product.jpg" alt="产品图片">
        <p>产品描述</p>
        <p>价格:$29.99</p>
      </body>
    
  
HTML + JSON-LD(同一页面,加上标记)
    
      <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "Product",
          "name": "产品名称",
          "image": "https://example.com/product.jpg",
          "description": "产品描述",
          "sku": "0446310786",
          "offers": {
            "@type": "Offer",
            "priceCurrency": "USD",
            "price": "29.99",
            "itemCondition": "https://schema.org/NewCondition",
            "availability": "https://schema.org/InStock",
            "url": "https://example.com/product"
          }
        }
      </script>
    
  

使用 Schema.org 的好处:

  1. 提高可见性:搜索引擎可以在搜索结果中显示额外数据(丰富片段)。
  2. 改善理解:搜索引擎更好地理解内容,可以提高页面排名。
  3. 标准支持:Schema.org 得到所有主要搜索引擎的支持。

9.3 JSON-LD

JSON-LD(JavaScript Object Notation for Linked Data)是一种在页面上使用 JSON 格式编码微格式的方法,通常插入到 <script> 标签中。Google 推荐使用 JSON-LD 来处理结构化数据。

JSON-LD 的使用示例

组织 (Organization):

HTML(原始页面,无标记)
    
      <body>
        <h1>公司名称</h1>
        <p>公司描述</p>
        <div>联系方式</div>
      </body>
    
  
HTML + JSON-LD(同一页面,加上标记)
    
      <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "Organization",
          "name": "公司名称",
          "url": "https://example.com",
          "logo": "https://example.com/logo.png",
          "contactPoint": {
            "@type": "ContactPoint",
            "telephone": "+1-800-555-1212",
            "contactType": "Customer Service"
          }
        }
      </script>
    
  

9.4 Microdata

Microdata 是直接嵌入 HTML 的微格式语法。itemscope、itemtype、itemprop(以及 itemid 和 itemref)这些专用属性被加到普通的 HTML 元素上,把它们与 Schema.org 词汇表中的类型和属性关联起来。

Microdata 的使用示例

事件 (Event):

HTML + Microdata
    
      <body itemscope itemtype="https://schema.org/Event">
        <h1 itemprop="name">事件名称</h1>
        <time itemprop="startDate" datetime="2024-05-01T19:00">2024年5月1日, 19:00</time>
        <div itemprop="location" itemscope itemtype="https://schema.org/Place">
          <span itemprop="name">事件地点</span>
          <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
            <span itemprop="streetAddress">街道, 地址</span>
            <span itemprop="addressLocality">城市</span>
            <span itemprop="postalCode">邮政编码</span>
            <span itemprop="addressCountry">国家</span>
          </div>
        </div>
      </body>
    
  

使用微格式的好处:

  1. 丰富片段:搜索引擎可以在搜索结果中显示扩展片段,提高点击率。
  2. 更好的内容理解:搜索引擎更好地理解内容,可能会提高页面排名。
  3. 支持语音搜索:结构化数据可以改善语音搜索结果。
  4. 与其他服务集成:微格式允许与各种服务集成,如 Google Knowledge Graph 等。
1
任务
Frontend SELF ZH, 第 11 级, 课程 3
已锁定
微数据
微数据
1
任务
Frontend SELF ZH, 第 11 级, 课程 3
已锁定
事件微数据
事件微数据
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION