● URLの正規化について
コンテンツのURLが違えば、検索エンジンは独立した別々のページとして認識します。よく見られる例としては、
- 「wwwあり」のドメイン名と「wwwなし」どちらのURLも存在してしまう
- 「index.htmlあり」と「index.htmlなし」どちらのURLも存在してしまう
このようにコンテンツ(ページ)に対するURLが分散している場合、コンテンツが重複しているとみなされ検索エンジンからの評価が分散する恐れがあります。
これらの問題に対して推奨される対処方法は、301リダイレクトによる正規化で 通常、WebサーバがApacheの場合は「.htaccess」ファイルを利用してリダイレクト設定を行います。 (nginxの場合は、「nginx.conf」ファイルを利用します。)
● WordPressでの設定
WordPressでサイトを構築した場合は、管理画面の[一般設定]から簡単に「wwwあり」・「wwwなし」の設定ができます。
[ダッシュボード]→[設定]→[一般] (「サイトアドレス (URL)」で設定したURLに正規化されます。)
上図のように設定した場合は、「http://example.com/」(wwwなし)に正規化されているので、「http://www.example.com/」でアクセスした場合は「wwwなし」のページにリダイレクトされます。
※「サイトアドレス (URL)」のURLはWordPressのインストール時に自動で設定されます。- 「wwwあり」のURLでinstall.phpを実行すると「wwwあり」のURLが
- 「wwwなし」のURLでinstall.phpを実行すると「wwwなし」のURLが設定されます。
● 注意点
1.「サイトアドレス (URL)」と「WordPress アドレス (URL)」も「wwwあり・なし」の設定を統一する
上図のように「WordPress アドレス (URL)」と「サイトアドレス (URL)」で「wwwあり・なし」を異なって設定していた場合、実際に下記のようなエラーがおきてしまいました。・管理画面からパーマリンク変更ができなくなる
→「.htaccess を更新する必要があります。」のコメントが表示される
・使用中のプラグイン「Google XML Sitemaps」がエラーを起こす
→プラグインの設定画面でエラーが出るのと同時に、ルート直下に仮想で生成されるはずの「sitemaps.xml」も生成されませんでした
これらのエラーは、「WordPress アドレス (URL)」と「サイトアドレス (URL)」の「wwwあり・なし」を統一することで解消されました。
エラーや不具合は構築環境によってかわると思いますので、必ず同じ現象がおこるとは限りませんが、 なるべく「WordPress アドレス (URL)」と「サイトアドレス (URL)」の「wwwあり・なし」は統一されるほうがよいと思います。
2.WordPressで構築したページ以外のページを設置している場合
WordPressで生成されるページとは別でページを設置している場合、そのページの正規化はWordPressでは行えないので別途対応が必要になります。 (Apacheの場合は「.htaccess」ファイルを利用 など)3.「サイトアドレス (URL)」に設定しているURLで正規化できない場合
たまたま私が遭遇したケースなのですが、「Archives for a category」というプラグインを使用していて、「URL正規化のredirect_canonical()」を無効化する設定をしていたために正しく正規化できていませんでした。URLの正規化が効かない場合は、ご使用のプラグインで特別な設定を行っていないか、 また2.のケースのように、すでに「.htaccess」ファイルで正規化を行っていないかなどをご確認ください。