移動網站如何快速向百度提交數據




站長學院公開課已經進行了一期,收到了大量站長同學的提問和建議,根據大家的反饋,第二期公開課的選題為《移動網站如何快速提交數據》,本期的培訓嘉賓是百度站長社區版主:李松松,2009開始接觸互聯網,然后就一發不可收拾,做過數百企業站的優化推廣工作,垂直行業門戶網站、論壇、小說優化推廣,目前在職母嬰行業。
這期的課跟上期息息相關,首先回顧一下上期內容,上期院長主要講了移動建站與選型。隨著網民對于移動化趨勢的加強,移動端流量獲取成為了網站的重中之重。現在主流的數據提交方式共有以下三種:
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文件,從而及時發現內容更新;否則抓取的周期會比較長。