文章首發於我的部落格:Hexo 個人部落格 SEO 優化(3):改造你的部落格,提升搜尋引擎排名
在第一篇文章中介紹了搜尋引擎原理基本原理和工作流程。在第二篇文章中介紹了 SEO 優化的基礎部分-站內優化所包括的一些要素。 所以,在這篇文章就要教大家如何根據第二篇提到的站內優化要素對自己的部落格進行 SEO 優化,以及介紹SEO常用的一些工具及用法。幫助大家的部落格能更好更快地被搜尋引擎收錄。
由於我的部落格使用的我優化及改裝過後的maupassant-hexo,所以下面的設定都是基於這個主題的操作。如果你也是基於 Hexo 構建部落格的話,具體的設定可能或許會根據主題的不同會有些許差異,但思路是一樣的。只要根據這個思路去改造就可以了。
網站結構優化
我們可以根據第二篇提到的站內優化一步一步來優化。
物理及連結結構
建議:呈現樹形連結結構,且首頁到內頁的點選距離不能太大
由於我們的部落格是用 Hexo 生成的靜態部落格,所以在物理結構上採用的是樹形結構的方式。在連結結構上也是呈現樹形結構,且由於是靜態部落格,並沒有很深的連結結構,所以每個頁面與首頁的點選距離一般只有1~2次。
根據搜尋引擎工作原理可知:網站首頁是整個網站權重最高的頁面,與首頁的點選距離越小,被 spider 爬取的概率和權重也就越大。這也是為什麼我們需要將內頁(也就是具體的文章頁面)的首頁點選距離控制得越小越好。
清晰的導航
由於是個人部落格,所以在導航的設定上一般都比較簡潔,無需做過多的設定。一般是針對大型網站,擁有數量多,層級深的導航,才需要刻意設定導航結構。
分配好子域名和目錄
建議:如果可以的話,使用目錄來代替子域名
對於子域名而言,搜尋引擎會把其當做單獨的站點來對待。造成的後果就是主域名的權重很難分配給子域名。
所以如果你的主域名已經有其他用途的話,可以嘗試將 blog 掛載到域名的目錄下。
比如阮一峰老師的個人網站就是這麼來分配的。
www.ruanyifeng.com
是個人網站首頁,www.ruanyifeng.com/blog/
是個人部落格的路徑。
禁止收錄機制
建議:對於一些無關緊要的頁面,使用 Robots.txt 或者 Meta Robots 標籤指定,保證這些頁面不被收錄,不影響網站的權重。
比如一般部落格都會有的 About Me
頁面,以及有的人會自定義一些頁面。一般來說,這些頁面無需被瀏覽器收錄。
下面以 About Me
作為例子,來說明如何為該頁面新增 meta robots 標籤。
思路如下:在 markdown 檔案新增 disallow:true
,然後在主題檔案的 head 檔案中根據 disallow
的值判斷是否新增 <mate name="robots" content="noindex,nofollow">
在你的部落格專案中找到“關於我”的 markdown 檔案,
---
layout: "about"
title: '關於我'
date: 2017-03-25 04:48:33
disallow: true
comments: true
---
複製程式碼
在文章開頭新增 disallow:true
欄位,表示當前頁面不需要 spider 爬取。預設為true。
接下來開啟主題檔案下的 layout/_partial/head.jade:
新增 block robots
head
meta(http-equiv='content-type', content='text/html; charset=utf-8')
meta(content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0', name='viewport')
meta(content='yes', name='apple-mobile-web-app-capable')
meta(content='black-translucent', name='apple-mobile-web-app-status-bar-style')
meta(content='telephone=no', name='format-detection')
meta(content="dgvt3U_uqyQHGrm9xUEVFnAo2tRi4ZTMKgvSav_TNCA" name="google-site-verification" )
meta(name="msvalidate.01" content="D2790C82AAD9C96057EDDF2213A14C2D")
// 新增
block robots
複製程式碼
然後開啟 layout/page.jade,新增下面的內容:
extends base
// 新增
block robots
if page.disallow
meta(name='robots', content='noindex,nofollow')
複製程式碼
這樣就可以實現在當前頁面設定 meta robots 標籤,禁止瀏覽器收錄。(需要注意的是,不同的 Hexo 主題採用的語法是不同的)
除了 robots meta
標籤可以禁止搜尋引擎收錄和跟蹤,還有 < a ref="nofollow" />
也可以。那麼在個人部落格中, nofollow
有哪些使用場景呢?
- 底部主題的連結。
- 頁面評論區的所有連結
- 文章出現的其他網站的連結
網站地圖
網站地圖是每個網站的必須要有的。一般提供 XML 版本即可。 使用 Hexo 構建部落格的可以直接使用外掛 hexo-generator-sitemap ,每次新增編輯文章後,在釋出前,會自動在根目錄生成 sitemap.xml 檔案。
如果你是第一次製作網站地圖,你還需要做兩件事:
- 主動到站長工具提交你的部落格的網站地圖,一般建議用谷歌的站長工具
- 在 robots.txt 檔案中指出部落格的網站地圖位置:
Sitemap:http://chenhuichao.com/sitemap.xml
頁面優化
對於個人部落格,網站結構可以調整的基本就是上面那些內容了。接下來說說如何改造部落格的模板。 這個步驟需要對頁面操作的就是頁面的 Description Meta 標籤了。
幾乎大部分的主題並不會為每篇文章設定單獨的 Description Meta。一小部分主題會將每篇文章的 tag 設定成 Description Meta。很顯然,這兩種方式,都不是我們提倡的。
接下來說說,如果為每篇文章新增單獨的 Description Meta。
改造思路如同上面的 Robot Meta,也是在每篇文章的開頭新增 desc:一句話總結文章,然後在 post.jade
這個模板檔案中判斷當前頁面是否存在 desc 欄位,如果存在的話,則使用當前頁面自定義的描述內容,否則就使用預設。
開啟 layout/_partial/head.jade,新增 block description
block description
block robots
block title
複製程式碼
然後開啟 layout/post.jade,新增下面的內容:
block description
if page.desc
meta(name='description', content=page.desc)
else
meta(name='description', content=config.description)
複製程式碼
這樣就可以針對每篇文章設定單獨的描述內容了。 頁面的標題設定同上面的一致。
其他的一些頁面優化內容,都只需要在寫文章內容的時候注意就可以了,無需改造網站主題檔案了。
其他需要你注意的事情
提交你的部落格地址到搜尋引擎
第一件就是:新增你的部落格地址到各大搜尋引擎。
如果你不主動提交你的部落格地址給各大搜尋引擎,那麼即使你站內優化做得再好,搜尋引擎根本都不知道你的部落格的存在。 所以別忘記在你建立完部落格的那一刻就去提交。如果你此刻還沒有提交,現在就去吧。
此外,在你部落格每新增一篇文章,也需要將文章地址提交到各大搜尋引擎入口。如果只是個人部落格的話,一般只需要針對 Google 就可以了。
Google 站長工具 和 Google Analysis
GA 是用來統計訪問資訊的,站長工具是用來檢視網站的查詢和搜尋資料。建議每個部落格都需要配置這兩個。 GA 的安裝現在的主題基本都覆蓋了,你只需要去申請一個key就可以了。
接下來說說 Google 站長工具
登入之後,你需要先新增你的網站並驗證你的網站:
驗證完網站之後,你需要進行 robots.txt 測試和網站地圖新增。這樣能快速讓搜尋引擎收錄你部落格的頁面。
這兩步完成之後,就可以檢視你的部落格在搜尋引擎的資料了。比如你可以檢視使用者搜尋什麼關鍵詞時會展示你的頁面,以及對應的點選率和其他一些指標。
前面說到的在你新增一篇文章之後,可以直接在 站長工具內的 Google 抓取工具 中提交,這樣速度最快,一般提交幾分鐘後就能被收錄了。
更換要域名怎麼辦?
建議是不要隨便更好域名。如果非得更換域名的話,需要將舊的域名依然保持執行,然後對舊域名的所有訪問設定 301 跳轉,將舊的域名的權重都轉移到新的域名上。
如果你是用 nginx 的話,可以在配置檔案上新增:
53 server {
54 listen 80;
55 server_name www.iamsuperman.cn;
56 rewrite ^/(.*) http://chenhuichao.com/$1 permanent; // permanent 表示301永久 redirect 表示302臨時
57 }
58 server {
59 listen 443;
60 server_name www.iamsuperman.cn;
61 rewrite ^/(.*)http://www.iamsuperman.cn/$1 permanent;
62 }
複製程式碼
server_name 是你的舊域名。
寫在最後
上面所說的站內優化都只是一些最基礎的優化。你並不能期望,你做完站內優化後,部落格排名就能上升很快。你需要知道的是,SEO 是一個長期的過程,所以把基礎的站內優化做好後,定期更新高質量的文章才是不斷提高訪問量和排名的最好的辦法。