先日のURL改変について、ほぼ全ての旧URLを新URLに301リダイレクトするように設定出来た。数日が経過した後、googleウェブマスターツールにて状況を確認してみる。しかし、残念ながらタイトルタグの重複数は減少していない。状況を正確に確認するためにアクセスログを見ながら、実際に旧URLをクリックしてみる。間違いなく新URLに転送されているが・・・、よく見てみるとリダイレクトのHTTPステータスコードが『302』になっている。ソースを確認し、『ylsy_permalink_redirect.php』ファイルの405行目を以下のように修正。
function wp_redirect($location, $status=302) {
↓
function wp_redirect($location, $status=301) {
これで、今度こそ301でリダイレクトするようになった。次にクロールエラーを確認してみると、数百件に及ぶ『クロールを完了できませんでした』というエラーと更に十件強の『見つかりませんでした』エラーが発生している事に気付く。中身を確認してみると、幾つかの投稿ページのうち、タイトルを変更したページの旧タイトルが404としてリストされている。それほど数もなかったので『Redirection』プラグインにて、新タイトルにリダイレクトするよう個別に設定していく。
今回は念のため、アクセスログにてHTTPのステータスコードを確認する。旧URLをクリックしながら、アクセスログをウォッチしていると妙な動きが目に入った。旧タイトルが新タイトルにリダイレクトしているのは想定通りだったのだが、投稿ページへのアクセスが大文字含むURLから全て小文字のURLへと301リダイレクトされている。気になったので、ウェブマスターツールにて先ほどの『クロールを完了できませんでした』ページを見てみると、全て投稿ページで『リダイレクトエラー』と表示されている。
とにかく、このリダイレクトが悪さをしていると判断。どのプラグインで処理がなされているかの特定から調査を始める。各プラグインを有効・無効を切り替えていく方法で、すぐに『Permalink Redirect』の問題とわかった。かと言って、プラグインを止める訳にも行かないので回避方法を検討。Permalink Redirectのページ内に『Paths to be skipped』という設定を行う箇所があった。うちのサイトは投稿ページのURLが『/%category%/%postname%/』で、しかもカテゴリが全て日本語のままなので、全ての投稿ページが『/%』で始まる。試しに『/%.*』と設定して動作確認したところ、投稿ページにおける小文字リダイレクトは発生しなくなった。URL改変は本当に怖いね・・・。