前言
能看到這里,說明大家都跟我一樣,已經把博客搭起來并洋洋灑灑寫了幾篇博文,正春風得意感覺良好的時候,搭建博客有屎以來最大的危機出現在沒有準備的我面前,百度+谷歌都無法搜索到我的博客。裝逼還沒幾天就這樣,真是不能忍。 于是就研究了幾天,鼓搗出了這篇文章。教大家如何脫坑。
正文
下面準備分別介紹谷歌和百度如何提交搜索引擎,其中有一些共同的地方,這里先說明
先確認博客是否被收錄
在百度或者谷歌上面輸入下面格式來判斷,如果能搜索到就說明被收錄,否則就沒有,用你的域名替代我的tengj.top
site:tengj.top
我目前搜索結果如圖:
驗證網站
兩個搜索引擎入口:
為什么要驗證網站
站長平臺推薦站長添加主站(您網站的鏈接也許會使用www 和非 www 兩種網址,建議添加用戶能夠真實訪問到的網址),添加并驗證后,可證明您是該域名的擁有者,可以快捷批量添加子站點,查看所有子站數據,無需再一一驗證您的子站點。
如何驗證網站
首先如果您的網站已使用了百度統計,您可以使用統計賬號登錄平臺,或者綁定站長平臺與百度統計賬號,站長平臺支持您批量導入百度統計中的站點,您不需要再對網站進行驗證。
百度站長平臺為未使用百度統計的站點提供三種驗證方式:文件驗證、html標簽驗證、CNAME驗證。
1.文件驗證:您需要下載驗證文件,將文件上傳至您的服務器,放置于域名根目錄下。
2.html標簽驗證:將html標簽添加至網站首頁html代碼的<head>標簽與</head>標簽之間。
3.CNAME驗證:您需要登錄域名提供商或托管服務提供商的網站,添加新的DNS記錄。
驗證完成后,我們將會認為您是網站的擁有者。為使您的網站一直保持驗證通過的狀態,請保留驗證的文件、html標簽或CNAME記錄,我們會去定期檢查驗證記錄。
不管谷歌還是百度都要先添加域名,然后驗證網站,這里統一都使用文件驗證,就是下載對應的html文件,放到域名根目錄下,也就收博客根目錄下的source下面
然后部署到服務器,輸入地址:http://tengj.top/googlead0e22632f59a368.html 能訪問到就可以點驗證按鈕。
站點地圖
站點地圖是一種文件,您可以通過該文件列出您網站上的網頁,從而將您網站內容的組織架構告知Google和其他搜索引擎。Googlebot等搜索引擎網頁抓取工具會讀取此文件,以便更加智能地抓取您的網站。
我們要先安裝一下,打開你的hexo博客根目錄,分別用下面兩個命令來安裝針對谷歌和百度的插件
npm install hexo-generator-sitemap --save
npm install hexo-generator-baidu-sitemap --save
在博客目錄的_config.yml中添加如下代碼(我不加也可以)
# 自動生成sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml
編譯你的博客
hexo g
如果你在你的博客根目錄的public
下面發現生成了sitemap.xml
以及baidusitemap.xml
就表示成功了。
這時候sitemap.xml
跟baidusitemap.xml
里面的內容一樣,但是文章鏈接都是tengj.github.io的,這里我就很奇怪了,我博客同時對應github和coding的,為啥生成的sitemap.xml
對應的域名都指向了github,sitemap.xml
我是要提交谷歌的,對應github的域名沒問題,但是baidusitemap.xml
里面域名還對應github問題就大了,因為github禁止了百度爬蟲,提交了百度也是不會訪問的。所以我把baidusitemap.xml
里面的改成了我的個人域名tengj.top,因為國內用戶訪問tengj.top其實是訪問coding上面。
部署后你分別訪問
http://tengj.top/sitemap.xml
http://tengj.top/baidusitemap.xml
效果如下圖:
讓谷歌收錄我們的博客
谷歌操作比較簡單,就是向Google站長工具提交sitemap
登錄Google賬號,添加了站點驗證通過后,選擇站點,之后在抓取
——站點地圖
中就能看到添加/測試站點地圖
,如下圖:
谷歌我提交過了一天就能搜索到我的博客了,效率很高。
讓百度收錄我們的博客
谷歌很好搞定,百度就感覺很難,我從提交百度到現在寫這篇博客,在百度那邊也只能搜索到一條我的博客,真不容易。
正常情況,是要等百度爬蟲來爬到你的網站,才會被收錄。
但是github屏蔽了百度爬蟲目前,所以我們要主動出擊,我們自己把網站提交給百度。
這就要使用到百度站長平臺
驗證網站
驗證網站最上面提過了,這里直接截圖
網頁抓取
上面步驟成功后,進入站點管理,找到網頁抓取這邊詳情點進去
我們主動提交博客文章鏈接
如何選擇鏈接提交方式
1、主動推送:最為快速的提交方式,推薦您將站點當天新產出鏈接立即通過此方式推送給百度,以保證新鏈接可以及時被百度收錄。
2、自動推送:最為便捷的提交方式,請將自動推送的JS代碼部署在站點的每一個頁面源代碼中,部署代碼的頁面在每次被瀏覽時,鏈接會被自動推送給百度。可以與主動推送配合使用。
3、sitemap:您可以定期將網站鏈接放到sitemap中,然后將sitemap提交給百度。百度會周期性的抓取檢查您提交的sitemap,對其中的鏈接進行處理,但收錄速度慢于主動推送。
4、手動提交:一次性提交鏈接給百度,可以使用此種方式。
一般主動提交比手動提交效果好,這里介紹主動提交的三種方法
從效率上來說:
主動推送>自動推送>sitemap
主動推送
主動推送是百度搜索為站長們快速提交數據針對性開發的最快捷工具,但是也最難,沒有代碼功底的小伙伴估計就不會了。
沒事,博主既然寫了這篇博客就表示博主找到方法了,我自己用java寫了個post的推送示例,部署到了coding,我也不知道能部署多久,好像部署在coding的演示那邊每天都會扣除碼幣。
地址:戳我
說明:
選擇數據類型,默認推送數據,也有更新數據,刪除數據。后面2個一般用不到
填寫站點,也就是你的域名,我的是tengj.top
填寫token,token在主動推送例子那邊有一串。實在找不到就按下CTRL+F
查找token
填寫文章地址,填寫你要提交的文章鏈接,每行一條記錄
成功提示:
地址錯誤提示:
自動推送
自動推送很簡單,就是在你代碼里面嵌入自動推送JS代碼,在頁面被訪問時,頁面URL將立即被推送給百度
代碼如下:
<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>
我是放在\themes\jacman\layout\_partial\after_footer.ejs
中,添加到下面就行。
sitemap提交
sitemap
提交最上面提過了,直接提交http://tengj.top/baidusitemap.xml 就行,大家看下圖就知道,一開始我是提交 sitemap.xml
,里面是指向github
的,結果主域校驗失敗了,后來切換到指向tengj.top
域名的baidusitemap.xml
就提交成功。
最后大家看下我最近提交的情況
為什么自動推送可以更快的將頁面推送給百度搜索?基于自動推送的實現原理問題,當新頁面每次被瀏覽時,頁面URL會自動推送給百度,無需站長匯總URL再進行主動推送操作。
借助用戶的瀏覽行為來觸發推送動作,省去了站長人工操作的時間。
自動推送和鏈接提交有什么區別?已經在使用鏈接提交的網站還需要再部署自動推送代碼嗎?
二者之間互不沖突,互為補充。已經使用主動推送的站點,依然可以部署自動推送的JS代碼,二者一起使用。
什么樣的網站更適合使用自動推送?自動推送由于實現便捷和后續維護成本低的特點,適合技術能力相對薄弱,無能力支持全天候實時主動推送程序的站長。
站長僅需一次部署自動推送JS代碼的操作,就可以實現新頁面被瀏覽即推送的效果,低成本實現鏈接自動提交。
同時,我們也支持主動推送和自動推送代碼配合使用,二者互不影響。
參考
總結
寫了3個小時終于寫差不多了,很早就想寫這篇的,結果百度不給力,一直不給收錄所以拖到今天,昨天花了點時間寫了下主動推送的接口方便大家,地址上面有。
3月8號 分別用sitemap
和baidusitemap
提交到谷歌和百度
3月9號 谷歌的收錄了,可以搜索到我的博客
3月10號 百度收錄了