SEO 優化 (一):為什麼搜尋 (Google) 不到我的 Hexo 部落格?

因為即使一個新的網站被創建,搜尋引擎也不會馬上辨識到該網站,要等搜尋引擎自動辨識到網站,不知道幾年過去了…,所以,我們必須實行一些動作,使搜尋引擎確實收錄新建立的網站。

也就是讓搜尋引擎的索引,有新建立網站中網頁的內容及網址等資料,讓搜尋引擎能更容易地搜尋到我們的網站,這個動作算是 SEO 的其中一種。

工具

Google 有一個 Search Console 工具,可以讓我們在 Google 搜尋引擎登錄新建的網站,還提供檢索分析,讓我們更加了解網站的流量和被查詢的關鍵字等。

不同的搜尋引擎都需要個別登錄。或是不想登錄,就等一段時間 (5、6 個月到一年吧…) 後它自行發現吧!

Search Console 的流程是:驗證網站擁有權 > 提交網址給 Google 索引

驗證網站擁有權

在提交網址之前,我們必須先在 Google Search Console 驗證網站擁有權

  1. 點擊「新增資源」。

  2. 選擇「網址前置字元」(如果選擇左邊的「網域」,則需要進行 DNS 認證,我沒有買域名,所以不選擇這項。如果有買的人,應該可以參考這篇:github 設定 DNS)。

  3. 連同 httphttps 輸入網站的網址。

  4. 驗證網站的擁有權。

    它建議直接在網站中放置一個驗證檔案,但是說真的我不確定這個應該放在我的 Hexo 網站架構中的哪一個部分,所以我直接選擇了其他認證方法中的 HTML 標記,之後會考慮改成 Google Analytics。

    • HTML 標記:只需要在 <head> 中,增加一段它給予的 <meta>資料 就好。
  5. 驗證完畢後就會出現如下的畫面。

提交網址給 Google 索引

提交的方式有兩種,如下所示:

  • Google 模擬器工具:適合規模較小 (500頁以下)、有 Blogger 或 Wix 等網站代管服務的網站。
  • 提交 Sitemap:適合擁有大量網址的網站。

Sitemap 簡單來說,就是一個放有管理者覺得是重要網頁 (想被搜尋) 的檔案。能讓瀏覽網站者一目瞭然 (可以做一個漂亮的畫面,也可以不做)。也能讓搜尋引擎的 spider (或稱:蜘蛛、爬蟲、web crawler) 知道,應該檢索網站上的哪些網頁。

可以參考「什麼是 Sitemap?」、「是否該使用 Sitemap?」

Google 模擬器工具

使用該工具自動產生索引,需要 1~2 週的作業時間。

第一次

  1. 先在 Google Search Console 點擊左欄的「網址審查」,因為網址還沒有提交到 Google 索引,因此出現如下畫面:

  2. 點擊「要求建立索引」,Search Console 工具會檢查網址,確認是否有任何索引問題,如果沒有問題,就會自動幫該網址建立索引囉!

更新網址內容以後

因為我們可能會變更或修正線上網址的部分內容,造成 Google 檔案中已建立的索引修改後可以產生的索引有差異。因此,可以檢查兩者的差異性,並且產生新的索引。

  1. 點擊「網址審查」,它的功能其實是檢查已建立索引的網址,並且查看目前的索引狀態。
  2. 點擊「測試線上網址」。
  3. 點擊「要求建立索引」。

提交 Sitemap 檔案位置

  1. 產生 Sitemap 檔案

    • 手動產生:參考 Sitemap 通訊協定
    • 自動產生:
      • 第三方工具
      • 我是用 hexo-generator-sitemap

    在終端機輸入以下指令:

    1
    $ npm install hexo-generator-sitemap --save

    並且在 Hexo 基本配置 (不是主題的配置) _config.yml 檔案中添加:

    1
    2
    3
    4
    sitemap:
    path: sitemap.xml
    # template: ./sitemap_template.xml
    rel: false

    template:客製化的網站地圖樣板,不需要就註解掉。
    rel:預設 false。開啟的話,會產生指向網站地圖檔案的連結 <link rel="sitemap" type="application/xml" title="Sitemap" href="${url_for.call(this, path)}" >,但是,我不確定是不是因為 BMW 主題沒有涵蓋相關的程式碼,所以我改成 true 後,完全沒反應,之後再研究

  2. Sitemap 檔案一般會放在網站的根目錄,網址是 http://首頁網址/sitemap.xmlindex.html 首頁同層,也就是如下的位置:

    1
    2
    3
    My_folder
    ├ index.html
    └ sitemap.xml

    如果有安裝 hexo-generator-sitemap,在使用指令 hexo g 產生靜態檔的同時,就會產生和首頁同層的 Sitemap 檔案。

  3. 可以用這個網站檢查 Sitemap 檔案是否符合規範。記得輸入整個網址,例如我的是:https://jenifers001d.github.io/sitemap.xml

  4. 將 Sitemap 檔案位置提交到 Search Console:點擊 Search Console 左欄的「Sitemap」,在紅框位置輸入 sitemap.xml

提交 Sitemap 後的觀察日記

一天後

主動提交 Sitemap 檔案路徑經過一天後,顯示「網址在 Google 服務中」,表示網站已經可顯示在 Google 搜尋結果中。Sitemap 顯示「不適用」的原因應該是因為檔案中,沒有 https://jenifers001d.github.io 這個網址。我是在第四天才發現這件事的,所以不確定一天後就審查文章網址是不是不會出現「不適用」。

搜尋我的網站名稱 Jenifer.Code.World 已經可以找到少數的網頁,如下:

但是如果直接搜尋文章標題或網址片段,還無法找到任何結果:

三天後

主動提交 Sitemap 檔案路徑經過三天後,也就是網站已經可顯示在 Google 搜尋結果中兩天後,已經有分析結果出現了。

直接搜尋文章標題,有機率可以找到自己的文章啦!

四天後

主動提交 Sitemap 檔案路徑經過四天後,也就是網站已經可顯示在 Google 搜尋結果中三天後,審查文章網址,可以看到 Google 發現文章的方式是透過 Sitemap。

索引的「涵蓋範圍」也出現執行結果了!

在「詳細資料」裡的「排除」欄位,可以觀察到新發布的文章,不會馬上被建立索引,會出現「已檢索 - 目前尚未建立索引」的字句。有時候甚至還沒被檢索到。

網址審查結果請參照網址檢查工具中的檢查結果資訊欄:「Google 服務呈現狀態」和「索引涵蓋範圍」。

不想主動登錄新建的網站,也可以建立 Sitemap

Sitemap 是為了讓網路爬蟲能快速、便捷地認識該網站中的結構。因此,如果不想去搜尋引擎登錄新建的網站,也還是可以建立 Sitemap。它有助於 SEO,因為,等到某一天,某隻爬蟲爬入網站中的某一頁,就還是能認識到網站的結構啦!

除了在資料夾中放入 Sitemap 檔案,還需要將 Sitemap 檔案位置放置在爬蟲會發現的地方:

  • 加入 Sitemap 檔案位置到 <head>
  • robots.txt 中增加 Sitemap 參數

加入 Sitemap 檔案位置到 <head>

1
2
3
4
<head>
<title>...</title>
<link rel="sitemap" type="application/xml" title="Sitemap" href="https://jenifers001d.github.io/sitemap.xml">
</head>

robots.txt 中增加 Sitemap 參數

robots.txt 檔案只能放在網站的根目錄底下,否則不會被爬蟲發現。

robots.txt 簡單來說,就是一個讓爬蟲「不要」檢索網站中某些網頁的檔案,因此單就 Disallow 參數寫得好,也是能加強 SEO。除此之外,還能指定 Sitemap 檔案位置。

可以參考維基百科的解說。

Hexo 網站中,robots.txt 是放在 Hexo資料夾/source 中,如下:

1
2
3
4
5
6
7
8
9
10
11
12
JeniferCodeWorld
├ .gitignore
├ package.json
├ public/
├ scaffolds/
├ source
| ├ _drafts/
| ├ _posts/
| ├ categories/
| ├ robots.txt <!-- 這裏 -->
| └ tags/
└ themes/

動作是,在檔案中任意位置增加如下語句:

1
Sitemap: https://jenifers001d.github.io/sitemap.xml

至於,已經主動提交 Sitemap 檔案位置給搜尋引擎後,再做出上面兩個其中一個步驟會有助於 SEO 嗎?待研究

參考資料:
Hexo搜尋引擎優化
sitemap.xml網站地圖是什麼?從工具/產生器/程式製作到進行提交教學