什么是 XML 站点地图以及如何为 SEO 创建站点地图(附示例)

已发表: 2022-01-25

XML 站点地图小 XML 站点地图是 SEO 方程式中最受误解的部分之一。

我遇到过 SEO,他们无法解释为什么它们是必要的,更不用说告诉你如何设置一个“正确的”。

这是摩擦:

正如地图对于通过公路查找目的地至关重要一样,XML 站点地图对于搜索引擎定位您的网站 URL 至关重要。

如果您的 URL 没有被抓取,它们将不会被编入索引,并且您的网页(当然)不会在没有编入索引的情况下排名。

简而言之,XML 站点地图在搜索引擎优化中起着至关重要的作用。

在今天的文章中,我将逐步向您展示如何从头开始创建 XML 站点地图并针对 SEO 进行完美优化。 我正在报道:

  • 什么是 XML 站点地图
  • XML 与 HTML 站点地图
  • XML 站点地图标签(以及您应该使用哪些标签)
  • XML 站点地图示例
  • 为什么需要 XML 站点地图
  • 如何创建 XML 站点地图
  • sitemap.xml 创建的六个最佳实践

事不宜迟,让我们开始吧。

什么是 XML 站点地图? (以及为什么你应该关心)

简单来说:

XML 站点地图是搜索引擎的路线图。

它以 XML 格式列出您网站的重要内容,因此搜索引擎可以轻松找到并索引您的内容,并最终将其显示在搜索引擎结果页面中。

什么是 XML 站点地图

您应该在您的 XML 站点地图中列出您希望在搜索引擎中显示的任何网页(或文件)。

为什么?

因为站点地图可确保您的内容是可发现的。

假设您的网页没有从您网站上的任何地方链接 - 或者整个网络。 如果这些页面没有指向它们的超链接,则网络爬虫将无法找到它们。

XML 站点地图(提交给搜索引擎)确保搜索引擎可以找到您希望包含在 SERP 中的任何页面。

但这还不是全部。

您可以使用 XML 站点地图向搜索引擎提供附加信息,例如您的内容上次更新时间以及哪些页面的优先级更高。 稍后再谈。

XML 与 HTML 站点地图——有什么区别?

您可以将两种类型的站点地图添加到您的站点; XML 站点地图和 HTML 站点地图。

  • XML 站点地图使用可扩展标记语言 (XML)
  • HTML 站点地图使用超文本标记语言 (HTML)
XML 与 HTML 站点地图

但除了它们使用的代码之外,它们还提供不同的功能:

XML 站点地图

让我们从一个 XML 站点地图示例开始:

XML 站点地图示例

如您所见,XML 站点地图对人类不友好。

XML 站点地图是专门为搜索引擎设计的提要。

它们帮助像谷歌这样的搜索引擎理解要抓取哪些 URL 以及优先级。

另外,这些 URL 多久更改一次,以及哪些新 URL 被添加到站点。

XML 站点地图抓取频率

此信息有助于搜索引擎调度程序更好地评估重新抓取特定 URL 的时间和频率。

HTML 站点地图

以下是 HTML 站点地图的示例:

HTML 站点地图示例

它看起来与 XML 站点地图非常不同。

那是因为它是为人类和机器人设计的网页。

对于人类来说,HTML 站点地图有助于更好地浏览网站。

从搜索引擎的角度来看,HTML 站点地图是 URL 发现的有用工具(假设正在抓取站点地图并且跟踪站点地图中包含的链接)。

但是,这不是他们对 SEO 的唯一价值:

HTML 站点地图还会在整个网站中分发 PageRank。

因为 HTML 站点地图通常从站点上的每个页面链接(通过页脚中的导航链接),所以它们有大量的 PageRank 流向它们。

网站页脚

这意味着他们可以通过内部链接将大量传入的 PageRank 传递到网站上的其他页面。

有一个排名很差的页面?

将该页面添加到您的 HTML 站点地图。

这可以是一种快速简便的方法来提高排名。

XML 站点地图是什么样的?

正如我已经指出的,XML 站点地图适用于搜索引擎,而不是人类。

如果您以前从未遇到过,它们肯定会看起来令人困惑:

 <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://seosherpa.com/</loc> <lastmod>2022-01-26T19:12:36+09:00</lastmod> <changefreq>Daily</changefreq> <priority>1</priority> </url> <url> <loc>https://seosherpa.com/services/</loc> <lastmod>2021-11-16T13:21:20+09:00</lastmod> <changefreq>Daily</changefreq> <priority>0.8</priority> </url> </urlset> <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://seosherpa.com/</loc> <lastmod>2022-01-26T19:12:36+09:00</lastmod> <changefreq>Daily</changefreq> <priority>1</priority> </url> <url> <loc>https://seosherpa.com/services/</loc> <lastmod>2021-11-16T13:21:20+09:00</lastmod> <changefreq>Daily</changefreq> <priority>0.8</priority> </url> </urlset>

但是,当您知道每个组件的含义时:

  • XML 声明
  • 网址集
  • 网址
  • 最后修改
  • 优先
  • 更改频率

XML 站点地图非常简单。

让我们逐一分解:

XML 声明

简单来说,XML 声明告诉搜索引擎他们正在读取一个 XML 文件。

 <?xml version="1.0" encoding="UTF-8"?>

XML 声明还说明了使用的 XML 版本和字符编码。

  • 版本应该是 1.0
  • 编码必须是 UTF-8。

将 XML 声明放在 sitemap.xml 文件的顶部。

网址集

URL 集是站点地图中所有 URL 的容器。

首先说明 sitemap.xml 使用的协议标准:

 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

您会注意到上面示例中提到的协议是 0.9 标准。

Google、Yahoo 和 Microsoft 支持此站点地图标准——我建议您使用它。

重要的是要注意urlset在 XML 文档的底部关闭:

 </urlset>

这段简短的代码告诉搜索引擎 URL 集已经结束。

网址

<URL> 标签是 XML 站点地图中每个 URL 的父标签:

 <url> <loc>https://seosherpa.com/services/</loc> </url> <url> <loc>https://seosherpa.com/services/</loc> </url>

在开始 <url> 和结束 </url> 之间,您必须在嵌套的 <loc> 标记中声明 URL 的位置。

这里的关键是您声明绝对 URL,包括其 HTTP:// 或 HTTPS:// 协议。

换句话说,列出与 Web 浏览器中显示完全相同的 URL。

浏览器中的网址

另一方面,像 /services/ 这样的相对 URL 将不会被识别。

URL 位置是必须在 URL 标记之间声明的唯一属性。

但是话虽如此,还可以包含另外三个(可选)属性:

最后修改

<lastmod> 标记确定该 URL 上的内容上次更改的时间。

 <lastmod>2022-01-26T19:12:36+09:00</lastmod>

假设您在 2022 年 1 月 10 日更新了一篇博文; <lastmod> 属性将读取 2022-01-10。

它会告诉搜索引擎该 URL 上的内容最后一次修改的时间,这在理论上会影响搜索引擎重新抓取该页面的时间。

您也可以说明时间,但这不是必需的。

无论您只包含日期还是时间,请务必使用“W3C 日期时间”格式。

这是唯一被认可的格式sitemap.xml 中的 <lastmod> 标记。

优先

<priority> 标签指定 URL 相对于网站上所有其他 URL 的优先级。

 <priority>0.8</priority>

换句话说,它允许您告诉搜索引擎在为您的网站分配抓取预算时应该优先考虑哪些 URL。

优先级值可以设置为从最低优先级 0.0 到最高优先级 1.0。

麻烦的是,谷歌忽略了<priority> 在 XML 站点地图中,因为用 Gary Illyes 的话来说“这是一袋噪音”。

所以设置优先级真的没有任何意义。

更改频率

然而,<lastmod> 标签决定了该 URL 上的内容上次更改的时间……

<changfreq> 标记说明内容可能更改的频率。

 <changefreq>Daily</changefreq>

它的目的是让搜索引擎了解他们希望多久重新抓取一次 URL。

XML 站点地图中的更改频率可以设置为以下任何值:

  • 总是
  • 每小时
  • 日常的
  • 每周
  • 每月
  • 每年
  • 绝不

如果标签设置为<changefreq>每周</changefreq> 搜索引擎可能希望每 7 天重新抓取一次该 URL。

比这更频繁地这样做会很浪费,因为内容不太可能发生变化。

然而 <changefreq> 就谷歌而言已经过时了:

由于大多数站点地图生成器在将 <changefreq> 标记与实际更改频率匹配方面做得很糟糕,因此很容易理解原因。

您可以从 sitemap.xml 中省略更改频率属性。

XML 站点地图示例

现在我们知道了 XML 站点地图的组成部分,让我们看看一些在现实世界中出现的 sitemap.xml 示例。

这是 Gymshark 页面的 XML 站点地图:

这个站点地图可以通过删除 <changefreq> 来改进,因为它被 Google 忽略了,并通过在站点地图 XML 的开头添加一个 XML 声明。

(包括 XML 声明是所有站点地图的最佳实践)。

这是另一个 XML 站点地图示例,这次来自 yasisland.ae

XML 站点地图示例

与 Gym Shark 的站点地图一样,可以通过在开头添加 XML 声明来增强此站点地图。

此外,更改频率和优先级可以删除,因为它们现在是多余的。

除此之外,这些 XML 站点地图设置正确。

所以在这个阶段,你可能会问自己:

最佳 XML 站点地图是什么样的?

像这样的东西:

 <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://seosherpa.com/</loc> <lastmod>2022-01-26</lastmod> </url> <url> <loc>https://seosherpa.com/services/</loc> <lastmod>2021-11-16</lastmod> </url> </urlset> <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://seosherpa.com/</loc> <lastmod>2022-01-26</lastmod> </url> <url> <loc>https://seosherpa.com/services/</loc> <lastmod>2021-11-16</lastmod> </url> </urlset>

它应该包含:

  • XML 声明(版本)
  • 网址集
  • 网址
  • 最后修改(仅日期)
XML 站点地图示例

而且,仅此而已。

为什么需要 XML 站点地图?

正如我之前解释的,搜索引擎通过使用通常被称为“蜘蛛”的机器人从一个网页爬到另一个网页来发现网络上的内容:

搜索引擎蜘蛛爬行

当这些蜘蛛通过内部或外部链接发现新页面时,它们会将该页面添加到其索引中。

但是爬行的问题?

搜索引擎无法以这种方式找到网络上的所有内容。

如果一个网页没有通过另一个已知页面链接,搜索引擎将找不到它。

这就是 XML 站点地图的用武之地。

XML 站点地图通过通知搜索引擎在哪里可以找到您网站上最重要的页面,从而帮助内容发现和索引,充当了爬行的保险。

这很关键,因为搜索引擎无法在没有先索引内容的情况下对您的内容进行排名。

什么类型的网站需要 XML 站点地图?

如果您遵循 Google 的建议,XML 站点地图最适合:

  • 拥有数千页的大型网站
  • 拥有大量档案的网站
  • 具有大量富媒体内容的网站
  • 没有或很少反向链接的网站

但事情是这样的:

所有网站都受益于 XML 站点地图。

当您包含 XML 站点地图时,搜索引擎机器人可以更好地了解您的站点的结构、发现您的内容——并知道上次更新的时间。

即使您有一个单页网站,包括 XML 站点地图也可能是值得的。

您应该在 XML 站点地图中包含哪些页面?

简短的回答:

在您的 XML 站点地图中包含您希望在搜索结果中显示的任何页面,并忽略其他所有内容。

换句话说,您的站点地图应该包含具有实用性的页面。 像:

  • 主页
  • 关于页面
  • 产品页面
  • 服务页面
  • 联系页面
  • 博客文章

一般来说,您不会包含以下页面:

  • 感谢页面
  • 标记页面
  • 私人媒体文件

这些都是您不希望出现在搜索结果中的 URL 示例。

XML 站点地图包含

但请记住,仅仅因为您从站点地图中省略了一个页面并不意味着它不会被索引。

如果页面有指向它的链接,Google(和其他搜索引擎)就有可能会在搜索引擎结果中抓取、索引和显示该页面。

为确保从搜索结果中删除某个页面,请从您的 XML 站点地图中省略该页面并为其添加一个无索引标签。

这让我想到了下一点:

XML 站点地图中的每个页面都必须是可索引的。

您的站点地图不应包含返回这些状态代码的页面:

  • 404页面不存在
  • 301 或 302 - 页面移动到另一个位置

4XX 和 3XX 状态码告诉搜索引擎那里没有页面。

而且,如果该 URL 上没有页面,则它是不可索引的。

此外:

每个页面都必须可供搜索引擎爬虫访问。

简而言之,robots.txt 没有阻止页面,也没有指令(例如元机器人、规范链接或 x-robots-tags)告诉搜索引擎不要索引页面。

既然您知道 XML 站点地图中包含哪些内容,那么让我们讨论如何创建一个站点地图。

如何创建 XML 站点地图(2 种方法)

如果您使用 Shopify 或 Wix 等内容管理系统构建网站,则无需创建 XML 站点地图,因为您的 CMS 将为您生成站点地图。

这些平台(以及其他类似平台)上的 XML 站点地图会在从站点添加或删除页面时自动更新。

如果您的 CMS 不这样做,那么通常会有一个插件可以为您完成。

另一方面,如果您不使用 CMS,则需要手动创建 XML 站点地图。

让我们分解这个过程:

如何手动创建 XML 站点地图

如果您担心必须手动编写 XML 站点地图,请不要担心!

这个过程并不是真正的手动。

我们将使用 Screaming Frog 为您完成大部分工作。

第一步是安装 Screaming Frog SEO Spider。

提示 – 如果您的网站少于三百页,您可以使用免费版本。

安装后,导航到“模式”,然后导航到“蜘蛛”。

接下来,将您的主页 URL 放入标有“输入蜘蛛的 URL”的框中。

然后,点击“开始”。

Screaming Frog 将开始抓取您的网站。

爬取完成后,接下来我们调整一些设置:

尖叫青蛙站点地图设置

因为 Google 不使用 <changefreq> 和 <priority> 我建议从站点地图文件中排除这些标签。

如果您手动创建 XML 站点地图,我还建议您在 XML 站点地图中省略 <lastmod>。

为什么?

因为每次对页面进行微小更改时都必须重新构建 XML 站点地图是一件非常痛苦的事情。

从您的 XML 站点地图中排除 <lastmod> 意味着您不必这样做。

在提取站点地图文件之前,您可以根据希望搜索引擎抓取和索引的内容来添加、编辑或删除 URL。

完成对站点地图的微调后,您可以将其上传到网站的根文件夹,文件名为“sitemap.xml”。

很简单,对吧?

如何在 WordPress 中创建 XML 站点地图

这可能会让人感到意外,但“开箱即用”的 WordPress 安装并没有附带 XML 站点地图创建器。

要在 WordPress 中生成 XML 站点地图,您需要一个插件,例如 Yoast SEO。

如果您尚未安装 Yoast,以下是将 Yoast 添加到您的网站的方法:

在您的 WordPress 仪表板中,转到“插件”,然后转到“添加新插件”。

接下来,搜索“Yoast SEO”。

Yoast SEO 插件

然后在第一个结果上单击“立即安装”,然后单击“激活”。

安装 Yoast 后,导航到 Yoast 设置,选择“SEO”,然后选择“XML 站点地图”,然后选择“常规”。

在此选项卡上,确保“XML 站点地图功能设置为“启用”。

打开 XML 站点地图后,您现在应该在 yourdomain.com/sitemap_index.xml 中看到您的站点地图索引。

Yoast 站点地图索引

值得庆幸的是,Yoast 会自动将不可索引的页面(例如,那些带有“无索引”元机器人标签的页面)排除在站点地图中。 既然如此,标准设置在大多数情况下应该没问题。

但是,如果您愿意,您可以选择排除某些帖子类型和分类法以进一步优化您的站点地图:

Yoast XML 站点地图设置

对于 SEO Sherpa 网站,我已经从我的站点地图中排除了媒体和标签,因为至少在我的情况下,这些页面对最终用户没有什么价值。

如何在 Wix 中创建 XML 站点地图

与 WordPress 相比,Wix 确实内置了 XML 站点地图功能。

问题是,它非常有限。

您唯一的选择是排除某些页面。

如果您想排除某个页面,请前往该页面的“SEO(Google)”设置选项卡,然后关闭“在搜索结果中显示此页面”开关。

Wix 搜索引擎设置

这会向页面添加一个 noindex 元标记,并将其从 XML 站点地图中排除。

Wix 严格的站点地图功能面临的一个挑战是它包含已规范化到另一个页面的 URL。

这实质上同时表示“对此页面进行排名”和“不对该页面进行排名”,这对搜索引擎来说非常混乱。

这样做的结果可能是搜索结果页面上显示的版本错误。

如果您有 Wix 网站,您可以在yourdomain.com/sitemap.xml 找到自动生成的站点地图。

如何在 Shopify 中创建 XML 站点地图

如果您的网站是使用 Shopify 构建的,则无需创建 XML 站点地图,它会自动为您完成。

但是,不幸的是,可以进行零定制。

使用 Shopify,您甚至无法从 XML 站点地图中排除页面——所有内容都包含在内。

控制搜索结果中显示内容的唯一方法是直接向 .liquid 文件添加 noindex 标签。

尽管如此,在 Shopify 中,无索引页面将显示在站点地图 XML 中,正如我们之前指出的那样,这并不理想。

在 yourdomain.com/sitemap.xml 找到您的站点地图。

如何将您的站点地图提交给 Google

到目前为止,您应该已经创建了站点地图。

最后一步(可能也是最重要的一步)是将您的站点地图提交给 Google。

当然,在此之前,您需要知道站点地图的位置。

如果您手动创建了站点地图,或者您使用的是 Wix 或 Shopify,则可以在以下 URL 上找到您的站点地图:

yourdomain.com/sitemap.xml

另一方面,如果您的站点在 WordPress 上,并且您已将 Yoast 用于您的 sitemap.xml,那么您将在以下 URL 找到站点地图索引:

yourdomain.com/sitemap_index.xml

如果您使用的是其他平台,或者在其中任何一个位置都找不到您的站点地图,您可以使用我们的 SEO 分级工具检查您的站点地图:

SEO分级机

一旦您知道您的 XML 站点地图的位置,请转到 Google 搜索控制台,然后转到您可以在“索引”菜单下找到的“站点地图”。

接下来,将您的站点地图 URL 粘贴到站点地图字段中,然后点击“提交”。

您的站点地图“应该”成功提交:

Google Search Console 提交站点地图成功

而且,这样,你就完成了!

7 个“基本”XML 站点地图最佳实践

让我们以一系列 XML 站点地图最佳实践结束。

您需要执行这些技术以确保您的 XML 站点地图针对有效的爬网和索引进行了优化。

让我们跳进去。

(1)。 使用动态站点地图而不是静态站点地图

想象一下,每当您对网站进行更改时,都必须手动更新您的 XML 站点地图?!

好吧,这正是您使用静态站点地图所要做的。

值得庆幸的是,大多数现代 CMS 都内置了动态 XML 站点地图功能——或通过插件获得。

意思是:

每当您添加、更改或删除现有页面时,您的站点地图都会自动更新。

无需人工干预。

对于经常添加优先级页面的大型网站,使用动态站点地图尤其重要。

确保你使用一个。

(2)。 使用标准站点地图位置和名称

如果您使用 /my_website_sitemap.xml 作为 XML 站点地图的路径,搜索引擎有可能找不到它。

为确保您的站点地图很容易被发现,请坚持使用标准位置:

https://yourdomain.com/sitemap.xml 用于单个站点地图

或者

https://yourdomain.com/sitemap_index.xml 当索引中有多个站点地图时。

就是这么简单。

(3)。 在您的 Robots.txt 文件中引用您的 XML 站点地图

搜索引擎机器人在开始抓取您的网站时会访问您的 robots.txt 文件。

他们使用 robots.txt 来了解如何抓取网站。

通过在 robots.txt 文件中引用您的 XML 站点地图,您可以确保搜索机器人可以找到它。

要将您的 XML 站点地图添加到 robots.txt,请打开 robots 文本文件并将以下行粘贴到其中:

 Sitemap: https://www.yourdomain.com/sitemap.xml

您可以在“/robots.txt”路径下的服务器根目录中找到 robots.txt 文件。

如果您有多个 XML 站点地图,只需将它们一一列出,如下所示:

 Sitemap: https://www.yourdomain.com/page-sitemap.xml Sitemap: https://www.yourdomain.com/post-sitemap.xml Sitemap: https://www.yourdomain.com/product-sitemap.xml

虽然理论上,您可以将站点地图位置放在 robots.txt 中的任何位置,通常最好放在最后:

机器人 txt 站点地图参考

(4)。 从您的站点地图中排除 Noindex 页面

XML 站点地图的作用是告诉搜索引擎要抓取什么并编制索引。

这意味着,只应包含您首选的值得排名的页面。

将 Noindex、非规范或重定向页面添加到您的站点地图会混淆搜索引擎,并可能对您的抓取预算产生负面影响。

(5)。 将您的 XML 站点地图保持在 50MB 以下

根据 Google 的说法,一个 XML 站点地图不应超过 50MB 或 50,000 个 URL。

站点地图文件大小限制

每当您超过 50MB 或 50,000 个 URL 限制时,您应该将单个 XML 站点地图分成多个 XML 站点地图文件。

超过这些限制可能会导致 Google 停止抓取。

例如,您可以将站点地图拆分为“帖子”和“页面”。

然后将它们组合在一个站点地图索引文件中。

(6)。 忽略优先级和更改频率属性

正如我之前指出的,谷歌忽略了这两个标签:

  • <更改频率>
  • <优先级>

这意味着,包括更改频率和优先级属性,只会增加站点地图中不必要的权重,这可能会导致抓取预算和索引问题。

我建议您根本不要在站点地图中使用<changefreq> 或 <priority>标签。

(7)。 监控 Google Search Console 中的 XML 站点地图错误

如果 Google 无法抓取您的 XML 站点地图,它将通过 Search Console 告诉您:

GSC 站点地图错误

错误可能与 XML 站点地图 URL 不可提取、提交的 URL 返回 404 状态代码或无索引一样简单。

最常见的问题往往是:

(一个)。 未找到提交的 URL (404)

这意味着您在 XML 站点地图中提交的 URL 不存在。

请记住,如果您从网站中删除页面,请不要忘记将其从站点地图中删除。 更好的是,使用动态 XML 站点地图,该 URL 将自动从您的站点地图中删除。

(b)。 提交的 URL 标记为“noindex”

当您的 XML 站点地图中的页面具有“noindex”元标记时,就会发生这种情况。

如果您希望将此页面编入索引,则必须删除'noindex' 元标记。 如果您不想将其编入索引,请将其从站点地图中删除。

无论哪种方式,它都需要修复。

(C)。 提交的 URL 被 robots.txt 阻止

当您的 XML 站点地图中包含的页面被 robots.txt 阻止时,就会发生这种情况。

基本上,您的 robots.txt 文件中有一条指令告诉搜索引擎不要抓取该页面,即使您已要求搜索引擎通过提交它来进行索引来做到这一点。

如果您确实希望将 URL 编入索引,请从 robots.txt 文件中查找并删除该指令。

Robots TXT 测试工具

尝试使用 robots.txt 测试器测试您的页面以找出罪魁祸首。

你有它; 七个 XML 站点地图最佳实践。

你怎么看?

现在我想听听你的意见:

您将首先使用今天帖子中的哪种技术?

阅读今天的帖子后,您将对您的 XML 站点地图进行哪些更改?

也许您打算从手动切换到自动 XML 站点地图? 或者,也许您要省略 <changefreq> 标记?

无论哪种方式,请在下面发表评论让我知道。