WordPressメモ ページにリダイレクトがあります

技術メモ

WordPressとGoogleSearchConsoleの組み合わせで、「ページにリダイレクトがあります」が多発して原因調査に少しハマったので、ここにメモを残しておく。

結論としては、サイト内リンクに相対パスを指定している事が原因だった。以下に経緯と詳細を記述する。

ページにリダイレクトがあります

GoogleSearchConsole

本サイトのアクセス解析には例によってGoogleSearchConsoleを使用しているのだが、サイトの投稿記事を増やすのに比例して、上記画像の「ページにリダイレクトがあります」の通知が線形的に増えてきた。

だが、特に身に覚えが無く、少し気持ちが悪かったので真面目に調査を行った。

エラー内容

エラーの詳細を確認すると、凡ミスを除くと以下のパターンが多かった。

https://dezikomoe.ddns.net/wp/tag/wizfo_tp02/2022-08-14/

  • 赤字部分はタグのスラッグである。
    こちらの正式なURLはhttps://dezikomoe.ddns.net/wp/tag/wizfo_tp02/である。
  • 青字部分は記事のスラッグである。
    こちらの正式なURLはhttps://dezikomoe.ddns.net/wp/wizfo/2022-08-14/である。

上記の正式なURLがどこかで合成されて、存在しないURLが生成されているようだ。何故だろう?

Chromeデベロッパーツール

Chromeデベロッパーツール

存在しないURLが指定された場合、WordPressが頑張って正しいURLへ変換してくれているようだ。

裏取りとして、ChromeデベロッパーツールのNetwordタブで確認したが、確かにHTTPステータスコードの301が返されて、存在するURLへとリダイレクトされているのが分かった。

存在しないURL生成の犯人探し

GoogleSearchConsole

GoogleSearchConsoleに戻って、紛い物のhttps://dezikomoe.ddns.net/wp/tag/wizfo_tp02/2022-08-14/の生成元を探す。クロールした際の情報が残っているのでそれを見れば良い。

参照元はhttps://dezikomoe.ddns.net/wp/tag/wizfo_tp02/feed/になっている。おや……?

feedを見る

参照元はhttps://dezikomoe.ddns.net/wp/tag/wizfo_tp02/からWordPressによって自動生成されたfeedだった。

これのどこがおかしいのだろう?実際にfeedを覗いてみる。(現在は修正済みなので以下はfeedに存在しない)

<a href=”../2022-08-14/” target=”_blank”>2022-08-14</a>

暫く眺めていると気が付いた。黄色に網掛けした相対パス指定部分が犯人だ。

相対パスの何が駄目だったのか?

https://dezikomoe.ddns.net/wp/tag/wizfo_tp02/feed/を相対URL解決の起点とすると、”../2022-08-14/“は確かにhttps://dezikomoe.ddns.net/wp/tag/wizfo_tp02/2022-08-14/に展開される。全く完全に正しい動きだ。

HTMLを手打ちしていた太古の時代からの習慣により、リンクは可能な限り相対パスを使用するようにしていたのだが、今回は逆にそれが仇となったようだ。

問題解決

内部リンクはかなりの数が存在し、投稿一覧から”../”で検索すると虱潰しに対応するには気が滅入る量だった。

そのため、WordPressのプラグインでSearch Regexを使用して対応する事にした。これを使うと記事全体に対してgrepをかけられるため、漏れなく対応できそうだ。

正規表現を工夫すれば一括置換もできそうだったが、100程度のオーダーだったので置換は細かく行った。具体的には

  • 置換前:../2022-08-14/
  • 置換後:https://dezikomoe.ddns.net/wp/wizfo/2022-08-14/

の指定である。作業時間は1時間程度で完了した。

タイトルとURLをコピーしました