パーマリンク変更後の404アクセスをリダイレクトする

こんにちは、mzです。

最近、私が管理してるWordPressサイトのパーマリンクを変更しまして、その後の処理にわちゃわちゃしてる件の話。

URLが変わるとどうなる

パーマリンクの変更=URL変更 と読み替えても差し支えない。

変えるとどうなるか?

・従来のURLでアクセスされると404
ページが見つかりません となる。当たり前体操。
だから内部リンクの旧URLの新URLに変更、外部リンクも可能な限り変更せねばならない。
.htaccessでRewriteや、ylsy_permalink_redirect.php など使うのも有効と思う。しかしスラッグやパーマリンク変更を数度に分けて行ってしまったうちのようなもんには、コレだけで全て解決! とはいかないこともある。

・検索スコアのリセット
一定の地位を築いたあなたのページの履歴がなくなる。これについては301リダイレクトで緩和できるらしい。
さらに個人の力じゃどうにもし難い部分があるのだ。

検索エンジン

検索エンジンのクロウラー、botて奴は新URLを認識するが、
『内容が旧URLと一緒で旧URLが消えてる(404)から内容が引っ越した』
という突っ込んだ認識はしてもらえない。

こっちでやれるのは検索エンジンへ旧URLの情報を消してもらうようリクエストすること。それもURLひとつひとつか、カテゴリー単位、最も大雑把だとサイト内全部のURLを一括で。既にアホほどたくさんの記事があり細分化されてるとめんどいオブザイヤーな作業となること必至。

うちの対処法

これまためんどいオブザイヤーなんだが

『ひとつひとつの404エラーに対してリダイレクトを設定する』

Rewriteなどと併用すればまだいいものを、こっち1本でやってしまってるmzです。
プラグイン『Redirection』使用、逐一ルール追加。ampアクセスだとまた別に設定せなあかんとか泣けてくるよね。
404アクセスのログもRedirectionでチェックできる。しかしそのほとんどはbotアクセス。

人のアクセスだけ知りたいんじゃ! という場合はgoogleアナリティクスのページレポート。左のメニューから開くと 行動→サイトコンテンツ→すべてのページ でいける。
ページレポートを開いたらページタイトル表示に切り替え。404 NOT FOUNDのタイトルをクリックするとアクセス結果404だったページがまとめてわかる。
それらのURLに対しリダイレクトを設定してやればいい。

404リスト

うちの404アクセスリストはこんなん。旧URLで投稿idだけだったところを新URLでpost-xxxxだったり内容に即したスラッグだったりにしてる。(post-xxxxが多すぎて統一する気力ない)
Redirectionの404アクセスログからid検索するとログを絞れるから、そこから転送ルール追加してやればいい。投稿一覧から目当てのURLのidを確認、転送ルールのターゲットURLに記事URLコピペする。
たとえば先程のURLリストの”mission/1074″つまり投稿idが1074の記事URLを探したい場合。

投稿ID

というわけです。
うちの例でいうとmissionカテゴリの旧URLは”post-“だけ付与してやりゃいいから、わざわざidからURL確認する必要もないんですが。この手法だとスラッグを記事固有のものに変えたときも間違えない。が、投稿一覧からid探す手間がかかります。

懇切丁寧に解説する気がないので、これでわからん人は他の情報を漁ってくだせぇ。