2026年5月23日

2026年5月23日

WordPressでNewsArticle構造化データを設定する方法(Yoast SEOとJSON-LDの自作)

NewsArticle は、schema.org の「ニュース記事」を表す型です。ページに JSON-LD で書いておくと、検索エンジンにそのページがニュース記事であること、見出し、公開日時、更新日時、著者、画像を明示できます。Google は Article・NewsArticle・BlogPosting の3つの型を、記事の構造化データとして扱っています。

この記事では、WordPress の投稿に NewsArticle を付ける方法を、SEO プラグインの Yoast SEO を使う場合と、コードで出力する場合に分けて説明します。Google の仕様は、2026年11月時点の Google 検索セントラルの「記事(Article)の構造化データ」に合わせています。

先に知っておきたいこと

  • Google ニュースに載るための必須条件ではありません。 Google のドキュメントは、トップニュースなどの Google ニュースの機能に表示されるために、構造化データは必要ないとしています。構造化データは、ページの内容を正しく伝える補助です。
  • 必須のプロパティはありません。 内容に当てはまるプロパティを付けます。Google が推奨しているのは次の項目です。
プロパティ 内容
headline 記事の見出し。長いと表示で切られることがある
image 記事を代表する画像の URL。ロゴは不可。16:9・4:3・1:1 の3種類を用意し、幅×高さが5万ピクセル以上を推奨
datePublished 最初に公開した日時(ISO 8601 形式。タイムゾーン付きを推奨)
dateModified 最後に更新した日時(同上)
author 著者(Person または Organization)。著者が複数なら全員を入れる
author.name 著者名だけを入れる。肩書きや媒体名は入れない
author.url 著者を特定できるページ(著者紹介ページなど)の URL
  • 同じページに記事の構造化データを二重に出さない。 SEO プラグインの多くは、投稿に Article の構造化データを自動で出しています。自作のコードを足す前に、今どの構造化データが出ているかを確認します。

構造化データ全般の書き方は WordPressのJSON-LD構造化データ も参考にしてください。

方法1:Yoast SEO で記事タイプを News Article にする

Yoast SEO は、投稿に Article の構造化データを出力します。この「記事タイプ」を News Article に変えると、NewsArticle として出力されます。

サイト全体の既定を変える

  1. 管理画面で「Yoast SEO」→「設定」を開きます。
  2. 「コンテンツタイプ」→「投稿」を開き、「スキーマ」の見出しまで下ります。
  3. 記事タイプ(Article type)を News Article に変えて、「変更を保存」を押します。

既定を変えると、その投稿タイプのすべての投稿が NewsArticle になります。ただし、個別の投稿で既定以外の記事タイプを選んでいたものは変わりません。

投稿ごとに変える

ニュースとコラムが混在するサイトなら、投稿の編集画面にある Yoast SEO のメタボックス(またはサイドバー)のスキーマの設定で、記事ごとに記事タイプを選びます。

Yoast SEO では、カスタム投稿タイプには既定で Article が出力されません。また、著者(author)に対応した投稿タイプであることが出力の条件です。カスタム投稿タイプで使う場合は、Yoast の開発者向けドキュメントにある wpseo_schema_article_post_types フィルターで対象に加えます。

方法2:プラグインを使わずに JSON-LD を出力する

SEO プラグインを使っていないサイトでは、テーマの functions.php(子テーマ推奨)か、コードスニペット用のプラグインに次のコードを追加します。投稿(post)の個別ページの head に NewsArticle を出力します。

<?php
/**
 * 投稿の個別ページに NewsArticle の JSON-LD を出力する。
 * Yoast SEO が有効な場合は、二重出力を避けるため何もしない。
 */
add_action( 'wp_head', function () {
	if ( ! is_singular( 'post' ) || defined( 'WPSEO_VERSION' ) ) {
		return;
	}

	$post_id   = get_queried_object_id();
	$author_id = (int) get_post_field( 'post_author', $post_id );

	$data = array(
		'@context'      => 'https://schema.org',
		'@type'         => 'NewsArticle',
		'headline'      => wp_strip_all_tags( get_the_title( $post_id ) ),
		'datePublished' => get_post_time( 'c', true, $post_id ),
		'dateModified'  => get_post_modified_time( 'c', true, $post_id ),
		'author'        => array(
			array(
				'@type' => 'Person',
				'name'  => get_the_author_meta( 'display_name', $author_id ),
				'url'   => get_author_posts_url( $author_id ),
			),
		),
	);

	$image = get_the_post_thumbnail_url( $post_id, 'full' );
	if ( $image ) {
		$data['image'] = array( $image );
	}

	echo '<script type="application/ld+json">'
		. wp_json_encode( $data, JSON_UNESCAPED_UNICODE | JSON_HEX_TAG )
		. '</script>' . "\n";
} );

コードのポイントは次のとおりです。

箇所 説明
is_singular( 'post' ) 投稿の個別ページだけに出す。固定ページや一覧には出さない
defined( 'WPSEO_VERSION' ) Yoast SEO が有効なら出さない。他の SEO プラグインを使う場合は、そのプラグインの出力を確認して判断する
get_post_time( 'c', true, ... ) 公開日時を ISO 8601 形式(UTC、+00:00 付き)で取得する
get_author_posts_url() 著者のアーカイブページを author.url にする。著者紹介ページがあればそちらでもよい
get_the_post_thumbnail_url() アイキャッチ画像を image にする。設定されていない記事では image を出さない
JSON_HEX_TAG 見出しに < > が含まれても script 要素を壊さないようにする

ニュース記事だけに付けたい場合は、is_singular( 'post' ) の条件に has_category( 'news', $post_id ) などを加えて、カテゴリーで絞ります。

出力を確認する

  1. ページのソースを見る。 記事を開いてページのソースを表示し、application/ld+json で検索します。NewsArticle(または Article)が1つだけ出ていることを確認します。
  2. リッチリザルトテストで確認する。 Google の「リッチリザルト テスト」に記事の URL を入れ、「記事」が検出され、エラーがないことを確認します。警告は推奨プロパティが足りないという意味なので、内容に当てはまるものは追加します。
  3. schema.org の形式を確認する。 Google の対象外の項目も含めて書式を確かめたい場合は、Schema Markup Validator(validator.schema.org)を使います。
  4. Search Console の URL 検査を使う。 公開後、URL 検査ツールで Google がページを取得できるか(robots.txt や noindex でブロックしていないか)を確認します。

以前あった Google の「構造化データ テストツール」は提供を終えています。記事に古い手順が残っていたら、上のツールに置き換えてください。

Google ニュースとの関係

Google ニュースに表示されるかどうかは、構造化データの有無ではなく、Google のニュースのポリシーや記事の内容などで決まります。Google ニュースへの掲載については WordPressサイトをGoogleニュースに掲載する方法 を参考にしてください。

構造化データを付けたうえで、次の点を整えておくと、記事の情報が正しく伝わります。

  • 記事のページに、見出し・公開日時・著者名を本文として表示する(構造化データの内容とページの表示を一致させる)
  • 内容を更新したら dateModified が変わるようにする(WordPress の更新日時を使えば自動で変わる)
  • 著者ごとの紹介ページを作り、author.url に使う

まとめ

  • NewsArticle は記事の構造化データの1つで、必須プロパティはなく、headline・image・datePublished・dateModified・author が推奨
  • Yoast SEO を使っているなら、記事タイプを News Article に変えるだけで出力できる
  • プラグインを使わない場合は wp_head で JSON-LD を出力する。SEO プラグインとの二重出力に注意する
  • 確認にはリッチリザルトテストと URL 検査を使う
  • Google ニュースへの掲載に構造化データは必須ではない

お気軽にご相談ください

お見積りへ お問い合わせへ
▲