投稿者アーカイブを無効化してWordPressのユーザ名を隠しセキュリティを高める方法

本サイトにはプロモーションが含まれています。

WordPressでブログを運営していると、「投稿者アーカイブ(著者ページ)」という言葉を見かけることがあります。
しかし、初心者の方にとっては「それって何?」「設定を変えたほうがいいの?」と疑問に思う部分かもしれません。

実はこの「投稿者アーカイブ」、複数人でブログを運営している場合には便利な機能ですが、不要になることが多いんです。
また、セキュリティ面でも注意が必要なポイントがあるため、設定を見直すことでサイトをより安全に保つことができます。

この記事では、初心者の方にもわかりやすく、

  1. 投稿者アーカイブとは何か
  2. 無効化する理由
  3. 実際の無効化方法

を解説していきます。
ブログの安全性やSEOを意識したい方は、ぜひ最後まで読んで設定を確認してみてください。

スポンサーリンク

WordPressの投稿者アーカイブとは

WordPressの「投稿者アーカイブ(著者ページ)」とは、特定のユーザー(投稿者)が書いた記事を一覧で表示するページのことです。

たとえば、複数の人が記事を書いているブログでは、記事の下に「投稿者:〇〇」と表示されていて、その名前をクリックすると、その人が書いた記事だけが並んだページに移動します。
これが「投稿者アーカイブ」です。

1人運営のブログでは不要なことも。
もしあなたのブログを1人で運営している場合、この投稿者アーカイブページはほとんど意味がありません。
なぜなら、すべての記事が自分一人によるものなので、トップページやカテゴリーページと内容がほぼ同じになるからです。

さらに、スパムやセキュリティ面でも注意が必要です。
投稿者アーカイブのURLから「ユーザー名」が推測されてしまうことがあり、悪意のあるアクセスを受ける可能性もあるのです。

そのためセキュリティ対策のために無効化するのがおすすめです。

投稿者アーカイブを無効化する理由

WordPressの「投稿者アーカイブ」は便利な機能ですが、ブログを1人で運営している場合は無効化しておく方が安全で効果的です。
ここでは、その主な理由を3つに分けてわかりやすく説明します。

①セキュリティ対策になる

投稿者アーカイブのURL(例:https://example.com/author/username/)には、「投稿者名(ユーザー名)」が含まれています。
このユーザー名は、WordPressのログインIDと同じであることが多いため、悪意のある人にアカウントを狙われるリスクがあります。

たとえば、「ログインページ(/wp-login.php)を狙う攻撃」「ユーザー名+総当たりパスワード攻撃」といった不正アクセスのきっかけになってしまうこともあります。
そのため、投稿者アーカイブを無効化する=セキュリティ強化につながるのです。

②SEO(検索エンジン)に悪影響を与える可能性

1人で運営しているブログの場合、投稿者アーカイブの内容はトップページやカテゴリーページとほとんど同じになります。
これをGoogleは「重複コンテンツ」と判断することがあり、SEO評価の分散や順位低下の原因になる可能性があります。

つまり、1人運営のブログでは、投稿者アーカイブを残しておくメリットはほとんどなく、
むしろSEO上のデメリットが生じやすいのです。

③サイト構造をシンプルに保てる

不要なページを削除することで、サイト構造がすっきりします。
特に、固定ページ・カテゴリーページ・タグページなどが多いブログでは、ユーザーが迷いにくくなり、使いやすい導線設計にもつながります。

まとめ

  • セキュリティ強化:ユーザー名の漏えい防止効果
  • SEO対策:重複コンテンツを防ぐ効果
  • サイトの整理:不要なページを減らして導線を改善

このように、投稿者アーカイブを無効化することは、セキュリティ・SEO・ユーザビリティの3つを同時に改善できる大切なステップです。

投稿者のアーカイブページを無効に関するエラー表示

Warning: Undefined array key “author” in /home/hogehoge/hoge.com/public_html/wp-content/themes/~~/functions.php on line [数字]

このエラーは以下のように記述していました。


add_filter( 'author_rewrite_rules', '__return_empty_array' );
function disable_author_archive() {
	if( $_GET['author'] || preg_match('#/author/.+#', $_SERVER['REQUEST_URI']) ){
		wp_redirect( home_url( '/404.php' ) );
		exit;
	}
}
add_action('init', 'disable_author_archive');

PHPのバージョンを上げたらエラーがでるかもしれませんので、下記の正しい記述に書き換えて対処してください。

投稿者アーカイブを無効化する方法

投稿者アーカイブを無効化する方法

実際に投稿者アーカイブを無効化してWordPressのユーザ名を隠し、セキュリティを高める方法です。
初心者の方でも安心して設定できるよう、コードを貼るだけで完了する手順で説明します。

WordPressのテーマフォルダ内にある「functions.php」に以下のコードを追加し、アップロードしてください。


// 投稿者アーカイブを無効化する
add_filter( 'author_rewrite_rules', '__return_empty_array' );

function disable_author_archive() {
    if ( isset($_GET['author']) || preg_match('#/author/.+#', $_SERVER['REQUEST_URI']) ) {
        wp_redirect( home_url( '/404.php' ) );
        exit;
    }
}
add_action( 'init', 'disable_author_archive' );


このコードの動きの説明。

author_rewrite_rules フィルターで、投稿者アーカイブのURL構造を無効化します。
もし /author/ というURLでアクセスされた場合、自動的に404ページ(存在しないページ)へリダイレクトします。

つまり、投稿者ページを開こうとしても、存在しないページとして処理されるため、安全かつクリーンに無効化できます。

編集手順。

  1. WordPress管理画面にログイン
  2. 左メニューの「外観」→「テーマファイルエディター」へ
  3. 右側のリストから「functions.php」を選択
  4. ファイルの一番下に上記のコードを貼り付け
  5. 「ファイルを更新」ボタンをクリック

※ 子テーマを使っている場合は、子テーマのfunctions.phpに追加するのがおすすめです。
(親テーマを更新した際に上書きされるのを防ぐため)

少し複雑になりますが、以下でも効果は同じです。



// 投稿者アーカイブの無効化
add_filter( 'author_rewrite_rules', '__return_empty_array' );

//  投稿者アーカイブへアクセスされたら404を返す
add_action( 'template_redirect', function () {
    if ( is_author() ) {
        global $wp_query;

        //HTTPステータスも404に
        $wp_query->set_404();
        status_header( 404 );
        nocache_headers();

        // テーマの 404.php を読み込む
        include get_query_template( '404' );
        exit;
    }
} );

// ?author=1 などのユーザー列挙パラメータ対策
add_action( 'template_redirect', function () {
    if ( ! is_admin() && isset( $_GET['author'] ) ) {
         wp_redirect( home_url( '/' ), 301 );
        exit;
    }
} );


共通してやっていることは、
author_rewrite_rules を空にして、著者アーカイブのリライトルールを無効化
著者ページにアクセスされたら 404 として扱う(実体を見せない)

このコードが優れている点。
template_redirect で $wp_query->set_404()+status_header(404)+get_query_template(‘404’) を使い、本物の 404 としてテーマの 404.php を正しく読み込む。
以前の「/404.php にリダイレクト」は URLが変わる・ソフト404になりやすい という懸念があり、こちらの方がベターかも。

よりブラッシュアップすると以下。




// 投稿者アーカイブの無効化
add_filter( 'author_rewrite_rules', '__return_empty_array' );

// 投稿者アーカイブ(/author/…)や ?author= の列挙をまとめて 404 にする
add_action( 'template_redirect', function () {

    // is_author() は典型的な著者アーカイブ判定
    // 念のため、クエリ変数も直接チェックして網羅的にブロック
    if ( is_author()
         || get_query_var( 'author_name' )
         || get_query_var( 'author' )
         || ( ! is_admin() && isset( $_GET['author'] ) ) ) {

        global $wp_query;
        $wp_query->set_404();
        status_header( 404 );
        nocache_headers();

        include get_query_template( '404' );
        exit;
    }
}, 0 );

// (任意)サイトマップからユーザー/著者を外す
// WPコアのサイトマップでユーザーが出ている場合の抑止
add_filter( 'wp_sitemaps_add_provider', function ( $provider, $name ) {
    if ( 'users' === $name ) {
        return false;
    }
    return $provider;
}, 10, 2 );

// (任意・慎重に)RESTのユーザー列挙を抑止
// エディタや外部連携に影響する場合があるため、必要時のみ
add_filter( 'rest_endpoints', function ( $endpoints ) {
    unset( $endpoints['/wp/v2/users'] );
    unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
    return $endpoints;
} );

補足

  • コードを更新したら、「設定 → パーマリンク」画面を一度開いて保存しておくと、リライトルールが再生成されます。
  • キャッシュ系プラグインを使っている場合はキャッシュも削除。
  • SEOプラグイン(Yoast / AIOSEO等)を使っているなら、著者アーカイブ無効化のトグルも 併用すると二重で安心(コア側で404、プラグイン側でリンクやサイトマップを出さない)。
  • テーマ内の著者リンク(投稿者名リンク等)は出力自体をオフにしておくとUI/UX的にも自然です。

ここまで実装するとより正しいHTTP挙動で、さらにスッキリ&堅牢になります。

スポンサーリンク

プラグインで無効化する(コードが不安な人向け)

コードの編集が怖い場合は、プラグインを使う方法もあります。
代表的なものは次の2つです。

プラグイン

  • All in One SEO → 「投稿者アーカイブを無効化」のチェック機能あり
  • Yoast SEO → 「投稿者アーカイブを表示しない」設定あり

これらのプラグインをインストールし、管理画面からワンクリックで無効化できます。

どちらの方法でも効果は同じです。
1人運営のブログや、セキュリティを強化したい方は今すぐ設定しておくと安心です。

利用しているWordPressテーマも非表示にすると尚効果大

スポンサーリンク

「functions.php」での無効化コードは、サイトの内部構造(URLレベル)で投稿者アーカイブを完全に封じるものです。

一方で、テーマの「投稿者名を非表示」は、ページ内にあるHTMLの投稿者名リンク(見た目部分)を消す設定です。

つまり、

  • コード:内部でのアクセスルート(/author/~)を遮断
  • テーマ設定・カスタマイズ:ページ上の表示やリンクを消して“誘導経路”を断つ

という 役割の違う2層の防御 になります。
両方セットで行うことで、セキュリティ・SEO・UIの三拍子がそろいます。

また、記事下やメタ情報に「投稿者名」がリンクとして表示されていることがあります。
見た目は小さくても、そのリンクが「https://example.com/author/username/」の形になっている場合、検索エンジンやボットが自動的にクロールしてしまいます。

結果として、

  • 404が大量発生してサーチコンソールにエラーが出る
  • username が露出し、ブルートフォース攻撃の足がかりになる

といったリスクが残ることもあります。
そのため、「表示面からもリンクを消す」のが理想的な組み合わせです。

例:Cocoonの投稿者非表示のやり方

Cocoonのテーマを使っている場合はCocoon設定より下記3か所を変更します。

  • インデックス
  • 投稿
  • 本文

すべてCocoon設定から変更できます。

Cocoonの投稿者非表示のやり方

まずは「インデックス」です。

Cocoon設定→「インデックス」に進みます。

インデックスの投稿者名を非表示

ページ下部「投稿関連情報の表示」の「投稿者名の表示」チェックを外します。

「投稿関連情報の表示」の「投稿者名の表示」チェックを外

次は「投稿」です。

Cocoon設定→「投稿」に進みます。

投稿の投稿者名を非表示

「関連記事設定」の「投稿関連情報の表示」部分「投稿者名の表示」のチェックを外します。

「関連記事設定」の「投稿関連情報の表示」部分「投稿者名の表示」のチェックを外す

続いて「本文」です。

Cocoon設定→「本文」に進みます。

本文の投稿者名を非表示

ページ下部「投稿情報表示設定」の「投稿者名の表示」チェックを外します。

「投稿情報表示設定」の「投稿者名の表示」チェックを外す

テーマによって異なりますので、探して非表示にしてください。

まとめ:安全でシンプルなWordPress運営のために

投稿者アーカイブを無効化することで、不正アクセスのリスクを減らし、重複コンテンツによるSEOの低下を防ぎ、サイト構造をシンプルに保つ。

という3つのメリットを得ることができます。

特に1人でブログを運営している方にとっては、必要のない機能をオフにしておくことが、結果的にサイトの品質と安全性を高めることにつながります。

「知らないうちにリスクを抱えていた…」という状況を避けるためにも、この記事を参考にぜひ一度ご自身のサイト設定を見直してみてください。
ちょっとした対策でも、長く安心してWordPressを使い続けるための大きな一歩になります。

無料でお試し期間あり!
独自SSLが無料で使える!
独自ドメインをプレゼント!
サイト運営に最適な機能を多数搭載したWordPressテーマ!
専門的な知識がなくてもページの装飾ができる!
100%GPLなので利用に関する制限もなし!

稼ぎたいなら、有料テーマは「投資」です。
デザイン・SEO・CV導線の全てが最初から整っているから、あなたの時間が「利益」に変わる。
今こそ、収益を生むサイトに進化!

「集客・収益化支援システム」を搭載!
ランキングサイト・口コミサイトが簡単に作成!
国内テーマ屈指の高速表示!
CTAやインフィード広告、ランキング表示などアフィリエイトに特化した機能!
初心者でも使いやすいカスタマイズ性!
SEO・表示速度・モバイル対応の先進設計!
行動心理学に基づくレイアウト設計で、滞在時間と回遊率を高める!
国内最高峰「SEOに強い内部構造」!
息を飲むほど美しい「洗練されたデザイン」!
稼ぐに特化したテーマ!
広告配置やクリック率を高めるデザインが標準搭載!
SEOに有利な軽量構造!
タイトルとURLをコピーしました