搜索引擎对sitemap处理及要求

2022-06-14 14:49 阅读

sitemap是指站点地图。就是将网站的所有链接都放到一个或多个专门的文件里,方便搜索引擎抓取。

文件格式

sitemap支持txt、xml格式。需使用UTF-8编码对文件进行编码。

必须使用完整URL,并对url进行UTF-8编码及xml转义。例如:http://www.example.com/%C3%BCmlat.html&q=name

txt格式

http://www.example.com/file1.html
http://www.example.com/file2.html

xml格式

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>
  • Google 会忽略<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.xmlsitemap.txt

网站地图的文件名可以随意取,那么搜索引擎如何找得到呢?实际上无论是google还是百度,都要求网站将站点地图提交到搜索引擎。当然不排除搜索引擎可能会自动寻找sitemap.xmlsitemap.txt

提交sitemap

google

Google 并非每次抓取网站时都会查看站点地图。我们仅在首次发现站点地图时查看;之后仅在您使用 ping 功能通知我们站点地图有变更时查看。请仅在新建或更新站点地图时向 Google 发送站点地图相关提醒。如果站点地图无任何变更,请勿多次向我们提交或 ping 站点地图。如果站点地图中有更新过的网页,请使用<lastmod>字段标记这些网页。

提交sitemap的方法:

  • 在Google Search Console中提交sitemap
  • 使用 ping 工具。如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文件个数必须小于5万个,多于5万个后会不再处理,并显示“链接数超”的提示。实际限额和网站规模有关,一般网站限额可能为200个,每天可提交10个。

百度API提交

百度搜索资源平台支持使用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":[]
}

使用API提交会达到怎样效果

  • 及时发现:可以缩短百度爬虫发现您站点新链接的时间,使新发布的页面可以在第一时间被百度收录
  • 保护原创:对于网站的最新原创内容,使用API推送功能可以快速通知到百度,使内容可以在转发之前被百度发现

API提交常见问题

  • 和原来的sitemap提交接口有什么区别?
    答:状态反馈更及时了,原来提交后需要登录到搜索资源平台查看提交是否成功。目前只要根据提交后返回的数据就可以判断了。
  • 在什么时机使用API推送提交功能效果最明显?
    答:页面链接产生或发布时立即提交,这样效果是最好的。
  • 每次提交一条数据和多条数据有什么区别?
    答:没有区别。
  • 重复提交已经发布的链接会有什么问题?
    答:会有两个影响。第一,将浪费您提交的配额,每个站点每天可提交的数量是有限制的,如果您都提交了旧链接,当有新链接时可能因为配额耗尽无法提交。第二,如果您经常重复提交旧链接,我们会下调您的配额,您可能会失去API推送功能的权限
  • API推送可以推多少条链接?
    答:API推送可提交的链接数量上限是根据您提交的新产生有价值链接数量而决定的,百度会根据您提交数量的情况不定期对上限额进行调整,提交的新产生有价值链接数量越多,可提交链接的上限越高。

百度死链提交

百度搜索资源平台也支持死链提交。对于已经删除的文章,可以考虑加入到死链文件里,帮助百度删除死链。提交方式、文件格式以及更新机制和sitemap类似。

参考资料

咨询
交流群
电话