网站的 sitemap(站点地图)文件对于 SEO 来说非常重要,可以用来引导爬虫的抓取,提高网站的抓取效率。本文详细介绍了制作 sitemap 的方法和工具。
xml 的 sitemap 最常用,格式规范,也比较有利于爬虫解析。国内外各大搜索引擎的 xml sitemap 格式要求一致,都是遵循国际规范,如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- XML文件需以 utf-8/gbk 编码,推荐使用utf-8 -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!--必填-->
<url>
<!--必填,定义某一个链接的入口,每一条数据必须要用<url>和</url>来标示 -->
<loc>http://www.coderxing.com/index.html</loc>
<!--必填,URL长度限制在256字节内-->
<lastmod>2012-12-01</lastmod>
<!--更新时间标签,非必填,用来表示最后更新时间-->
<changefreq>daily</changefreq>
<!--更新频率标签,非必填,用来告知引擎页面的更新频率 -->
<priority>0.8</priority>
<!--优先权标签,优先权值0.0-1.0,用来告知引擎该条url的优先级-->
</url>
<url>
<loc>http://www.coderxing.com/test.html</loc>
</url>
...
</urlset>
各字段含义说明(参考 360 站长平台文档,百度、搜狗、神马的标准几乎一样):
标签名称 | 标签说明 | 标签类型 | 标签限制 | 可选/必选 |
---|---|---|---|---|
changefreq | 标示数据更新频率 | 字符串 | 有效值为:always、hourly、daily、weekly、monthly、yearly、never。该字段用来表示页面的更新频率,always 表示频繁更新,比如用在首页上,hourly 表示每小时会有更新,daily 表示每天更新,用这个值的最多,一次类推 | 可选 |
lastmod | 标示数据最新一次更新时间 | 日期 | 时间格式为 yyyy-mm-dd ,例如 2016-12-15 | 可选 |
loc | 标示该条数据的存放地址 | url | 最小长度1个字符,最大长度256个字符, 以 “http://” 开头,只能是绝对完成的 url ,不能使用类似 “./test.html” 这样额相对路径 | 必选 |
priority | 标示优先值 | 小数 | [0.0 1.0](大于等于 0 小于等于 1,保留一位小数),用来表示例如:< priority >0.8< priority > | 可选 |
url | 地址的开始和结束 | 单个文件最多 50000 条,神马搜索限制在10000 条一下。 | 必选 | |
urlset | urlset 用来标记整个文档的开头 | 必选 |
其他要点:
.xml.gz
为后缀,例如 http://www.coderxing.com/sitemap_001.xml.gz
。字符 | 转义码 | |
---|---|---|
& 符号 | & | & |
单引号 | ' | ' |
双引号 | " | " |
大于号 | > | > |
小于号 | < | < |
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
是 Google sitemap 规范要求添加的,国内的搜索引擎并没有强制要求。不过为了兼容性友好,最好加上。而且如果不声明的话,国外的一些 xml sitemap 正确性校验工具会报错。Google 对 sitemap 没有太多变化,甚至更简化,如:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/foo.html</loc>
</url>
</urlset>
另外,Google 针对 sitemap 增加了一些扩展字段,可以携带图片和视频信息,如:
<?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">
<url>
<loc>http://www.example.com/foo.html</loc>
<image:image>
<image:loc>http://example.com/image.jpg</image:loc>
<image:caption>Dogs playing poker</image:caption>
</image:image>
<video:video>
<video:content_loc>
http://www.example.com/video123.flv
</video:content_loc>
<video:player_loc allow_embed="yes" autoplay="ap=1">
http://www.example.com/videoplayer.swf?video=123
</video:player_loc>
<video:thumbnail_loc>
http://www.example.com/thumbs/123.jpg
</video:thumbnail_loc>
<video:title>适合夏季的烧烤排餐</video:title>
<video:description>
让您每次都能烤出诱人的排餐。
</video:description>
</video:video>
</url>
</urlset>
Google 官方 sitemap 文件例子:
文本格式的站点地图极为简单,只需要按行排列 url 即可,没有 changefreq、lastmod、priority 这些功能,例如:
http://www.example1.com/111.html
http://www.example2.com/222.html
http://www.example3.com/333.html
注意:神马搜索不支持文本格式的 sitemap。推荐还是使用 xml 格式的 sitemap。
html 格式的 sitemap 是给用户使用的,作为网站历史信息的归档,而且也是对 xml sitemap 的重要补充。搜索蜘蛛除了按照 sitemap 文件来抓取页面之外,更主要的方式还是通过网站上的链接进行爬取,html sitemap 可以把更多的链接暴露给爬虫。格式上没要求,可以和你的网站风格保持一致,只要能把关键的链接暴露出来就可以。建议 xml 和 html 格式的 sitemap 同时使用。
html sitemap 习惯上放在页面的底部,作为 footer 的一部分。比如:
如果 sitemap 文件需要拆成多个,则需要用 sitemap 索引文件来声明分散的sitemap 文件,sitemap 文件可以用 gzip 压缩。例如:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://www.coderxing.com/sitemap_001.xml</loc>
<!-- 必填,识别Sitemap的位置 -->
<lastmod>2016-12-12</lastmod>
<!-- 选填,该链接的最后更新日期 -->
</sitemap>
<sitemap>
<loc>http://www.coderxing.com/sitemap_002.xml</loc>
<lastmod>2016-12-12</lastmod>
</sitemap>
<sitemap>
<loc>http://www.coderxing.com/sitemap_002.xml.gz</loc>
<lastmod>2016-12-12</lastmod>
</sitemap>
</sitemapindex>
其中的 xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
在 google 规范里需要添加,国内搜索引擎并不强制,不过和 sitemap 文件一些样,为了兼容性,推荐还是加上。
sitemap 索引文件例子:
在 robots.txt 文件中添加 Sitemap
字段,告诉爬虫我们的 sitemap 文件在哪里。例如:
Sitemap: http://www.coderxing.com/sitemap.xml
推荐写绝对路径网址。
参考例子:
另外,Sitemap
字段也可以设置多个,例如:
Sitemap: http://www.gstatic.com/culturalinstitute/sitemaps/www_google_com_culturalinstitute/sitemap-index.xml
Sitemap: http://www.gstatic.com/earth/gallery/sitemaps/sitemap.xml
Sitemap: http://www.gstatic.com/s2/sitemaps/profiles-sitemap.xml
Sitemap: https://www.google.com/sitemap.xml
(TODO)
如果没有技术资源自给开发 sitemap,可以选择一些可以自动生成 sitemap 文件的工具,比如:
在线工具:
出处:https://www.coderxing.com/seo-xml-and-html-sitemap.html
本文为原创文章,采用署名-相同方式共享 3.0 中国大陆(CC BY-SA 3.0 CN))进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。