我是小小強,這是我的第10篇原創文章,閱讀需要大約15分鐘。
前提
在參考前面的文章,完成博客搭建、域名綁定,但總覺得還缺了點什么。尤其是寫了很多東西之后,在互聯網上無法被搜索到,實在讓人郁悶。尤其對于github來說,百度是無法抓取github內容的。因此,就想到可以自動提交網站給百度或者谷歌。
確認博客是否被收錄
在百度或者谷歌搜索框輸入site:xiaoxiaoqiang.win
,如果能搜索到說明被收錄了,否則就沒有。

百度收錄網站
下面以個人網站xiaoxiaoqiang.win來說明。
- 登錄百度站長搜索引擎入口,增加個人站點。

- 驗證網站的所有權,驗證網站所有權的方式有三種:文件驗證、html標簽驗證和cname解析驗證,使用哪一種方式都可以,都是比較簡單的。如果您的網站已使用了百度統計,您可以使用統計賬號登錄平臺,或者綁定站長平臺與百度統計賬號,站長平臺支持您批量導入百度統計中的站點,您不需要再對網站進行驗證。
-
文件驗證
百度生成xxx.html
文件,存放在source
文件夾下。
當文件放置完成后,部署之后,可通過http://xiaoxiaoqiang.win/xxx.html
訪問,如果能正確看到html
文件的內容,說明部署成功了。這里有個坑,參考文末Q&A。
-
CNAME驗證
這種方法比較簡單,將百度生成的主機路徑和主機值添加到阿里云域名對應的cname解析中即可。
- 產生站點地圖
我們需要使用npm自動生成網站的sitemap,然后將生成的sitemap提交到百度和其他搜索引擎。站點地圖是一種文件,您可以通過該文件列出您網站上的網頁,從而將您網站內容的組織架構告知Google和其他搜索引擎。Googlebot等搜索引擎網頁抓取工具會讀取此文件,以便更加智能地抓取您的網站。
- 安裝插件
我們要先安裝一下,打開你的hexo博客根目錄,分別用下面兩個命令來安裝針對谷歌和百度的插件。
npm install hexo-generator-sitemap --save
npm install hexo-generator-baidu-sitemap --save
- 產生站點地圖(此處奇怪的是即使不修改配置文件,也會產生sitemap)
編輯_config.yml,添加下面代碼:
# 自動生成sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml
編輯_config.yml,修改下面代碼,用于保證生成的sitemap.xml文件中地址正確
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://xiaoxiaoqiang.win
root: /
permalink: :title.html
permalink_defaults:
修改完成后,執行hexo g
會在public目錄下產生sitemap.xml
和baidusitemap.xml
文件。
- 測試
站點地圖產生之后,部署成功可以通過http://xiaoxiaoqiang.win/sitemap.xml
和http://xiaoxiaoqiang.win/baidusitemap.xml
訪問查看。
- 提交站點地圖
在百度站長平臺,找到鏈接提交,這里我們可以看到有兩種提交方式,自動提交和手動提交,自動提交又分為主動推送、自動推送和sitemap。
如何選擇鏈接提交方式
1、主動推送:最為快速的提交方式,推薦您將站點當天新產出鏈接立即通過此方式推送給百度,以保證新鏈接可以及時被百度收錄。
2、自動推送:最為便捷的提交方式,請將自動推送的JS代碼部署在站點的每一個頁面源代碼中,部署代碼的頁面在每次被瀏覽時,鏈接會被自動推送給百度。可以與主動推送配合使用。
3、sitemap:您可以定期將網站鏈接放到sitemap中,然后將sitemap提交給百度。百度會周期性的抓取檢查您提交的sitemap,對其中的鏈接進行處理,但收錄速度慢于主動推送。
4、手動提交:一次性提交鏈接給百度,可以使用此種方式。
一般主動提交比手動提交效果好,這里介紹主動提交的三種方法
從效率上來說:
主動推送>自動推送>sitemap
- 主動推送(未嘗試)
安裝插件npm install hexo-baidu-url-submit --save
然后再根目錄的配置文件中新增字段。
baidu_url_submit:
count: 100 # 提交最新的一個鏈接
host: www.xiaoxiaoqiang.win # 在百度站長平臺中注冊的域名
token: 8OGYpxowYnhgVsUM # 請注意這是您的秘鑰, 所以請不要把博客源代碼發布在公眾倉庫里!
path: baidu_urls.txt # 文本文檔的地址, 新鏈接會保存在此文本文檔里
加入新的deploye
deploy:
- type:baidu_url_submitter
- 設置自動推送(默認已經實現)
在next主題配置文件下設置,將baidu_push設置為true:
# Enable baidu push so that the blog will push the url to baidu
# automatically which is very helpful for SEO
baidu_push: true
然后就會將一下代碼自動推送到百度,位置是./themes/next/layout/_third-party/seo/baidu-push.swig
,這樣每次訪問博客中的頁面就會自動向百度提交sitemap
。
{% if theme.baidu_push %}
<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>
{% endif %}
-
sitemap提交
將產生的sitemap提交到百度即可。
- 后記
我記得被百度收錄過程還是蠻久的,一度讓我以為我的方法有問題,提交鏈接在站長工具中有顯示大概是有兩天的時候,站點被百度收錄大概花了半個月。
谷歌收錄網站
谷歌收錄的操作與百度差不多,簡單寫下。
-
登錄谷歌搜索引擎入口,增加個人站點。
-
驗證網站的所有權。對于html文件驗證與百度一樣,cname驗證略有不同。
在上圖中添加阿里云域名解析時,最后的一個.
一定要去掉。 -
提交站點地圖
4.后記
如果配置無錯誤,谷歌收錄還是比較快的,大概十分鐘左右。

Q&A
- 文件驗證html被hexo渲染改變內容
在使用文件驗證的時候,需要將產生的百度或者谷歌驗證的xxx.html
文件放在soure目錄下,此時有個問題,如果是html
文件那么hexo就會將其編譯并渲染。導致上傳到服務器上時,文件內容已經改變。有兩種方法解決:
- 在文件開頭加上如下語句(
false
前有空格):
---
layout: false
---
這樣就不會被hexo編譯。
- 將
xxx.html
文件放在next
主題的source
目錄下,該目錄下的html
文件不會被渲染,并在執行hexo g
時自動拷貝到public
目錄下。
參考
hexo高階教程:想讓你的博客被更多的人在搜索引擎中搜到嗎?
Hexo博客收錄百度和谷歌-基于Next主題
hexo干貨系列:(六)hexo提交搜索引擎(百度+谷歌)
搭建Hexo博客中碰到的坑
hexo博客搭建時遇到的一些問題
感謝
特別感謝cherryblog作者在搭建過程中給予的幫助,本文的一些文字直接摘自她的原創文章(捂臉)。