Sitemap
| Sitemap | |
|---|---|
| 中文名 | 站点地图 |
| 英文名 | Sitemap |
| 协议版本 | 0.9(sitemaps.org) |
| 首发时间 | 2005年6月 |
| 首发机构 | |
| 标准制定机构 | Google、Yahoo!、Microsoft(联合) |
| 文件扩展名 | .xml、.xml.gz、.txt |
| 格式类型 | XML / 纯文本 |
| 标准网站 | www.sitemaps.org |
Sitemap(全称:Sitemaps Protocol,中文常译为“站点地图协议”)是一种用于告知搜索引擎网站上可供抓取的网页地址列表的开放协议标准。网站管理员可将网站中的网页URL制作成标准化的Sitemap文件,以指引搜索引擎爬虫(Crawler或Spider)快速、全面地抓取或更新网站内容[1][2]。该协议最初由Google在2005年6月推出,后于2006年11月获得微软(Microsoft)和雅虎(Yahoo!)的共同支持,形成了行业统一的Sitemaps 0.9协议标准[3][4]。Sitemap文件作为URL包含协议,与作为URL排除协议的robots.txt相互补充,共同帮助搜索引擎更高效地发现网站内容[5]。
历史
Sitemap协议最初由Google于2005年6月以Sitemaps 0.84版本推出,旨在让网站开发者能够发布其站点中所有页面的链接列表,从而改善大型动态网站的搜索引擎发现机制[3][6]。2006年11月,Google、Yahoo!和Microsoft宣布联合支持该协议,并将命名空间版本变更为Sitemap 0.90[4][7]。此后,三家公司共同启动了Sitemaps.org计划,为网站管理员提供统一的协议指引[8]。
2007年4月,Ask.com和IBM宣布加入对Sitemaps协议的支持行列[9]。同年,Google、Yahoo!和微软在Sitemap协议中加入了通过robots.txt自动发现Sitemap文件的功能[10]。截至目前,Sitemaps.org官方网站已拥有18个语种的版本,Sitemap协议被全球主流搜索引擎广泛采纳[10]。
文件格式与规范
Sitemap协议支持多种文件格式:XML格式、纯文本(TXT)格式、RSS/Atom格式以及Sitemap索引(Sitemap Index)格式[2][11]。
XML格式
XML格式是应用最为广泛的标准格式,文件采用UTF-8编码,根节点为<urlset>,并声明命名空间为http://www.sitemaps.org/schemas/sitemap/0.9[1][12]。
每个URL条目(<url>)包含以下子元素:
<loc>:页面的完整URL(含协议,必需)[13][14]。<lastmod>:页面最后修改日期(可选,格式为W3C Datetime或YYYY-MM-DD)[13][14]。<changefreq>:页面可能发生更改的频率(可选,有效值:always、hourly、daily、weekly、monthly、yearly、never)[15][14]。<priority>:该页面在站内的相对优先级(可选,范围0.0至1.0)[15][14]。
实际使用中,Google官方文档已明确表示<changefreq>和<priority>两个标签在多数情况下被忽略,仅有<lastmod>在数据准确时被参考[5][16]。
纯文本(TXT)格式
纯文本格式是一种更为简单的Sitemap实现方式。网站管理员可以创建一个纯文本文件(扩展名为.txt),文件中每行包含一个完整的URL地址。该文件同样需遵循容量限制,且必须使用UTF-8或GBK编码[1][17]。URL必须是完整路径(含http://或https://),文件中不得包含网址列表以外的任何信息[1]。
纯文本Sitemap文件的示例内容如下:
https://www.example.com/ https://www.example.com/about/ https://www.example.com/contact/ https://www.example.com/products/
纯文本格式适合小型网站或需要快速提交URL列表的场景。与XML格式相比,纯文本格式不支持<lastmod>、<changefreq>和<priority>等元数据,但具有更低的创建门槛和更快的解析速度[17][11]。
Sitemap索引格式
当网站包含的URL数量超过单个Sitemap文件的容量限制时,可使用Sitemap索引文件(Sitemap Index)将多个Sitemap文件聚合在一起。Sitemap索引文件本身是一个XML文件,根节点为<sitemapindex>,每个子Sitemap通过<sitemap>和<loc>标签指定其位置[1][18]。
Sitemap索引文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.example.com/sitemap1.xml</loc>
<lastmod>2024-10-01</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap2.xml</loc>
<lastmod>2024-10-01</lastmod>
</sitemap>
</sitemapindex>
Sitemap索引文件本身也受容量限制,每个索引文件最多可包含50,000个子Sitemap条目[1]。
RSS/Atom格式
RSS 2.0和Atom 1.0格式也可作为Sitemap使用。搜索引擎通过读取RSS/Atom feed中的条目URL来发现网站内容。这种格式通常由内容管理系统(CMS)自动生成,特别适合以文章、视频等内容为主的网站[11][19]。与XML Sitemap格式相比,RSS/Atom feed提供的时间戳信息通常更准确,因为它们反映了内容的实际发布时间。
技术限制
根据W3C标准和主流搜索引擎的规范,单个Sitemap文件最多可包含50,000个URL,未压缩体积不得超过50MB(Google规范)或10MB(百度规范)[20][1][21]。URL长度限制为2,048个字符[20][13]。对于超过限制的超大型网站,可使用Sitemap索引文件将多个Sitemap文件聚合提交[1][18]。此外,Sitemap文件可采用gzip格式压缩(扩展名为.xml.gz或.txt.gz)以节省带宽[1][22]。
不同搜索引擎对Sitemap文件大小的具体要求如下:
| 搜索引擎 | 单个文件容量上限 | URL数量上限 |
|---|---|---|
| 50 MB(未压缩) | 50,000条 | |
| 百度 | 10 MB(未压缩) | 50,000条 |
| Bing | 50 MB(未压缩) | 50,000条 |
Sitemap的创建方法
手动创建
对于小型网站,网站管理员可以手动创建Sitemap文件。XML格式需要遵循sitemaps.org协议规范,使用标准的XML标签结构[23][14]。纯文本格式则更为简单,只需将URL逐行列出即可[17]。手动创建适合URL数量较少且不频繁变动的网站。
使用生成工具
大多数现代内容管理系统(CMS)提供自动化的Sitemap生成功能:
- WordPress:可通过Yoast SEO、Rank Math等插件自动生成并定期更新Sitemap文件,通常位于/sitemap_index.xml路径[23][24]。
- 其他CMS平台:Joomla、Drupal、织梦CMS等均有相应的Sitemap扩展模块或内置功能[25]。
- 在线生成器:对于静态网站或不支持自动生成功能的网站,可使用在线Sitemap生成工具(如xml-sitemaps.com、Apify Sitemap Generator),通过爬取网站页面自动生成符合规范的Sitemap文件[26][27]。
- 脚本生成:技术团队可编写脚本(如Python、PHP、Go等语言)定期生成并更新Sitemap文件,并通过计划任务(cron job)实现自动化[28]。
向搜索引擎提交Sitemap
通过robots.txt提交
将Sitemap文件的位置添加到网站根目录的robots.txt文件中,是告知搜索引擎存在Sitemap的标准方法之一。搜索引擎爬虫在访问网站时首先会读取robots.txt文件,从而发现Sitemap的URL[10][29]。
robots.txt文件中添加Sitemap指令的语法:
User-agent: * Disallow: /admin/ Disallow: /private/ Sitemap: https://www.example.com/sitemap.xml Sitemap: https://www.example.com/sitemap-news.xml
Sitemap指令不区分大小写,可出现在robots.txt文件的任何位置,建议放在文件末尾。如果网站有多个Sitemap文件,可以添加多个Sitemap指令[30][31]。
通过搜索引擎站长工具提交
各大搜索引擎均提供站长工具或资源平台,供网站管理员手动提交Sitemap文件:
- Google Search Console:登录后选择目标网站,在左侧导航栏中找到“Sitemaps”选项,输入Sitemap文件的完整URL并点击提交[32][33]。
- Bing Webmaster Tools:登录Bing站长平台,选择目标网站,在左侧菜单栏中找到“Sitemaps”选项,输入Sitemap URL并提交[34][35]。
- 百度搜索资源平台:登录百度站长平台,在“数据提交”或“链接提交”模块中找到Sitemap提交入口,输入Sitemap文件的完整路径并提交。百度要求Sitemap文件必须放置在网站根目录下,且仅对已验证站点开放提交功能[36][37]。
通过Ping通知提交
Google提供了Ping通知机制,允许网站管理员在Sitemap文件更新后主动通知Google进行抓取[38]。Ping请求的格式为:
https://www.google.com/ping?sitemap=https://www.example.com/sitemap.xml
提交后,Google会在适当的时候重新抓取Sitemap文件。Ping机制仅用于通知Sitemap已更新,不应频繁提交未变更的Sitemap文件[16]。Bing也提供类似的通知端点:
https://www.bing.com/ping?sitemap=https://www.example.com/sitemap.xml
Sitemap的作用与局限
Sitemap不直接影响页面的搜索引擎排名。Google官方已明确表示,Sitemap属于“发现(Discovery)”阶段的工具,而非“排名(Ranking)”信号[39][40]。
Sitemap的主要作用包括:
- 帮助搜索引擎发现新发布的页面,特别是缺乏外部链接的新网站或新建页面。
- 发现网站中的“孤儿页面”(没有其他页面链接指向的页面)。
- 提供页面的最后更新时间等信息,帮助搜索引擎优化抓取调度。
- 告知搜索引擎网站中重要的多媒体内容(图片、视频、新闻等)的位置。
Sitemap的局限性:
- 是建议而非命令:搜索引擎可以选择不抓取Sitemap中列出的URL,Sitemap不保证页面一定会被索引[5][13]。
- 不替代内部链接:良好的网站内部链接结构仍然是搜索引擎发现页面的最主要方式,Sitemap不能替代完善的内部链接策略[39][41]。
- 不包含不相关内容:Sitemap中不应包含404错误页面、301重定向页面或Noindex页面,这些“脏数据”会降低搜索引擎对网站的信任度[39]。
何时需要使用Sitemap
根据Google官方建议,以下情况强烈推荐使用Sitemap[41]:
- 网站规模极大(包含大量页面),内部链接难以覆盖所有页面。
- 网站为新网站,几乎没有任何外部链接指向。
- 网站包含大量富媒体内容(视频、图片)或新闻内容,需要搜索引擎更好地理解这些内容。
- 网站页面动态生成,或通过AJAX、JavaScript等方式加载内容。
对于小型且内部链接完善、所有重要页面均能从首页直达的网站,Sitemap并非必需。
Sitemap扩展协议
Sitemap协议在标准XML格式之外还支持针对特定内容类型的扩展命名空间,帮助搜索引擎更准确地理解和索引富媒体内容[22][42]。
图片扩展
图片Sitemap扩展(<image:image>命名空间)允许在标准Sitemap中为每个URL添加图片相关信息。搜索引擎可以利用这些信息更好地发现和索引网站中的图片内容,增加图片在图片搜索中展示的机会[42][43]。
视频扩展
视频Sitemap扩展(<video:video>命名空间)支持提供视频的详细信息,包括视频时长、播放时长、内容评级、适龄分级以及视频缩略图URL等[42][43]。这有助于搜索引擎在搜索结果中正确展示视频预览和相关信息。
新闻扩展
新闻Sitemap扩展(<news:news>命名空间)专门面向新闻类网站,用于提供新闻报道的标题、发布日期等信息。Google新闻会利用这些信息将内容纳入新闻搜索索引[42][43]。
多语言/多地区扩展
hreflang扩展(<xhtml:link rel="alternate" hreflang="..." />)允许网站管理员在同一Sitemap中指定页面的多语言或多地区版本。这对于面向不同语言用户群体的国际化网站尤为重要,有助于搜索引擎向用户呈现正确的语言版本[43][44]。
扩展命名空间声明示例
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://www.example.com/article</loc>
<image:image>
<image:loc>https://www.example.com/image.jpg</image:loc>
</image:image>
</url>
</urlset>
Sitemap的维护与更新
Sitemap文件需要保持与网站内容的同步。最佳实践包括:
- 定期更新:当网站添加新页面、修改现有页面或删除页面时,应及时更新Sitemap文件。对于内容频繁变动的网站(如新闻站点),建议每日甚至每小时更新Sitemap[28][45]。
- 自动化生成:通过CMS插件或计划任务(cron job)实现Sitemap的自动生成,避免人工操作遗漏[28]。
- 监控状态:定期登录搜索引擎的站长工具,查看Sitemap的提交状态、已索引URL数量以及任何错误报告。常见错误包括URL无法访问、格式错误、文件过大等[32][36]。
- 清理无效URL:确保Sitemap中不包含返回404(页面未找到)、301(永久重定向)或500(服务器错误)的URL。及时移除已删除或不再需要索引的页面[39]。
参考文献
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 百度Sitemap协议 - 百度用户服务中心
- ↑ 2.0 2.1 Sitemap提交工具 - 百度资源平台
- ↑ 3.0 3.1 Ensuring government is only one search away: Implementing the Sitemap protocol - W3C Position Paper
- ↑ 4.0 4.1 Google/雅虎/微软宣布统一站点地图标准 - ZOL新闻
- ↑ 5.0 5.1 5.2 XML Sitemap 最佳实践:让搜索引擎准确发现你的每一个重要页面
- ↑ Digital Marketing Handbook - Sitemaps History
- ↑ Digital Marketing Handbook - Sitemaps History
- ↑ Google, Yahoo & Microsoft Team for Sitemaps.org - Search Engine Journal
- ↑ 三巨头更新Sitemap协议 IBM与Ask加盟 - ZOL
- ↑ 10.0 10.1 10.2 Google、微软和雅虎增强Sitemap协议 - PConline
- ↑ 11.0 11.1 11.2 Sitemap - Ryte Wiki
- ↑ XML Sitemap 最佳实践:语法与结构
- ↑ 14.0 14.1 14.2 14.3 14.4 Site SEO Optimization SiteMap Protocol - ProgrammerSought
- ↑ 15.0 15.1 百度Sitemap提交工具 - 格式说明
- ↑ 16.0 16.1 Sitemap格式与提交 - UJCMS
- ↑ 17.0 17.1 17.2 百度Sitemap提交工具 - TXT格式说明
- ↑ 18.0 18.1 Woorank Sitemap Guide - Sitemap Index
- ↑ 建站SEO优化之站点地图sitemap - 阿里云开发者
- ↑ 20.0 20.1 网站地图生成技术解析 - 百度开发者中心
- ↑ 网站创建Sitemap时有哪些注意事项? - Chinaz
- ↑ 22.0 22.1 Sitemap Package - Go Packages
- ↑ 23.0 23.1 How to submit your website to search engines - Hostinger
- ↑ Lightweight Sitemap Generator - WordPress Plugin
- ↑ 如何在robots里面提交网站地图 - ShuyeIDC
- ↑ XML Sitemap Generator - Apify
- ↑ Sitemap Generator Tool - Search Engine Land
- ↑ 28.0 28.1 28.2 How to Update Sitemap for Better SEO Performance? - Digitalocus
- ↑ robots.txt文件建立指南 - Google Developers
- ↑ 如何在robots里面提交网站地图 - ShuyeIDC
- ↑ 如何在robots里面提交网站地图 - ShuyeIDC
- ↑ 32.0 32.1 XML Sitemap - Ryte
- ↑ How to submit your website to search engines - Hostinger
- ↑ Pro-Sites sitemap submission in Bing - Microsoft Q&A
- ↑ How to submit your website to search engines - Hostinger
- ↑ 36.0 36.1 百度搜索资源平台 - Sitemap提交
- ↑ 如何提交网站地图给百度 - 百度经验
- ↑ Google Sitemap构建指南 - Google Developers
- ↑ 39.0 39.1 39.2 39.3 Sitemap网站地图终极指南(2025实战进阶版) - Yige Tech
- ↑ 什么是Sitemap - Google Search Central
- ↑ 41.0 41.1 何时需要使用Sitemap - Google Search Central
- ↑ 42.0 42.1 42.2 42.3 什么是Sitemap - Google Search Central
- ↑ 43.0 43.1 43.2 43.3 go-sitemap-parser - Go Packages
- ↑ What is an XML Sitemap? - Woorank
- ↑ 链接提交-百度站长平台工具使用帮助 - W3CSchool