前文提到权重低的网站,搜索引擎更新和收录的频率都会比较低,例如试验网站修改关键词后,一个月左右百度都还没有进行更新;而对于网站文章,百度中直接搜索域名www.5cbaby.com,目前收录的还是1个月前的内容,7天前发布的文章仍然没有被收录。
为了让百度能够更快的收录你网站的文章,与其被动等待百度爬虫的垂青,不如主动出击,自己把链接提交给百度。在百度站长平台(http://zhanzhang.baidu.com),列出了官方许可的4种链接提交方式:
1、主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
2、自动推送:最为便捷的提交方式,请将自动推送的JS代码部署在站点的每一个页面源代码中,部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。
3、sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。
4、手动提交:一次性提交链接给百度,可以使用此种方式。
下表先简单对比了这四种方式的各自特点,下文将逐一展开介绍:
(一) 主动推送
该方式官方总结的优点是:
及时发现:可以缩短百度爬虫发现您站点新链接的时间,使新发布的页面可以在第一时间被百度收录
保护原创:对于网站的最新原创内容,使用主动推送功能可以快速通知到百度,使内容可以在转发之前被百度发现
具体推送方法:
1. 在百度站长平台的“站点管理”中添加网站www.5cbaby.com(需要完成网站验证):
2. 点击“链接提交”菜单:
3. 该页面右下方默认是“自动提交->主动推送(实时)”选项,且列出了网站的token:
4. 把php推送示例的代码拷贝下来,将红框中的链接修改为自己要提交的链接($api的值已经是自己网站的数据了),例如:
'http://5cbaby.com/sport/506.html',
'http://5cbaby.com/study/522.html',
5. 将这段代码开头前加上,保存为php文件,例如baiduurl.php
6. 将该文件上传到网站的根目录下
7. 用浏览器打开该文件(地址栏输入文件链接:http://5cbaby.com/baiduurl.php),查看返回结果如下:
{"remain":5000000,"success":0,"not_same_site":["http://5cbaby.com/sport/506.html","http://5cbaby.com/study/522.html"]}
该结果说明提交失败,not_same_site说明失败原因为:由于不是本站url而未处理
8. 修改提交的链接,加上www,例如:
'http://www.5cbaby.com/sport/506.html',
'http://www.5cbaby.com/study/522.html',
9. 再次用浏览器打开该http://5cbaby.com/baiduurl.php,返回结果如下:
{"remain":4999998,"success":2}
该结果说明成功提交2个链接,当天剩余可提交链接数量为4999998
根据百度站长平台的官方帮助文档,推送成功的返回信息可能有以下字段:
如果推送失败,会返回error(整数类型的错误码)和message(字符串类型的错误描述),常见的错误有:
以上错误信息说明,主动推送需要注意:
1. 网站必须经过站长平台验证
2. 每次推送不能超过2000条链接
3. 每日推送有配额限制(该上限是根据提交的新产生有价值链接数量而决定的,百度会根据提交数量的情况不定期对上限额进行调整,提交的新产生有价值链接数量越多,可提交链接的上限越高)
4. 另外,根据官方说明,重复提交会导致:第一,浪费提交配额,当有新链接时可能因为配额耗尽无法提交;第二,如果经常重复提交旧链接,百度会下调配额,导致你可能会失去主动推送功能的权限
(二) 自动推送
自动推送主要是在页面的源代码中加上一段JS代码,当页面被访问时,页面链接会自动推送给百度,有利于新页面更快被百度发现。
具体推送方法:
1. 在百度站长平台中选择“链接提交”菜单,在自动提交页面里选择“自动推送”,结果如下:
2. 选择复制代码,并粘贴到每个需要推送的页面的html代码中。一般workpress的主题,都会把页面分成好几个子模板,例如页眉(header.php)、页脚(footer.php)。我的试验网站所使用的主题,就支持直接在wordpress管理后台设置footer使用的公共代码,可以把自动提交的代码如下图加入(当然也可以直接编辑footer.php,把代码贴进去):
保存设置后,再打开每个文章页,右键查看源代码的时候,都能够看到这段代码。
3. 如果网站的页面没有公共模块,还有一种方法加入自动推送代码,即创建一个名为“baidu_js_push.php”的文件(文件名可自取),文件内容就是上述自动推送JS代码;然后在每个PHP模板页文件中的 标记后面添加一行代码来引用该文件:
(三) Sitemap
Sitemap(即站点地图)就是网站上各网页的列表。创建并提交Sitemap有助于搜索引擎发现并了解该网站上的所有网页。Sitemap还可以提供网站的其他信息,如上次更新日期、Sitemap文件的更新频率等,供搜索引擎爬虫参考。百度的声明中提到,对sitemap已提交的数据,不保证一定会抓取及索引所有网址。但是,会使用Sitemap中的数据来了解网站的结构等信息,从而改进抓取策略,并在日后能更好地对网站进行抓取。并特别指出,sitemap与搜索排名没有关系。
百度Sitemap协议支持三种格式:文本格式、xml格式、Sitemap索引格式,具体格式要求在百度的站长平台的使用帮助里面有详细介绍(http://zhanzhang.baidu.com/college/courseinfo?id=267&page=2#h2_article_title14),我这里就不再赘述,而是简单介绍下如何生成并提交sitemap文件:
1. 如果是用wordpress,可以安装自动生成sitemap的插件(其他常用CMS也有类似插件)。比较常用的有Google XML Sitemaps,而对于百度,网上有个Baidu Sitemap Generator,但是这个插件已经好几年没有更新过了,所以是不是好用比较难说
2. 使用sitemap生成工具,我用的就是SitemapX,很容易上手,简单设置一下就可以生成多种格式的sitemap
3. 如果是插件生成的sitemap,一般会放在网站根目录,可通过百度站长平台直接提交url;而工具在本地生成的,需要上传到主机(一般也放在网站根目录里),再进行提交。提交的入口如下图:
4. 刚提交后的状态为“等待”:
5. 大概1个小时内,百度会进行处理,正常结果如下:
另外,需要注意的是:一个Sitemap文件包含的网址不得超过5 万个,且文件大小不得超过 10 MB,如果超限,可以拆分为几个小的Sitemap提交;一个站点支持提交的sitemap文件个数必须小于5万个,多于5万个后会不再处理,并显示“链接数超”的提示;因为转码问题,sitemap文件中的url最好不要包含中文,也就是说网站的各个网页的url最好不要有中文。
(四) 手动提交
这个方式最简单,在站长平台的手工提交界面,将希望收录的网页网址,一条条填写进去(一次最多20条),点击提交即可。
总之,主动向百度提交链接,是为了让百度更快的收录网站文章。用何种方式,则需要考虑你的现状和需求。网站起步阶段,手工提交基本上就足够;随着内容增加,可以考虑同时使用主动(针对每日新增内容)和自动提交(所有页面都加上代码);网站庞大的时候,通过sitemap提交,可以让搜索引擎优化策略,提升爬取的效率。