全国服务热线:

18016243458

数程新闻 主页 > 数程新闻 >

数程新闻
【网站优化】移动网站如何快速向百度提交数据
内容来源:未知      发布时间:2018-04-28      点击数:
  随着网民对于移动化趋势的加强,移动端流量获取成为了网站的重中之重。现在主流的数据提交方式共有以下三种:
 
  1、跳转适配:该方法会利用单独的网址向每种设备提供不同的代码。这种配置会尝试检测用户所使用的设备或ua,然后使用 HTTP 重定向和 Vary HTTP标头重定向到相应的页面。
 
  2、代码适配:该方法使用相同的网址(不考虑用户所使用的设备),但会根据服务器对用户所用浏览器的了解(ua),针对不同设备类型生成不同版本的HTML。
 
  3、自适应:通过同一网址提供相同 HTML 代码的网站设计方法。该方法不考虑用户所使用的设备(pc、平板电脑、移动设备),但可以根据屏幕尺寸以不同方式呈现(即适应)显示屏。
 
  我们知道,百度发现我们网站内容的方式有那么几种:
 
  1 是通过百度蜘蛛自动抓取,这种方式是最传统和原始的方式。这其中当然还可以使用robots协议引导蜘蛛到sitemap文件内,使其加速抓取网站内容。不过归根结底,该种方式还是向提示蜘蛛来抓取,具体的抓取我们无法判断。而且还要看蜘蛛对于该站的抓取频率问题。
 
  2 是通过百度站长工具,将数据主动提交给百度,该种方式能有效的提高百度蜘蛛抓取数据的效率,也是我比较推荐的站长们应该使用的数据提交方式。
 
  百度站长工具提交数据的方式主要有以下三种,下面我们就针对移动网站,来讲解一下这三种方式。
 
  第一种方式:主动推送
 
  第二种方式:自动推送
 
  第三种方式: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
 
  之后,我们会整理一份文件给大家,大家到时候可以根据文件,自己做主动推送代码。
 
  二、自动推送
 
  自动推送是百度站长平台为提高站点新增网页发现速度推出的工具,安装自动推送JS代码的网页,在页面被访问时,页面URL将立即被推送给百度。
 
  JS链接推送代码以网页为最小对象,服务于全平台多终端,PC站和移动站均可使用。
 
  安装代码的页面在任意平台(浏览器、微信、微博)被加载时,页面链接会被第一时间推送给百度,从而提高站点新内容的发现速度。
 
  自动推送代码如何安装使用?
 
  站长需要在每个页面的HTML代码中包含以下自动推送JS代码:
 
  <script>
 
  (function(){
 
    var bp = document.createElement('script');
 
    bp.src = '//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模板页文件中的 <body> 标记后面添加一行代码:
 
  <?phpinclude_once("baidu_js_push.php") ?>
 
  为什么自动推送可以更快的将页面推送给百度搜索?
 
  基于自动推送的实现原理问题,当新页面每次被浏览时,页面URL会自动推送给百度,无需站长汇总URL再进行主动推送操作。
 
  借助用户的浏览行为来触发推送动作,省去了站长人工操作的时间。
 
  自动推送和链接提交有什么区别?
 
  已经在使用链接提交的网站还需要再部署自动推送代码吗?
 
  二者之间互不冲突,互为补充。已经使用主动推送的站点,依然可以部署自动推送的JS代码,二者一起使用。
 
  什么样的网站更适合使用自动推送?
 
  自动推送由于实现便捷和后续维护成本低的特点,适合技术能力相对薄弱,无能力支持全天候实时主动推送程序的站长。
 
  站长仅需一次部署自动推送JS代码的操作,就可以实现新页面被浏览即推送的效果,低成本实现链接自动提交。
 
  同时,我们也支持主动推送和自动推送代码配合使用,二者互不影响。
 
  三、移动Sitemap
 
  百度推出了移动Sitemap协议,用于将网址提交给移动搜索收录。百度移动Sitemap协议是在标准Sitemap协议基础上制定的,增加了<mobile:mobile/>标签,它有四种取值:
 
  <mobile:mobile/> :移动网页
 
  <mobile:mobile type="mobile"/> :移动网页
 
  <mobile:mobile type="pc,mobile"/>:自适应网页
 
  <mobile:mobile type="htmladapt"/>:代码适配
 
  百度移动Sitemap协议的写法
 
  这里关于传统PC站的sitemap写法就不说了。
 
  1、向百度提交移动网页的sitemap协议写法样例:
 
  <?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.abc.com/index.html</loc>
 
  <mobile:mobiletype="mobile"/>
 
  <lastmod>2009-12-14</lastmod>
 
  <changefreq>daily</changefreq>
 
  <priority>0.8</priority>
 
  </url>
 
  </urlset>
 
  2、向百度提交自适应网页的sitemap协议写法样例:
 
  <?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://www.abc.com/autoadapt.html</loc>
 
    <mobile:mobiletype="pc,mobile"/>
 
    <lastmod>2009-12-14</lastmod>
  
    <changefreq>daily</changefreq>
 
    <priority>0.8</priority>
 
  </url>
 
  </urlset>
 
  3、向百度提交代码适配网页的sitemap协议写法样例:
 
  <?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://www.abc.com/htmladapt.html</loc>
 
    <mobile:mobiletype="htmladapt"/>
 
    <lastmod>2009-12-14</lastmod>
 
    <changefreq>daily</changefreq>
 
    <priority>0.8</priority>
 
  </url>
 
  </urlset>
 
  按照移动Sitemap协议做好Sitemap后,在Sitemap工具点击添加新数据提交,与提交普通Sitemap方式一致。
 
  Sitemap提交后,多久能被百度处理?
 
  Sitemap数据提交后,一般在1小时内百度会开始处理。在以后的调度抓取中,如果您的sitemap支持etag,我们会更频繁抓取sitemap文件,从而及时发现内容更新;否则抓取的周期会比较长。