如何创建 XML 站点地图(并提交给谷歌)
创建 XML 站点地图并提交给谷歌,其实既快捷又简单。本文先介绍站点地图的基础知识,再一步步讲解创建与提交的具体做法,并附常见问题排查。
就像没有地图很难找到一个新目的地一样,没有站点地图(sitemap),谷歌有时也很难找到你网站上的所有页面。
幸运的是,创建 XML 站点地图并提交给谷歌,既快捷又简单。
下面,我们一步步讲解具体做法。
但首先,我们来介绍几个基础知识。
(已经了解基础?点击直接跳到创建站点地图。)
什么是站点地图?
站点地图是一个 XML 文件,列出你网站上的所有重要内容。任何你希望出现在搜索引擎中的页面或文件,都应包含在你的站点地图里。
XML 站点地图长什么样?
XML 站点地图是给搜索引擎看的,而不是给人看的。如果你从未见过,它可能会显得有点吓人。
我们来拆解一下。
XML 声明
它告诉搜索引擎,它们正在读取的是一个 XML 文件。它还声明了所用的 XML 版本和字符编码。对于站点地图,版本应当是 1.0,编码必须是 UTF-8。
URL 集合
它是站点地图中所有 URL 的容器。它还告诉爬虫所用的协议标准。大多数站点地图都指定 Sitemap 0.90 标准,该标准受到谷歌、雅虎(Yahoo!)和微软(Microsoft)等的支持。
URL
这是每个 URL 的父标签。你必须在嵌套的 [['Text', '<loc>']] 标签中指定 URL 的位置。至关重要的是,它们必须是绝对的、规范的 URL,而不是相对 URL。
尽管这是此处唯一必需的标签,但还有一些可选的属性:
[['Text', '<lastmod>']]:指定文件最后修改的日期。必须采用 W3C Datetime 格式。例如,如果你在 2019 年 9 月 25 日更新了一篇文章,该属性应写作 2019-09-25。你也可以包含时间,但这是可选的。[['Text', '<priority>']]: 指定该 URL 相对于网站上所有其他 URL 的优先级。取值范围在 0.0 到 1.0 之间。数值越高越重要。[['Text', '<changefreq>']]: 指定页面可能发生变化的频率。它的作用是让搜索引擎大致了解,它们可能希望多久重新抓取一次该 URL。有效取值包括 always、hourly、daily、weekly、monthly、yearly 和 never。
这些可选标签对 SEO 都没那么重要。
对于 [['Text', '<lastmod>']],谷歌的 Gary Ilyes 表示,他们在大多数情况下会忽略它,因为“站长们在保持它准确方面做得一塌糊涂”。由于大多数站点地图生成器会把所有页面的该值设为当前日期,而不是文件最后修改的日期,原因也就不难理解。
对于 [['Text', '<priority>']],谷歌表示他们忽略这个标签,因为它不过是“一堆噪音”。
对于 [['Text', '<changefreq>']],John Mueller 表示:“优先级和更改频率在站点地图中如今其实已不太起作用了。”
我为什么需要站点地图?
谷歌通过抓取网络来发现新内容。当它们抓取一个页面时,会关注该页面上的内链和外链。如果发现某个 URL 不在它们的搜索索引中,它们就能解析其内容并在适当的地方将其编入索引。
但谷歌无法通过这种方式找到所有内容。如果某个网页没有被其他已知页面链接,它们就找不到它。
这时站点地图就派上用场了。
站点地图会告诉谷歌(以及其他搜索引擎)在你网站上哪里能找到最重要的页面,以便它们抓取并建立索引。
这一点很重要,因为搜索引擎必须先索引你的内容,才能给它排名。
如何创建站点地图
有些 CMS 会为你生成站点地图。当你向网站添加或移除页面和文章时,它们会自动更新。如果你的 CMS 不这么做,通常也有可用的插件来完成。
在 WordPress 中创建站点地图
尽管 WordPress 驱动了 34.5% 的网站,但它并不会为你生成站点地图。要创建一个,你需要使用像 Yoast SEO 这样的插件。
要安装 Yoast SEO,请登录你的 WordPress 后台。
进入插件(Plugins)> 安装插件(Add New)。
搜索“Yoast SEO”。
在第一个结果上点击“立即安装(Install now)”,然后点击“启用(Activate)”。
进入SEO > 常规(General)> 功能(Features)。确保“XML 站点地图(XML sitemaps)”开关已打开。
现在你应该可以在 yourdomain.com/sitemap.xml 或 yourdomain.com/sitemap_index.xml 看到你的站点地图(或站点地图索引)。
在 Wix 中创建站点地图
Wix 会自动为你生成站点地图。你可以在 yourwixsite.com/sitemap.xml 找到它。
遗憾的是,你对哪些页面被包含进站点地图、哪些不被包含,几乎没有控制权。如果你想排除某个页面,请进入该页面的“SEO (Google)”设置选项卡,关闭“在搜索结果中显示此页面(Show this page in search results)”开关。
请注意,这还会给该页面添加一个 noindex 元标签,从而将其排除在搜索结果之外。
在 Squarespace 中创建站点地图
Squarespace 也会自动为你生成站点地图。你通常可以在 yoursquarespacesite.com/sitemap.xml 找到它。
在 Squarespace 中无法手动编辑站点地图,不过你可以在“SEO”选项卡中将页面从搜索引擎中排除(noindex)。
这也会将该页面从你的站点地图中排除。
在 Shopify 中创建站点地图
Shopify 会自动为你生成站点地图。在 yourstore.com/sitemap.xml 可以找到它。
遗憾的是,在 Shopify 中没有简单的方法将页面设为 noindex。你必须直接编辑 .liquid 文件中的代码。
在没有 CMS 的情况下创建站点地图
如果你认为网站上的页面少于约 300 个,可以安装 Screaming Frog 的免费版。
安装完成后,进入模式(Mode)> 爬虫(Spider)。
在标注为“Enter URL to spider”的框中粘贴你的首页 URL。
点击“Start”。
抓取完成后,查看右下角。
它会显示类似这样的内容:
如果这个数字是 499 或更低,就进入站点地图(Sitemaps)> XML 站点地图(XML sitemap)。
由于谷歌不太关注 [['Text', '<lastmod>']]、[['Text', '<changefreq>']] 和 [['Text', '<priority>']],我们建议将它们从站点地图文件中排除。
点击“Next”,把站点地图保存到你的电脑。完成。
如果这个数字显示“500 of 500”,那就没必要导出站点地图了。为什么?因为这意味着在爬完你网站上所有页面之前,它就已经达到了抓取上限。结果就是,导出的站点地图可能遗漏数百个页面——这让它变得相当没用。
一个解决办法是搜索免费的站点地图生成器。这类工具非常多。
遗憾的是,大多数都不可靠。
我们测试了一些最流行的生成器,发现相当一部分会把非规范 URL、noindex 页面和重定向包含进去。这是糟糕的 SEO 做法。
那该怎么办呢?
如果 Screaming Frog 没能抓取你的整个网站,就用 Ahrefs Site Audit 来抓取你的网站。
抓取完成后,进入页面浏览器(Page Explorer)并添加这些筛选条件。
点击导出(Export) > 当前表格视图(Current table view)。
打开这个 CSV 文件,然后把 URL 列中的所有 URL 复制粘贴到这个工具中。
点击“Add to queue”,然后点击“Export queue as sitemap.xml”。
这个文件就是你已经完成的站点地图。
如何把站点地图提交给谷歌
首先,你需要知道你站点地图的位置。
如果你使用的是插件,URL 很可能就是 domain.com/sitemap.xml。
如果你是手动操作,把站点地图命名为类似 sitemap.xml 的名字,然后上传到你网站的根目录。之后你应该就能通过 domain.com/sitemap.xml 访问该站点地图了。
进入Google Search Console > 站点地图(Sitemaps)> 粘贴站点地图位置 > 点击“Submit”
就这样,完成了。
修复影响站点地图的常见网站错误
Google Search Console 会告知你与站点地图相关的大多数技术错误。
例如,下面这条警告提示,我们提交的某个 URL 被 robots.txt 屏蔽了:
你可以在这里了解更多关于这些问题以及如何解决它们的信息。
话虽如此,还有一些问题是谷歌不会告诉你的。
下面是其中两个比较常见的问题,以及如何发现并修复它们。
站点地图中无用、低质量的页面
你的站点地图中的每个页面现在都应当是可索引且规范的。
遗憾的是,这并不意味着所有这些页面质量都高。如果你有大量内容,一些低质量页面很可能混进了你的站点地图。
例如,看看某电商网站上的这两个页面:
它们对搜索者都没有价值,但它们仍然留在该网站的站点地图中,而且谷歌已经把这两个页面都编入了索引。
要找到这些页面,请进入Site Audit > 重复内容(Duplicate Content)
寻找没有规范标签的重复页面和近似重复页面集群。它们显示为橙色方块。点击其中一个,就能看到该组中的所有页面。
查看这些页面,看看它们是否有任何价值。
网站上有低质量页面会有三点坏处:
- 它们浪费抓取预算。让谷歌把时间和资源浪费在抓取无用、低质量的页面上并不理想。它们本可以把这些时间用来抓取更重要的内容。(顺便一提,谷歌表示抓取预算“不是大多数发布者需要担心的问题”。)
- 它们会从更重要的页面“偷走”链接权重。页面的权重与其排名之间存在明显的相关性。指向低质量页面的内链只会稀释本可以流向更重要页面的权重。(有趣的是,当我们删除了 Ahrefs 博客近 ⅓ 的文章后,我们看到的是流量上升——而不是下降。)
- 它们导致糟糕的用户体验。访问者落到这些页面上得不到任何价值。点击它们对访问者来说很烦人,而且如果他们觉得你的网站质量低、被荒废,最终可能会跳出。
因此,最好的做法是把低质量页面从你的网站上移除,进而也从站点地图中移除。如果你这么做,还应记得移除指向这些页面的所有内链。做不到这一点,你就会把一个问题(低质量页面)换成另一个问题(死链)。
除了重复和近似重复页面,你还可以寻找内容单薄的页面。
只需查看 Site Audit 中的“页面(On page)”报告,找出带有“字数偏低(Low word count)”警告的页面即可。
被意外排除在站点地图之外的页面
如果你使用上面推荐的任何方法来创建站点地图,带有 noindex 或规范标签(非自引用)的页面都不会被包含在内。
这是好事。你不应在站点地图中包含规范化的 URL 或 noindex 页面。
话虽如此,如果你网站上有“失控的”noindex 标签,页面可能会被意外排除。
要检查错误,请进入 Site Audit 中的“可索引性(Indexability)”报告,点击“Noindex 页面(Noindex page)”警告。它会显示所有 noindex 页面。
其中大多数可能是有意设为 noindex 的,但值得快速浏览一下列表以再次确认。通常,失控的 noindex 标签很容易被发现,因为它们会出现在你网站的整个子栏目中。
如果你看到任何不应被设为 noindex 的页面,就把该页面上失控的 noindex 标签移除,并将它加入你的站点地图。如果你使用的是 CMS 或插件,那么这应当会自动发生。
常见问题(FAQ)
下面是关于站点地图的一些常见问题解答。如果你有本节未解答的问题,请告诉我们,我们会补充进去。
AMP 页面需要站点地图吗?
不需要。
如何为电商网站创建站点地图?
为电商网站创建站点地图的方式与其他任何网站相同。话虽如此,值得检查电商网站上的重复页面和近似重复页面,由于分面导航(faceted navigation)的“妙处”,这些页面常常会大规模地漏网。
结语
创建站点地图并非难事,尤其是当你使用一个替你承担繁重工作的插件时。从零开始创建一个也并不难——只需抓取你的网站,然后把生成的 URL 列表格式化即可。
话虽如此,至关重要的是要记住:谷歌并不必须索引你站点地图中的页面。而且站点地图与排名毫无关系。
如果你想在谷歌中获得更高的排名,请阅读这篇文章。
有疑问?欢迎在评论区留言,或者在 Twitter 上找我。