はてなブログから引っ越しした時にmetaタグにnoindex/canonicalを設定する
はてなブログからGatsby.js + Netlifyで作る静的サイトへお引越ししました. はてなブログの元記事のmetaタグにnoindexとcanonicalを設定するために,以下のブログ記事を参考にしようとしたのですが, はてなブログには元々canonicalが存在していた(そのページそのもののURLが設定されていた)ので,追加ではなく書き換えするスクリプトを書きました.
また,新しいブログに自動転送するコードも追加しています.
スクリプト
こんな感じです.
TARGET_URL
を転送先のURLに設定します.
blog-move
**ブログを引っ越ししましたので,<span id="moveCount">5</span>秒後に移動します**
<script type="text/javascript">
if (document.getElementsByClassName('page-entry').length > 0) {
const targetUrl = 'TARGET_URL';
const head = document.getElementsByTagName('head')[0];
const meta = document.createElement('meta');
meta.setAttribute('name',"robots");
meta.setAttribute('content','noindex');
head.appendChild(meta);
for (link of document.getElementsByTagName('link')) {
if (link.getAttribute('rel') === 'canonical') {
link.setAttribute('href', targetUrl);
}
}
let count = 5;
const countDown = function() {
count -= 1;
document.getElementById('moveCount').textContent = count;
if (count === 0) {
window.location.href = targetUrl;
} else {
setTimeout(countDown, 1000)
}
}
countDown();
}
</script>
記事ごとのスクリプトの生成
記事ごとに貼り付けるスクリプトを以下のように生成しました.
$ find . -type d -depth 4 | sort | sed 's|^\./|https://blog\.ottijp\.com/|' | xargs -IXX bash -c 'cat blog-move | sed "s|TARGET_URL|XX|"'
Gatsbyのディレクトリ構成のcontent/blog
で,上記コマンドを実行します.
content/blog
├── 2017
│ ├── 03
│ │ └── 02
│ │ └── hello-blog
│ │ └── index.md
│ ├── 10
│ │ ├── 21
│ │ │ └── ios-reject-conf2017-day2
│ │ │ └── index.md
生成されたコードをはてなブログに貼っていくのは1件1件手動でやりました・・・(自動化する方法があればよいんですが).