Yoast SEO 开发者文档

title: "Functional Specification" post_status: publish comment_status: open taxonomy: category: - yoast-developer post_tag: - Xml Sitemaps - Features - Repos


用户希望被搜索引擎发现和索引的任何页面都应列在 XML 站点地图中。

应为每种内容类型构建单独的 XML 站点地图。大型站点地图可以拆分为独立的、分页的文件。

每个 XML 站点地图都应列在XML 站点地图索引中。

内容类型

应为以下每种内容类型创建 XML 站点地图,前提是该内容类型为公开且包含有效成员。

除了单独的 XML 站点地图外,还应创建一个XML 站点地图索引,其中引用所有这些站点地图。

排除项与空站点地图

以下情况应导致页面被排除在(相应的)XML 站点地图之外:

其中一些情况可能导致 XML 站点地图(或 XML 站点地图索引)为空。这是预期且允许的行为。

对不存在的站点地图 URL 的请求应返回正常的 404 行为。

内容

XML 站点地图索引

索引文件为每个独立的 XML 站点地图包含一个 <sitemap> 条目,每个条目都有 loc 和 lastmod 属性。例如:

<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
  <loc>https://www.example.com/author-sitemap.xml</loc>
  <lastmod>2019-10-21T12:37:01+00:00</lastmod>
</sitemap>
{...}
</sitemapindex>

如果不可用,可选属性可以省略。

URL 与重定向

该文件应可通过 /sitemap_index.xml 访问。对 /sitemap.xml 的请求应重定向至此地址。

XML 站点地图

每个站点地图为每个页面包含一个 <url> 条目,由 loclastmodimage:image 属性组成。例如:

<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.google.com/schemas/sitemap-image/1.1 http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
  <loc>https://www.example.com/blog/example-post/</loc>
  <lastmod>2018-04-21T10:00:12+00:00</lastmod>
  <image:image>      
    <image:loc>https://www.example.com/example-image.jpg</image:loc>
  </image:image>
  <image:image>      
    <image:loc>https://www.example.com/another-example-image.jpg</image:loc>
  </image:image>
</url>
{...}
</urlset>

如果不可用,可选属性可以省略。

限制与分页

默认情况下,每个站点地图最多可包含 1,000 个项目。如果某个内容类型的项目超过 1,000 个,则会生成额外的站点地图(最多 50,000 个)来容纳溢出的项目。

网址与重定向

每个站点地图的 URL 应按以下格式构建:{{type}}-sitemap{{n}}.xml,其中:

例如:post-sitemap.xmlpost-sitemap2.xmlcustom_taxonomy_name-sitemap.xml

{{n}}10 时,对站点地图的请求应触发 301 重定向以移除 {{n}}(例如:对 post-sitemap1.xmlpost-sitemap0.xml 的请求应重定向至 post-sitemap.xml)。

XSL 样式表

站点地图索引和单个站点地图引用 XSL 文件,该文件为页面提供布局和样式配置。

索引控制

XML 站点地图无需被搜索引擎索引即可被读取或解析。因此,所有 XML 站点地图响应都应返回一个值为 noindex, followx-robots-tag HTTP 标头。

其他场景

视频站点地图

我们的 WordPress 视频 SEO 插件 会添加一个额外的 视频站点地图(位于 video-sitemap.xml,并包含在站点地图索引中),其中包含网站内容中托管/引用的每个视频的信息。

对于每个包含视频的页面,站点地图包含一个 <url> 包装器,其中包含 <loc> 值(页面的规范 URL / 永久链接),以及页面中每个视频的 <video:video> 容器。例如:

<url>
  <loc>https://www.example.com/example-page/</loc>
  <video:video>
    <video:title><![CDATA[Example Video]]></video:title>
    <video:publication_date>2015-12-15T15:36:03+00:00</video:publication_date>
    <video:description><![CDATA[Example video description]]></video:description>
    <video:player_loc>https://www.youtube-nocookie.com/v/abc123</video:player_loc>           
    <video:thumbnail_loc>https://www.example.com/video-thumbnail.jpg</video:thumbnail_loc>
    <video:duration>98</video:duration>
    <video:view_count>367</video:view_count>
    <video:width>640</video:width>
    <video:height>390</video:height>
    <video:tag>Example tag</video:tag>
    <video:tag>Another example tag</video:tag>
    <video:family_friendly>yes</video:family_friendly>
    <video:uploader info="https://www.example.com/example-profile-page">Example Person</video:uploader>
  </video:video>
</url>
{…}
</urlset>

视频 XML 站点地图使用专用的 XSL 文件。

新闻站点地图

我们的 WordPress 新闻 SEO 插件 会添加一个额外的 新闻站点地图(位于 news-sitemap.xml,并包含在站点地图索引中),其中包含网站上发布的新闻文章信息。

新闻站点地图应仅引用过去 48 小时内发布或修改的文章。

该站点地图包含一个 <url> 包装器,其中包含 <loc> 值(页面的规范 URL / 永久链接),以及每个新闻文章的 <news:news> 容器。例如:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
  <loc>http://www.example.com/example-page/</loc>
  <news:news>
    <news:publication>
      <news:name>Example site name</news:name>
      <news:language>en</news:language>
    </news:publication>
    <news:publication_date>2019-11-15T09:59:38+00:00</news:publication_date>
    <news:title><![CDATA[Example post name]]></news:title>
  </news:news>
</url>
{…}
</urlset>

新闻 XML 站点地图使用专用的 XSL 文件。

:::info

一些延伸阅读: * 关于 什么是 XML 站点地图(以及为什么你应该拥有一个) 的指南 * 关于 如何将你的 XML 站点地图提交给搜索引擎 的指南

:::