hexo乾貨系列:(六)hexo提交搜索引擎(百度+谷歌)

前言


能看到這裏,說明你們都跟我同樣,已經把博客搭起來並洋洋灑灑寫了幾篇博文,正春風得意感受良好的時候,搭建博客有屎以來最大的危機出如今沒有準備的我面前,百度+谷歌都沒法搜索到個人博客。裝逼還沒幾天就這樣,真是不能忍。因而就研究了幾天,鼓搗出了這篇文章。教你們如何脫坑。javascript

正文


下面準備分別介紹谷歌和百度如何提交搜索引擎,其中有一些共同的地方,這裏先說明html

先確認博客是否被收錄


在百度或者谷歌上面輸入下面格式來判斷,若是能搜索到就說明被收錄,不然就沒有,用你的域名替代個人tengj.topjava

site:tengj.top

我目前搜索結果如圖: git

驗證網站


兩個搜索引擎入口:github

爲何要驗證網站   站長平臺推薦站長添加主站(您網站的連接也許會使用www 和非 www 兩種網址,建議添加用戶可以真實訪問到的網址),添加並驗證後,可證實您是該域名的擁有者,能夠快捷批量添加子站點,查看全部子站數據,無需再一一驗證您的子站點。 如何驗證網站 首先若是您的網站已使用了百度統計,您可使用統計帳號登陸平臺,或者綁定站長平臺與百度統計帳號,站長平臺支持您批量導入百度統計中的站點,您不須要再對網站進行驗證。 百度站長平臺爲未使用百度統計的站點提供三種驗證方式:文件驗證、html標籤驗證、CNAME驗證。   1.文件驗證:您須要下載驗證文件,將文件上傳至您的服務器,放置於域名根目錄下。   2.html標籤驗證:將html標籤添加至網站首頁html代碼的<head>標籤與</head>標籤之間。   3.CNAME驗證:您須要登陸域名提供商或託管服務提供商的網站,添加新的DNS記錄。 驗證完成後,咱們將會認爲您是網站的擁有者。爲使您的網站一直保持驗證經過的狀態,請保留驗證的文件、html標籤或CNAME記錄,咱們會去按期檢查驗證記錄。 無論谷歌仍是百度都要先添加域名,而後驗證網站,這裏統一都使用文件驗證,就是下載對應的html文件,放到域名根目錄下,也就收博客根目錄下的source下面web

而後部署到服務器,輸入地址:http://tengj.top/googlead0e22632f59a368.html 能訪問到就能夠點驗證按鈕。npm

站點地圖


站點地圖是一種文件,您能夠經過該文件列出您網站上的網頁,從而將您網站內容的組織架構告知Google和其餘搜索引擎。Googlebot等搜索引擎網頁抓取工具會讀取此文件,以便更加智能地抓取您的網站。bash

咱們要先安裝一下,打開你的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.xmlbaidusitemap.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屏蔽了百度爬蟲目前,因此咱們要主動出擊,咱們本身把網站提交給百度。
這就要使用到百度站長平臺

驗證網站


驗證網站最上面提過了,這裏直接截圖

網頁抓取


上面步驟成功後,進入站點管理,找到網頁抓取這邊詳情點進去

咱們主動提交博客文章連接

如何選擇連接提交方式 一、主動推送:最爲快速的提交方式,推薦您將站點當天新產出連接當即經過此方式推送給百度,以保證新連接能夠及時被百度收錄。 二、自動推送:最爲便捷的提交方式,請將自動推送的JS代碼部署在站點的每個頁面源代碼中,部署代碼的頁面在每次被瀏覽時,連接會被自動推送給百度。能夠與主動推送配合使用。 三、sitemap:您能夠按期將網站連接放到sitemap中,而後將sitemap提交給百度。百度會週期性的抓取檢查您提交的sitemap,對其中的連接進行處理,但收錄速度慢於主動推送。 四、手動提交:一次性提交連接給百度,可使用此種方式。

通常主動提交比手動提交效果好,這裏介紹主動提交的三種方法

從效率上來講:

主動推送>自動推送>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號 分別用sitemapbaidusitemap提交到谷歌和百度 3月9號 谷歌的收錄了,能夠搜索到個人博客 3月10號 百度收錄了


最後,厚顏無恥的求打賞..若是您認爲博主的教程幫助到了你~ 你懂的o(^▽^)o (/▽\=)  

相關文章
相關標籤/搜索