本页面旨在介绍如何创建站点地图并将其提供给 Google。
1.确定您要让 Google 抓取网站上的哪些网页,并确定每个网页的规范版本。
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
文本文件站点地图指南:
1.使用 UTF-8 编码对您的文件进行编码。
2.您的文本文件只能包含网址列表。
3.您可以随意对该文本文件进行命名,但前提是要确保它的扩展名为 .txt(例如,sitemap.txt)。
Google 协作平台 #
如果您是通过 Google 协作平台创建并验证网站的,Google 协作平台会自动为您生成站点地图。您无法修改这种站点地图,但如果您想查看这种站点地图的报告数据,可以将其提交给 Google。请注意,如果单个子目录下包含的网页超过了 1000 个,那么您的站点地图可能会无法正常显示。
1.如果您的网站托管在 Google 协作平台上,则其站点地图网址为
http://sites.google.com/site/yoursitename/system/feeds/sitemap
2.如果您是使用 Google Workspace 创建的网站,那么您的站点地图网址是
https://sites.google.com/yourdomain/yoursitename/system/feeds/sitemap
适用于其他媒体类型的站点地图扩展功能 #
Google 支持适用于以下媒体类型的站点地图扩展语法。您可以使用这些扩展功能来描述您网站上的视频文件、图片及其他难以解析的内容,从而改善索引编制效果。
站点地图一般指南 #
1.使用一致且完全限定的网址。Google 会严格按照您列出的网址进行抓取。例如,如果网站位于 https://www.example.com/,请勿将网址指定为 https://example.com/(缺少 www)或 ./mypage.html(相对网址)。
2.站点地图可以发布在网站上的任何位置,但是站点地图只影响父级目录中的下级目录。因此,如果站点地图发布在网站的根目录下,则可以影响网站上的所有文件,所以我们建议将站点地图发布在此目录下。
3.请勿在站点地图中包含网址的会话 ID,以减少对这些网址的重复抓取。
4.使用 hreflang 注解将其他语言版本的网址告知 Google。
5.您必须对站点地图文件进行 UTF-8 编码,并且必须适当地对网址进行转义。
6.将较大的站点地图拆分成数个较小的站点地图:站点地图的网址数量上限为 50000 个,且压缩前的大小上限为 50MB。使用站点地图索引文件列出所有单个站点地图,然后将这个文件提交给 Google,而不是分别提交各个站点地图。
7.在站点地图中仅列出规范网址。如果您的网页有两个版本,请仅在站点地图中列出(Google 选择的)规范网址。如果您有两个版本的网站(例如,www 和非 www),请确定您的首选网站,并将站点地图放入其中,然后在另一个网站上添加 rel = canonical 或重定向。
8.如果您为网页的移动版和桌面版提供了不同的网址,建议在站点地图中仅指向一个版本。但是,如果您认为需要同时指向这两个网址,请为网址添加注解,指明桌面版和移动版分别是哪个。
9.使用站点地图扩展功能指向视频、图片和新闻等其他媒体类型。
10.如果您针对不同语言或区域提供了其他版本的网页,可以在站点地图或 HTML 标记中使用 hreflang 指明其他版本的网址。
11.非字母数字字符和非拉丁字符。我们要求您的站点地图文件使用 UTF-8 编码(您通常可在保存文件时采用这种编码)。和所有 XML 文件一样,对于下表中列出的字符,任何数据值(包括网址)都必须使用实体转义码。站点地图只能包含 ASCII 字符;它不能包含大写的 ASCII 字符、某些控制码以及特殊字符(如 * 和 {})。如果您的站点地图网址包含这些字符,那么当您尝试添加该网址时,就会收到错误消息。
字符 | 转义码 | |
& 符号 | & | & |
单引号 | ‘ | ' |
双引号 | “ | " |
大于号 | > | > |
小于号 | < | < |
此外,所有网址(包括站点地图的网址)都必须以网址所在的网络服务器可解析的方式编码,并经过网址转义。不过,如果您使用任何类型的脚本、工具或日志文件(除手动输入网址以外的任何方法)生成网址,这部分工作通常已由系统替您完成。如果您提交了站点地图,然后却收到了提示您 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&q=name
12.请注意,站点地图用于向 Google 建议您认为重要的网页,Google 不承诺会抓取站点地图中的每个网址。
13.Google 会忽略 <priority> 和 <changefreq> 值,因此无需费心添加这两个值。
14.Google 会读取 <lastmod> 值,但如果您未正确提供这个值,Google 将会停止读取。
15.网址在站点地图中的位置并不重要;Google 不会按照网址在站点地图中的显示顺序抓取网址。
将站点地图提供给 Google(向 Google 提交站点地图) #
Google 并非每次抓取网站时都会查看站点地图。我们仅在首次发现站点地图时查看;之后仅在您使用 ping 功能通知我们站点地图有变更时查看。请仅在新建或更新站点地图时向 Google 发送站点地图相关提醒。如果站点地图无任何变更,请勿多次向我们提交或 ping 站点地图。
您可通过以下几种不同方法将站点地图提供给 Google:
1.使用 Search Console 站点地图工具将其提交给 Google
2.将下面这行内容插入到 robots.txt 文件中的任意位置,以指定指向您站点地图的路径。
Sitemap: http://example.com/sitemap_location.xml
3.使用“ping”功能请求我们抓取站点地图。发送如下所示的 HTTP GET 请求:
http://www.google.com/ping?sitemap=<complete_url_of_sitemap>
例如:
http://www.google.com/ping?sitemap=https://example.com/sitemap.xml
站点地图问题排查 #
请参阅站点地图问题排查指南