站点地图(Sitemap)
站点地图
站点地图(Sitemap)是一种文件或页面,列出了网站上的所有页面或内容的列表,旨在帮助用户和搜索引擎了解网站的结构。
站点地图文件分为两种格式,xml 和 txt。
xml 格式
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/</loc>
<lastmod>2005-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.example.com/catalog?item=12&desc=vacation_hawaii</loc>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>http://www.example.com/catalog?item=73&desc=vacation_new_zealand</loc>
<lastmod>2004-12-23</lastmod>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>http://www.example.com/catalog?item=74&desc=vacation_newfoundland</loc>
<lastmod>2004-12-23T18:00:15+00:00</lastmod>
<priority>0.3</priority>
</url>
<url>
<loc>http://www.example.com/catalog?item=83&desc=vacation_usa</loc>
<lastmod>2004-11-23</lastmod>
</url>
</urlset>
属性 | 描述 | |
---|---|---|
<urlset> | required | 封装文件并引用当前协议标准。 |
<url> | required | 每个 URL 条目的父标记。其余标记都是此标记的子标记。 |
<loc> | required | 页面的 URL。此 URL 必须以协议(例如 http)开头,并以斜杠结尾(如果您的 Web 服务器有此要求)。此值必须少于 2,048 个字符。 |
<lastmod> | optional | 页面的最后修改日期。此日期应采用 W3C 日期时间格式。此格式允许您省略时间部分(如果需要),并使用 YYYY-MM-DD。 请注意,日期必须设置为链接页面的最后修改日期,而不是生成站点地图的日期。 还请注意,此标记与服务器可以返回的 If-Modified-Since (304) 标头是分开的,搜索引擎可能会以不同的方式使用来自这两个来源的信息。 |
<changefreq> | optional | 页面可能更改的频率。此值向搜索引擎提供一般信息,可能与它们抓取页面的频率不完全相关。有效值为: always hourly daily weekly monthly yearly never 应使用值“always”来描述每次访问时都会更改的文档。应使用值“never”来描述已存档的 URL。 请注意,此标记的值被视为提示,而不是命令。尽管搜索引擎抓取程序在做出决定时可能会考虑此信息,但它们抓取标记为“hourly”的页面的频率可能低于此,而抓取标记为“yearly”的页面的频率可能高于此。抓取程序可能会定期抓取标记为“never”的页面,以便处理这些页面的意外更改。 |
<priority> | optional | 此 URL 相对于您网站上其他 URL 的优先级。有效值范围为 0.0 到 1.0。此值不会影响您的网页与其他网站上的网页的比较方式 - 它只会让搜索引擎知道您认为哪些网页对抓取工具最重要。 网页的默认优先级为 0.5。 请注意,您为网页指定的优先级不太可能影响您的 URL 在搜索引擎结果页中的位置。搜索引擎可能会在同一网站上的 URL 之间进行选择时使用此信息,因此您可以使用此标记来增加您最重要的网页出现在搜索索引中的可能性。 此外,请注意,为您网站上的所有 URL 分配高优先级不太可能对您有所帮助。由于优先级是相对的,因此它仅用于在您网站上的 URL 之间进行选择。 |
txt 格式
http://example.com/image/show?item=23
http://example.com/image/show?item=233&user=3453
https://example.com/catalog/page1.php
通知搜索引擎爬虫
创建 Sitemap 文件并将其放置在 Web 服务器上后,您需要将其位置告知支持此协议的搜索引擎。您可以通过以下方式执行此操作:
- 通过搜索引擎的提交界面提交给他们
- 指定您网站的 robots.txt 文件中的位置
- 发送 HTTP 请求
通过搜索引擎的提交界面提交给他们
要将您的站点地图直接提交给搜索引擎,以便您接收状态信息和任何处理错误,请参阅每个搜索引擎的文档。
指定您网站的 robots.txt 文件中的位置
您可以使用 robots.txt 文件指定站点地图的位置。为此,只需添加以下行,包括站点地图的完整 URL:
Sitemap: http://www.example.com/sitemap.xml
此指令独立于用户代理行,因此将其放在文件中的哪个位置并不重要。如果您有站点地图索引文件,则可以仅包含该文件的位置。您无需列出索引文件中列出的每个站点地图。
您可以为每个 robots.txt 文件指定多个站点地图文件。
Sitemap: http://www.example.com/sitemap-host1.xml
Sitemap: http://www.example.com/sitemap-host2.xml
发送 HTTP 请求
要使用 HTTP 请求提交您的站点地图(将 <searchengine_URL> 替换为搜索引擎提供的 URL),请向以下 URL 发出请求:
<searchengine_URL>/ping?sitemap=sitemap_url
例如,如果您的 Sitemap 位于 http://www.example.com/sitemap.gz,您的 URL 将变成:
<searchengine_URL>/ping?sitemap=http://www.example.com/sitemap.gz
对 /ping?sitemap=: 后面的所有内容进行 URL 编码
<searchengine_URL>/ping?sitemap=http%3A%2F%2Fwww.yoursite.com%2Fsitemap.gz
您可以使用 wget、curl 或您选择的其他机制发出 HTTP 请求。成功的请求将返回 HTTP 200 响应代码;如果您收到不同的响应,则应重新提交请求。HTTP 200 响应代码仅表示搜索引擎已收到您的站点地图,而不表示站点地图本身或其中包含的 URL 有效。一种简单的方法是设置一个自动作业来定期生成和提交站点地图。
提示
注意:如果您提供站点地图索引文件,则只需发出一个包含站点地图索引文件位置的 HTTP 请求;您无需为索引中列出的每个站点地图发出单独的请求。