放置厳禁!WordPressのオーサーページが無効化されないと発生する問題点
WordPressサイトには、さまざまなセキュリティとSEOのリスクが潜んでいます。その一つが、デフォルトで生成される投稿者アーカイブページ(オーサーページ)の存在です。脆弱性の温床となりやすいユーザー名漏洩のリスク
WordPressのオーサーページにアクセスすると、URLのスラッグやページのタイトルから投稿者のユーザー名(ログインID)が類推できてしまうケースが非常に多いのです。これは、悪意ある第三者によるブルートフォースアタック(総当たり攻撃)の格好の標的となり得ます。
攻撃者はユーザー名さえ判明すれば、あとはパスワードを推測するだけで済みます。ログインIDが外部に晒されている状態は、まさに「カギをかけたドアの前に、合鍵のヒントを置いている」ようなもの。
このリスクを放置すれば、最悪の場合、サイトの改ざんや乗っ取りといった深刻な事態を招くでしょう。
SEO評価を低下させるコンテンツ重複(Duplicate Content)の危険性
もしサイト内で一人のユーザーしか投稿していない場合、オーサーページの内容は、多くの場合トップページや他のアーカイブページの内容と酷似してしまいます。Googleなどの検索エンジンは、内容が重複したページが大量にあると、「質の低いコンテンツ」と判断し、サイト全体の評価を下げる可能性があります。特に小規模サイトでは、重複コンテンツによるクロールバジェットの浪費も看過できません。
「わざわざ作らなくていいページ」があることで、本当に評価してほしいページへのクローラーの訪問が減ってしまうのは非常にもったいないですね。
解決策:functions.phpに記述するリダイレクト処理の正しいコード
これらの問題を一網打尽に解決するには、投稿者アーカイブへのアクセスを検知し、即座に別の安全なページへリダイレクトさせるのが最適解です。以下のコードをWordPressテーマの functions.php ファイルに記述しましょう。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// 投稿者アーカイブ(オーサーページ)へのアクセスを404ページへリダイレクト function webantena_author_archive_redirect() { // クエリパラメータ ?author= が存在する場合、またはURLに /author/ が含まれる場合を検知 if ( is_author() || preg_match('#/author/|&author=#i', $_SERVER['REQUEST_URI']) ) { // 404ページへリダイレクト wp_redirect( home_url( '/404/' ), 301 ); exit; } } add_action( 'template_redirect', 'webantena_author_archive_redirect' ); / * ユーザー名を推測されうる author= パラメータを使用したリライトルールの生成を停止 * オプションとして、セキュリティをさらに高めるために追加を推奨 */ add_filter( 'author_rewrite_rules', '__return_empty_array' ); |
GETパラメータ ?author= 、またはスラッグ author/ を含むURLへのアクセスを検知した場合に、サイトの404エラーページへ強制的にリダイレクトする仕様です。
オーサーページ無効化がもたらすメリット
このリダイレクト処理を実装には、以下のメリットがあります。①セキュリティの大幅向上
投稿者のユーザー名がURLから類推されるリスクを根本から排除できます。ブルートフォースアタックの足がかりを断ち切れるのは非常に心強いですね。②SEOの品質保証
コンテンツの重複を防ぎ、サイトのクローラビリティと評価を最適化できます。検索エンジンに無駄なページをクロールさせることなく、本当に見てほしいコンテンツに注力させることが可能となるでしょう。
③サイトのシンプル化
不要なアーカイブページをなくすことで、サイト構造が整理され、メンテナンスの手間も軽減します。まさに一石三鳥の対応策と言っても過言じゃないですね。


コメント