投稿者と監修者の構造化データを自動出力する方法

Cocoonカスタマイズ集
この記事は約4分で読めます。
記事内に広告が含まれています。

はじめに

Googleなどの検索エンジンがコンテンツの信頼性を評価する際、「誰が書き、誰が内容を保証しているか(E-E-A-T)」が非常に重要視されます。
常、WordPressテーマは「執筆者(author)」の情報を出力しますが、「監修者(ReviewedBy)」までを詳細にカバーしているケースは多くありません。

現在、Cocoonが標準で出力しているJSON-LDには、タイトル・日付・画像といった基本情報が含まれていますが、著者のURLがサイトのトップページを指すなど、専門性の証明としては一歩及ばない点があります。

そこで、本サイトでは既存のデータを活かしつつ、投稿者アーカイブへの適切なリンクと、管理者による「監修者」情報を追加することで、データの質を格段に向上させました。

この記事では、この方法について説明します。

完成イメージ

{
  "@context": "https://schema.org",
  "@type": "WebPage",
  "@id": "https://example.com/sample-post/",
  "mainEntity": {
    "@type": "Article",
    "headline": "投稿タイトル",
    "author": [
      {
        "@type": "Person",
        "name": "投稿者ニックネーム",
        "url": "https://example.com/author/user-slug/"
      }
    ],
    "reviewedBy": [
      {
        "@type": "Person",
        "name": "管理者ニックネーム",
        "url": "https://example.com/author/admin-slug/"
      }
    ]
  }
}

実装手順

以下のコードをfunctions.phpに追加します。

add_action('wp_head', function () {
  if (!is_single()) {
    return;
  }

  global $post;

  // 投稿者の情報を取得
  $author_id = (int) $post->post_author;
  $author_user = get_userdata($author_id);

  $authors = [];
  if ($author_user) {
    $authors[] = [
      '@type' => 'Person',
      'name'  => $author_user->display_name,
      'url'   => get_author_posts_url($author_id),
    ];
  }

  // 監修者の情報を取得(管理者の中から最初に見つかった1人)
  $admin_users = get_users([
    'role'    => 'administrator',
    'number'  => 1,
    'orderby' => 'ID',
    'order'   => 'ASC',
  ]);

  $reviewers = [];
  if (!empty($admin_users)) {
    $admin = $admin_users[0];
    $reviewers[] = [
      '@type' => 'Person',
      'name'  => $admin->display_name,
      'url'   => get_author_posts_url($admin->ID),
    ];
  }

  // JSON-LDを組み立て
  $extra_json = [
    '@context'   => 'https://schema.org',
    '@type'      => 'WebPage',
    '@id'        => get_permalink($post->ID),
    'mainEntity' => [
      '@type'      => 'Article',
      'headline'   => get_the_title($post->ID),
      'author'     => $authors,
      'reviewedBy' => $reviewers,
    ],
  ];

  echo "\n" . '<script type="application/ld+json">' . json_encode($extra_json, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '</script>' . "\n";
}, 20);

さいごに

今回紹介した方法を使えば、構造化データの複雑な運用に悩むことなく、シンプルかつ強力なデータ構成をサイトに実装できます。

SEOの観点からは、特にE-E-A-T(経験・専門性・権威性・信頼性)の向上に大きな効果が期待できます。
誰が書いたか(執筆者)だけでなく、誰が責任を持って内容をチェックしたか(監修者)を検索エンジンに明確に伝えることで、情報の信頼性がデジタルデータとして裏付けられるためです。

信頼性の高いコンテンツとして正しく評価される仕組みを整え、検索結果での競争力を高めていきましょう。

タイトルとURLをコピーしました