ワードプレスのURL正規化について
こんにちは、NOSE YUJIです。
2006年頃からプログラミングを独学し、2015年頃からワードプレスでウェブサイト構築のフリーランスとして活動しています。
今回は、ワードプレスでブログを新しく開設された方におすすめの初期設定の内の1つ、URLの正規化について解説していきます。
URL正規化はSEOには非常に重要です。
ワードプレスをサブディレクトリで運用する場合についても解説していますので、是非この記事を読んで参考にして頂ければと思います。
ワードプレスのURL正規化について – 必要性
新しくワードプレスでブログを公開すると、URLは「http://www」のwwwが無しの状態でも有りの状態でもアクセスできる状態にあります。
また、サイトURLのSSL化を施したとしても、URLの正規化をしていないとhttpでもアクセスが出来てしまう状態となっています。
このようにどちらでもアクセス出来てしまうような状態はグーグルの検索エンジンによる評価は宜しくありません。
wwwは無しの状態か・有りの状態かに統一、そしてhttpでアクセスした場合は必ずhttpsへのリダイレクトがなされるようにURLの正規化を施す必要があります。
以下にその手順を解説していきますので、参考にして頂ければと思います。
ワードプレスのURL正規化について – .htaccessを訂正
ワードプレスの場合、.htaccessは既にデフォルトでインストールされているので、そこに加筆していきます。
今回はさくらインターネットでワードプレスをインストールしたケースの.htaccessについてご紹介していきます。
下記がさくらインターネットでワードプレスをインストールした後に生成される.htaccess内のソースコードですが、さくらインターネットでインストールした場合には、ご丁寧にも.htaccess内に既にいくつかの施工が施されています。
まず、.htaccessファイルをサーバーからダウンロードする必要があるので、FTPでも何でも良いのですがサーバーにアクセスします。
すると下の画像のようにワードプレスのファイル群が格納されているディレクトリ表示になると思いますが、そこに.htaccessファイルは必ずあります。
注) バックアップをしておきましょう
FTPでダウンロードが完了したら、そのファイルを複製して二つにします。
一つは自分で忘れないような適当なフォルダに保存します。
もう一つはこれから訂正をしていくので、途中で分からなくなったりサーバーにアップロードした後にサイトが表示されなかった場合は、バックアップのファイルをサーバーにアップロードします。
では、早速ファイルエディターでこの.htaccessを開きます。
.htaccessのデフォルト状態
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # BEGIN SAKURA Internet Inc. <IfModule mod_deflate.c> SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript </IfModule> <IfModule mod_expires.c> ExpiresActive On <FilesMatch "\.(css|js)$"> ExpiresDefault "access plus 1 week" </FilesMatch> <FilesMatch "\.(gif|jpe?g|png)$"> ExpiresDefault "access plus 1 month" </FilesMatch> </IfModule> # END SAKURA Internet Inc. # BEGIN WordPress # `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は # 動的に生成され、WordPress フィルターによってのみ修正が可能です。 # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress |
上記のソースを見てもらうと分かりますが「#BEGIN SAKURA Internet Inc.」から「#END SAKURA Internet Inc.」まで、さくらインターネットによる最適化が施されています。
# ◀️このシャープマークはコメントアウトと言い、#が書かれた行の部分はプログラミン言語として認識されませんので、何を書いても平気なのです。
第一段階の訂正 – タグを移動
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # BEGIN WordPress # `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は # 動的に生成され、WordPress フィルターによってのみ修正が可能です。 # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress # BEGIN SAKURA Internet Inc. <IfModule mod_deflate.c> SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript </IfModule> <IfModule mod_expires.c> ExpiresActive On <FilesMatch "\.(css|js)$"> ExpiresDefault "access plus 1 week" </FilesMatch> <FilesMatch "\.(gif|jpe?g|png)$"> ExpiresDefault "access plus 1 month" </FilesMatch> </IfModule> # END SAKURA Internet Inc. |
まず、下記のソースコードのタグ部分を上側に移動させます。
1 2 3 4 5 | <IfModule mod_rewrite.c> ・ ・ ・ </IfModule> |
コメントアウト(#)の部分は消してしまっても構いませんが、一緒に移動させてもどちらでも良いです。
第二段階の訂正 – URL正規化を統一する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <IfModule mod_rewrite.c> RewriteEngine on # wwwをなしに統一 RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] # httpをhttpsに統一 RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://example.blog/$1 [R=301,L] </IfModule> # BEGIN WordPress # `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は # 動的に生成され、WordPress フィルターによってのみ修正が可能です。 # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress # BEGIN SAKURA Internet Inc. <IfModule mod_deflate.c> SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript </IfModule> <IfModule mod_expires.c> ExpiresActive On <FilesMatch "\.(css|js)$"> ExpiresDefault "access plus 1 week" </FilesMatch> <FilesMatch "\.(gif|jpe?g|png)$"> ExpiresDefault "access plus 1 month" </FilesMatch> </IfModule> # END SAKURA Internet Inc. |
下のソースコードのタグを新たに生成して、その中にwwwとhttpの正規表現化のコードを記入します。
1 2 3 4 5 | <IfModule mod_rewrite.c> ・ ・ ・ </IfModule> |
以上で、正規化の処理は終了です。
後は、これをサーバーにアップロードしてURLのリダイレクトを確認してみます。
下記に2つ、便利なリダイレクトチェッカーのサイトがあるので、是非利用してみてください。
ワードプレスのURL正規化について – サブディレクトリの場合
もし、ワードプレスのファイル群がホームディレクトリのさらに下、サブディレクトリにあった場合は少し複雑です。
下の画像のようにgホームディレクトリの中のgサブディレクトリ内にワードプレスのファイル群が格納されている状態です。
このような場合は、gホームディレクトリ内にある.htaccessにURL正規化を施す必要があります。
具体的には、下のソースコードをgホームディレクトリ内に保存します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <IfModule mod_rewrite.c> RewriteEngine on # wwwをなしに統一 RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] # httpをhttpsに統一 RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://example.blog/$1 [R=301,L] </IfModule> # BEGIN WordPress # `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は # 動的に生成され、WordPress フィルターによってのみ修正が可能です。 # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress # BEGIN SAKURA Internet Inc. <IfModule mod_deflate.c> SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript </IfModule> <IfModule mod_expires.c> ExpiresActive On <FilesMatch "\.(css|js)$"> ExpiresDefault "access plus 1 week" </FilesMatch> <FilesMatch "\.(gif|jpe?g|png)$"> ExpiresDefault "access plus 1 month" </FilesMatch> </IfModule> # END SAKURA Internet Inc. |
上記のソースコードを書いた.htaccessファイルを下記のgホームディレクトリにアップロードします。
まとめ
如何でしたでしょうか。
無事にURL正規化が出来ましたでしょうか。
このURL正規化もグーグルの検索エンジンに評価されるので、しっかり対策しておきたいところですね。
ワードプレスの構築方法に関する記事は下記にまとめていますので、良かったら参考までにどうぞ。