アーカイブの基本概要

アーカイブとは

アーカイブ(Archive)は、元々「記録保管所」「書庫」を意味する言葉です。WordPressでは、過去の投稿を様々な基準で分類し、一覧表示するページをアーカイブページと呼びます。

📌 アーカイブページの重要性
アーカイブページは、ユーザーが過去のコンテンツを探しやすくするだけでなく、検索エンジンがサイトの構造を理解するのにも役立ちます。適切に設計されたアーカイブページは、サイト全体のSEOを向上させ、ユーザーの滞在時間を延ばす効果があります。

アーカイブページの種類

WordPressでは、以下のようなアーカイブページが自動生成されます:

アーカイブの種類 URLの例 用途
カテゴリーアーカイブ /category/news/ 特定カテゴリーの投稿一覧
タグアーカイブ /tag/wordpress/ 特定タグの投稿一覧
日付アーカイブ /2026/01/ 特定期間の投稿一覧
著者アーカイブ /author/username/ 特定著者の投稿一覧
カスタム投稿タイプアーカイブ /products/ カスタム投稿タイプの一覧
カスタムタクソノミーアーカイブ /product-category/electronics/ カスタム分類の投稿一覧

アーカイブページとテンプレート

WordPressは、アーカイブページの種類ごとに異なるテンプレートファイルを使用します。テンプレート階層に従って、最も適切なファイルが自動的に選択されます:

// アーカイブページのテンプレート階層

【カテゴリーアーカイブ】
category-{slug}.php → category-{id}.php → category.php → archive.php → index.php

【タグアーカイブ】
tag-{slug}.php → tag-{id}.php → tag.php → archive.php → index.php

【日付アーカイブ】
date.php → archive.php → index.php

【著者アーカイブ】
author-{nicename}.php → author-{id}.php → author.php → archive.php → index.php

【カスタム投稿タイプアーカイブ】
archive-{post_type}.php → archive.php → index.php

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

カテゴリーアーカイブ

カテゴリーアーカイブは、最もよく使用されるアーカイブページの一つです。カテゴリーごとに投稿を整理し、ユーザーが興味のあるトピックを探しやすくします。

  • URL形式: /category/カテゴリー名/
  • 利用シーン: ブログ、ニュースサイト、メディアサイト
  • SEO効果: カテゴリーページは重要なランディングページになり得る
// カテゴリーアーカイブのカスタマイズ例
// category.phpまたはfunctions.php

<?php
// カテゴリーページのタイトルと説明文を取得
$category = get_queried_object();
$category_name = $category->name;
$category_description = $category->description;
?>

<h1><?php echo esc_html($category_name); ?></h1>
<?php if ($category_description) : ?>
    <p class="category-description"><?php echo esc_html($category_description); ?></p>
<?php endif; ?>

<?php if (have_posts()) : ?>
    <div class="posts-grid">
        <?php while (have_posts()) : the_post(); ?>
            <article class="post-card">
                <?php the_post_thumbnail('medium'); ?>
                <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                <p><?php the_excerpt(); ?></p>
            </article>
        <?php endwhile; ?>
    </div>
    <?php the_posts_pagination(); ?>
<?php endif; ?>

タグアーカイブ

タグアーカイブは、より細かいトピックで投稿をグループ化します。カテゴリーよりも柔軟で、複数のタグを一つの投稿に付けることができます。

✓ タグアーカイブの活用方法
タグアーカイブは、関連記事を横断的に表示するのに適しています。例えば、「WordPress」カテゴリーの中で「初心者」「プラグイン」「セキュリティ」などのタグを使用することで、より詳細な分類が可能になります。

日付アーカイブ

日付アーカイブは、年別、月別、日別に投稿を表示します。ニュースサイトやブログで、時系列でコンテンツを探す場合に便利です。

// 日付アーカイブのURL形式

/2026/           → 2026年の全投稿
/2026/01/        → 2026年1月の投稿
/2026/01/31/     → 2026年1月31日の投稿
⚠ 日付アーカイブのSEO上の注意点
日付アーカイブページは、古い投稿が多くなると管理が難しくなります。また、日付の情報がURLに含まれると、コンテンツが古く見える可能性があるため、エバーグリーンコンテンツ(時間が経っても価値が衰えないコンテンツ)を扱うサイトでは使用を避けるべきです。

著者アーカイブ

複数の著者がいるサイトで、各著者の投稿を一覧表示します。個人ブランディングや、執筆者ごとの記事を見つけやすくするのに役立ちます。

// 著者アーカイブのカスタマイズ例
// author.php

<?php
$author = get_queried_object();
$author_name = $author->display_name;
$author_bio = get_the_author_meta('description', $author->ID);
$author_posts_count = count_user_posts($author->ID);
?>

<div class="author-header">
    <?php echo get_avatar($author->ID, 120); ?>
    <h1><?php echo esc_html($author_name); ?></h1>
    <p class="author-bio"><?php echo esc_html($author_bio); ?></p>
    <p class="author-stats">投稿数: <?php echo $author_posts_count; ?>件</p>
</div>

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

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

表示順序の変更

デフォルトでは、アーカイブページは新しい投稿から順に表示されますが、これをカスタマイズできます:

// functions.php - アーカイブページの表示順序を変更

// カテゴリーアーカイブを古い順に表示
function custom_archive_order($query) {
    if (!is_admin() && $query->is_main_query() && is_category()) {
        $query->set('order', 'ASC'); // 昇順(古い順)
    }
}
add_action('pre_get_posts', 'custom_archive_order');

// 特定カテゴリーで人気順(コメント数)に表示
function popular_posts_in_category($query) {
    if (!is_admin() && $query->is_main_query() && is_category('reviews')) {
        $query->set('orderby', 'comment_count');
        $query->set('order', 'DESC');
    }
}
add_action('pre_get_posts', 'popular_posts_in_category');

表示件数の変更

アーカイブページごとに異なる表示件数を設定できます:

// アーカイブページの表示件数をカスタマイズ

function custom_posts_per_page($query) {
    if (!is_admin() && $query->is_main_query()) {
        // カテゴリーアーカイブでは12件表示
        if (is_category()) {
            $query->set('posts_per_page', 12);
        }
        // タグアーカイブでは8件表示
        if (is_tag()) {
            $query->set('posts_per_page', 8);
        }
        // 日付アーカイブでは15件表示
        if (is_date()) {
            $query->set('posts_per_page', 15);
        }
    }
}
add_action('pre_get_posts', 'custom_posts_per_page');

除外設定

特定の投稿やカテゴリーをアーカイブから除外することもできます:

// 特定の投稿やカテゴリーを除外

function exclude_from_archives($query) {
    if (!is_admin() && $query->is_main_query() && is_archive()) {
        // 特定のカテゴリーID(例:5)を除外
        $query->set('cat', '-5');
        
        // 特定の投稿ID(例:10, 20, 30)を除外
        $query->set('post__not_in', array(10, 20, 30));
        
        // 下書きやプライベート投稿を除外(デフォルトで除外されているが明示的に指定)
        $query->set('post_status', 'publish');
    }
}
add_action('pre_get_posts', 'exclude_from_archives');

アーカイブページのSEO最適化

タイトルとディスクリプション

アーカイブページのタイトルとメタディスクリプションを最適化することで、検索エンジンからの流入を増やせます:

// functions.php - アーカイブページのSEOタイトルをカスタマイズ

function custom_archive_title($title) {
    if (is_category()) {
        $title = single_cat_title('', false) . ' - ' . get_bloginfo('name');
    } elseif (is_tag()) {
        $title = single_tag_title('', false) . 'の記事一覧 - ' . get_bloginfo('name');
    } elseif (is_date()) {
        $title = get_the_date('Y年n月') . 'の記事 - ' . get_bloginfo('name');
    } elseif (is_author()) {
        $title = get_the_author() . 'の記事一覧 - ' . get_bloginfo('name');
    }
    return $title;
}
add_filter('wp_title', 'custom_archive_title');

// Yoast SEOやRank Mathを使用している場合は、それらのプラグインの設定で管理することを推奨

ページネーションの最適化

アーカイブページが複数ページにわたる場合、ページネーションを正しく実装することが重要です:

// アーカイブページのページネーション実装

<?php
// 標準的なページネーション
the_posts_pagination(array(
    'mid_size' => 2,
    'prev_text' => '« 前へ',
    'next_text' => '次へ »',
));

// または、カスタムページネーション関数を作成
function custom_archive_pagination() {
    global $wp_query;
    
    if ($wp_query->max_num_pages > 1) {
        echo '<nav class="pagination">';
        echo paginate_links(array(
            'total' => $wp_query->max_num_pages,
            'current' => max(1, get_query_var('paged')),
            'format' => '?paged=%#%',
            'show_all' => false,
            'end_size' => 1,
            'mid_size' => 2,
            'prev_next' => true,
            'prev_text' => '« 前',
            'next_text' => '次 »',
            'type' => 'plain'
        ));
        echo '</nav>';
    }
}
?>

<!-- アーカイブテンプレートで呼び出し -->
<?php custom_archive_pagination(); ?>

よくある質問(FAQ)

Q. アーカイブページとアーカイブページの違いは何ですか?
「アーカイブ」という用語は、WordPressでは2つの意味で使われます。一つは、過去の投稿全般を指す広義の「アーカイブ」で、もう一つは、カテゴリーやタグなどで分類された一覧ページを指す「アーカイブページ」です。この用語辞典で説明しているのは後者の「アーカイブページ」で、具体的にはカテゴリーアーカイブ、タグアーカイブ、日付アーカイブなどを含みます。
Q. アーカイブページを削除することはできますか?
技術的には可能ですが、推奨されません。アーカイブページはWordPressの標準機能であり、ユーザビリティとSEOの両面で重要です。ただし、特定のアーカイブページ(例:日付アーカイブ)を無効化したり、noindex化することは可能です。完全に削除するのではなく、リダイレクトやnoindex化で対応することをお勧めします。
Q. アーカイブページの表示件数を増やすとSEOに影響しますか?
表示件数自体は直接的なSEO要因ではありませんが、ページの読み込み速度やユーザー体験に影響します。1ページに100件も表示すると、ページの読み込みが遅くなり、ユーザビリティが低下する可能性があります。一般的には、10〜20件程度が適切です。重要なのは、ユーザーが求める情報にすぐアクセスできることです。
Q. カテゴリーアーカイブとタグアーカイブはどう使い分けるべきですか?
カテゴリーは大きな分類(例:「WordPress」「HTML」「デザイン」)に使い、タグはより具体的なキーワード(例:「初心者向け」「プラグイン」「カスタマイズ」)に使うのが一般的です。カテゴリーは階層構造を作れるため、サイトの骨組みとして機能し、タグは横断的な検索や関連記事の表示に適しています。両者を適切に組み合わせることで、ユーザーが情報を見つけやすくなります。
Q. 日付アーカイブは必要ですか?
サイトの種類によります。ニュースサイトやブログで、時系列が重要な場合は日付アーカイブが有用です。一方、企業サイトや情報サイトのように、コンテンツの鮮度よりも内容の質が重視される場合は、日付アーカイブは不要です。むしろ、古い日付が表示されることでコンテンツが古く見える可能性があるため、noindex化するか、非表示にすることも検討すべきです。
Q. アーカイブページのデザインをカスタマイズするにはどうすればよいですか?
アーカイブページのデザインは、テーマのテンプレートファイル(archive.php、category.php、tag.phpなど)を編集することでカスタマイズできます。ただし、親テーマを直接編集するとテーマ更新時に変更が失われるため、子テーマを作成してカスタマイズすることを強くお勧めします。また、ページビルダープラグイン(Elementor、Beaverbuilderなど)を使用すると、コードを書かずに視覚的にデザインを変更できます。

まとめ

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

  • アーカイブページは過去の投稿を分類して一覧表示する機能
  • カテゴリー、タグ、日付、著者など複数の種類がある
  • 各アーカイブページには専用のテンプレート階層がある
  • functions.phpで表示順序や表示件数をカスタマイズできる
  • SEO最適化にはタイトル、ディスクリプション、ページネーションが重要
  • サイトの種類に応じて、不要なアーカイブはnoindex化する
  • ユーザビリティとSEOのバランスを考えて設計する

アーカイブページを適切に活用することで、ユーザーが情報を見つけやすくなり、サイト全体の価値が向上します。