ConoHa WINGへの移行によりサイト表示速度が劇的に改善されたのでその結果と移行手順についてのまとめ
はじめに
この度このサイトをConoHa WINGに移行したところ、予想を大きく上回る改善となりました。この記事では、実際の改善結果の詳細と、他のレンタルサーバ会社様からConoHa WINGへの移行のために行った手順をまとめます。 なお、この記事の内容は、それぞれの環境にかなり依存する作業も多く失敗する可能性もありますので自己責任でお願い致します。慎重に作業してください。 今回はConoHa WINGが提供しているかんたん移行サービスは使用せず、全て手動で行います。理由として、色々なプラグインを使用していて移行時に何かしらエラーが出る懸念があり、念の為に全て手動で行い1つ1つ影響を確認しながら移行したかったためです。あまり全ての作業を手動で実施することはないと思いますが、一度経験しておくとWordPressについての理解がかなり深まります。
ConoHa WINGに移行した結果
まずはじめに改善結果は以下の通りです。今回はサイト表示速度の計測にGoogleのPageSpeed Insightsを使用しましたのでその結果になります。
- デスクトップ表示でスコアが68から96に改善
- モバイル表示でスコアが23から54に改善
以下に実際のPageSpeed Insightsの測定結果を掲載します。
前提と環境
以降の手順では以下を前提とします。
- ConoHa WINGのアカウントは作成済とする
- ConoHa WING上で真っさらなWordPressサイトを構築済とする
WordPressサイトを構築する際に、現在は色々なレンタルサーバがあり選択肢も豊富です。今回はGMOインターネット株式会社様が提供するConoHa WINGというレンタルサーバ上にWordPressを実際に構築してみたのでその手順をまとめます。
事前準備
事前準備として、ConoHa WINGの公式サイトにあるお乗り換えガイドに沿っていくつか作業しておきます。具体的には、以下の作業を完了させておきます。
- FTPアカウントを作成する
- ドメインを移行する
- WordPressのログイン制限を解除しておく
FTPアカウントの作成手順やドメインの移行手順については以下の公式ガイドに記載されていますので、ここでは省略します。
レンタルサーバーのお乗換えは手続きも多く、手順を誤るとWebサイトが見れない期間やメールが利用できない期間=ダウンタイムが発生してしまう可能性があります。こちらではお乗換えにあたりダウンタイムが発生しないように手順を紹介します。
WordPressのログイン制限を解除する手順は以下です。ログイン制限は、WordPressの管理画面に短時間に複数回ログイン操作があった場合にログインを拒否する機能です。通常であれば有効化しておいてもいいと思いますが、移行時にはログイン回数も多くなるので解除しておきます。なお、この機能によってログインできなくなると、permission denied
というように一見他に問題があるようなエラーが表示されてしまい、このログイン制限機能によるものだとわかるまで時間を取られてしまうので注意が必要です。
ConoHa WINGではコントロールパネル上でWordPressに関するセキュリティの設定をすることができます。こちらで設定した内容はドメイン内にインストールされているすべてのWordPressに適用されます
ConoHa WINGに移行する手順
主な作業の流れは以下のようになります。
- 移行元のWordPressサイトのバックアップを取得する
- 移行元のWordPressサイトで「一般設定」の内容を確認する
- バックアップしたデータベースファイルの一部を修正する
- 移行先にデータベースファイルをインポートする
- wp-confg.phpを修正する
- 各ファイルをFTPでConoHa WINGにアップロードする
- 移行先のWordPressディレクトリ設置パスについて確認する
- 移行元でDNSの設定変更を行う
移行元のWordPressサイトのバックアップを取得する
移行にあたって、問題発生時に備えて現在稼働しているWordPressサイトのバックアップは必ず取得します。具体的には、以下を全てバックアップしておけばとりあえずはゼロから再構築することができます。また、ここで取得する以下のデータをそのままConoHa WING上のWordPressサイト用に使用します。
WordPressのMySQLデータベースファイル | phpMyAdminなどの管理ツールから移行元のWordPressサイトのMySQLデータベースファイル(拡張子が.sql のもの)をエクスポートしてダウンロードしておきます。phpMyAdminはおそらくほとんどのレンタルサーバ会社様で提供していると思います。 |
---|---|
アップロードした画像、動画などのメディアファイル | 移行元のWordPressサイトのディレクトリのwp-content/uploads ディレクトリに含まれるデータ全てです。wp-content/uploads ディレクトリには、年毎のディレクトリと、導入しているプラグインによってはプラグインのデータもここに置いてある場合があります。全てダウンロードしておきます。 |
プラグインファイル | 移行元のWordPressサイトのディレクトリのwp-content/plugins ディレクトリを丸ごとダウンロードしておきます。 |
テーマファイル | 移行元のWordPressサイトのディレクトリのwp-content/themes ディレクトリに含まれるデータ全てです。もしくは、特に使用していないテーマファイルはダウンロード不要です。例えばtwentysixteen やtwentyseventeen などのWordPressのデフォルトテーマはいつでもダウンロードできるので特にここでバックアップとしてダウンロードする必要はありません。 |
wp-config.php | 移行元のWordPressサイトのルートディレクトリにあるwp-config.php をダウンロードしておきます。 |
.htaccess | 移行元のWordPressサイトのルートディレクトリにある.htaccess と、もしサブディレクトリがありそこに.htaccess もある場合はこちらもダウンロードしておきます。 |
上記を全て手元のパソコンにダウンロードしておけば、とりあえずは最悪の事態でもゼロから復元できると思います。
移行元のWordPressサイトで「一般設定」の内容を確認する
移行元のWordPressサイトの管理画面で、「WordPressアドレス(URL)」、「サイトアドレス(URL)」を確認、メモしておきます。特に「WordPressアドレス(URL)」、「サイトアドレス(URL)」が異なる場合、すなわちWordPressをルートディレクトリではなくサブディレクトリに設置している場合は以降の作業で必要になります。
バックアップしたデータベースファイルの一部を修正する
ここの手順は前節の手順で移行元で「WordPressアドレス(URL)」、「サイトアドレス(URL)」が異なる場合のみ必要です。
また、移行元でサブディレクトリにWordPressを設置していた場合でも、移行先でも同じサブディレクトリ名にWordPressを設置すればここでの作業は不要です。
移行元のサブディレクトリ名と違うサブディレクリ名で移行先にWordPressを設置した場合や、移行先ではサブディレクトリは使わずにルートディレクトリにWordPressを設置する場合は、以下のようにバックアップしたデータベースファイルの中にある'siteurl'
という部分のURLを適宜変更する必要があります。
(...上省略...)
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
(1, 'siteurl', 'https://www.virment.com/wp', 'yes'),
(...途中省略...)
(36, 'home', 'https://www.virment.com', 'yes'),
具体的には、'siteurl'
が「WordPressアドレス(URL)」、'home'
が「サイトアドレス(URL)」に該当します。紛らわしいので注意が必要です。これらを移行先のサブディレクトリ名に合わせる必要があります。
例えば上記では、サブディレクトリ名がwp
の場合になります。
詳しくは、WordPress公式ドキュメントの以下をご参照ください。特に、「ドメイン名またはURLを変更するとき」というセクションがここでの作業に関連します。
自分のサーバー内でWordPressを移動する必要があるときがあります。また、あるサーバーから別のサーバーへとWordPressを移動する必要があるときもあります。インストールし直す必要はありません。WordPressは、これらすべての状況を取り扱う十分な柔軟性があります。
移行先にデータベースファイルをインポートする
バックアップした移行元のデータベースファイルを、移行先であるConoHa WINGのデータベースにインポートします。ConoHa WINGではMySQLの管理ツールとしてphpMyAdminが使用できます。以下のように、「サイト管理」→「データベース」のタブで移行先となるWordPressサイトのデータベースを確認し、「phpMyAdmin」というリンクをクリックします。
phpMyAdminが開くと、以下のようなログイン画面が開きますのでログイン情報を入力して「実行」をクリックします。
ログイン後、インポートを実行する前に以下のようにすでに作成されているデータベースから全てのテーブルを削除しておきます。なお、この削除によって、移行先のWordPressのデータが全て消えます。ConoHa WINGでWorPress作成時にWordPressのユーザ名とパスワードも作成したと思いますが、これら情報含めて削除されます。ただ、ここではこの移行先となるWordPressサイトはこの時点ではまっさらな状態であるはずなので失われる重要なデータはない前提です。
全てのテーブルを削除後、以下のように「インポート」タブを開き、そこで「ファイルを選択」をクリックします。ここで先程一部修正した移行元のデータベースファイルを選択します。ファイルを選択後、同じページ下部に「実行」というボタンがあるのでこれをクリックします。
無事にインポートできると、以下のように成功のメッセージが表示されます。
なお、インポートを実行したものの、エラー 1046(3D000)No database selected
というエラーが出る場合があります。これは、インポートしようとしたデータベースファイルの中にどのデータベースを使用するかの宣言が書かれていないことが原因です。したがって、インポートするデータベースファイルを適当なエディタで開き、一番始めにでてくるCREATE TABLE ~
というSQL文の直前に、USE データベース名
を追記します。ここのデータベース名は、移行先となるConoHa WINGに構築したWordPressサイトが使用するデータベース名です。例えば以下のような形です。
(...以上省略...)
USE my_wpress; /* ここを追記 */
CREATE TABLE `wp_commentmeta` (
`meta_id` bigint(20) UNSIGNED NOT NULL,
`comment_id` bigint(20) UNSIGNED NOT NULL DEFAULT '0',
`meta_key` varchar(255) DEFAULT NULL,
`meta_value` longtext
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
(...以下省略...)
以上で移行先へのデータベースファイルのインポートは完了です。
wp-config.phpを修正する
移行先となるConoHa WINGに構築したWordPressサイトのディレクトリにFTP経由でアクセスし、WordPressのルートディレクトリにあるwp-config.php
をダウンロードします。また、同様に移行元のWordPressサイトのwp-config.php
もダウンロードしておきます。そして移行先のwp-config.php
の中にある$table_prefix
の値を、移行元のwp-config.php
の中にある$table_prefix
の値と同じにしておきます。それ以外の項目は基本的にいじらず移行先のwp-config.phpを移行元のwp-config.phpで上書きしないよう注意してください。
wp-config.php
の中の$table_prefix
の値は以下のような感じで記載されていると思います。
/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'wp_';
この$table_prefix
は、テーブル接頭辞というものでWordPressがどのテーブルを使うかを判別するために付与される識別子です。WordPressのデフォルトでは、このテーブル接頭辞はwp_
という値になっています。しかし、レンタルサーバ会社様によっては、この値を例えばwp214456
のような数値と組み合わせたり他の値を追加している場合があります。そしてこの場合、バックアップしたデータベースファイルをそのままインポートすると、この識別子がついたテーブルが移行先のデータベースに作成されます。
したがって、もし他のレンタルサーバ会社様のphpMyAdminでエクスポートしたデータベースファイルをインポートする場合でかつこのテーブル接頭辞、つまり$table_prefix
がwp_
でない場合は、$table_prefix
を修正する必要があります。
インポートしたデータベースがテーブル接頭辞としてどのような値を使っていたかを確認するには、移行元のwp-config.php
で$table_prefix
の値を確認するか、実際にインポートを実行すれば、以下のようにテーブル名がリスト表示されるのでここでも確認できます。例えば、以下の場合はwp_
という値が$table_prefix
で指定されていた結果作成されたテーブルです。
各ファイルをFTPでConoHa WINGにアップロードする
ConoHa WINGに作成したWordPressサイトのディレクトリにFTP接続し、バックアップした以下3つのデータを全て適切な場所にアップロードします。
画像、動画などのメディアファイル | 移行先のWordPressサイトのディレクトリのwp-content/uploads にアップロードします。 |
---|---|
プラグインファイル | 移行先のWordPressサイトのディレクトリのwp-content/plugins にアップロードします。 |
テーマファイル | 移行先のWordPressサイトのディレクトリのwp-content/themes にアップロードします。 |
wp-config.php | 移行先のWordPressサイトのディレクトリのwp-content/themes にアップロードします。 |
移行先のWordPressディレクトリ設置パスについて確認する
移行先でWordPressをサブディレクトリに設置した場合は、以下のドキュメントに従って作業を実施する必要があります。
WordPress をウェブサイトのルート(例えば http://example.com)で動かしたいけれど、WordPress のファイルすべてをドキュメントルートディレクトリに散らかしたくない人はたくさんいます。WordPress はサブディレクトリに WordPress ファイル /en を設置しても、ウェブサイトをサイトのルートに表示することができます。
移行元でDNSの設定変更を行う
この作業は各自が使用しているレンタルサーバ会社によって異なるため省略します。以下にさくらインターネットから乗り換える場合のDNS変更手順が記載されており参考になりました。
このブログとは別のブログで、さくらインターネットのスタンダードプランを使ってワードプレスを動かしているのですが、非常に動作がもっさりしているため、移行を検討してみました。 移行先の候補として、色々検討した結果、エックスサーバと、ConoHaWINGが残ったのですが、初期費用が無料で、時間単位の課金であることから、後者のConoHaWINGにしてみました。
なお、ConoHa WINGで追加した自身の独自ドメインに関する情報は、以下のようにConoHa WINGの管理画面のメニュー「DNS」から確認できます。
動作確認を行う
全ての作業が完了したら、実際にサイトにアクセスして表示されることを確認します。また、WordPressの管理画面にもアクセスしてみます。なお、この記事の流れで作業した場合、WordPressの管理画面にログインできるユーザ情報もそのまま移行元のWordPressから引き継いでいます。したがって、これまで使用していた同じユーザ名とパスワードでログイン可能です。 なお、移行後にWordPress管理画面にアクセスしてみると、以下のように更新をするよう指示がでる場合があるのでしたがって更新します。 なお、データベース関連で作業した後に初めてWordPressにアクセスした場合、以下のようなウィンドウが表示されると思うので、「WordPressデータベースを更新」をクリックします。
以下のように更新完了と出るので、「続ける」をクリックします。
トップページ以外が表示できない場合
トップページはきちんと表示されるものの、それ以外のページでは以下のようにnot fonud
と表示されてしまう場合があります。
この原因は、大抵は.htaccess
の表記ミス、もしくはwp-blog-header.php
のミスなどが考えられます。ただどうしても各自の環境依存の問題で中々1つの解決策を提示するのが難しいため、これについてはWordPressのドキュメントに詳しく記載されているので一度そちらを見てみることをおすすめします。
WordPress をウェブサイトのルート(例えば http://example.com)で動かしたいけれど、WordPress のファイルすべてをドキュメントルートディレクトリに散らかしたくない人はたくさんいます。WordPress はサブディレクトリに WordPress ファイル /en を設置しても、ウェブサイトをサイトのルートに表示することができます。
先日VMにWordPressをインストールした時にトップページ以外が404で「なんでじゃー」ってなりました。 同じようなことが起きた方、こんにちわ WordPressをインストー...
改善結果についての所感
これまでに色々なレンタルサーバにWordPressサイトを構築したり移管したりという作業を何度も実施してきていたため、サーバの変更によるメリットはある程度把握しているつもりでした。しかし、今回の結果は完全に予想以上で正直なところ大変驚きました。
と言うのも、このサイトで使用しているテーマは自作であり特に表示速度を改善することを意識して作成したものではありませんでした。とりあえず作成してみたという部分が大きいです。また、プラグインも多く使用しています。そのため、サーバ環境以上にサイト自体にまだまだ改善点が多いという認識があり、サーバを変えることによるメリットを多くは享受できないかもしれないとぼんやりと考えていました。
しかし、今回試しにConoHa WINGに移行してみたところ、まさかのスコアとなりました。これまで特にこのサイトの表示速度について改善することを意識できていなかったことはもちろん問題ですが、サーバを変えることによるメリットの大きさを実感させられました。
現時点ではConoHa WINGのサーバ環境に移行したのみですが、さらに表示速度の改善に取り組めばより良い結果を得られそうです。特に、モバイルファーストが当たり前の流れの中でモバイル表示のスコアがあまりに低いため、このあたりをまず改善していければと思います。
まとめ
もし自身のWebサイトの表示速度を改善したいと考えている方がいれば、一度PageSpeed Insightsで自身のWebサイトのパフォーマンスを確認し、その上でサーバが原因であればぜひConoHa WINGを一度試してみることをおすすめします。
関連記事
- 公開日:2020/01/03 更新日:2020/01/03
WordPressのトップページで特定カテゴリを除外、限定などフィルタして表示するカスタマイズ
この記事では、投稿ページのカテゴリをフィルタして、特定のカテゴリの投稿ページを記事一覧から除外したり、逆に特定のカテゴリの投稿ページのみを記事一覧に含めるためのカスタマイズ方法をまとめます。非常に簡単です。
- 公開日:2019/05/26 更新日:2019/05/26
WordPressでJavascriptではなくPHPを使ってシンタックスハイライトを行う手順
シンタックスハイライトを行うライブラリとしてJavascriptのhighlight.jsが有名ですが、JavascriptではなくPHP版のhighlight.phpというものがあります。この記事では、WordPressでhighlight.phpを使用する手順をまとめます。
- 公開日:2019/05/23 更新日:2019/05/23
WordPressサイトを公式プラグインを使ってAMP対応させた結果と手順
Google Analyticsからモバイル表示の問題が深刻のため対応するようメールが届いていました。そしてその中でWordPress公式のAMPプラグイン等を使用するよう書かれていたので実際に導入してみました。この記事ではその手順をメモします。
- 公開日:2019/05/15 更新日:2019/05/15
ConoHa WINGでWordPressサイトを新しく構築する手順
WordPressサイトを構築する際に、現在は色々なレンタルサーバがあり選択肢も豊富です。今回はGMOインターネット株式会社様が提供するConoHa WINGというレンタルサーバ上にWordPressを実際に構築してみたのでその手順をまとめます。