最近百度最大的升級就是Spider 3.0系統升級,對鏈接的自動推送進行了升級,升級之後不再限制站長每天提交的鏈接數量,在最新的百度站長VIP講堂上,百度站長平台高級工程師劉立對“鏈接提交”工具進行了解讀。具體內容可參考Pdf(如何建設對BaiduSpider友好的站點.pdf)
什麼是鏈接自動推送?
自動推送是百度站長平台為提高站點新增網頁發現速度推出的工具,安裝自動推送JS代碼的網頁,在頁面被訪問時,頁面URL將立即被推送給百度。
鏈接自動推送服務對象及原理是什麼?
JS鏈接推送代碼以網頁為最小對象,服務於全平台多終端,PC站和移動站均可使用。安裝代碼的頁面在任意平台(浏覽器、微信、微博)被加載時,頁面鏈接會被第一時間推送給百度,從而提高站點新內容的發現速度。
自動推送工具代碼:
<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>
雖然百度站長及360站長平台都退出了自動推送代碼,但是自動推送工具並不能判斷重復提交的問題,百度站長平台也說了惡意提交垃圾頁面或者重復頁面的站點將會被懲罰限制提交,直至關閉提交權限,其實我們可以自己動手卻解決這個問題。
boke112導航給我們分享了《優化解決百度自動推送和360自動收錄JS重復推送問題》
只需要將以下代碼添加到functions.php文件最後一個?>即可。(這個方法適用於WordPress站點)
/**
* 優化解決百度自動推送和360自動收錄JS重復推送問題 By 懿古今
* 文章地址:http://yigujin.wang/843.html
* 百度自動推送的JS代碼優化 By 張戈博客
* 文章地址:http://zhangge.net/5100.html
* 轉載請保留出處,謝謝合作!
**/
add_action( 'wp_footer', 'bdPushData', 999);
//檢查百度是否已收錄最新改進版本
if(!function_exists('baidu_check_record')){
function baidu_check_record($url){
global $wpdb;
$post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
$baidu_record = get_post_meta($post_id,'baidu_record',true);
if( $baidu_record != 1){
$url='http://www.baidu.com/s?wd='.$url;
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$rs=curl_exec($curl);
curl_close($curl);
//如果抓取到的百度結果中不存在【提交網址】這個關鍵詞,則認為該頁面已被百度收錄
if(!preg_match_all('/提交網址/u',$rs,$matches) && preg_match_all('/百度為您找到相關結果/u',$rs, $matches)){
update_post_meta($post_id, 'baidu_record', 1) || add_post_meta($post_id, 'baidu_record', 1, true);
return 1;
} else {
return 0;
}
} else {
return 1;
}
}
}
//檢查360是否已收錄最新改進版本
if(!function_exists('sll_check_record')){
function sll_check_record($sslurl){
global $wpdb;
$post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
$sll_record = get_post_meta($post_id,'sll_record',true);
if( $sll_record != 1){
$sslurl='http://www.so.com/s?q='.$sslurl;
$csslurl=curl_init();
curl_setopt($csslurl,CURLOPT_URL,$sslurl);
curl_setopt($csslurl,CURLOPT_RETURNTRANSFER,1);
$rs=curl_exec($csslurl);
curl_close($csslurl);
//如果抓取到的360結果中不存在【提交網址】這個關鍵詞,則認為該頁面已被360收錄
if(!preg_match_all('/提交網址/u',$rs,$matches)){
update_post_meta($post_id, 'sll_record', 1) || add_post_meta($post_id, 'sll_record', 1, true);
return 1;
} else {
return 0;
}
} else {
return 1;
}
}
}
//輸出百度自動推送和360自動收錄的js代碼
if(!function_exists('bdPushData')){
function bdPushData() {
if ($_SERVER['HTTPS'] != "on") {
$currentUrl = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"];
} else {
$currentUrl = 'https://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"];
}
//判斷是否是百度未收錄頁面,並且當前頁面是否等於正規url地址(get_premalink)
if(baidu_check_record(get_permalink()) == 0 && $currentUrl == get_permalink()) {
echo "<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>";
}
//判斷是否是360未收錄頁面,並且當前頁面是否等於正規url地址(get_premalink)
if(sll_check_record(get_permalink()) == 0 && $currentUrl == get_permalink()) {
echo "<script>
(function(){
var src = (document.location.protocol == 'http:') ? 'http://js.passport.qihucdn.com/11.0.1.js?9d1e70eca6a305e9ff409dcab8478888':'https://jspassport.ssl.qhimg.com/11.0.1.js?9d1e70eca6a305e9ff409dcab8478888';
document.write('<script src='' + src + '' id='sozz'><\/script>');
})();
</script>";
}
}
}
其中,一定要記得修改代碼中的360自動收錄的那個秘鑰,每個站點都有屬於自己的秘鑰,具體秘鑰可在360站長平台中獲取。
王商博客給我們分享了《解決emlog百度鏈接自動推送重復提交問題》
1.找到主題的module.php文件,在文件最底部添加如下代碼:
<?php //判斷內容頁是否百度收錄及百度自動推送代碼
function baidu($url){
$url='http://www.baidu.com/s?wd='.$url;
$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);$rs=curl_exec($curl);curl_close($curl);if(!strpos($rs,'沒有找到')){return 1;}else{return 0;}}
function logurl($id){$url=Url::log($id);
if(baidu($url)==1){echo "<a rel=\"external nofollow\" title=\"本文已被百度收錄\" target=\"_blank\" href=\"http://www.baidu.com/s?wd=$url\">本文已被百度收錄!</a>";
}else{echo "<a>本文已提交百度!</a><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>";}}
?>
2.找到文章頁面文件echo_log.php,在合適的位置添加以下代碼:
<?php echo logurl($logid);?>
什麼是死鏈?
頁面已經無效,無法對用戶提供任何有價值信息的頁面就是死鏈接,包括協議死鏈和內容死鏈兩種形式:
1.協議死鏈:頁面的TCP協議狀態/HTTP協議狀態明確表示的死鏈,常見的如404、403、503狀態等。
2.內容死鏈:服務器返回狀態是正常的,但內容已經變更為不存在、已刪除或需要權限等與原內容無關的信息頁面。
目前內容死鏈召回存在召回率的風險,所以建議各位站長盡量使用協議死鏈,以保證平台工具更好地發揮其作用。
關於死鏈的處理:
當網站死鏈數據累積過多時,並且被展示到搜索結果頁中,對網站本身的訪問體驗和用戶轉化都起到了負面影響。另一方面,百度檢查死鏈的流程也會為網站帶來額外負擔,影響網站其他正常頁面的抓取和索引。