WordPressのURL推測補完リダイレクトを無効化できないリダイレクトスパムか(~/1000)

テクニック
記事内に広告が含まれています。

WordPressにはURLを自動的に推測して正しいURLへリダイレクトしてくれるお節介な機能がある。だいぶ以前からで、既にどのサイトも対策していると思う。

私も同じで、既にfunctions.phpにコードを記載済みだ。しかし、今回はそれでもリダイレクトしてしまっている。これはおかしい。

検索しても該当の問題は、Google検索で3件しかヒットしなかった。ちょっと調べてみた。

リダイレクトスパムか?

今回リダイレクトされてしまっている特徴は「正しいURL末尾に/1000が余分に追加されたURLだ」。

Google Search Console「ページのインデックス登録 > ページにリダイレクトがあります」に数百という大量のエラーが表示されるようになってしまった。

https://○○○○○○.com/○○○○○○○○○○○○○/1000

「1000」が付かなければ本当に存在する正しいURLである。

数百単位で観測され、記事執筆時点の2ヶ月前から始まっていて、直近はクロールされる度と頻度が上がっている。

調べてみるとスパムらしい。

リファラースパムという種類になるのか、参照元がおかしい。

記事がコピーされている?

記載のURLにはそもそもアクセスできないか、危険なサイトが表示される。当方はセキュリティを施したブラウザでのアクセスを試みた。決してURLにアクセスしてはいけない。

調べるとcloudflare.comにホストされていた。URLはすべて異なるがほとんど同じcloudflare.comだった。

172.64.32.110
172.64.35.63

詳しくは分からない。恐らく自分の記事として振る舞えるようにGoogleの検索エンジンを騙す手口の1つなのか、単に記載の参照元URLにアクセスさせる目的なのだろう。

アクセスできた場合、マルウェアが仕込まれていたり何かしらのプログラムが走ると思われる。

だからcloudflare.comはあまり好きになれない。(偏見)

スパムだから放置プレイ

Google Search Consoleのコミュニティにも書込みを見つけた。

以下の記事で紹介されていますが、一過性のスパムのようです。

Google Search Console 404 Error Report For /1000 URLs Spike
https://www.seroundtable.com/google-search-console-404-error-report-1000-urls-36728.html
※ 英語記事なので翻訳ツールをご利用ください

私の管理しているサイトでも発見したので、広範囲で起きているようです。

恐らくは参照元にアクセスさせるのが目的と思いますが
詳細な意図に関しては不明です。

お手数ですが、確認をお願いします。

https://support.google.com/webmasters/thread/253824047?hl=ja&msgid=253842610

この書込みが2024年1月17日、私が確認したのは2024年2月、急激に増えたのは5月からなので、ちょうど活動が活発という時期だろう。

こういったことを大量にできてしまうのもコンピュータだから仕方ないものの、Google Search Console側もイチイチ拾ってしまうから困る。

結論としては無視して放置しかやりようがない。

WordPressのサポートフォーラム

WordPressのサポートにも書き込みを見つけた。

2024年5月7日だから、もしかしたら同じケースなのかも知れない。

自動補完リダイレクトの「最新、無効化コード」を教えて下さい。
(Google search consoleのページがインデックスに登録されなくなってしまったため)

(中略)

WordPress最新バージョンに対応する「自動補完リダイレクトを停止する」最新コードをご存知でしたら教えて下さい。

https://ja.wordpress.org/support/topic/自動補完リダイレクトの最新無効化コードを教え/

推測補完リダイレクトを無効化するコード

たくさんのサイトで数年前から推測補完リダイレクトを無効化するコードが公開されている。

私もご多分に漏れず利用させてもらっていた。現行だとコレになると思う。

// カノニカルリダイレクトを無効化
remove_action( 'template_redirect', 'redirect_canonical' );

// 旧スラッグからのリダイレクトを無効化
remove_action( 'template_redirect', 'wp_old_slug_redirect' );

// 404(=存在しない)パーマリンクからの推測リダイレクトを無効化
add_filter( 'do_redirect_guess_404_permalink', '__return_false' );

functions.phpにこの3行を追記すればリダイレクトはせずに、存在しないURLとして404ページが表示されるハズだ。

きちんと404表示させたいなら基本はこれでいい。

しかし、今回のケースではリダイレクトしてしまう。ここが海外の情報と異なる。404にならない。

末尾が数字だとリダイレクトされる

ここからは推測に過ぎない。

件のコードを追記した状態でも次のような振る舞いになっている。

恐らく、WordPressのパーマリンクは数字ベースが可能なため、URL末尾が数字で終わるのは無視されているのか、リダイレクトしてしまう気がする。

無効化のコードが効いているのか確認として別の文字列で試してみると、ちゃんと404ページが表示される。

https://○○○○○○.com/○○○○○○○○○○○○○/about → 404
https://○○○○○○.com/○○○○○○○○○○○○○/abc → 404

しかし、数字だと正規URLへリダイレクトされる。何も1000ではなくても100でも3000でもだ。

https://○○○○○○.com/○○○○○○○○○○○○○/3000 → https://○○○○○○.com/○○○○○○○○○○○○○

念のためWordpressのキャッシュ、Webブラウザのキャッシュ、サーバのキャッシュと段階的に削除して試しても同じだった。

なお、該当の記事があるサイトのパーマリンクは%postname%であり数字ベースではない。

これが数字ベースのサイトならどうなんだろうか。そもそもきちんと404が表示されて影響は全くないかも知れない。

今回のGoogle Search Consoleのエラーとは少し関係はない。むしろ、正しい動きなのかも知れない。

実害はない?

一先ず放置するしかないとは言っても、GoogleSearchConsoleで計測されてしまうから、SEO的にどうなのだろう。恐らく実害があるとは思えない。

ただ、PV数が減っている時期だったため、なんとなく怪しんでしまい調べている。相関関係はゼロとは言えないかも知れないが、ほぼ影響無いだろう。

リダイレクトされるとは言っても、別のドメインURLにリダイレクトされる訳ではなく、自サイトの推測補完リダイレクトの動きだからだ。

できれば404を表示して欲しい。

最初、WordPressがバージョンアップしたからだと想像したが、それもまた違うみたいだ。

以前もあった?

実は数年前にも同じことがあったことを思い出した。

その時は数百という単位ではなかったから、それこそ気にしないでいた。その後は全く見かけなかったので、その間に施したセキュリティ的な施策が功を奏したのか、たまたま自分のサイトが対象になっていなかったのか分からない。

スパム手法の効果があった?から広範囲に目立つようになった気がする。

つまり、儲かるから?

金か性が絡むと一気に伝播するものだ。

Google Search Consoleはどうなの?

知人にサイト運営している人が居ないため、Google Search Console、サチコを皆がどう捉えているのか検討も付かない。

私は2015年以前に比べて、全く信用できないと思っている。

Googleはとうの昔に迷走しまくっていると感じる。無料で利用できるからと言っても、サチコはあまりにお粗末なツールに成り下がっている。

AI登場以前から自動的に処理しているわけで、ある意味社内AIみたいなツールだった。

意味不明なエラーを連発して、対処もしていないのに解消したとなり、再びエラーとして計測されることが頻繁に始まったのも2015年以降だった。

管理しているサイトの1つは、インデックス登録済みのURLが900弱に対し、未登録が3,500超えと計測されている。意味が分からない。

以前は多くても未登録が100未満だったのに、いつからか大量にエラーを吐くようになった。現在は明らかなミスでのエラー以外は、ほぼすべて放置プレイのままにしている。

SEOに関してはあまりネットの情報を鵜呑みにしてはいけないと思う。だから、この記事も信じないで欲しい。

取りあえず、URL末尾に/1000が付いてインデックス登録しないのは、当面は放置ということで済ませ、動きを追っていくことになりそうだ。