アーカイブページ
アーカイブページは、複数の投稿をリスト形式で表示するページのことです。カテゴリーページ、タグページ、日付別ページ、著者ページなどが含まれます。ユーザーが関連する記事をまとめて閲覧できるため、サイトの回遊性を高め、SEOにも重要な役割を果たします。
アーカイブページの基本概要
アーカイブページとは
アーカイブページは、WordPressが自動的に生成する一覧ページの総称です。個別の投稿ページや固定ページとは異なり、複数の投稿をまとめて表示する役割を持ちます。
アーカイブページは、単なる記事一覧ではありません。ユーザーが興味のあるトピックや時期の記事を探しやすくし、サイト内の回遊を促進します。また、検索エンジンにとっても、サイトの構造を理解する重要な手がかりとなります。
アーカイブページの種類
WordPressには、様々な種類のアーカイブページが存在します:
| 種類 | 説明 | URLの例 | 主な用途 |
|---|---|---|---|
| カテゴリーページ | 特定カテゴリーに属する投稿の一覧 | /category/wordpress/ | トピック別の記事整理 |
| タグページ | 特定タグが付いた投稿の一覧 | /tag/plugin/ | キーワード別の記事整理 |
| 日付別ページ | 年月日で絞り込んだ投稿の一覧 | /2026/01/ | 時系列での記事閲覧 |
| 著者ページ | 特定の著者による投稿の一覧 | /author/tanaka/ | 執筆者別の記事整理 |
| カスタム投稿タイプページ | カスタム投稿タイプの一覧 | /products/ | 特殊なコンテンツの整理 |
| 検索結果ページ | 検索キーワードに一致する投稿の一覧 | /?s=wordpress | サイト内検索 |
通常ページとの違い
アーカイブページと個別の投稿ページ・固定ページには、明確な違いがあります:
- コンテンツの性質: アーカイブページは動的に生成され、新しい投稿が追加されると自動的に更新されます
- 表示内容: 個別ページは1つのコンテンツを詳細に表示しますが、アーカイブページは複数のコンテンツを要約して表示します
- URL構造: アーカイブページのURLには、カテゴリー名やタグ名などが含まれます
- 編集方法: 個別ページは管理画面で直接編集できますが、アーカイブページはテンプレートファイルで制御します
各アーカイブページの詳細
カテゴリーページ
カテゴリーページは、最も一般的で重要なアーカイブページです。サイトの主要なトピックごとに投稿を整理します。
カテゴリーページは、検索エンジンからの流入が期待できる重要なランディングページになります。適切なカテゴリー説明文を設定することで、そのトピックに関する包括的なページとして機能し、SEO効果も高まります。
カテゴリーページの設定
WordPress管理画面から、カテゴリーページの情報を設定できます:
- 投稿 > カテゴリーを開く
- カテゴリー名、スラッグ、説明を入力
- 親カテゴリーを選択(階層構造を作る場合)
- 「新規カテゴリーを追加」をクリック
// カテゴリーページのカスタマイズ例(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を強化するには、適切なタイトルとメタディスクリプションが重要です:
カテゴリーページのタイトルは、「カテゴリー名 - サイト名」ではなく、「カテゴリー名に関する記事一覧 - サイト名」のように、ユーザーの検索意図に合わせた形にしましょう。また、カテゴリー説明文は検索結果のスニペットに表示されることがあるため、魅力的な説明を書くことが重要です。
// 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化
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)
まとめ
アーカイブページは、WordPressサイトの重要な構成要素です。この記事で学んだポイントを再確認しましょう:
- アーカイブページは複数の投稿をリスト形式で表示するページ
- カテゴリー、タグ、日付、著者など様々な種類がある
- テンプレートファイルとfunctions.phpでカスタマイズ可能
- 適切なSEO対策でランディングページとして機能させられる
- 内容の薄いページはnoindex化を検討する
- カテゴリー説明文を充実させることが重要
- ユーザビリティとSEOの両面を考慮して設計する
アーカイブページを適切に活用することで、サイトの回遊性が向上し、検索エンジンからの評価も高まります。