アーカイブページの基本概要

アーカイブページとは

アーカイブページは、WordPressが自動的に生成する一覧ページの総称です。個別の投稿ページや固定ページとは異なり、複数の投稿をまとめて表示する役割を持ちます。

📌 アーカイブページの役割
アーカイブページは、単なる記事一覧ではありません。ユーザーが興味のあるトピックや時期の記事を探しやすくし、サイト内の回遊を促進します。また、検索エンジンにとっても、サイトの構造を理解する重要な手がかりとなります。

アーカイブページの種類

WordPressには、様々な種類のアーカイブページが存在します:

種類 説明 URLの例 主な用途
カテゴリーページ 特定カテゴリーに属する投稿の一覧 /category/wordpress/ トピック別の記事整理
タグページ 特定タグが付いた投稿の一覧 /tag/plugin/ キーワード別の記事整理
日付別ページ 年月日で絞り込んだ投稿の一覧 /2026/01/ 時系列での記事閲覧
著者ページ 特定の著者による投稿の一覧 /author/tanaka/ 執筆者別の記事整理
カスタム投稿タイプページ カスタム投稿タイプの一覧 /products/ 特殊なコンテンツの整理
検索結果ページ 検索キーワードに一致する投稿の一覧 /?s=wordpress サイト内検索

通常ページとの違い

アーカイブページと個別の投稿ページ・固定ページには、明確な違いがあります:

  • コンテンツの性質: アーカイブページは動的に生成され、新しい投稿が追加されると自動的に更新されます
  • 表示内容: 個別ページは1つのコンテンツを詳細に表示しますが、アーカイブページは複数のコンテンツを要約して表示します
  • URL構造: アーカイブページのURLには、カテゴリー名やタグ名などが含まれます
  • 編集方法: 個別ページは管理画面で直接編集できますが、アーカイブページはテンプレートファイルで制御します

各アーカイブページの詳細

カテゴリーページ

カテゴリーページは、最も一般的で重要なアーカイブページです。サイトの主要なトピックごとに投稿を整理します。

✓ カテゴリーページの利点
カテゴリーページは、検索エンジンからの流入が期待できる重要なランディングページになります。適切なカテゴリー説明文を設定することで、そのトピックに関する包括的なページとして機能し、SEO効果も高まります。

カテゴリーページの設定

WordPress管理画面から、カテゴリーページの情報を設定できます:

  1. 投稿 > カテゴリーを開く
  2. カテゴリー名、スラッグ、説明を入力
  3. 親カテゴリーを選択(階層構造を作る場合)
  4. 「新規カテゴリーを追加」をクリック
// カテゴリーページのカスタマイズ例(category.php)

<?php get_header(); ?>

<div class="archive-header">
    <h1><?php single_cat_title(); ?></h1>
    <?php
    $category_description = category_description();
    if (!empty($category_description)) {
        echo '<div class="archive-description">' . $category_description . '</div>';
    }
    ?>
</div>

<?php if (have_posts()) : ?>
    <div class="posts-grid">
        <?php while (have_posts()) : the_post(); ?>
            <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                <?php if (has_post_thumbnail()) : ?>
                    <div class="post-thumbnail">
                        <a href="<?php the_permalink(); ?>">
                            <?php the_post_thumbnail('medium'); ?>
                        </a>
                    </div>
                <?php endif; ?>
                
                <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                <div class="entry-meta">
                    <time datetime="<?php echo get_the_date('c'); ?>">
                        <?php echo get_the_date(); ?>
                    </time>
                </div>
                <div class="entry-summary">
                    <?php the_excerpt(); ?>
                </div>
            </article>
        <?php endwhile; ?>
    </div>
    
    <?php the_posts_pagination(); ?>
<?php else : ?>
    <p>このカテゴリーに投稿はまだありません。</p>
<?php endif; ?>

<?php get_footer(); ?>

タグページ

タグページは、カテゴリーよりも細かい粒度でコンテンツを分類します。1つの投稿に複数のタグを付けることができるため、横断的な記事の発見に役立ちます。

⚠ タグの使いすぎに注意
タグを多用しすぎると、内容の薄いアーカイブページが大量に生成され、SEOに悪影響を与える可能性があります。1つの投稿には3〜5個程度のタグに抑え、意味のあるタグのみを使用しましょう。

日付別ページ

日付別ページは、年別、月別、日別に投稿を表示します。ニュースサイトやブログで時系列が重要な場合に有用です。

日付別ページの種類 URLフォーマット 利用シーン
年別アーカイブ /2026/ 年間のまとめ記事へのリンク
月別アーカイブ /2026/01/ 月次レポート、定期更新コンテンツ
日別アーカイブ /2026/01/31/ デイリーニュース、日記型ブログ

著者ページ

複数の著者が執筆するサイトでは、著者ページが重要になります。各著者のプロフィールと、その著者による記事一覧を表示します。

// 著者ページのカスタマイズ例(author.php)

<?php get_header(); ?>

<div class="author-info">
    <div class="author-avatar">
        <?php echo get_avatar(get_the_author_meta('ID'), 120); ?>
    </div>
    <div class="author-details">
        <h1><?php the_author(); ?></h1>
        <div class="author-bio">
            <?php echo wpautop(get_the_author_meta('description')); ?>
        </div>
        <div class="author-stats">
            <p>投稿数: <?php echo count_user_posts(get_the_author_meta('ID')); ?>件</p>
        </div>
    </div>
</div>

<h2><?php the_author(); ?>の記事一覧</h2>

<?php if (have_posts()) : ?>
    <div class="posts-list">
        <?php while (have_posts()) : the_post(); ?>
            <!-- 投稿の表示 -->
        <?php endwhile; ?>
    </div>
<?php endif; ?>

<?php get_footer(); ?>

アーカイブページのカスタマイズ

レイアウトの変更

アーカイブページのレイアウトは、CSSとテンプレートファイルで自由にカスタマイズできます:

/* グリッドレイアウトの例 */
.posts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 30px;
    margin: 30px 0;
}

.post-card {
    background: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    transition: transform 0.3s, box-shadow 0.3s;
}

.post-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 20px rgba(0,0,0,0.15);
}

.post-thumbnail img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

.post-card h2 {
    font-size: 1.2rem;
    margin: 15px;
    line-height: 1.4;
}

.entry-summary {
    margin: 0 15px 15px;
    color: #666;
    font-size: 0.95rem;
}

表示内容のカスタマイズ

functions.phpを使用して、アーカイブページの動作をカスタマイズできます:

// アーカイブページの表示件数を変更
function custom_archive_posts_per_page($query) {
    if (!is_admin() && $query->is_main_query() && is_archive()) {
        if (is_category()) {
            $query->set('posts_per_page', 12);
        } elseif (is_tag()) {
            $query->set('posts_per_page', 9);
        } elseif (is_date()) {
            $query->set('posts_per_page', 20);
        }
    }
}
add_action('pre_get_posts', 'custom_archive_posts_per_page');

// カテゴリーページで特定のカテゴリーを除外
function exclude_category_from_archives($query) {
    if (!is_admin() && $query->is_main_query() && is_category()) {
        $query->set('cat', '-5'); // ID 5のカテゴリーを除外
    }
}
add_action('pre_get_posts', 'exclude_category_from_archives');

// アーカイブページの並び順を変更
function custom_archive_orderby($query) {
    if (!is_admin() && $query->is_main_query() && is_archive()) {
        // 人気順(コメント数)で並べ替え
        $query->set('orderby', 'comment_count');
        $query->set('order', 'DESC');
    }
}
add_action('pre_get_posts', 'custom_archive_orderby');

ウィジェットエリアの追加

アーカイブページ専用のウィジェットエリアを作成することもできます:

// functions.phpにウィジェットエリアを登録
function register_archive_sidebar() {
    register_sidebar(array(
        'name' => 'アーカイブページサイドバー',
        'id' => 'archive-sidebar',
        'description' => 'アーカイブページ専用のウィジェットエリア',
        'before_widget' => '<div class="widget %2$s">',
        'after_widget' => '</div>',
        'before_title' => '<h3 class="widget-title">',
        'after_title' => '</h3>'
    ));
}
add_action('widgets_init', 'register_archive_sidebar');

// テンプレートファイルで呼び出し
<?php if (is_active_sidebar('archive-sidebar')) : ?>
    <aside class="archive-sidebar">
        <?php dynamic_sidebar('archive-sidebar'); ?>
    </aside>
<?php endif; ?>

アーカイブページのSEO対策

タイトルとメタ情報の最適化

アーカイブページのSEOを強化するには、適切なタイトルとメタディスクリプションが重要です:

✓ SEOに効果的なタイトルの付け方
カテゴリーページのタイトルは、「カテゴリー名 - サイト名」ではなく、「カテゴリー名に関する記事一覧 - サイト名」のように、ユーザーの検索意図に合わせた形にしましょう。また、カテゴリー説明文は検索結果のスニペットに表示されることがあるため、魅力的な説明を書くことが重要です。
// Yoast SEOやRank Mathを使わない場合のカスタマイズ
function custom_archive_title_tag($title) {
    if (is_category()) {
        $cat_name = single_cat_title('', false);
        $title = $cat_name . 'に関する記事一覧 | ' . get_bloginfo('name');
    } elseif (is_tag()) {
        $tag_name = single_tag_title('', false);
        $title = $tag_name . 'の記事一覧 | ' . get_bloginfo('name');
    } elseif (is_author()) {
        $author_name = get_the_author();
        $title = $author_name . 'の執筆記事一覧 | ' . get_bloginfo('name');
    }
    return $title;
}
add_filter('wp_title', 'custom_archive_title_tag', 10, 2);

noindexの適切な使用

内容の薄いアーカイブページには、noindexを設定することでSEOを改善できます:

⚠ noindex設定時の注意点
カテゴリーページやタグページは、適切に設計すれば価値のあるランディングページになるため、安易にnoindex化すべきではありません。日付別ページや、投稿数が少ないタグページなど、本当に価値が低いページのみをnoindex化しましょう。
// 特定のアーカイブページをnoindex化
function noindex_thin_archives() {
    // 日付別アーカイブをnoindex化
    if (is_date()) {
        echo '<meta name="robots" content="noindex, follow">' . "\n";
    }
    
    // 投稿数が3件以下のタグページをnoindex化
    if (is_tag()) {
        $tag = get_queried_object();
        if ($tag->count <= 3) {
            echo '<meta name="robots" content="noindex, follow">' . "\n";
        }
    }
}
add_action('wp_head', 'noindex_thin_archives');

構造化データの実装

アーカイブページに構造化データを追加することで、検索結果での表示を改善できます:

// カテゴリーページに構造化データを追加
function add_category_schema() {
    if (is_category()) {
        $category = get_queried_object();
        $schema = array(
            '@context' => 'https://schema.org',
            '@type' => 'CollectionPage',
            'name' => $category->name,
            'description' => $category->description,
            'url' => get_category_link($category->term_id)
        );
        echo '<script type="application/ld+json">' . json_encode($schema) . '</script>';
    }
}
add_action('wp_head', 'add_category_schema');

よくある質問(FAQ)

Q. アーカイブページとは具体的にどのページですか?
アーカイブページは、複数の投稿をまとめて表示するページの総称です。具体的には、カテゴリーページ(/category/〇〇/)、タグページ(/tag/〇〇/)、日付別ページ(/2026/01/)、著者ページ(/author/〇〇/)などが該当します。これらのページは、個別の投稿ページとは異なり、記事の一覧を表示する役割を持っています。
Q. アーカイブページのデザインを変更するにはどうすればよいですか?
アーカイブページのデザインは、テーマのテンプレートファイル(archive.php、category.php、tag.phpなど)とスタイルシート(style.css)を編集することで変更できます。ただし、親テーマを直接編集すると更新時に変更が失われるため、子テーマを作成してカスタマイズすることを強く推奨します。また、Elementor ProやBeaverbuilderなどのページビルダーを使用すれば、コードを書かずに視覚的にデザインを変更できます。
Q. カテゴリーページとタグページの使い分けはどうすればよいですか?
カテゴリーは大きなトピック(例:「WordPress」「HTML」「SEO」)に使用し、タグはより具体的なキーワード(例:「初心者向け」「プラグイン」「トラブルシューティング」)に使用するのが一般的です。カテゴリーは階層構造を作れるため、サイトの基本的な分類に適しており、タグは横断的な検索や関連記事の表示に適しています。1つの投稿には1〜2個のカテゴリーと3〜5個のタグを設定するのが理想的です。
Q. アーカイブページの投稿表示数を変更できますか?
はい、変更できます。最も簡単な方法は、WordPress管理画面の「設定」→「表示設定」から「1ページに表示する最大投稿数」を変更することです。ただし、これはすべてのアーカイブページに適用されます。アーカイブページの種類ごとに異なる表示数を設定したい場合は、functions.phpにpre_get_postsフックを使用したコードを追加する必要があります。
Q. 日付別アーカイブページは必要ですか?
サイトの性質によります。ニュースサイトやブログのように時系列が重要な場合は、日付別アーカイブページが有用です。一方、企業サイトやサービスサイトのように、コンテンツの新しさよりも内容の質が重視される場合は、日付別アーカイブページは不要です。むしろ、古い日付が表示されることでコンテンツが古く見える可能性があるため、日付別アーカイブをnoindex化するか、完全に無効化することも検討すべきです。
Q. アーカイブページがSEOに与える影響はどの程度ですか?
アーカイブページは、適切に最適化すれば重要なSEO資産になります。特にカテゴリーページは、そのトピックに関する包括的な情報源として検索エンジンに評価され、個別の記事よりも上位に表示されることもあります。カテゴリー説明文を充実させ、関連する内部リンクを配置し、適切なタイトルタグとメタディスクリプションを設定することで、SEO効果を最大化できます。一方で、内容の薄いタグページや日付別ページは、SEOに悪影響を与える可能性があるため、noindex化を検討しましょう。

まとめ

アーカイブページは、WordPressサイトの重要な構成要素です。この記事で学んだポイントを再確認しましょう:

  • アーカイブページは複数の投稿をリスト形式で表示するページ
  • カテゴリー、タグ、日付、著者など様々な種類がある
  • テンプレートファイルとfunctions.phpでカスタマイズ可能
  • 適切なSEO対策でランディングページとして機能させられる
  • 内容の薄いページはnoindex化を検討する
  • カテゴリー説明文を充実させることが重要
  • ユーザビリティとSEOの両面を考慮して設計する

アーカイブページを適切に活用することで、サイトの回遊性が向上し、検索エンジンからの評価も高まります。