ジョー・ヒタギの止リ木 | 「ものづくり」や「ものなおし」をするブログ

色々なものを作ったり直したりするブログです。主な話題は日用品・電子機器・エアガンなど。

ジョー・ヒタギ の 止リ木

はてなブログ無料版からPro&独自ドメインに移行する方法と注意点のまとめ

f:id:Jo-Bitaki:20200222133050j:plain:h300

はてなブログの無料版を半年ほど使った後、2020年1月10日にPro版への移行・独自ドメインの取得をした。
今回はその時の手順や遭遇したトラブルなどについてご紹介する。これからPro版に移行する方の参考になれば幸いである。

独自ドメインの取得

まずはドメインを取得した。
ドメインとは「○○.com」や「××.jp」のようなホームページの住所を示すものである。

管理業者の選定

ドメインは自分で勝手に使うことはできず、しかるべき機関に必要な情報を登録しなければならない。こうしたドメインの用意と登録を代行してくれるのが管理業者(ドメインレジストラ)である。
ドメインには取得時だけでなく毎年に更新料金が発生する。金額はドメインの種類によって異なり、例えば一般的に「~.com」より「~.jp」のほうが高くつくようだ。

私が業者の選定で考慮した条件は次の4点である。

  1. 一般的なドメインである「.com」を取得できる
  2. 料金が安い
  3. Whois情報公開代行が無料で付帯する
  4. レンタルサーバーは不要

1番目の条件についてはどの業者でも問題ない。特殊なドメインを取得するつもりなら話は変わってくるが。
2番目の料金については、毎年発生する更新料金を重視すべきであろう。
3番目のWhoisとはドメインとその管理者の検索システムのことである。ドメインの取得時には管理者の住所や氏名を登録するが、これらの情報は世界中に公開されてしまう。法人ならともかく個人では大きなリスクになるため、代わりにドメイン管理業者の名前で登録してもらうのが代行サービスである。
4番目については、料金が高くなるくらいならサーバーに関する付帯サービスは不要という意味である。はてなブログを使う分には自前でサーバーを用意する必要はないため。

以上の条件を考慮した結果、「お名前.com 」を選んだ。要件をおおむね満たし、ランニングコストも安かったからである。

Whois情報公開代行は初回登録者のみ無料。複数のドメインを取得するつもりなら再考の余地があるだろう。


スタードメイン 」のほうがさらに維持費が安いうえにレンタルサーバーも無料でついてくるのだが、

  • 自動更新ができない
  • 支払い方法が「あらかじめポイントを購入し、そのポイントで支払う」という特殊仕様
  • はてなブログを利用する限りサーバーは不要

という理由で今回は見送った。

スタードメイン の公式サイトを見ると「ドメインの取得や更新時にポイント進呈」という宣伝が目に付くかもしれないが、このポイントはレンタルサーバーにしか使えず、ドメイン周りの支払いには使えないので注意。
WordPressなど、自前のサーバーが必要な場合には魅力的かもしれない。


ここで一度定番の業者をまとめてみると次のようになる。


ドメイン業者の比較は下のサイトが様々な視点で分類していて分かりやすい。ただし、価格情報が一部古いので注意。
mamewaza.com


下のサイトもおすすめ。基本的に辛口な批評だが、各業者の良い点と悪い点が分かりやすくまとめられている。

jyn.jp

上のサイトの内容を少し補足する。 「お名前.com 」について「Whois公開代行の選択方法が分かりづらい」と書かれているが、私が登録した時には最初から付帯していたので選び忘れる心配はなさそうである。

また、管理人の方は「Google Domains」を薦めておられるが、個人的には

  • 自前でサーバーを用意する
  • そのサーバーにDNSSECを設定する

という人でなければ持て余しそうだと思ったので今回は見送った。

domains.google

ドメインの取得

業者が決まったらいよいよドメインを取得する。はてなブログによれば、グーグルアドセンスを使うならサブドメインは「www」にして「www.○○.com」のようにすべきとのこと。
 出典:Googleアドセンスの申請をする - はてなブログ ヘルプ

しかし、サブドメインは後から設定するものなので、ドメイン取得時には「○○.com」の形式で選べばよい。

取得の際には自動更新Whois公開代行をお忘れなく。あと、業者によっては2年契約や3年契約もあるかもしれないが、料金が割引されているとは限らないので騙されないように。

注意1:セルフバックを忘れずに

すでに「もしもアフィリエイト」のようなアフィリエイトプロバイダに登録されているなら、ドメインの取得でセルフバック(自己アフィリエイト)が使えないか確認すると良い。多少の報酬にはなる。
私はすべて終わってから気が付いたので逃してしまった。

上で紹介したリンク経由でドメインを取得すると私の成果になってしまうが、もし「それでもかまわない」という奇特な方がおられたらぜひ登録していただきたい。

まだアフィリエイトに登録されていないのなら、先に登録する必要がある。以下に私が使っているプロバイダをご紹介する(無料)。

注意2:「.work」ドメインを取得するなら先にはてなブログPro に登録

はてなブログProの利用者が、お名前.com で「.work」を取得するとドメイン料が1年分無料のキャンペーンがある。該当者は確認すべし。

www.onamae.com

この場合は先にはてなブログProに登録しておく必要がある。登録については次項を参照のこと。

はてなブログProに登録する

1か月・1年・2年コースがあるが、期間が長くなるほど1月当たりの料金が安くなる。ただし、途中での解約・返金はできないので注意。

注意:編集モードを変更するならPro移行前に

私は今回はじめて気づいたのだが、Pro版に移行すると編集モードがリセットされるようだ。

例えば、無料版のときに「見たままモード」で作成した記事があるとする。通常、この記事は未来永劫「見たままモード」でしか編集できず、後から「はてな記法」や「Markdown」に変えることはできない。
ところが、デフォルトの編集モードを「Markdown」に設定してからProに移行した場合、すべての記事の編集モードが「Markdown」に変更されるのである。
(※追記:依然として見たままモードの記事もあった。短い記事は対象外なのかもしれない。)

個人的にこの仕様はかなりありがたかった。記事の作成にある程度慣れ、HTMLの編集がしたくなるとMarkdown記法の便利さに気づくはずである。そのため「そのうち別の編集モードも試したい」と思っている方は、Proに移行する前にお気に入りのモードを見つけて変更しておくことをおすすめする。

各種設定

基本的には下のサイトの手順に沿って行えばよい。

www.humbert-tomoyuki.com
流れとしては次のようになる。

  1. サブドメインに「www」を設定して「www.○○.com」の形にする
  2. その独自ドメインをはてなブログに適用する
  3. すでに無料版でブログを作っているなら、Googleアナリティクス・サーチコンソール・アドセンスで情報の引継ぎをする

アナリティクスについて、上のサイトには「プロパティ設定」のことしか書かれていないが「ビュー設定」の変更も必要らしい。

min-web.com

どちらも「管理」から入り、URLを新しいものに変更するだけである。
このとき、URLの末尾にスラッシュを入れないように注意。個々のページは/entry/xxxのように先頭のスラッシュ付きで管理されるため、URLの末尾にもスラッシュを入れると重複しアナリティクスのリンクが機能しなくなる。

アドセンスは新URLにて再度審査を受けなければならない。当ブログでは合格までに10日を要した。

リダイレクトについて

はてなブログに独自ドメインを設定した場合、すでにあるブログから新しいアドレスへ自動的にリダイレクト(転送)されるようになる。これは301リダイレクト(恒久的な転送)になるのでGoogleの検索順位や評価も引き継がれ、コピーコンテンツとみなされる恐れもないらしい。

「はてなブログは301リダイレクトができない」という記述を見かけるかもしれないが、これははてなブログから別のブログサービスに移転するときの話である。この場合はかなり面倒そうだ。

さらに、はてなブログ内であっても「/entry/」以降のアドレスを変更した場合には301リダイレクトができない。そのため、「独自ドメインへの移行を機に、デフォルトURLをカスタムURLに設定しなおす」場合はページ評価を捨てる覚悟で臨まなければならない。

一応、JavaScriptを使って転送することは可能らしい。コードは以下のサイトに掲載されている。
一番上のサイトにはスクリプト以外の転送方法も書かれており、とても参考になった。
上から二番目のサイトは、はてなブログから別のブログへ転送する場合の事例である。

hatebu-memo.scriptlife.jp

pepese.github.io

seiritozakki.hatenablog.com

www.cg-method.com

301リダイレクトが使えないときにJavascriptでページを転送する方法

JavaScriptで転送する場合、本来は旧アドレスのhead要素に<link rel="canonical" href="新URL">を記述すべきらしいが、はてなブログでは個別の記事でheadの編集ができないのでおそらく不可能と思われる。

追記

こちらのサイトのコードを応用すればheadの編集が可能かもしれない。

www.marorika.com

複数のページをリダイレクトする

リダイレクトしたいページが複数あるとコーディングが少し面倒である。
そんなときに便利なPythonスクリプトを作ってみた。詳しくは以下の記事をご覧いただきたい。

【Python】複数ページのリダイレクト用JavaScriptを自動生成するプログラム

上の記事のコードを軽量・高速化したものはこちら。

【JavaScript】複数ページをリダイレクトするコード&それを自動生成するスクリプトの改良版【Python】

トラブルシューティング

ここではサイトの移行時に遭遇したトラブルと、私がとった解決法について述べる。

Google Adsenseにサイトを追加できない

新ドメインのサイトを追加する際に「URLには有効なトップレベルドメインを指定してください」とエラーが出た場合、URLの「www」を消せば登録できる。
www.rundam.com

Google Adsenseで広告が配信されない

アドセンスの管理画面からサブドメインwwwを追加する必要があるようだ。

www.motonokus.com

追加した次の日には広告が表示されるようになった。しかし、全ページで広告が配信されるまでにはさらに時間がかかった。

Google Search Consoleで所有権の確認ができない

プロパティの追加時には「URLプレフィックス」を選択し、表示された「HTMLタグ」を使用する。
renbloglog.hatenablog.com

Google Search Consoleでリダイレクトが確認できない

「アドレス変更」をすると「ホームページからの301リダイレクト ページを取得できませんでした」のエラーに遭遇した。

f:id:Jo-Bitaki:20200112131437p:plain:h400

ひとまず新ドメインのサイトマップを送信し、大半のページがインデックスされてから再度試すとうまくいった。
アドレス変更「 ホームページからの 301 リダイレクト」エラー【Google search console】


ただ、サイトマップを送っただけでは待てど暮らせどクロールされる気配がなかったため、以下のサイトに書かれた方法を実行した。
www.yotsumao.org


サーチコンソールの設定ページ(下のアドレス)にアクセスし、クロール頻度を最大にする。

https://www.google.com/webmasters/tools/settings

f:id:Jo-Bitaki:20200112131425p:plain


サーチコンソールに登録直後は下のように「サイトの情報不足のためクロール頻度の変更は不可」と表示されるが、3日後には設定できるようになった。

f:id:Jo-Bitaki:20200112132702p:plain

設定した翌日に次のようなメールが届き、サイトのインデックスが開始された。

f:id:Jo-Bitaki:20200115191204p:plain:w350


そのさらに翌日の「カバレッジ」はこちら。

f:id:Jo-Bitaki:20200115191208p:plain:w500


以前の経験から一度「除外」されたURLは自動での登録は望めないと思ったため、後日手動でインデックスをリクエストしておいた。リクエスト送信から2日後にはほぼすべてのページが登録済みになった。

▼「以前の経験」▼

www.joe-hitagi.com

デフォルトURLはインデックスされにくい?

ここで、インデックス開始翌日に検出されたURLの一覧をご覧いただきたい。
下はインデックスが「有効」になっているもの(一部)。

f:id:Jo-Bitaki:20200115191200p:plain

含まれるデフォルトURLは7つのみであり、残り24個は全てカスタムURLを持つページだった。

一方、下はインデックスが「除外」されているもの。

f:id:Jo-Bitaki:20200115191211p:plain

こちらはすべてがデフォルトのURLだった。

この結果を見ると、はてなブログのデフォルトURLはグーグルボットにクロールされにくいのではないかと思えてくる。デフォルトURLは無駄に階層が深くなるせいかもしれない。
デフォルトURLはアクセス解析時に何について書いたページか分かりにくいというデメリットもあるので、できる限りカスタムURLを使うことをおすすめする。

AnalyticsとSearch Consoleの連携ができない

アナリティクスの「管理」→「プロパティ設定」→「Search Consoleを調整」を見ても新ドメインのサイトが表示されなかった。

もしも旧URLが表示されているなら、「削除」をクリックして一度リンクサイトを削除する。

f:id:Jo-Bitaki:20200123215604p:plain:h250

その後、もう一度「Search Consoleを調整」を開く。依然として旧URLが表示されているかもしれないが、再度「削除」をクリックすると新URLを選択できるようになっているはず。

上記以外の要因がある場合、以下のサイトに解決策がまとめられているのでご確認いただきたい。

  • Search Consoleは所有者権限を持っていますか?
  • Search ConsoleとGoogle Analyticsで、同じGoogleアカウントですか?
  • Search Consoleでは、www有無・http・httpsで別々のサイトとして扱われますので、Google Analyticsと同じURLかどうかもご確認ください。

出典:アナリティクスでサーチコンソールの追加ができない - Search Console Community

その他の設定

固定ページへの移行

今までは記事ページとして作っていた「サイトマップ」、「免責事項・プライバシーポリシー」、「お問い合わせ」を固定ページに移した。

内部リンクの修正

今までブログ内に貼った内部リンクはすべて旧ドメインのものになっている。そのままでも自動的にリダイレクトされるため、リンク切れになることは無い。しかし、大量のURLがリダイレクトというのも気持ち悪いので内部リンクを修正した。

修正には以下のサイトで紹介されているツールを使用した。
www.zbuffer3dp.com


下はツール制作者様のサイト。
smdn.jp

ツールの使用法についていくつか補足をしておく。

--blog-idに指定するブログIDとは、はてなブログの「詳細設定」→「AtomPub」に書かれているアドレスの下線部である。前後のスラッシュは入れないように。

f:id:Jo-Bitaki:20200112131429p:plain


置換コマンドの入力例を以下に示す。

C:\...\ReplaceContentText.exe -n -i --id Jo-Bitaki --blog-id joe-hitagi.hatenablog.com --api-key xxxxx --from "joe-hitagi.hatenablog.com" --to "www.joe-hitagi.com" --diff-cmd fc

この例では記事内のjoe-hitagi.hatenablog.comjoe-hitagi.hatenablog.comに置換している。最初はhttps://www.joe-hitagi.com/のように指定した*1が、これだとカード型リンクの一部(赤い枠の部分)が置換されない。

f:id:Jo-Bitaki:20200112131434p:plain:w400

置換されないのはテキストだけでリンク自体は修正されるのだが、テキストの表示と実際のリンク先が異なるのはあまり良くないだろう。

コマンドの-nは「実際に置換は行わず、置換内容の確認をする」ときに使用する。そのため、まずは-nオプションを入れて置換内容を確認し、問題なければこのオプションを抜いて再度実行することになる。

-iオプションは置換の実行前にユーザーの承認を求めるもの。確認は記事ごとに必要となる。必須のオプションではないが、私は不安なので入れておいた。
事故防止のため、以降に掲載するコードにも全て-n-iオプションを入れてある。

--diff-cmd fcは置換される部分(差分)のみを表示するコマンド。これを指定しないと記事の全文が表示され、置換対象の確認が難しい。
fcコマンドはWindowsの場合に使用し、MacのようなLinux系ならdiffを使う。diffの使い方については前述のツール制作者様のサイトに詳しく書かれている。

なお、差分として<iframe class="embed-card embed-blogcard" style=...が表示されるかもしれないが、これはカード型のリンク部分を指すと思われる。

もしも「アクセスが拒否されました」といったエラーが出る場合、コマンドプロンプトを「管理者として実行」すれば解決するはずである。

Google Adsenseの手動広告を削除

もともと当ブログではアドセンスの自動広告は無効にしており、手動で広告コードを貼っていた。

www.joe-hitagi.com


今回のようにサイトのアドレスを変更した場合、新アドレスでの審査合格前に広告コードを貼るのは規約違反である。したがって既にあるコードは削除しなければならないのだが、全記事を手動で編集するのは難しい。

そこで前述のツールを使い、"adsbygoogle""dis_adsbygoogle"といった適当な文字列に置換することで広告コードを無効化した。

C:\...\ReplaceContentText.exe -n -i --id Jo-Bitaki --blog-id joe-hitagi.hatenablog.com --api-key xxxxx --from "adsbygoogle" --to "dis_adsbygoogle" --diff-cmd fc

この手法が規約に沿ったものかは未確認だが、とりあえずグーグル側から警告が届くことはなかった。

※追記
もしも規約違反が心配なら広告コードを完全に削除することをおすすめする。詳しくは下の記事を参照していただきたい。

www.joe-hitagi.com

おわりに

今回はブログサービスの変更はしていないが、それでも独自ドメインへの移行はなかなか大変な作業だった。リンクは貼りなおしになるし、アドセンスの審査は受け直しである。さらに移行直後はアクセス数が3分の1に急落した。

「有料版への移行と独自ドメインの取得は早いほうがいい。できれば最初からやっておくべきだ。」と方々で言われているが、まさしくその通りだと実感した。

ただ、「書き続けられるか分からないブログにお金を払いたくない」のもまた事実なので難しいところである。

*1:「意図しない置換が起きないよう、指定文字列はできるだけ長くすべき」という個人的な見解に基づくものである。