建站SEO优化之站点地图sitemap

村头的猫 2025-06-09 seo
建站SEO优化之站点地图sitemap

很早以前一直觉得站点地图可有可无,反正搜索引擎爬虫都会自己去爬站内各种连接。但是对于一个新站或经常更新的站点来说,站点地图很重要性,是快速告诉搜索引擎站内有哪些内容或更新了哪些内容。并且还能针对不同以页面配置优先级等。

站点地图通常在 robots.txt 文件中声明,具体可看之前的文章(一文搞懂SEO优化之站点robots.txt

编写规范

比较常见是 xml类型站点地图,还有RSS、mRSS 、Atom 1.0(与xml类型类似)以及文本类型站点地图。本篇主要说一说xml格式中如何实现。

因为站点地图是描述网站中都有哪些页面,不同体量的网站网页数差别很多,大型网站可能上万或几十万个网页,小型网站可能就几十个网页。如果都放到站点地图文件里会使文件太大读取困难,并且搜索引擎爬虫通常也会对站点地图大小有要求,比如谷歌就要求站点地图不能大于50M,且不超过5万个站点,那其余网站怎么办?

小型网站站点地图

小型网站规范示例

例如:https://ai-bar.com/sitemap.xml

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://ai-bar.cn/tools</loc>
  </url>
  <url>
    <loc>https://ai-bar.cn/tools/wechat-editor</loc>
    <lastmod>2025-06-04</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://ai-bar.cn/news</loc>
    <lastmod>2025-06-04</lastmod>
  </url>
</urlset>

站点地图说明

整个站点地图信息都是通过 urlset 标签包裹,内部每一个网站链接都是通过 url 标签定义,其中 loc 是必须要有的,lastmodchangefreqpriority 为非必须的。

  • urlset 站点地图外层容器标签,照抄即可。
  • url 定义站点链接信息的父标签
  • loc 必须有,定义具体链接,必须包含域名的绝对地址,如 https://ai-bar.cn/tools,不能是相对地址如 /tools
  • lastmod 可选,最新修改时间,可是 2025-06-06,也可以是 2025-06-06T18:00:12+00:00
  • changefreq 可选,定义页面更新频率,可选值有 alwayshourlydailyweeklymonthlyyearlynever,其中 always 为每次访问网页都会变化,never 存档不更新。尽管这么规定了,实际上搜索引擎爬虫并不完全根据这里的规定来抓取。
  • priority 可选,定义页面优先级,从 0.01.0,这个标签的定义不会影响页面在搜索中的排名,只会影响在本站中的重要性。

注意
这里设置的值是相对的,如果所有页面都设置的很高,实际上搜索引擎会认为没有重要性或重要性一样,所以应根据实际情况定义。我自己在生成站点地图的时候会根据网页的目录层级来动态生成优先级,每多一个层级就减少0.2,一般来说页面的目录层级不超过3层最好。

详细规范可以看这里https://www.sitemaps.org/protocol.html

大型网站站点地图

前面介绍的是页面较少的小型网站的站点地图,对于页面较多的大型网站有所不同。

大型网站规范示例

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://test.com/sitemap1.xml</loc>
    <lastmod>2025-06-05</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://test.com/sitemap2.xml</loc>
  </sitemap>
</sitemapindex>

这个站点地图其实是管理子站点的索引文件,普通站点的 urlset 标签被替换为了 sitemapindexurl 标签被替换为了 sitemap,其余的没有什么变化。不过仔细观察可以发现,loc 中定义的不是单个网址,而是xml 的普通站点地图。

以豆瓣站点地图为例

站点地图为:https://www.douban.com/sitemap_index.xml,可以发现大约定义了 1万<sitemap>,每一个 <sitemap> 定义了 gzip 压缩的xml普通站点地图。

<?xml version="1.0" encoding="utf-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://www.douban.com/sitemap.xml.gz</loc>
    <lastmod>2025-05-31T20:22:12Z</lastmod>
  </sitemap>
  <!-- 其他... -->
  <sitemap>
    <loc>https://www.douban.com/sitemap9985.xml.gz</loc>
    <lastmod>2025-05-31T20:22:12Z</lastmod>
  </sitemap>
</sitemapindex>

随机下载一个发现就是前面介绍的普通网站的站点地图。

<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://movie.douban.com/celebrity/1524905/movies</loc>
    <priority>0.7</priority>
    <changefreq>weekly</changefreq>
  </url>
  <!-- 其他行... -->
</urlset>

不看不知道,一看真是惊呆了,每一个站点地图也包含了巨量的网页,随机下载了几个测试,每个几乎都有 7万个 左右的链接定义,当然也有少一些的。这么粗算下来:1万个站点地图 * 7万个链接 ,豆瓣岂不是有7亿个页面!!

好了今天就研究这么多。由此可见,大型网站(尤其C端)并不是这么容易维护,就站点地图的生成、不同子站或模块如何维护更新频率,还有更新时间等就需要统一平台来管理。

©️ 本平台所有原创内容(特别标注除外)著作权均归属AI吧所有。未经书面授权,任何单位或个人不得以转载、摘编、复制或其他任何形式进行非法传播。对于任何侵权行为,本平台将依法采取法律手段追究其责任,维护自身合法权益。