小売ECのコーポレートサイトやオウンドメディアでは、通常のブログ記事とは別に「導入事例」「制作実績」「お客様の声一覧」といったカスタム投稿タイプのアーカイブページを用意していることがよくあります。ところが、こうしたアーカイブページは通常の記事一覧と同じテンプレート・同じ構造化データがそのまま流用されてしまい、検索結果でのリッチ表示の機会を逃しているケースが少なくありません。
WordPressには、現在表示中のページがカスタム投稿タイプのアーカイブページであるかどうかを判定する is_post_type_archive() という条件分岐タグがあります。この関数を使うことで、事例一覧などのアーカイブページだけに専用のパンくずリストや構造化データ(JSON-LD)を出し分ける実装が可能になります。
この記事では、is_post_type_archive() の正確な仕様を確認したうえで、小売事業者向けのWordPressサイトで事例一覧ページの構造化データを設計し、検索結果でのリッチ表示とSEO評価の両方を狙うための考え方を解説します。
is_post_type_archiveが小売ECの集客で重要になる理由
検索エンジンは、ページの内容を構造化データによって機械的に理解しようとします。事例一覧やお客様の声一覧のようなページは、単なる記事の集合ではなく「特定のカテゴリの情報がまとまったコレクションページ」としての性質を持ちます。この性質に合わせた構造化データ(CollectionPageやItemListなど)を提供できているかどうかで、検索結果の見え方が変わってくる可能性があります。
ところが多くのWordPressサイトでは、通常の投稿一覧テンプレート(archive.phpなど)がカスタム投稿タイプのアーカイブにもそのまま適用され、パンくずリストや構造化データも通常のブログ一覧と同じロジックで出力されてしまいます。これは、検索エンジンに対して「このページが何のコレクションなのか」を正しく伝えられていない状態です。
is_post_type_archive() を使えば、こうした汎用テンプレートの中でも「今表示しているのは事例一覧なのか、通常のブログ一覧なのか」を判定し、出力する構造化データやメタ情報を切り替えることができます。これは、SEOの技術的な整備としても、検索結果での見え方を改善する施策としても重要な起点になります。
- 事例一覧はコレクションページとしての構造化データが求められる
- 汎用テンプレートのままだと構造化データが実態と合わなくなる
- 検索結果のリッチ表示は構造化データの正確さに左右されやすい
- 投稿タイプごとに異なる情報設計が必要になる
is_post_type_archive()の役割を実務目線で理解する
is_post_type_archive() は、現在のクエリが「既存の投稿タイプのアーカイブページ」であるかどうかを判定する関数です。引数 $post_types は省略可能で、文字列(投稿タイプ名)または配列(複数の投稿タイプ名)を渡せます。戻り値は真偽値です。
if ( is_post_type_archive() ) {
// 何らかの投稿タイプのアーカイブページであれば真
echo 'この投稿タイプのアーカイブページです';
}
引数に投稿タイプ名を渡すことで、判定を特定の投稿タイプに絞り込めます。例えば「case_study」という投稿タイプの一覧ページだけを対象にしたい場合は、次のように書きます。
if ( is_post_type_archive( 'case_study' ) ) {
// 事例紹介の一覧ページ専用の構造化データを出力する
get_template_part( 'schema', 'case-study-archive' );
} elseif ( is_post_type_archive( array( 'voice', 'review' ) ) ) {
// お客様の声・レビュー系のアーカイブページ専用の処理
get_template_part( 'schema', 'voice-archive' );
}
ここで注意すべきなのは、引数を渡さずに is_post_type_archive() を呼び出すと、対象が「いずれかの投稿タイプのアーカイブページ全般」になる点です。複数のカスタム投稿タイプを運用しているサイトで、引数なしの判定だけで分岐ロジックを組んでしまうと、意図しない投稿タイプのアーカイブにまで同じ構造化データが適用されてしまうアンチパターンに陥ります。事例一覧専用の処理を書きたい場合は、必ず投稿タイプ名を明示して絞り込む必要があります。
また、is_post_type_archive() はタクソノミー(カテゴリやカスタムタクソノミー)のアーカイブとは判定対象が異なります。カテゴリアーカイブを判定したい場合は is_category() や is_tax() を使う必要があり、is_post_type_archive() では判定できません。混同すると、意図した分岐が発生しないバグにつながるため、投稿タイプのアーカイブなのかタクソノミーのアーカイブなのかを実装前に整理しておくことが重要です。
運用イメージ(架空パターン)
理解を深めるために、あくまで仮のケースとして運用イメージを描いてみます。例えば、什器や店舗備品を扱う仮のC社が、コーポレートサイトに「導入事例(case_study)」というカスタム投稿タイプを追加したとします。
導入当初、C社の事例一覧ページは通常のブログ一覧テンプレートを流用しており、構造化データも標準のBlogPosting系のまま出力されていたとします。そこで担当者は is_post_type_archive( ‘case_study’ ) を使って事例一覧ページを判定し、CollectionPageとしての構造化データ、および事例一覧専用のパンくずロジックを実装したとします。
あわせて、個別の事例記事側にもArticleとBreadcrumbListの構造化データを整備し、一覧と個別ページの階層が一致するように調整したとします。実装後は、Google Search Consoleの拡張性レポートで構造化データのエラーが解消されているかを定期的に確認する運用に切り替えたとします。
このような仮の対応を行った場合、事例一覧ページが検索エンジンにとって「実績のコレクション」として認識されやすくなり、事例関連の検索クエリでの見え方が改善する可能性があると考えられます。あくまで仮のシナリオですが、投稿タイプ単位で構造化データを出し分ける意義のイメージとして参考にしてください。
実装・運用の進め方
- サイト内のカスタム投稿タイプと、それぞれのアーカイブページを洗い出す
- is_post_type_archive()を使った投稿タイプ別の判定ロジックを実装する
- 投稿タイプごとに適した構造化データ(CollectionPage、ItemListなど)を設計する
- パンくずリストと構造化データの階層を一致させる
- Google Search Consoleやリッチリザルトテストで検証する
- 新規投稿タイプ追加時の対応フローをドキュメント化する
社内で持つべき判断軸
- どの投稿タイプのアーカイブがリッチ表示を狙う優先度が高いか
- 構造化データの出力ロジックを誰がメンテナンスするか
- 新規投稿タイプ追加時に構造化データ対応をどう組み込むか
- 検証作業をどの頻度で行うか
成果測定で見るべき指標
- Search Consoleの拡張性レポートにおける構造化データのエラー件数
- 事例一覧・お客様の声一覧ページの検索流入数の推移
- リッチリザルトテストでの検証結果
- 事例一覧経由の個別記事へのクリック率
- 事例一覧経由の問い合わせ・資料請求のCV数
よくある質問
is_post_type_archive()に引数を渡さないとどうなりますか
引数を省略すると、現在のページがいずれかの投稿タイプのアーカイブページであれば真を返します。特定の投稿タイプだけを対象にしたい場合は、必ず投稿タイプ名を文字列または配列で指定する必要があります。
is_post_type_archive()とis_archive()の違いは何ですか
is_archive()はカテゴリ・タグ・日付・投稿者・投稿タイプなど、あらゆる種類のアーカイブページで真を返す包括的な判定です。is_post_type_archive()はその中でも投稿タイプのアーカイブページに限定した判定を行います。
カテゴリアーカイブの判定にis_post_type_archive()は使えますか
使えません。カテゴリやタグ、カスタムタクソノミーのアーカイブページを判定したい場合は、is_category()、is_tag()、is_tax()といった別の条件分岐タグを使う必要があります。
構造化データを出し分けるとSEOの順位は必ず上がりますか
構造化データの整備は検索エンジンにページの内容を正確に伝える施策であり、順位上昇を直接保証するものではありません。コンテンツの質や内部リンクなど他の要素と合わせて評価される前提で取り組むべきです。
投稿タイプを追加するたびに構造化データの実装は必要ですか
新規投稿タイプのアーカイブページが検索流入を狙う対象であれば、構造化データの対応を検討すべきです。すべての投稿タイプに一律で必要というわけではなく、優先度に応じて判断します。
is_post_type_archive()はテーマファイルのどこで使うのが一般的ですか
archive.phpや投稿タイプ専用のアーカイブテンプレート(archive-{post_type}.php)、またはheadタグ内で構造化データを出力する共通テンプレートの中で使うのが一般的です。
まとめ
is_post_type_archive() は、カスタム投稿タイプのアーカイブページを正確に判定し、そのページの性質に合った構造化データを出し分けるための起点になる関数です。事例一覧やお客様の声一覧を通常のブログ一覧と同じ扱いにせず、専用の構造化データとパンくず設計を行うことで、検索結果でのリッチ表示とSEO評価の両方を狙えます。まずは自社サイトの投稿タイプとアーカイブページの構成を棚卸しするところから始めてみてください。

コメント