0%

Hexo 搭建系列 - SEO優化篇

首先嘗試在google搜索 site:你的域名,來確認你的BLOG有沒有被收錄,能搜索到代表有被收錄,若無則沒有。

一般優化

文章鏈接優化

請參考:Hexo 搭建系列 - Hexo-Abbrlink插件 永久鏈接

增加 nofollow標籤

這是反垃圾鏈接標籤,用於指示搜尋引擎不要抓取網頁上帶有nofollow標籤的任何出站鏈接,減少垃圾鏈接分散網站權重。

你可以使用 hexo-filter-nofollow 插件。

添加robots.txt

在./source新建robots.txt 填寫以下內容:

1
2
3
4
5
6
7
8
9
10
11
12
User-agent: *
Allow: /
Allow: /archives/
Allow: /categories/
Allow: /tags/
Disallow: /vendors/
Disallow: /js/
Disallow: /css/
Disallow: /fonts/
Disallow: /vendors/
Disallow: /fancybox/
Sitemap: http://你的網域/sitemap.xml

User-agent: * 表示運行所有的搜尋引擎,你也可以設定只允許特定的搜尋引擎爬取,例如User-agent: Googlebot
Allow表示允許被訪問的,Disallow是不允許的意思。Disallow不添加任何路徑就表示運行爬取任何內容。
(若要Disallow多個資料夾或檔案,需要分成多行來寫,一行只能寫一個)

關鍵詞與描述

\scaffolds\post.md中添加如下代碼,用於生成的文章中添加關鍵字和描述。

1
2
keywords:
description:

Sitemap

什麼是 Sitemap?
「Sitemap」是一種檔案,您可以在其中提供網站中網頁、影片和其他檔案的相關資訊,並說明各種網頁和檔案之間的關係。Google 這類搜尋引擎會讀取Sitemap 檔案,以更靈活的方式檢索您的網站。 Sitemap會向檢索器顯示您認為網站上的哪些檔案較為重要,並針對這類檔案提供有價值的資訊:舉例來說,Sitemap會針對網頁提供最近更新時間、變更頻率以及替代語言版本等相關資訊。

您可以透過下列幾種方式讓 Google 存取您的 Sitemap:

  • 使用 Search Console Sitemap 工具向 Google 提交 Sitemap
  • robots.txt 檔案中任一處插入以下這一行字元,指定 Sitemap 的路徑。
1
Sitemap: http://example.com/sitemap.xml
  • 透過「連線偵測 (ping)」功能要求 Google 檢索您的 Sitemap。請按照下列方式傳送 HTTP GET 要求:
1
http://www.google.com/ping?sitemap=<complete_url_of_sitemap>

例如:

1
http://www.google.com/ping?sitemap=https://example.com/sitemap.xml

STEP 1

安裝hexo-sitemap-generator外掛可以自動幫你的BLOG產生Sitemap.xml,你只需要打開BLOG根目錄Git Bash輸入以下指令:

1
npm install hexo-generator-sitemap --save

安裝完後瀏覽你的 網址/sitemap.xml,就會發現已經生成了。可以把sitemap提交到GSC來增加收錄。

STEP 2

設定config.yml

1
2
sitemap:
path: sitemap.xml

STEP 3

註冊Google Search Console https://search.google.com/search-console/about?hl=zh-tw

使用google帳號登陸即可。

貼上BLOG網址點擊「繼續」,因為我已經加入Google Analytics到我的BLOG,所以我可以通過Google Analytics帳號來驗證。

你也可以在 [設定 - 擁有權驗證 - 其他驗證方法] 使用其他方法驗證。

STEP 4

到 [Google Search Console後台 - Sitemap - 新增Sitemap] 填寫sitemap.xml

等待幾天就能夠在google上搜尋到自己的網站了。

Google無法讀取sitemap(一般的HTTP錯誤) 解決方式

我剛開始提交sitemap的時候試了無數次發現總是出現

無法讀取 Sitemap ,一般的 HTTP 錯誤

這個錯誤,為此我在google上查找了許久都沒有找到解決方式,於是我開始閱讀 google的sitemap說明,在Sitemap 格式處發現了問題所在。

若你跟我有一樣的問題,你可以打開 你的網址/sitemap.xml 查看你的時間格式是否為 <lastmod>2019-09-29T09:52:32Z</lastmod>
你能發現跟官方的<lastmod>2018-06-04</lastmod> 差在多了後面多了T時分秒Z…等一些沒必要的格式,我猜這就是問題所在,
於是google搜尋了解決辦法,參考Convert an ISO date to the date format yyyy-mm-dd in JavaScript
找到了解決辦法。

以下是解決方式:

打開 .\node_modules\hexo-generator-sitemap\sitemap.xml

1
post.updated.toISOString()

後方加上

1
.substring(0, 10)

substring(Start,End) 意思是擷取從0開始到9位數(End位數不會擷取),本來是2019-09-29T09:52:32Z,就只會擷取到2019-09-29,這樣就是官方所要求的格式。

重新提交sitemap之後等待一會就會顯示成功了。

現在已經能在google搜尋到我的網站了。


參考資料

hexo-generator-sitemap
Hexo 优化:提交 sitemap 及解决百度爬虫无法抓取 GitHub Pages 链接问题
Hexo做SEO优化遇到的坑
Hexo Seo优化让你的博客在google搜索排名第一
管理您的 Sitemap,建立並提交 Sitemap
Convert an ISO date to the date format yyyy-mm-dd in JavaScript

------------ 本文結束 ------------

【版權聲明】
本文鏈接: https://zenreal.github.io/posts/7993/
本文為博主(ZEN)原創文章,遵循CC BY-NC-SA 4.0 版權協議,轉載請附上原文出處鏈接和本聲明。