Hugoで構築したブログの記事の引っ越しをした

Saturday, June 30, 2018

ブログ2つ残っているのもなあと思い、旧ブログから新ブログに記事を全て引っ越しさせた。
幸い、移転元も移転先もHugoで構築しているblogなので、移行は簡単だった

移転元のblogでの作業

移転前に、移転元のblogの各記事に、

<meta name="robots" content="noindex,noarchive,follow">
<link rel="canonical" href="{引越し先の記事のURL}" />

を仕込まないと、記事が重複してしまってGoogleの検索結果に影響がでるので、まずこれを仕込む。 1つ1つ入れるのは記事数が多いとかなり骨が折れる(自分の場合132記事あった)ので、地道に入れる作業ではなく、
blogのレイアウトを構築する partial/header.html なるものに書くことにした。ここに各ページ共通で挿入する<head>タグの記述がまとまっている。 この辺りは使っているthemeによって構成が違ったりファイル名が違ったりするかもしれない。

移転先のURL

移転元も移転先も、記事のURLのルールを次のように統一していた。

# 移転元
http://blog.sgr-ksmt.org/yyyy/MM/dd/slug.html
# 移転先
http://tech-blog.sgr-ksmt.org/yyyy/MM/dd/slug.html

なので、linkタグは、rootからの相対パスを返してくれる {{ .URL }}を使うことで簡単に解決した

<link rel="canonical" href="https://tech-blog.sgr-ksmt.org{{ .URL }}" />

metaタグとlinkタグを仕込めたら、hugoコマンドで生成して、(必要があればlocalhostで確認して、)成果物をデプロイする。

移転先のblogでの作業

移転元からmarkdown一式をコピーしてきて、現状のblogの構成と合うようにmarkdownを配置し、少し手直しするものがあれば手直しをしてデプロイ。
これで少しずつ旧サイトから新サイトに流入が移っていく。

(まだやっていないけど)完全移行後

完全に移行が済んだかどうかをGoogle AnalyticsやSearch Consoleで確認して、問題なくなったら、旧blogは閉鎖する。

参考

OtherHugo引っ越し

【Firestore rules】fieldの値の型をチェックする

TypeScriptで指定回数forEachやmapを回す