プラグインなしでGoogleの検索結果に星を表示する方法【コピペ】

検索結果で「星」や「点数」「レビュアー」が表示されている以下のようなページを見かけたことはありませんか?

実はこれ、サイト側で設定すればサイトの規模に関係なく表示させることができます。「レビューの構造化データ」と言います。

「パンくずリスト」と同じく、毎回必ず表示されるわけではありませんが、設定しない限り表示されることはないので、気になっていた方はぜひこの機会に導入してみてください。

コピペしてすぐに使えるコードを紹介します。

同様の機能を提供しているWordPressプラグインもあるみたいですが、ぶっちゃけ今回紹介するコードを使った方が簡単に設定できます。

テーマ関係なく使えて、失敗リスクもないので、おすすめですよ。

今のWordPressは画面真っ白にならないのでご安心ください。

ちなみに、僕が開発しているWordPressテーマ「4536」にはレビュー設定項目がすでに実装されているので、4536ユーザーはコピペしなくてもOKです。



functions.phpにコピペするコード

以下のコードをすべてfunctions.phpにコピペするだけで準備完了です。

class Review_4536 {

  function __construct() {
    add_action( 'add_meta_boxes', [ $this, 'init_4536' ] );
    add_action( 'transition_post_status', [ $this, 'save_4536' ], 10, 3 );
	}

  function init_4536() {
    add_meta_box( $id, 'レビュー設定', [$this, 'review_form_4536'], 'post', 'side', 'low' );
    add_meta_box( $id, 'レビュー設定', [$this, 'review_form_4536'], 'page', 'side', 'low' );
  }

  function save_4536( $new_status, $old_status, $post ) {
    if( ( $old_status == 'auto-draft'
    || $old_status == 'draft'
    || $old_status == 'pending'
    || $old_status == 'future')
    && $new_status == 'publish') {
      return $post;
    } else {
      add_action( 'save_post', function( $post_id ) {
        $arr = [
          'review_name',
          'review_rating',
        ];
        foreach( $arr as $name_4536 ) {
          if( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_id;
          if( filter_input( INPUT_POST, 'action' ) === 'inline-save' ) return $post_id;
          if( !empty( $_POST[$name_4536] ) ) {
            update_post_meta( $post_id, $name_4536, $_POST[$name_4536] );
          } else {
            delete_post_meta( $post_id, $name_4536 );
          }
        }
      });
    }
  }

  function review_form_4536() {
    global $post;
    $review_name_4536 = get_post_meta( $post->ID, 'review_name', true );
    $review_rating_4536 = get_post_meta( $post->ID, 'review_rating', true );
    ?>
    <p><label>レビュー対象<input type="text" name="review_name" value="<?php echo esc_html( $review_name_4536 ); ?>" size="30" class="input-4536" /></label></p>
    <label>評価</label>
    <select name="review_rating" type="text">
      <option value="">選択してください</option>
      <?php for( $i = 2; $i <= 20; $i++ ) {
        $x = strval( $i / 2 );
        $selected = ( $x === strval( $review_rating_4536 ) ) ? ' selected' : '';
        echo '<option value="' . $x . '"' . $selected . '>' . $x . '</option>';
      } ?>
    </select>
  <?php }

}
new Review_4536();

add_action( 'wp_head', function() {
  global $post;
  if( !is_singular() ) return;
  $author = get_userdata( $post->post_author )->display_name;
  $posted_date = get_the_date('c');
  $review_name_4536 = get_post_meta( $post->ID, 'review_name', true );
  $review_rating_4536 = get_post_meta( $post->ID, 'review_rating', true );
  if( empty( $review_name_4536 ) || empty( $review_rating_4536 ) ) return;
  ?>
  <!-- 4536 review setting begin -->
  <script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "Review",
    "itemReviewed": {
      "@type": "Thing",
      "name": "<?php echo $review_name_4536; ?>"
    },
    "reviewRating": {
      "@type": "Rating",
      "ratingValue": "<?php echo $review_rating_4536; ?>",
      "bestRating": "10"
    },
    "datePublished": "<?php echo $posted_date; ?>",
    "author": {
      "@type": "Person",
      "name": "<?php echo $author; ?>"
    },
    "publisher": {
      "@type": "Organization",
      "name": "<?php echo bloginfo( 'name' ); ?>"
    }
  }
  </script>
  <!-- / 4536 review setting end -->
<?php });

設定方法

このコードをコピペして保存すると、「投稿」と「固定ページ」のエディター画面のサイドバーにレビュー設定項目が表示されます。

レビューの構造化データ設定項目

ここにレビューする対象の名前と評価を入力するだけ。やることはそれだけです!

レビュー対象の名前と評価を入力する

ちゃんと設定できたかの確認

この構造化データはサイトには表示されないので、ちゃんと設定できたかがこの段階ではわかりません。

手順通り進めたのであれば問題ありませんが、心配な方は以下の手順で確認してみてください。

構造化データテストツールにアクセスし、確認したいページのURLを貼り付けてテストを実行。

Reviewの構造化データラベル

「Review」をクリック。

レビューの構造化データの詳細
  • name→対象名
  • ratingValue→評価数
  • author→レビュアー
  • publisher→サイト名

などを確認する。

これで入力内容に間違いがなければ、Googleの検索結果に星や評価が表示されます。

「Review」の項目がなかったり、エラーになっている場合はコピペが間違っているか、テーマ側に問題があります。

レビューの構造化データを使うメリット

実は、今回ご紹介したレビューの構造化データを使ったからといって、現時点ではSEO的に有利になるわけではありません。

ただ、とにかく目立つので設定するメリットはかなり大きいと思います。

例えば、以下の画像はレンタルサーバーのConoHa WING(コノハウィング)のレビュー記事に関する検索結果なんですが、2番目に表示されているのにめちゃくちゃ目立ってます(笑)

レビュー記事のモバイル画面の検索結果

1番目に表示されている記事の2倍ほど面積が広い(苦笑)

あと、あまりレビューの構造化データを設定しているサイトを見かけないので、単純に差別化にもなります。

注意点

注意点というか、当たり前の話なんですが、レビュー記事以外で設定したり、関係ない情報を入力しないでくださいね。

オピニオン記事なのにレビュー情報を入力するとか、ドッグフードのレビュー記事なのにワイヤレスイヤホンのレビュー情報を入力するとか。

こういうことをすると手動ペナルティの対象になるそうです。

あと、冒頭でお話ししたように、設定したからと言ってすぐに検索結果に反映されるわけでもありませんし、検索した時に必ず表示されるわけでもないので、そこだけはご留意ください。

レビュー記事は個人サイトの強みになる

自作テーマの「4536」に同機能を実装しようと思ったきっかけでもありますが、レビュー記事がこれから個人サイトの強みの1つになると思っているんですね。

例えば、「〇〇 おすすめ」「〇〇 比較」といったクエリを狙うのもいいですが、それらは競争率が高いですし、必然的に複数の商品を買う必要があるので、個人レベルで勝負するとユーザーの検索意図とミスマッチをおこしそうだなと。

一方、レビュー記事であれば、自分が思ったことや体験したことをそのまま書けるので、そういった検索意図とのミスマッチが起こりにくいと思います。実際、レビュー記事はニーズがありますからね。

ということで、レビュー記事を書く時には今回ご紹介した方法も活用してみてはいかがでしょうか。

ご質問やご要望があれば、コメント欄または専用のお問い合わせフォームにてどうぞ。


カテゴリー:カスタマイズ

シェフ

このサイト「Fantastech」を運営している人。WordPressテーマ「4536」の開発中にインプットした情報などを発信中。お仕事のご依頼については「Shinobi Works」までどうぞ