codecamp

链接提交

如何选择链接提交方式

主动推送:最为快速的提交方式,建议您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。

sitemap:您可以定期将网站链接放到Sitemap中,然后将Sitemap提交给百度。百度会周期性的抓取检查您提交的Sitemap,对其中的链接进行处理,但收录速度慢于主动推送。

手工提交:如果您不想通过程序提交,那么可以采用此种方式,手动将链接提交给百度。

使用主动推送功能会达到怎样效果


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

如何使用主动推送功能

1,需要网站制作数据推送接口,进入主动推送工具后,会看到接口调用地址的token,token是由16个英文数字组合的字符串

2,下面提供一些推送示例
1)curl推送示例
将要提交的url数据写入一个本地文件,比如urls.txt,每个url占一行,然后调用curl命令:
curl -H 'Content-Type:text/plain' --data-binary @urls.txt
"http://data.zz.baidu.com/urls?site=www.example.com&token=edk7yc4rEZP9pDQD"
使用php、python、java等可以参照这个过程推送结构化数据。

2)post推送示例
POST /urls?site=www.58.com&token=edk7ychrEZP9pDQD HTTP/1.1
User-Agent: curl/7.12.1 
Host: data.zz.baidu.com 
Content-Length: 83
http://www.example.com/1.html
http://www.example.com/2.html

3)php推送示例
$urls = array(
    'http://www.example.com/1.html',
    'http://www.example.com/2.html',
);
$api = 'http://data.zz.baidu.com/urls
site=www.58.com&token=edk7ychrEZP9pDQD';
$ch = curl_init();
$options =  array(
    CURLOPT_URL => $api,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => implode("\n", $urls),
    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;

4)ruby推送示例
require 'net/http'
urls = ['http://www.example.com/1.html', 'http://www.example.com/2.html']
uri = URI.parse('http://data.zz.baidu.com/urls
site=www.xxx.com&token=eTk7ychrWZP1pDQD')
req = Net::HTTP::Post.new(uri.request_uri)
req.body = urls.join("\n")
req.content_type = 'text/plain'
res = Net::HTTP.start(uri.hostname, uri.port) { |http| http.request(req) }
puts res.body

如何查看推送反馈

您可以通过推送后返回的状态码和字段来判断数据是否推送成功。
1,状态码为200,表示推送成功,可能返回以下字段:

字段

是否必选

参数类型

说明

success

int

成功推送的url条数

remain

int

当天剩余的可推送url条数

not_same_site

array

由于不是本站url而未处理的url列表

not_valid

array

不合法的url列表

 成功返回示例:
{
   "remain":4999998,
   "success":2,
   "not_same_site":[],
   "not_valid":[]
}

2,状态码为4XX或500,表示推送失败,返回字段有:

字段

是否必选

类型

说明

error

int

错误码,与状态码相同

message

string

错误描述

 
常见的推送失败返回示例说明:

error

message

含义

400

site error

站点未在站长平台验证

empty content

post内容为空

only 2000 urls are allowed once

每次最多只能提交2000条链接

over quota

超过每日配额了,超配额后再提交都是无效的

401

token is not valid

token错误

404

not found

接口地址填写错误

500

internal error, please try later

服务器偶然异常,通常重试就会成功


主动推送功能常见问题

1, 和原来的sitemap提交接口有什么区别?
        答:状态反馈更及时了,原来提交后需要登录到站长平台查看提交是否成功。目前只要根据提交后返回的数据就可以判断了。

2, 已经存在的提交sitemap数据的程序代码需要做什么修改?
        答:主要修改两点。第一点,提交的接口需要修改;第二点,需要处理下接口返回的信息,失败后需要根据错误进行相应处理,报错的链接是无法提交成功的

3,为什么提交成功后看不到数据变化?
        答:我们反馈的是新提交链接的数量,如果您提交的链接在之前提交过(即重复提交)是不会被统计到的

4,在什么时机使用主动推送提交功能效果最明显?
        答:页面链接产生或发布时立即提交,这样效果是最好的 

5,每次提交一条数据和多条数据有什么区别?
        答:没有区别 

6,重复提交已经发布的链接会有什么问题?
        答:会有两个影响。第一,将浪费您提交的配额,每个站点每天可提交的数量是有限制的,如果您都提交了旧链接,当有新链接时可能因为配额耗尽无法提交。第二,如果您经常重复提交旧链接,我们会下调您的配额,您可能会失去主动推送功能的权限

7,主动推送可以推多少条链接?
        答:主动推送可提交的链接数量上限是根据您提交的新产生有价值链接数量而决定的,百度会根据您提交数量的情况不定期对上限额进行调整,提交的新产生有价值链接数量越多,可提交链接的上限越高。

 

什么是Sitemap

Sitemap(即站点地图)就是您网站上各网页的列表。创建并提交Sitemap有助于百度发现并了解您网站上的所有网页。您还可以使用Sitemap提供有关您网站的其他信息,如上次更新日期、Sitemap文件的更新频率等,供百度Spider参考。

百度对已提交的数据,不保证一定会抓取及索引所有网址。但是,我们会使用Sitemap中的数据来了解网站的结构等信息,这样可以帮助我们改进抓取策略,并在日后能更好地对网站进行抓取。

此外,Sitemap 与搜索排名没有关系。 


百度Sitemap支持哪些格式

百度Sitemap协议支持三种格式:文本格式、xml格式、Sitemap索引格式,可以根据自己情况来选择任意一种格式组织sitemap。具体格式说明及示例如下:

1.第一种格式样例:txt文本格式

在一个txt文本列明需要向百度提交的链接地址,将txt文本文件通过站长平台进行提交    
http://www.example.com/repaste/101562698_5230191316.html
http://www.example.com/repaste/101586283_5230215075.html
http://www.example.com/repaste/101639435_5230310576.html  

此文本文件需要遵循以下指南:
· 文本文件每行都必须有一个网址。网址中不能有换行。
· 不应包含网址列表以外的任何信息。
· 您必须书写完整的网址,包括 http。
· 每个文本文件最多可包含 50,000 个网址,并且应小于10MB(10,485,760字节)。如果网站所包含的网址超过 50,000 个,则可将列表分割成多个文本文件,然后分别添加每个文件。
· 文本文件需使用 UTF-8 编码或GBK编码。  

2.第二种格式样例:xml格式

单个xml数据格式如下:
<?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向百度提交了一个url:http://www.yoursite.com/yoursite.html 


若有多条url,按照上述格式重复之间的片断,列明所有url地址,打包到一个xml文件,向站长平台进行提交。


创建Sitemap时有哪些注意事项?

第一,一个Sitemap文件包含的网址不得超过 5 万个,且文件大小不得超过 10 MB。如果您的Sitemap超过了这些限值,请将其拆分为几个小的Sitemap。这些限制条件有助于确保您的网络服务器不会因提供大文件而超载。

第二,一个站点支持提交的sitemap文件个数必须小于5万个,多于5万个后会不再处理,并显示“链接数超”的提示。    

第三,如果验证了网站的主域,那么Sitemap文件中可包含该网站主域下的所有网址。


如何提交Sitemap

第一步,将需提交的网页列表制作成一个Sitemap文件,文件格式请阅读百度Sitemap协议都支持哪些格式。
  第二步,将Sitemap文件放置在网站目录下。比如您的网站为example.com,您已制作了一个sitemap_example.xml的Sitemap文件,将sitemap_example.xml上传至网站根目录即example.com/sitemap_example.xml
  第三步,登录百度站长平台,确保提交Sitemap数据的网站已验证归属。
  第四步,进入Sitemap工具,点击“添加新数据”,文件类型选择“URL列表”,填写抓取周期和Sitemap文件地址
  最后,提交完之后,可在Sitemap列表里看到提交的Sitemap文件,如果Sitemap文件里面有新的网站链接,可以选择文件后,点击更新所选,即对更新的网站链接进行了提交。


什么是移动Sitemap协议,如何提交移动Sitemap协议

百度推出了移动Sitemap协议,用于将网址提交给移动搜索收录。百度移动Sitemap协议是在标准Sitemap协议基础上制定的,增加了标签,它有四种取值: 

  • <mobile:mobile/> :移动网页
  • <mobile:mobile type="mobile"/> :移动网页      
  • <mobile:mobile type="pc,mobile"/>:自适应网页
  • <mobile:mobile type="htmladapt"/>:代码适配

无该上述标签表示为PC网页

下方样例相当于向百度移动搜索提交了一个移动网页:http://m.example.com/index.html,

向PC搜索提交了一个传统网页:http://www.example.com/index.html,

同时向移动搜索和PC搜索提交了一个自适配网页http://www.example.com/autoadapt.html:

 
<?xml version="1.0" encoding="UTF-8" ?> 
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/"> 
<url> 
<loc>http://m.example.com/index.html</loc> 
<mobile:mobile type="mobile"/>
<lastmod>2009-12-14</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url> 
<url> 
<loc>http://www.example.com/index.html</loc>
<lastmod>2009-12-14</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url> 
<url> 
<loc>http://www.example.com/autoadapt.html</loc> 
<mobile:mobile type="pc,mobile"/>
<lastmod>2009-12-14</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url> 
<url> 
<loc>http://www.example.com/htmladapt.html</loc> 
<mobile:mobile type="htmladapt"/>
<lastmod>2009-12-14</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url> 
</urlset>
 

按照移动Sitemap协议做好Sitemap后,在Sitemap工具点击添加新数据提交,与提交普通Sitemap方式一致。


我提交时填写的周期是什么含义?

百度Spider会参考设置周期抓取Sitemap文件,因此请根据Sitemap文件内容的更新(比如增加新url)来设置。请注意若url不变而仅是url对应的页面内容更新(比如论坛帖子页有新回复内容),不在此更新范围内。Sitemap工具不能解决页面更新问题。


Sitemap提交后,多久能被百度处理?

Sitemap数据提交后,一般在1小时内百度会开始处理。在以后的调度抓取中,如果您的sitemap支持etag,我们会更频繁抓取sitemap文件,从而及时发现内容更新;否则抓取的周期会比较长。


提交的Sitemap都会被百度抓取并收录吗?

百度对已提交的数据,不保证一定会抓取及收录所有网址。是否收录与页面质量相关。


我可以压缩我的 Sitemap 吗?它们是否需要用 gzip 压缩?

可以。请使用 gzip 压缩 Sitemap。无论压缩与否,Sitemap 应该小于 10MB(10,485,759字节)。


XML格式的 Sitemap 中,“priority”提示会影响我的网页在搜索结果中的排名吗?

不会。Sitemap 中的“priority”提示只是说明该网址相对于您自己网站上其他网址的重要性,并不会影响网页在搜索结果中的排名。


网址在 Sitemap 中的位置是否会影响它的使用?

不会。网址在 Sitemap 中的位置并不会影响百度对它的识别或使用方式。


Sitemap中提交的url能否包含中文?

因为转码问题建议最好不要包含中文。


什么是自动推送工具?自动推送工具解决了什么问题?

【特别提醒】该工具暂时下线,如恢复使用,将另行通知。

自动推送JS代码是百度站长平台最新推出的轻量级链接提交组件,站长只需将自动推送的JS代码放置在站点每一个页面源代码中,当页面被访问时,页面链接会自动推送给百度,有利于新页面更快被百度发现。


为了更快速的发现站点每天产生的最新内容,百度站长平台推出主动推送工具,产品上线后,部分站长反馈使用主动推送方式的技术门槛较高,于是我们顺势推出更低成本的JS自动推送工具。一步安装便可实现页面自动推送,低成本,高收益。


自动推送代码如何安装使用?

站长需要在每个页面的HTML代码中包含以下自动推送JS代码:

<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https'){
   bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
  }
  else{
  bp.src = 'http://push.zhanzhang.baidu.com/push.js';
  }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>

如果站长使用PHP语言开发的网站,可以按以下步骤操作:
1、创建名为“baidu_js_push.php”的文件,文件内容是上述自动推送JS代码;
2、在每个PHP模板页文件中的 标记后面添加一行代码:
<?php include_once("baidu_js_push.php") ?>


为什么自动推送可以更快的将页面推送给百度搜索?

基于自动推送的实现原理问题,当新页面每次被浏览时,页面URL会自动推送给百度,无需站长汇总URL再进行主动推送操作。

借助用户的浏览行为来触发推送动作,省去了站长人工操作的时间。


自动推送和主动推送有什么区别?

已经在使用链接提交里的主动推送(或sitemap)的网站还需要再部署自动推送代码吗?

二者之间互不冲突,互为补充。已经使用主动推送的站点,依然可以部署自动推送的JS代码,二者一起使用。


什么样的网站更适合使用自动推送?

自动推送由于实现便捷和后续维护成本低的特点,适合技术能力相对薄弱,无能力支持全天候实时主动推送程序的站长。

站长仅需一次部署自动推送JS代码的操作,就可以实现新页面被浏览即推送的效果,低成本实现链接自动提交。

同时,我们也支持主动推送和自动推送代码配合使用,二者互不影响。



站点验证图文详解
结构化数据插件
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }