创建和提交站点地图

本页面旨在介绍如何创建站点地图并将其提供给 Google。 点击此处即可详细了解站点地图

  1. 确定要使用的站点地图格式
  2. 自动或手动创建站点地图
  3. 将站点地图提供给 Google,方法有两种:将其添加到 robots.txt 文件中,或者将其直接提交给 Search Console。

站点地图格式

Google 支持多种站点地图格式:

Google 支持所有格式的标准站点地图协议,但目前不支持在站点地图中使用 <priority> 属性。

无论采用哪种格式,单个站点地图的文件大小一律不得超过 50MB(未压缩),并且其中包含的网址数量不得超过 50000 个,否则必须将站点地图拆分成多个较小的站点地图。您也可以选择创建站点地图索引文件(即指向站点地图列表的文件),然后将这个索引文件提交给 Google。您可以向 Google 提交多个站点地图和/或站点地图索引文件。

XML

下方是一个非常基本的 XML 站点地图,其中仅包含 1 个网址的位置信息:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>http://www.example.com/foo.html</loc>
    <lastmod>2018-06-04</lastmod>
  </url>
</urlset>

您可以在 sitemaps.org 上找到更复杂的示例和完整文档。

您可以查看指定其他语言版本网页的站点地图示例,以及新闻、图片或视频文件的站点地图示例。

RSS、mRSS 和 Atom 1.0

如果您的博客有 RSS 或 Atom Feed,那么您可以将该 Feed 的网址作为站点地图提交。 大多数博客软件都能为您创建 Feed,但请注意,此类 Feed 只会提供关于近期网址的信息。

  • Google 支持 RSS 2.0 Feed 和 Atom 1.0 Feed。
  • 您可以使用 mRSS(媒体 RSS)Feed 向 Google 提供有关您网站上视频内容的详情。

文本

如果您的站点地图只包含网页网址,那么您可以向 Google 提供简单的文本文件(每行只包含一个网址)。例如:

http://www.example.com/file1.html
http://www.example.com/file2.html

文本文件站点地图指南

  • 使用 UTF-8 编码对您的文件进行编码。
  • 请勿在站点地图文件中添加除网址以外的任何其他内容。
  • 您可以随意对该文本文件进行命名,但前提是要确保它的扩展名为 .txt(例如,sitemap.txt)。

适用于其他媒体类型的站点地图扩展项

Google 支持适用于以下媒体类型的站点地图扩展语法。您可以使用这些扩展功能来描述您网站上的视频文件、图片及其他难以解析的内容,从而改善索引编制效果。

站点地图一般指南

  • 使用一致且完全限定的网址。Google 会严格按照您列出的网址进行抓取。 例如,如果网站位于 https://www.example.com/,请勿将网址指定为 https://example.com/(缺少 www)或 ./mypage.html(相对网址)。
  • 站点地图可以发布在网站上的任何位置,但是站点地图只影响父级目录中的下级目录。因此,如果站点地图发布在网站的根目录下,则可以影响网站上的所有文件,所以我们建议将站点地图发布在此目录下。
  • 请勿在站点地图中包含网址的会话 ID。这样可以减少对这些网址的重复抓取。
  • 使用 hreflang 注解将其他语言版本的网址告知 Google
  • 您必须对站点地图文件进行 UTF-8 编码,并且适当地对网址进行转义
  • 将较大的站点地图拆分成数个较小的站点地图:站点地图的网址数量上限为 50000 个,且压缩前的大小上限为 50MB。使用站点地图索引文件列出所有单个站点地图,然后将这个文件提交给 Google,而不是分别提交各个站点地图。
  • 在站点地图中仅列出规范网址。如果您的网页有两个版本,则仅在站点地图中列出您希望在搜索结果中显示的版本。如果您有两个版本的网站(例如,www 和非 www),请确定您的首选网站,并将站点地图放入其中,然后在另一个网站上添加 rel=canonical 或重定向。
  • 如果您为网页的移动版和桌面版提供了不同的网址,建议在站点地图中仅指向一个版本。但是,如果您认为需要同时指向这两个网址,请为网址添加注解,指明桌面版和移动版分别是哪个。
  • 使用站点地图扩展功能指向视频、图片和新闻等其他媒体类型
  • 如果您针对不同语言或区域提供了其他版本的网页,可以在站点地图或 HTML 标记中使用 hreflang 指明其他版本的网址。
  • 非字母数字字符和非拉丁字符。 我们要求您的站点地图文件使用 UTF-8 编码(您通常可在保存文件时采用这种编码)。和所有 XML 文件一样,对于下表中列出的字符,任何数据值(包括网址)都必须使用实体转义码。站点地图只能包含 ASCII 字符;它不能包含大写的 ASCII 字符、某些控制码以及特殊字符(如 *{})。如果您的站点地图网址包含这些字符,那么当您尝试添加该网址时,就会收到错误消息。
    字符 符号 转义码
    & 符号 & &amp;
    单引号 ' &apos;
    双引号 " &quot;
    大于号 > &gt;
    小于号 < &lt;

    此外,所有网址(包括站点地图的网址)都必须经过编码,以便能被它们所在的且会对其网址进行转义的网络服务器识别。不过,如果您使用任何类型的脚本、工具或日志文件(除手动输入网址以外的任何方法)生成网址,这部分工作通常已由系统替您完成。如果您提交了站点地图,然后却收到了提示您 Google 无法找到其中某些网址的错误消息,请检查并确保网址遵循了适用于 URI 的 RFC-3986 标准、适用于 IRI 的 RFC-3987 标准以及 XML 标准

    下方是一个采用非 ASCII 字符 (ü) 和需要进行实体转义的字符 (&) 的网址示例:

    http://www.example.com/ümlat.html&q=name

    下方是采用 ISO-8859-1 编码(以便在使用该编码的服务器上托管)且经过网址转义的同一网址:

    http://www.example.com/%FCmlat.html&q=name

    下方是采用 UTF-8 编码(以便在使用该编码的服务器上托管)且经过网址转义的同一网址:

    http://www.example.com/%C3%BCmlat.html&q=name

    下方是经过实体转义的同一网址:

    http://www.example.com/%C3%BCmlat.html&amp;q=name
  • 请注意,站点地图用于向 Google 建议您认为重要的网页,Google 不承诺会抓取站点地图中的每个网址。
  • Google 会忽略 <priority><changefreq> 值。
  • 如果 <lastmod> 值始终准确并可验证(例如通过与网页的最后修改日期进行比较),Google 会使用该值
  • 网址在站点地图中的位置并不重要;Google 不会按照网址在站点地图中的显示顺序抓取网址。

创建站点地图

创建站点地图时,您是在告诉搜索引擎您希望哪些网址显示在搜索结果中。这些就是规范网址。如果不同网址下可供访问的内容相同,请选择您偏好的网址并将其加入站点地图,而不是将所有指向相同内容的网址都加入站点地图。

在确定要将哪些网址加入站点地图后,选择下列方式之一来创建站点地图,具体取决于您网站的架构和大小:

让您的 CMS 为您生成站点地图

如果您使用的是 WordPress、Wix 或 Blogger 等 CMS,那么您的 CMS 可能已经向搜索引擎提供了站点地图。尝试搜索以下方面的信息:您的 CMS 如何生成站点地图,或者在您的 CMS 没有自动生成站点地图时如何创建站点地图。例如,如果您使用的是 Wix,请搜索“wix sitemap”。

对于所有其他网站设置,您需要自行生成站点地图。

手动创建站点地图

如果要创建的站点地图包含的网址不到几十个,您或许能够手动创建站点地图。为此,请打开 Windows NotepadNano(Linux、MacOS)等文本编辑器,然后按照站点地图格式部分中所述的语法创建站点地图。

您可以手动创建较大的站点地图,但此过程非常繁琐。

自动生成站点地图

如果要创建的站点地图包含的网址超过几十个,您需要自动生成站点地图。有很多工具可以生成站点地图。不过,最好是让您的网站制作软件为您生成站点地图。例如,您可以从您网站的数据库中提取网站的网址,然后将网址导出到屏幕上或网络服务器的实际文件中。请与您的开发者或服务器管理员讨论此解决方案。如果您需要代码方面的指导,不妨看看我们以前汇总的第三方站点地图生成器

请注意,站点地图的大小不得超过 50 MB。详细了解如何管理大型站点地图

将站点地图提交给 Google

Google 并非每次抓取网站时都会查看站点地图。我们仅在首次发现站点地图时查看;之后仅在您使用 ping 功能通知我们站点地图有变更时查看。请仅在新建或更新站点地图时向 Google 发送站点地图相关提醒。如果站点地图无任何变更,请勿多次向我们提交或 ping 站点地图。

如果站点地图中有更新过的网页,请使用 <lastmod> 字段标记这些网页。 其他 XML 文件有类似的字段,例如 Atom XML 的 <updated>。 您还可以参阅相关说明,了解如何计算此日期。

您可通过以下几种不同方法将站点地图提交给 Google:

  • 使用站点地图报告提交站点地图
  • 使用 ping 工具。在浏览器或命令行中向此地址发送 GET 请求,并指定站点地图的完整网址。请确保站点地图文件可供访问:
    https://www.google.com/ping?sitemap=FULL_URL_OF_SITEMAP

    示例:

    https://www.google.com/ping?sitemap=https://example.com/sitemap.xml
  • 将下面这行内容插入到 robots.txt 文件中的任意位置,指定站点地图的路径。我们会在下次抓取 robots.txt 文件时找到该站点地图:
    Sitemap: https://example.com/my_sitemap.xml
  • 如果您的站点地图采用了 Atom/RSS,并且您想要向 Google 及其他搜索引擎广播您的更改,请使用 WebSub

站点地图问题排查

请参阅站点地图问题排查指南