目錄
前言
SEO,即Search Engine Optimization,指的是搜索引擎優化。通過搜索引擎優化,可以提高網站的網站關鍵詞排名以及博客文章的曝光度。
個人的網站搭建好之後,百度谷歌等搜索引擎其實是收錄不到我們網站內容的,並且託管在Github上的站點甚至進行了反爬蟲處理,搜索引擎的小蜘蛛更加爬不到你的Blog了。
因此我們要做的是提交搜索引擎收錄,使得搜索引擎收錄我們的網站。考慮到我們在國內,因此本文只講解如何實現百度搜索引擎收錄,Google的原理其實和百度的類似。
1 站點URL優化
一個好的URL設計,不僅有利於網絡爬蟲的爬取,更有利於用戶的體驗。
正確的URL設計應該滿足:
- 長度儘量短
- 目錄層次儘量少
- 全小寫,連字符使用中劃線
-
- 具有描述性,包含關鍵詞等
如果你的站點是使用Hexo框架搭建的,那麼我建議你安裝下面其中一款插件實現URL優化(排名具有先後順序):
- hexo-abbrlink
- 設計urlname
- 中文鏈接轉拼音方式( hexo-permalink-pinyin插件 )
2 查看網站是否被收錄
在搜索引擎中輸入 site:域名
,查看站點是否被收錄,可以看到站點沒有被收錄:
3 添加站點至百度搜索資源平臺
3.1 爲什麼要認證站點
站長平臺推薦站長添加主站(您網站的鏈接也許會使用www 和非 www 兩種網址,建議添加用戶能夠真實訪問到的網址),添加並驗證後,可證明您是該域名的擁有者,可以快捷批量添加子站點,查看所有子站數據,無需再一 一驗證您的子站點。
3.2 如何驗證站點
關於選擇驗證站點選擇的協議上,有兩點要說明:
- 如果你的站點購買了域名: 建議你先將站點實現全站HTTPS,再在百度站長平臺中選擇HTTPS協議認證。如若HTTPS認證始終沒能通過,再選擇認證HTTP協議。
- 如果你的站點是部署在 Github/Gitee 並沒有購買域名: 因爲 Github/Gitee 實現了強制HTTPS協議,你可能必須要在百度站長平臺中選擇HTTPS協議認證。如果選擇的是HTTP協議認證,會出現驗證失敗的情況,並提示你將 http 的 url 301到 https 的url。關於這一點,我會在後面詳細說明。
下文將以選擇HTTP協議認證爲例:
1.進入官網:百度搜索資源平臺官網
2.點擊 “用戶中心” → “站點管理”:
3.輸入域名網址:
4.設置站點領域:
5.選擇驗證方式:
- 文件驗證:下載給定的文件,將其放到本地主題目錄 source 文件夾,然後部署博客完成驗證
- HTML 標籤驗證:給一個
meta
標籤,放到首頁<head>
與</head>
標籤之間即可完成驗證 - CNAME 驗證:需要登錄域名提供商或託管服務提供商的網站,添加新的DNS記錄。如果你購買了域名,這種方式最簡單,只需去域名 DNS 添加一個
CNAME
記錄即可完成驗證
剛開始我選擇的是文件驗證方式,但一直提示驗證文件內容不符,因此選擇了HTML標籤驗證:
將標籤放在Hexo文件主題目錄下\themes\Chic\layout\_partial
的header.ejs
的<head>
與 </head>
標籤之間(文件路徑供參考)
<meta name="baidu-site-verification" content="XXXXXXXXXX" />
6.點擊完成驗證,並等待審覈:
幾小時過後,站長平臺會提示你審覈結果:
3.3 關於認證HTTP協議的說明
以我的站點爲例,站點是雙線部署在 Github/Gitee 上的,並沒有購買域名。即我的域名還是原始域名:https://yourname.github.io/ & https://yourname.gitee.io/,可以看到 Github與Gitee 都已經將你的網站強制部署在 https 安全域名下。
因此當我在百度站長平臺中選擇認證HTTP協議時:
我的驗證是失敗的:
並提示你將 http 的 url 301到 https 的url:
關於301,大多數玩SEO的朋友都瞭解,在這裏我們不再多說,但貼下百度站長平臺的解釋:
- HTTPS協議的站點信息更加安全,同時可降低網站被劫持的風險,如網站同時存在HTTP和HTTPS站點,可使用本工具進行認證,便於百度搜索識別網站。HTTP與HTTPS之間的對應關係,識別成功後,搜索端將及時展示網站HTTPS資源
- 使用HTTPS認證,需要保證全站所有鏈接都支持HTTPS訪問
- 每個站點每天最多可使用3次認證功能
4 提交百度搜索
進入鏈接:資源提交 → 鏈接提交
4.1 提交方式介紹
百度提供了自動提交和手動提交兩種方式,其中自動提交又分爲主動推送、自動推送和 sitemap 三種方式,以下是官網給出的解釋:
-
主動推送:最爲快速的提交方式,建議您將站點當天新產出鏈接立即通過此方式推送給百度,以保證新鏈接可以及時被百度收錄。
-
自動推送:是輕量級鏈接提交組件,將自動推送的JS代碼放置在站點每一個頁面源代碼中,當頁面被訪問時,頁面鏈接會自動推送給百度,有利於新頁面更快被百度發現。
-
sitemap:您可以定期將網站鏈接放到Sitemap中,然後將Sitemap提交給百度。百度會週期性的抓取檢查您提交的Sitemap,對其中的鏈接進行處理,但收錄速度慢於主動推送。
-
手工提交:如果您不想通過程序提交,那麼可以採用此種方式,手動將鏈接提交給百度。
方式 | 主動推送 | 自動推送 | sitemap | 手工提交 |
---|---|---|---|---|
速度 | 最快 | —— | —— | —— |
開發成本 | 高 | 低 | 中 | 不需開發 |
可提交量 | 低 | 高 | 高 | 低 |
是否建議提交歷史連接 | 否 | 是 | 是 | 是 |
和其他提交方法是否有衝突 | 無 | 無 | 無 | 無 |
從效率來說,主動推送 > 自動推送 > sitemap
4.2 主動推送
1.使用主動推送功能會達到怎樣效果:
- 及時發現:可以縮短百度爬蟲發現您站點新鏈接的時間,使新發布的頁面可以在第一時間被百度收錄
- 保護原創:對於網站的最新原創內容,使用主動推送功能可以快速通知到百度,使內容可以在轉發之前被百度發現
2.在博客根目錄安裝插件 :
npm install hexo-baidu-url-submit --save
然後在根目錄 _config.yml
文件裏寫入以下配置:
baidu_url_submit:
count: 10 # 提交最新的多少個鏈接
host: https://yourname.gitee.io/ # 在百度站長平臺中添加的域名
token: your_token # 祕鑰
path: baidu_urls.txt # 文本文檔的地址,新鏈接會保存在此文本文檔裏
- 記得查看Hexo根目錄
_config.yml
文件中url
的值,必須包含是百度站長平臺註冊的域名, 比如:# URL ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' url: https://yourname.gitee.io/ root: / permalink: :year/:month/:day/:urlname/
token
可以在鏈接提交 → 自動提交 → 主動推送下面看到,接口調用地址最後面token=xxxxx
即爲你的token
:
3.加入新的 deployer
:
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
- type: git ## 這是原來的deployer
repo:
branch:
- type: baidu_url_submitter ## 在這裏添加新內容即可
4.最後執行 hexo g -d
部署一遍即可實現主動推送,推送成功的標誌是:在執行部署命令最後會顯示類似如下代碼
{"remain":2992,"success":7}
INFO Deploy done: baidu_url_submitter
5.查看推送反饋:
-
你可以通過推送後返回的狀態碼和字段來判斷數據是否推送成功。
-
狀態碼爲200,表示推送成功,可能返回以下字段:
字段 是否必選 參數類型 說明 success 是 int 成功推送的url條數 remain 是 int 當天剩餘的可推送url條數 not_same_site 否 array 由於不是本站url而未處理的url列表 not_valid 否 array 不合法的url列表 -
成功返回示例:
{ "remain":4999998, "success":2, "not_same_site":[], "not_valid":[] }
6.同時在hexo\.deploy_git\
路徑下會生成一個baidu_urls.txt
文件,其中包含了你站點中的URL鏈接:
4.3 自動推送
自動推送是百度搜索資源平臺爲提高站點新增網頁發現速度推出的工具,安裝自動推送JS代碼的網頁,在頁面被訪問時,頁面URL將立即被推送給百度。
1.服務對象及原理:
- JS鏈接推送代碼以網頁爲最小對象,服務於全平臺多終端,PC站和移動站均可使用。
安裝代碼的頁面在任意平臺(瀏覽器、微信、微博)被加載時,頁面鏈接會被第一時間推送給百度,從而提高站點新內容的發現速度。
2.操作:
-
有些 hexo 主題集成了這項功能,比如 next 主題,在
themes\next\layout_scripts\
下有個baidu_push.swig
文件,只需要把代碼粘貼到該文件,然後在主題配置文件設置baidu_push: true
即可。 -
對於大部分Hexo主題是沒有集成這項功能的,我們可以把代碼粘貼到
header.ejs
文件的<head>
與</head>
標籤之間即可,從而實現自動推送。 -
代碼:
<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>
-
再重新部署即可。
4.4 sitemap提交
-
生成一個網站地圖:
npm install hexo-generator-baidu-sitemap --save
-
記得查看Hexo根目錄
_config.yml
文件中url
的值,必須包含是百度站長平臺註冊的域名, 比如:# URL ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' url: https://yourname.gitee.io/ root: / permalink: :year/:month/:day/:urlname/
-
使用命令
hexo g -d
將網站部署上去,然後訪問你的域名/baidusitemap.xml
就可以看到網站地圖了 -
來到百度站長平臺的
sitemap
提交頁面,將你的sitemap 地址
提交即可。如果以後你博客有新的文章或其他頁面,可以點擊手動更新文件,更新一下新的sitemap
。
4.5 手動提交
手動提交不需要其他額外操作,直接把需要收錄的頁面的 url 提交即可,這種方法效率較低,更新較慢,不推薦使用。
5 推送效果
鏈接提交以後,大概兩天左右,在站長平臺中會有顯示:
站點正式被百度收錄大概需要半個月左右的時間。
6 References
- https://ziyuan.baidu.com/college/courseinfo?id=267&page=1#02
- https://ziyuan.baidu.com/college/courseinfo?id=267&page=2#h2_article_title18
- https://www.itrhx.com/2019/09/17/A48-submit-search-engine-inclusion/
好了,接下來就可以愉快玩耍了,歡迎留言討論!