WordPressのカテゴリーベースを消すと404エラーが発生した

WordPressのカテゴリーベースを消すと404エラーが発生した

以前から最近WordPressで作ったサイトのカテゴリーページが全部、ウェブマスターツールでクロールエラーになっていたのですが、原因がわからずに放置していました。今回、原因と対処法がわかったのでメモがわりに記事にしておきます。

結論から言うと、カテゴリーベース(カテゴリーページのURLに含まれる/category/の部分)を消していた、または日本語スラッグにしていたことが原因でした。

以下に私のサイトに起きた問題の詳細と、解決までの軌跡を書いていきます。

症状

私は「WordPress SEO by Yoast」というプラグインを使っていますが、以前このプラグインのアップデートがあった時あたりから、カテゴリーページがクロールエラーになってしまっていました。

Crawl_error

サイト自体はパッと見たところ問題なさそうに動作しており、サイトに表示しているカテゴリーページへのリンクをクリックしてもしっかりページに飛べるのに、ウェブマスターツールではクロールエラーが出てしまう、という状態でした。

また、URLを直打ちしてもページに飛べるのに、ウェブマスターツールの「このページがクロールできませんでした」的なところのリンクをクリックすると404エラーページとなってしまっています。

Page Not Found

試しにそのページのURLをコピーしてメモ帳に貼り付けても、問題なくアクセスできるページのURLと1文字1区違いがありません。

きっかけ

最初は何かの間違いかと思っていたのですが、何ヶ月もたっても同じ現象が続き、その間に新たに作ったサイトでも同様の現象が確認できました。

さらに、普段私はカテゴリーページはnoindexにしておくのですが、新しく作ったサイトの一つにカテゴリーページをnoindexにしないものがあり、そのサイトでは本来真っ先にインデックスされるはずのカテゴリーページが3ヶ月以上たってもインデックスされませんでした。

プラグインのせいか?

はっきりとした原因がわからなかったので、いろいろ調べたり試していく中で、一旦「WordPress SEO by Yoast」ではなく、「WP No Category Base」でカテゴリーベースを消してみることにしました。

プラグインを有効化し終えて少ししてからサイトのインデックスされているページを確認してみると、それまでインデックスされていなかったカテゴリーページがインデックスされていました。

いくらなんでも早すぎると思ったら、前回いじった時に「WordPress SEO by Yoast」でカテゴリーベースを消さない設定のままにしていたらしく、/category/付きのURLでインデックスされていました。

クリックしてみるとWP No Category Baseの機能でカテゴリーベースなしのページにリダイレクトされるものの、リダイレクト先のページで404エラーページが表示されてしまいます。

この時点では原因もイマイチわからず、この方法では解決できませんでした。

※「WP No Category Base」は一度有効化すると、停止させたときにトップページ以外が全て404エラーとなるバグが発生します。ご注意下さい。

日本語スラッグのせいか?

今度は原因が日本語のスラッグにあるのではないかと「wp no category base 2バイト文字」で検索。下記のページに行き着きました。

[WordPress]WP No Category Baseと日本語カテゴリー名で404になる問題

やはりWP No Category Baseと日本語(2バイト文字)の相性が悪いらしく、今回の私の問題がモロに当てはまっていました。

プラグインの中身を理解できるだけの知識がないのでおそらくですが、「WordPress SEO by Yoast」でカテゴリーベースを消していた時も同じ原因で404エラーページが発生していたのでしょう。

解決法

プログラムコードをいじれば解決できるようですが、ひと通り読んでみたところ今の自分の知識レベルでは理解できそうにありません。

しかし、「カテゴリーベースを消すプラグイン」と「2バイト文字のスラッグ」の相性が悪いことが問題を引き起こしているなら、カテゴリーベースを消さずに入れておくか、スラッグをアルファベットにすればクロールエラーは解決できます。

幸いクロールエラーが出ていたサイトはまだそれほどPVもなく、カテゴリーページもindexされていなかったので、スラッグをアルファベットに変更したところ解決しました。

すでにそこそこPVのあるサイトはカテゴリーベースを放置していたり、たまたまですがカテゴリーベースが英語だったりしたため今回の問題は発生していませんでした。(この時点ですぐにカテゴリーベースに目を付けるべきだったと反省)

このエラーを解消後2~3週間ほどしてから、それまで伸び悩んでいた3つのサイトの検索表示回数とPVが大きく上昇しました。たまたま伸びるタイミングと被っただけかもしれませんが、下記の記事でその時のデータを公開しておきますので興味のある方はご覧ください。

クロールエラーに対処したら検索エンジンからの評価が改善した…かもしれない

このエントリーをはてなブックマークに追加

コメントを残す

頂いたコメントは一読した後表示させて頂いております。
反映まで数日かかる場合もございますがご了承下さい。