sitemap是指站点地图。就是将网站的所有链接都放到一个或多个专门的文件里,方便搜索引擎抓取。
sitemap支持txt、xml格式。需使用UTF-8
编码对文件进行编码。
必须使用完整URL,并对url进行UTF-8
编码及xml转义。例如:http://www.example.com/%C3%BCmlat.html&q=name
http://www.example.com/file1.html
http://www.example.com/file2.html
google:
<?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>
<lastmod>2018-06-04</lastmod>
</url>
</urlset>
<priority>
和<changefreq>
值。<lastmod>
值始终准确并可验证(例如通过与网页的最后修改日期进行比较),Google 会使用该值。百度:
<?xml version="1.0" encoding="utf-8"?>
<!-- XML文件需以utf-8编码-->
<urlset>
<!--必填标签-->
<url>
<!--必填标签,这是具体某一个链接的定义入口,每一条数据都要用<url>和</url>包含在里面,这是必须的 -->
<loc>http://www.yoursite.com/yoursite.html</loc>
<!--必填,URL链接地址,长度不得超过256字节-->
<lastmod>2009-12-14</lastmod>
<!--可以不提交该标签,用来指定该链接的最后更新时间-->
<changefreq>daily</changefreq>
<!--可以不提交该标签,用这个标签告诉此链接可能会出现的更新频率 -->
<priority>0.8</priority>
<!--可以不提交该标签,用来指定此链接相对于其他链接的优先权比值,此值定于0.0-1.0之间-->
</url>
<url>
<loc>http://www.yoursite.com/yoursite2.html</loc>
<lastmod>2010-05-01</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
</urlset>
sitemap文件一般放在网站的根目录下。放在哪个目录代表是该目录及其子目录的sitemap。百度则强制要求放在网站根目录下。
文件名可以随意取。通常取名为sitemap.xml
或sitemap.txt
。
网站地图的文件名可以随意取,那么搜索引擎如何找得到呢?实际上无论是google还是百度,都要求网站将站点地图提交到搜索引擎。当然不排除搜索引擎可能会自动寻找sitemap.xml
或sitemap.txt
。
Google 并非每次抓取网站时都会查看站点地图。我们仅在首次发现站点地图时查看;之后仅在您使用 ping 功能通知我们站点地图有变更时查看。请仅在新建或更新站点地图时向 Google 发送站点地图相关提醒。如果站点地图无任何变更,请勿多次向我们提交或 ping 站点地图。如果站点地图中有更新过的网页,请使用
<lastmod>
字段标记这些网页。
提交sitemap的方法:
https://www.google.com/ping?sitemap=https://example.com/sitemap.xml
robots.txt
文件中的任意位置:Sitemap: https://example.com/my_sitemap.xml
站点地图的网址数量上限为50000
个,且压缩前的大小上限为 50MB
。
大型网站可使用站点地图索引文件列出所有单个站点地图,然后将这个文件提交给 Google,而不是分别提交各个站点地图。例如:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://www.example.com/sitemap1.xml.gz</loc>
</sitemap>
<sitemap>
<loc>http://www.example.com/sitemap2.xml.gz</loc>
</sitemap>
</sitemapindex>
您最多可为 Search Console 帐号中的每个网站提交 500 个站点地图索引文件。
百度会周期性的抓取检查您提交的Sitemap,对其中的链接进行处理,但收录速度慢于API推送。
提交完之后,可在Sitemap列表里看到提交的Sitemap文件,如果Sitemap文件里面有新的网站链接,可以选择文件后,点击更新所选,即对更新的网站链接进行了提交。
Sitemap数据提交后,一般在1小时内百度会开始处理。在以后的调度抓取中,如果您的sitemap支持etag,我们会更频繁抓取sitemap文件,从而及时发现内容更新;否则抓取的周期会比较长。
进入百度搜索资源平台提交sitemap。
每个地址文件最多包含50000
个网址且需小于10MB
。
百度不支持站点地图索引文件。不能提交站点地图索引文件,应该直接提交sitemap的地址。
例如UJCMS的地图索引文件是https://demo.ujcms.com/sitemap
,内容如下:
<sitemapindex>
<sitemap>
<loc>https://demo.ujcms.com/sitemap-channel</loc>
</sitemap>
<sitemap>
<loc>https://demo.ujcms.com/sitemap-article</loc>
</sitemap>
</sitemapindex>
则应该提交:
https://demo.ujcms.com/sitemap-channel
https://demo.ujcms.com/sitemap-article
一个站点支持提交的sitemap文件个数必须小于5万个,多于5万个后会不再处理,并显示“链接数超”的提示。实际限额和网站规模有关,一般网站限额可能为200
个,每天可提交10
个。
百度搜索资源平台支持使用api提交最新的url。
API提交可缩短爬虫发现网站链接的时间,不保证收录和展现效果。
API提交和手动提交共享配额,每日至多提交10万条有价值的内容,sitemap提交配额不与其他方式共享,具体配额以站点页面显示数据为准 。配额不可累计,当日有效。
API接口:
http://data.zz.baidu.com/urls?site=https://www.example.com&token=xxxxxxxxxxxxxxxx
url使用body提交,多个url用\n
分割,content_type设置为text/plain
。成功后返回类似以下内容:
{
"remain":99998,
"success":2,
"not_same_site":[],
"not_valid":[]
}
百度搜索资源平台也支持死链提交。对于已经删除的文章,可以考虑加入到死链文件里,帮助百度删除死链。提交方式、文件格式以及更新机制和sitemap类似。