文章搬家且不遺失排行索引記錄 - 部落格

Queena avatar
By Queena
at 2017-01-20T00:26

Table of Contents


因為需求要將部份文章搬到另一個位置,
且要保留 Google 索引排名 (Google rank) 的搬家筆記。

感想:

1. 建置部落格有買網域,使用自訂網域才能如此搬
2. 建置部落格先想好主題…
3. 搬家保留 Google rank 很累,下次不要如此嘗試
4. 需要對 HTTP 很熟悉才能如此做 (需要個工程師朋友)

圖文並茂網誌版本
http://dev.twsiyuan.com/2017/01/blogger-move-without-losing-google-rank.html


以下純文字

---

注意:這僅適用於已經使用自定義網域的部落格,並不適用於要遷移已存在的部落格到剛
購買的新網域。

搬移部落格需求

自從開始看一些部落格教學後,從中重新思考為什麼要寫部落格,更重要的是,思考部落
格主題是什麼。審視目前的部落格,主要分成兩大塊主題,一大部分是自己的生活,另一
塊是軟體開發的筆記。從那些部落格教學材料中,了解有明確主題是比較好的,因此開始
考慮將一部分的軟體開發文章,轉移到另一個部落格去。

一個重要需求是,搬文章且保留搜尋引擎的索引排行 (Google rank),某些文章已經擁有
些重要關鍵字索引權重,若只是單純複製原有的文章到另外的部落格,原本部落格的文章
刪除,那麼索引排行會全部遺失,從搜尋引擎來的流量,將會一切歸零重來,雖然對目前
自己沒什麼流量的部落格來說,這一點都不重要吧。

搬移部落格計畫

整個計畫再開一個部落格,繼續選用 Blogger 服務,放置軟體開發的文章,圖片不打算
重新上傳,仍然使用 Blogspot 空間。然後建置一個網站服務,將該些軟體開發主題的文
章從舊的部落格空間導入到這新開的部落格。

- 使用 Blogger 工具匯出所有文章
- 開另一個 Blogger,使用工具匯入剛剛匯出的文章檔案
- 手動保留軟體開發的文章,其他文章以及草稿則是刪除
- 其他設定則是按照需求調整,例如版型說明等等
- 特別是搜尋引擎使用的爬蟲文件 robots.txt,按照之前的文章設置
Blogger 匯入系統沒辦法正確匯入舊文章的自訂文章網址,也沒有保留額外的搜尋說明
(description)。幸好目前文章數不到百篇,先手動從舊部落格把這些資訊複製到新的部
落格文章中
- 圖片則是不處理,繼續放在原本的圖片空間
- 文章留言採用 Disqus 系統,則是到該系統後臺搬移

接著是比較麻煩的部分,保留搜尋引擎索引的方法,按照 webmaster 文章的建議,搬家
最好使用 HTTP 301 轉址,而不是使用 <meta refresh> 或是任何 JavaScript 的方式轉
址,但是 Blogger 可能因為某些安全機制問題 (例如被用來作為惡意廣告用途),沒有提
供 HTTP 301 轉到其他的網域的功能……。

使用 HTTP 301 的轉址服務

既然 Blogger 不支援,那自己弄套服務來做這件事情吧。原先的架構如下,當用戶
(client) 向 blog.twsiyuan.com 要求文章時,先向域名系統 (Domain name system,
DNS) 要求該域名的 IP,該 IP 指向 Blogger 伺服器,建立連線取得伺服器的內容,呈
現文章結果。

弄套服務,將架構改成以下,當用戶端向 blog twsiyuan.com 要求,從域名系統拿到的
不再是 Blogger 系統的 IP,而是架設在 AWS 伺服器的位置,建立與該伺服器連線要求
文章內容,該伺服器再向 Blogger 伺服器要求文章內容,把內容做些調整後,再將修改
後的內容回應給用戶端。

如果發現用戶要求是軟體主題的文章,則是送出 HTTP 301,並設定 header Location,
讓用戶瀏覽器自動跳轉 (see RFC7231) 到新的部落格中。

特別注意是 robots.txt,該架在 AWS 的伺服器特別準備一份設定,而非向 Blogger 拿
舊有的部落格的設定。因為為了避免舊部落格不再使用自訂網域後,其部落格在
Blogger 上的位置 twsiyuan.blogspot.com 會被搜尋引擎建立另一份索引,所以其
robots.txt 將設定為拒絕建立索引的狀態。

- 在 AWS 建立部落格轉址服務
- 移除原先的 CName record,並建立 A record,確保 blog.twsiyuan.com 指向架在 AWS
的伺服器 IP 位置
- 移除舊 Blogger 的自訂網域設定
- 修改舊 Blogger 上的 robots.txt 設定,拒絕建立索引 ***Disallow: * ***

可能的問題

- Blogger 系統內部統計資料會失效
- 熱門文章會受到影響,將無法「正確」顯示
用戶端不再直接跟 Blogger 系統拿內容,而是透過類似代理方式取得,且實作又不
處理 Cookies,會造成此問題
- 由於部落格已經改採用 Goolge analysis 來統計流量,所以 Blogger 內部統計
就不管了,熱門文章頁面則是放棄從部落格中移除不再顯示

- 文章的站內文章連結問題
- 部分未搬移文章中,有連結到搬移到另一部落格的文章,若沒辦法長期維持這服務,
連結是有可能失效
- 之後手動調整文章連結,這應該也是大工程吧

至於其他可能的問題,之後注意到再紀錄。

實作 HTTP 301 轉址服務

概念想法很簡單,怎麼實作比較困難。由於工作上使用 Golang 來開發服務應用,且
Golang 相當適合寫這種簡單的服務架構,因此採用 Golang 來實作。

專案程式碼已經放置在 Github 上,可以點 Github連結查看。為了求開發簡單,除了轉
址文章對應表寫在外部檔案外,其他位置設定以及 robots.txt 都直接寫死在程式中。

https://github.com/twsiyuan/blogger-migration-temporary-service

唯一注意的是,建立 http.Request 向 Blogger 要求回來的內容,必須經過轉換處理,
將內容連結 twsiyuan.blogspot.com 以及 twsiyuan.blogspot.co.jp(因為服務架設在
日本,拿到日本的位置),文字取代成 blog.twsiyuan.com。

後來想想,如此簡單的服務應該可以使用 AWS Lambda (serverless service),自己租台
伺服器 EC2 似乎有點太浪費了,且安全性好似不是很穩,被攻擊可能一下就炸了。

搬家後感想

一開始想好部落格主題,就不用如此麻煩,幸好之前就使用自定義的網域,才能如此這樣
搞。想想流量又沒有這麼多,也沒有建立廣告營收,何必這麼費功夫,一切重來就可以了
呢。


--

All Comments

Emma avatar
By Emma
at 2017-01-22T18:22
好專業

系統是不是會自動關注一些廣告微博

Wallis avatar
By Wallis
at 2017-01-04T01:15
我想問一下 我偶爾會在牆上看到一些動態 例如笑話的微博專頁 我明明就沒關注他 只好手動去取消 是不是官方自動幫我關注的? 類似廣告性質 ~~~ 也有一個可能 之前也有被盜過帳號 但要在哪裡看登入地和IP 我想確認一下有沒有被人登入 找不到這個功能 兩個小問題 請熟悉的人解答 - ...

如何使用 markdown 輕易的排版blog

Lucy avatar
By Lucy
at 2016-12-31T13:35
不知道有沒有人在用~ MarkDownHere 可以直接把 Markdown套版在 google blog 上 詳細好讀版:https://goo.gl/gzLKDK 我有測試過 痞克幫 也是可以直接套上的,推測應該各大部落格都可以 大致效果如下 內文: https://goo.gl/Y53ZGg h ...

有人也在用wix嗎?

Emily avatar
By Emily
at 2016-12-21T16:39
最近因為工作的關係,開始接觸wix, wix給我的感覺是以前流行過的個人烘培雞, 但是變成符合現在趨勢,多了許多功能,幾乎完全自訂的個人網頁編輯器, 不過還是有一些版型限制,但是我覺得對稍微接觸過的人來說沒什麼差別 能從現制下玩出無限制的 ...

安裝目錄與首頁不同

Isla avatar
By Isla
at 2016-12-21T10:19
大家好 這兩天在修改網址的部分 雖然按照了許多教學把index.php複製到根目錄 並將裡面的位置修改 雖然後臺還是可以登入 而且在設定部分也做修改了 但是首頁仍然出現Internal Server Error 想請問還有哪些地方可能出錯了呢..謝謝大家 - ...

網誌能讓Google搜尋到嗎?

James avatar
By James
at 2016-12-18T20:56
※ [本文轉錄自 Facebook 看板 #1OLeSe4l ] 作者: wanzoo (Zoo) 看板: Facebook 標題: [詢問] 網誌能讓Google搜尋到嗎? 時間: Sun Dec 18 20:55:01 2016 想用臉書的網誌功能寫網誌, 要做SEO, 想先確定一件事: Googl ...