逆に404を返さない

1546 letters | 1673 views | コメントする

 あたしは新参者なので、過去のWordPressがどうなってたかわかってないが、404をキーワードにググってみると、おそらく以前のバージョンでは自動でステータスコードを404にしてくれなかったみたいで、必要ならテンプレートとかテーマとかを編集していちいち各自でステータスコードを適切に設定していたらしい。今のWordPressでは、いちいち書かなくても勝手に404のコードを吐いてくれてるようで、確かにそれで正しいんだろうけど、あたしのサイトは人間よりボットを相手にしてるわけだが、スパムみたいなものなので逆に404コードを吐かないで、ボットの皆さんには迷子になっていただくというのが理想だ。

 例えばWordPressを使う前はここにはrNoteで作ったサイトがあったわけで、rNoteから2000件のエントリーを移植したが、投稿だけじゃなくアーカイブとか枝葉のページを全部適切なページに転送するわけにはいかなかったので、すでに存在しないページにクローラーがドンドンアクセスしてくるわけだ。もうないから、自動的にWordPressは404のステータスコードを吐き、クローラーにはもう来るなっていう反応をしている事になる。しかしスパムとしてサイトを運営している立場では、せっかくインデックスされたページを404で消しちゃうのはもったいないわけで、どんなURLでアクセスしてきてもすべてステータスコード200を吐いて、今まで通りにインデックスされっぱなしになってくれる方が良い。SEO的に404を吐いた方が良いらしく、だからこそ過去のWordPressであえて404を吐くようにいじってあったという事らしいが、ページがない事を主張するのがなぜSEOなのか、原理的に納得できないところがある。真っ白なページを返すわけでもあるまいし、インデックスされないよりされた方が少しでも得なんじゃないのかい。ウェブマスターツールをみると、タイトルが同じページが複数ある場合にそれらをリストアップするという機能がある事から、404ページを本当に全く同じ内容の404ページにするなら、たくさんインデックスされちゃマズイという事になるかも知れない。そこでWordPressならランダムに投稿をリストアップする事も出来るわけで、404のページには毎回違う内容を表示して、そこは存在するページだって事にしてしまえばいいと思うんだよ。特にページタイトルを他とかぶらないようにしなきゃいけないので、例えば現在時刻をタイトルにしちゃうとか、リクエストURLをそのままタイトルに入れちゃうとかして、ユニークであるというアピールをすればいいと思う。つーかそういうスパムだ。

 せっかく2000件の投稿があるので、そこからURLをもじって存在しない2000件のスパムページを発生させ、それぞれにランダムな内容を書いてお手軽にインデックス倍増スパムってことだね。意味があるかどうかは別として。

 肝心のWordPressでそれのやり方は、wp-includes内の某ファイルに一行だけ追加して404が来たら200で上書きするようフィルターしておくだけ。そのファイルをいじるって事は、アップデートがあったときに全てパーってことだから、なるべくその辺はいじらないようにしてきたし、たぶん他のもっと良い方法もあると思うし、あえて書くまい。

たぶん関連のある記事:

コメントは終了しています。