目次でございます。
step
1サーチコンソールでエライことになっていた
step
2ページにリダイレクト、820件
step
3すでに無いカテゴリーURLから現在の各ページにリダイレクト
step
4プラグインSimple 301 Redirectsが原因か?アンインストール。
step
5データベースphpMyAdminでゴミを削除
step
6でも直らない。
step
7クロームのデベロッパーツール→ネットワークにはバッチリ301が。
step
8キャッシュが悪いのか?
step
9オブジェクトキャッシュ・データベースキャッシュをいじれるW3 Total Cachはエラーになった際に大ダメージが怖くて入れられない。
step
11すでに無いカテゴリーがどこかに残っているのか?
step
12phpMyAdminのwp_term_taxonomyで使用中カテゴリを確認、wp_optionsに残っている使用していないカテゴリのレコードを削除。
step
13googleのクローラーを管理するプラグインXML Sitemap Generator for Googleをアンインストール。phpMyAdminでゴミも削除。そして再度インストールして設定。
step
14それでも直らない。なんなのよ。
step
15ワードプレスのURL自動補完リダイレクトってなんだ!?お前が犯人か!!
step
16テーマ(子テーマがあるなら子テーマ)のファンクション.phpに記述だ!!
step
17ダメでした。function remove_redirect_guess_404 ~ add_filter( 'redirect_canonical'
step
18ダメでした。function disable_auto_complete_redirect ~ add_filter( 'redirect_canonical'
step
19ダメでした。add_filter( 'redirect_canonical', 'disable_ ~ return $redirect_url;
step
20ダメでした。function disable_auto_complete_redirect( $redirect_url ) ~ return $redirect_url;
step
21ダメでした。add_filter( 'do_redirect_guess_404_permalink', '__return_false' );
step
22ダメでした。remove_action( 'template_redirect', 'wp_old_slug_redirect' );
step
23どーなってんの?全然リダイレクトが直らないじゃん!
step
24諦めかけていた時に以下の記述を発見!!
step
25リダイレクト病が治ったー!!
googleサーチコンソール、リダイレクト820件
2年ほどサーチコンソールを見ておらず、たまに見てみたらこんなことに。
ページにリダイレクトがあります:820件
その詳細を見て、対象のURLをリダイレクトチェックツールで調べてみると確かに301リダイレクトしちゃってます・・・。
それはどうやらカテゴリを変更した際に、旧カテゴリ内の記事URLがリダイレクトの対象になっている模様。
以下では、
元:miscellaneous-notes/pc という親カテゴリ・子カテゴリ
↓ miscellaneous-notes/pc を廃止
新:home-appliances/sumaho という新しい 親カテゴリ・子カテゴリ にリダイレクト。
301リダイレクトの原因はなんだ?
htaccessか?
リダイレクトの原因ってなんだ?と思い真っ先に思い浮かんだのがhtaccessだったのですが、
wwwなし、httpsあり、index.htmlナシといったリダイレクトは設定しているものの、それ以外に怪しい部分はありません。
プラグイン Simple 301 Redirects か?
あ!
そういえば2年以上前にカテゴリ変更を行った際に、プラグインで301リダイレクトをしていたことを思い出す。
それがSimple 301 Redirects でした。
早速、アンインストールを実行。
で、旧URLにアクセスしてみると、治っていない。301リダイレクトしてしまう。
データベースにアンインストールでは削除しきれていないゴミが残ってしまうことはプラグインでは常識。
phpMyadminにて調べてみると、
- 301_redirects
- 301_redirects_wildcard
がゴミとして残っていました。削除!!
でも、直らず。
クロームのデベロッパーツール(F12キー)で確認してみると301リダイレクトのコードがバッチリ出ている・・・。うーむ。
データベースキャッシュか?
ブラウザキャッシュの古いものが消えずに変更が更新されていないということも良くあるハナシ。
もしかして301リダイレクトもそんな感じなのかしら?
私が入れているプラグインはチーターでおなじみ水前寺 清子って、今 10代・20代は知らないか・・・。
チーターマークのWP Fastest Cach です。しかし、クロームブラウザにてF12からの更新マーク長押しでキャッシュクリア状態のブラウザを実現して301が治りません。そのため「データベースキャシュに古いのが溜まっているのか?」
データベースキャッシュをクリアするにはW3 Total Cach が必要になりますが、クラッシュ事件を良く耳にするためインストールはできませんね・・・。極力使いたくないというか。
データベース上のゴミが原因か?
すでに無いカテゴリーのURLにてリダイレクトしているという1つの事実がありますので、「カテゴリのプログラムが悪さをしている?」と推察。
phpMyAdminにてデータベースを1つづつ調べて見たところ、wp_term_taxonomyに「現在使用中」のカテゴリーが保管されていることがわかりました。
で、wp_options に表示されているカテゴリーには、
- 現在使用中カテゴリ
- すでに消去済みカテゴリ
が存在していることを発見。
よってwp_term_taxonomyに無かったカテゴリナンバーを消去します。
一応カテゴリーナンバーというのは、ダッシュボード → カテゴリー の ID として見ることができます。
エクセルにコピーして、慎重に削除処理を行いました。
その後、サイトマップのプラグイン XML Sitemap Generator for Google をアンインストールしました。
で、XML Sitemap Generator for Googleのデータベース上のゴミを削除する必要があるため、phpMyAdminのwp_optionsの sm_**** を削除。そして再度インストールして設定しました。
でも、直らず・・・。
いい加減にして~。
WPの、URLの自動補完リダイレクト機能が原因だった。
で、真犯人を見つけました。
WordPressにはカテゴリの変更に伴うURLの変更があった場合に勝手に新しいカテゴリにリダイレクトしてくれる「自動補完リダイレクト」という機能が備わっているとのこと。
カテゴリの変更以外にも、近しいURLを途中まで打ち込んでEnterキーを押すとこれまたリダイレクトしてくれるらしい。
で、先人たちの知恵の結晶がすでにたくさんありました。
以下の記述を、テーマのファンクション.phpに記述することで勝手にリダイレクト機能がOFFとなりリダイレクトが停止する。
テーマに子テーマがある場合は子テーマに記述しましょう。
パターンその1
パターンその2
パターンその3
パターンその4
パターンその5
パターンその6
全部、ダメでした~!!
なんでやねん!!
リダイレクト病が治りました!
もう手は尽くした感じです。
諦めモード発動中。
検索キーワードを少し変えて、ボーッとしながら検索してみたところ以下のページを発見しました。
「URLの自動補完の停止について」
そして、その下に
今まで見たことがなかったコードを発見。
以下がその記述になります。
テーマ(子テーマがある場合は子テーマの)ファンクション.php の一番下にでも貼り付けてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
function disable_category_redirect_canonical( $redirect_url, $requested_url ) { global $wp_rewrite, $wp_query; if ( $redirect_url !== $requested_url ) { if ( is_single() && strpos( $wp_rewrite->permalink_structure, '%category%' ) !== false ) { $category_name = get_query_var( 'category_name' ); if ( $category_name ) { $the_category = get_the_category(); if ( ! array_search( $category_name, array_column( $the_category, 'slug' ) ) ) { status_header( 404 ); nocache_headers(); $wp_query->set_404(); return false; } } } } return $redirect_url; } add_filter( 'redirect_canonical', 'disable_category_redirect_canonical', 10, 2 ); |
上記コードを追加した後、
旧カテゴリを含んだURLで検索を掛けてみると、
404エラーが帰ってきました~!!
キタ━━━ヽ(*´□`)ノ゙━━━ァ!!
その後は、もう1回 サイトマップのプラグインをアンインストール、phpMyAdminのゴミも削除して再インストールの再設定からの、
サーチコンソールでsitemapのURLを再設定。
そして、サチコンでリダイレクトをもう一度チェックしてくれ!と再検査の申請。
勝手に301リダイレクト。原因と対処法のまとめ
で、現在は「自動補完リダイレクトをさせない」記述を、外しました。
現時点で投稿したページ数は694個。
サーチコンソールでインデックスされているページ数は749個。
ページ数よりも謎に多い50個ほどは恐らくカテゴリページとか固定ページのこと。
よって、今現在は「別段困る状況ではない」ことに気づきました。
サーチコンソール > ページ で 大量発生中のエラー件数については、
「ページがインデックスに登録されなかった理由」です。
インデックスに登録されてないページがこんなにあります、という意味。
でもそれって、過去に使用していたカテゴリを含むURLだから、現在インデックスされてなくて当然なんですよね。
で、WPの保管により過去カテゴリURL→新カテゴリURLに飛んでいるだけで、
実際にあるページが謎のページにリダイレクトされているわけでもなく、
実際にあるページがインデックスされていないというわけでもない。
インデックスされてなくて当然。
よって以下は放置。
- みつかりませんでした(404)
- noindexタグ によって除外されました
- ページにリダイレクトがあります
ただし、以下はどうにかせねば。
クロール済み - インデックス未登録(内容:.webp画像がインデックスされないナゾ現象)
¥ 2,100
大変口当たりが柔らかい味が特徴のカレーせんべい。
子供やお年寄りにも食べやすくて喜ばれています。