ウェブサイトやページを削除すると、それ以後のアクセスに対しては自動的に404が返されます。しかしながら、404は単に「見つからない(not found)」ことを意味するにとどまり、「削除された」という意味は含みません。
そのため、ウェブサイトやページを削除した場合には、「削除された」ことを意味している410(Gone)を返すことが理想的です。
以前、.htaccessを利用して410エラーを返す方法を紹介しましたが、WordPressを使用したサイトで同じことをやろうとするとうまくいかなかったんですよね(WordPress特有のURLリライトの影響?)。
いろいろな方法を探してみたところ、410 for WordPressというプラグインを使うと簡単に410エラーの設定を行うことができました。また、404エラーが発生したページが記録される機能も便利でした。
410 for WordPressの設定
インストールが完了すると、メニュー>プラグインに「410 for WordPress」の項目が追加されるので、ここから設定を行います。
Obsolete URLs
後述の「Recent 404 errors」「Manually add URLs」で追加した410エラーを返す対象のページがここに表示されます。削除もここで行います。
Recent 404 errors
404エラーが返されたページがここに記録されます。このリストから直接410エラーを返すページを指定することができます。
Manually add URLs
上記「Recent 404 errors」の他に、自由に410エラーを返すページを指定することも可能。対象のページは絶対パスで記述します。
また、ワイルドカード(*)を使用することもできます。例えば、http://example.com/aaa/についてaaaディレクトリ丸ごと410エラーを返すようにする場合には、以下のように記述します。
http://example.com/aaa/*
410.phpの追加(任意)
もし、410のエラーページを独自のものにしたい場合にはテーマに410.phpを追加してください。もちろん、殺風景なエラーページで問題なければこの操作は不要です。
コメント
私は、.htaccessでうまくかえせています。
初期は動作しなかったのですが、最近はうまく返せるようになりました。
どうも、勝手に張られたリンクによって違うサーバに行っていて、うまく410を返せなかったようです。
理論的に考えると、Wordpressに行く前に.htaccessで410を返すので、動作しないということは考え難いことです。
ただし、いやがらせ対策には、410 for WordPressは役に立っています。
双方使うのがいいようです。