2017年9月17日日曜日

ウェブリブログから移転の際にrel="canonical"をタグを設定した話

ウェブリブログからWordpressにブログを移転したけどウェブリブログへの投稿は消すつもりはなかった。こういうとき内容が重複する投稿が出来てしまうので検索エンジンには移動したことを伝えたほうがいいらしい。
一番正しいのは301リダイレクトすることだけどウェブリブログではそれはできない。無料ブログサービスはたいていそうだと思われる。

次点としてHTMLに
<link rel="canonical" href=".....">
を記述することになる。
ただそれもウェブリブログではできない。

なにか方法はないかと検索してみたけどウェブリブログから引っ越したという記事はほとんど見つからない。そんな中ひとつ有用な記事を見つけることができた。
JavaScriptで埋め込むという方法だ。ウェブリブログならJavaScriptを使える。この方式だとHTMLに直接書いてあるわけではないけれどクローラーはJavaScript実行後のHTMLを見てくれるようだ、とその記事にはかいてあったのでそれを信じることにした。

この記事を見つけてから実際に作業するまでずいぶん長いこと期間を開けてしまったらその間にこの記事がサイトごとなくなってしまった。でもJavaScriptのソースは控えておいたのでここにそのソースを置こうと思う。たぶん問題ないよね。

<script type="text/javascript">
var Hash = new Object();
Hash['1'] = '記事タイトル1;
Hash['2'] = '記事タイトル2';
var URL = "";
var meta = "";
for (var key in Hash){
  if(document.title.indexOf(Hash[key]) != -1){
    //meta = "<link rel=\"canonical\" href=\"http://example.com" + key + "\">" ;
    var meta = document.createElement("link");
    meta.setAttribute("rel", "canonical");
    meta.setAttribute("href", "http://example.com/" + key);
  }
}
document.getElementsByTagName("head")[0].appendChild(meta);
alert(document.head.innerHTML);
</script>

見ての通り特別なことはしていない。
Hash['1']='記事タイトル1';
配列の'1'の部分に移転先のURLからドメインを取ったものを、'記事タイトル1'の部分にウェブリブログでの記事タイトルを記述する。
ウェブリブログでの投稿数が多いと大変かもしれないけどエクスポートで出力されたデータをエディタなどで置換とかをすればそんなに苦労はしない。

このコードをウェブリブログのフリースペースに置けばいい。「表示項目設定」から「サイドバー表示項目設定」にある。フリースペースは4つあってどれを使ってもいいと思う。
一応の注意点として
  • コードを記述したフリースペースは「□表示」にチェックを入れるのを忘れないように。
  • 「フリースペース3」は反映が翌日になること。それ以外は即反映される。
  • フリースペース3に記述するとブラウザでHTMLのソースコードを表示するとこのコードがそのまま見えるけど「フリースペース」「フリースペース2」は別ファイルから読み込む形になるのでHTMLのソースコードでは見えない。
  • 実行後ブラウザでHTMLのソースコードを見ても<link rel=....>は見えない。F12を押すなどして開発者ツールからみると埋め込まれているのを確認できる。
がある。

これを移転先ブログで引っ越した記事を公開直後に実施した。


0 件のコメント:

コメントを投稿