構造化マークアップについて



  • いつもお世話になっております。

    構造化マークアップについて確認です。
    リッチリザルトテストにてJINで使っているサイトの記事URLをテストすると、
    記事本体の部分が表示されない状態になっています。
    (関連記事やパンくずリストは出てきます)

    試しにJIN公式サイトの記事でも確認しましたが、同様の結果でした。
    お手数ですが、テーマ自体に問題ないかご確認いただけるでしょうか?

    よろしくお願いいたします。0_1630400717105_リッチリザルトテスト.png


    マニュアル確認済み
    キャッシュクリア済み
    プラグイン全停止済み
    WordPressのバージョン :
    ご利用のサーバー名 :
    PHPのバージョン :
    OS :
    ご利用のブラウザ :
    該当サイトのURL : https://ptnimz.site/freelance-agent/



  • すみません、自分でカスタマイズして解決しました。
    ですが、念のため一度ご確認いただければと思います。


  • administrators

    @ptnimz1987 さん

    お世話になっております。
    運営チームのりょうたです。

    質問の件ですが、現状のJINでは記事に対するリッチリザルトへ完璧に対応しているわけではないですね。。
    記事に対する構造化マークアップは行っていますが、それがリッチリザルトとして認識されるかどうかはまた別の問題なので。。

    // 参考資料
    https://www.suzukikenichi.com/blog/rich-results-test-now-supports-article-structured-data/
    https://www.suzukikenichi.com/blog/google-rich-results-test-tool-gets-out-of-beta-and-old-structured-data-testing-tool-is-being-deprecated/#rrt-cant

    原因としてはおそらくですが上記記事にもあるようにBlogPostingがリッチリザルト対象ではないからだと思います。
    (※まだ調査段階なので確実ではありません。上記記事のように本当にBlogPostingが対象ではないのであれば、関連記事が検出されるのはおかしな話ですし。。)

    この辺りもう少し運営の方で調査を続けてまいりますが、差し支えなければどのように解決したか共有いただけると助かります。
    お手数お掛け致しますが、何卒宜しくお願い致します。



  • りょうたさん、お世話になっております。

    BlogPosting自体は問題ないかと思っていますが、
    私が見た限りだと構造化マークアップが完全でなかったのが原因です。
    https://developers.google.com/search/docs/advanced/structured-data/article?hl=ja#article-types
    →こちらに「Article オブジェクトは、Article、NewsArticle、BlogPosting のいずれかの schema.org タイプに基づいている必要があります。」と書かれていますので。

    対象ページのテンプレートであるonecolumn-960.phpを以下のように変更しました。

    <?php
    /*
    Template Name: 1カラム【960px】
    Template Post Type: post, page
    */
    ?>
    <?php get_header(); ?>
    	
    	<div id="contents">
    
    		<!--メインコンテンツ-->
    		<main id="onecolumn960" class="main-contents <?php echo is_article_design(); ?> <?php is_animation_style(); ?>" itemprop="mainContentOfPage" itemtype="https://schema.org/BlogPosting">
    			
    			<?php if( is_front_page() ) :?>
    				<?php if ( wp_isset_widets( 'home-top-widget',true ) ) : ?>
    					<div id="home-top-widget">
    					<?php dynamic_sidebar( 'home-top-widget' ); ?>
    					</div>
    				<?php endif; ?>
    			<?php endif; ?>
    			
    			<section class="cps-post-box hentry">
    				<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    					<?php
    						// カテゴリー情報を取得
    						if( is_single() ){
    							$category = get_the_category();
    							$cat_id   = $category[0]->cat_ID;
    							$cat_name = $category[0]->cat_name;
    							$cat_slug = $category[0]->category_nicename;
    							$cat_link = get_category_link($cat_id);
    						}
    
    						if( get_post_thumbnail_id($post->ID) ){
    							$thumbnail_id = get_post_thumbnail_id($post->ID);
    							$image = wp_get_attachment_image_src( $thumbnail_id, 'large_size' );
    							$src = $image[0]; //url
    							$large_width = $image[1]; //横幅
    							$large_height = $image[2]; //高さ
    						}else{
    							$large_width = "";
    							$large_height = "";
    						}
    					?>
    					<article class="cps-post" itemscope="" itemtype="http://schema.org/Article">
    						<header class="cps-post-header">
    							<?php if( is_single() ): ?>
    								<span class="cps-post-cat category-<?php echo $cat_slug; ?>" itemprop="keywords"><a href="<?php echo $cat_link ?>" style="background-color:<?php cps_category_color(); ?>!important;"><?php echo $cat_name ?></a></span>
    							<?php endif; ?>
    							<h1 class="cps-post-title entry-title" itemprop="headline"><?php esc_html(the_title()); ?></h1>
    							<div class="cps-post-meta vcard">
    								<span class="writer fn" itemprop="author" itemscope itemtype="https://schema.org/Person"><span itemprop="name"><?php the_author(); ?></span><meta itemprop="url" content="https://ptnimz.site/profile/"><meta itemprop="url" content="https://twitter.com/ptnimz1987"></span>
    								<?php if( is_single() ): ?>
    								<span class="cps-post-date-box">
    									<?php get_template_part( 'include/custom-time' ); ?>
    								</span>
    								<?php endif; ?>
    							</div>
    						</header>
    						<?php if ( ! get_option( 'theme_eyecatch_off' ) ) : ?>
    							<?php if ( ! get_post_meta( $post->ID, "cps_eyecatch_display_off", true) == 'この記事でアイキャッチ画像を表示しない' ) : ?>
    								<?php if ( ! is_mobile() ): ?>
    									<?php if( $large_width < 1280 ) : ?>
    										<div class="cps-post-thumb" itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
    											<?php if(has_post_thumbnail()) {  echo the_post_thumbnail( 'large_size',array('width ' => $large_width,'height ' => $large_height,'alt' => jin_image_alt('large_size') ) ); } ?>
    											<meta itemprop="url" content="<?php echo $src; ?>">
    											<meta itemprop="width" content="<?php echo $large_width; ?>">
    											<meta itemprop="height" content="<?php echo $large_height; ?>">
    										</div>
    									<?php else: ?>
    										<div class="cps-post-thumb" itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
    											<?php if(has_post_thumbnail()) {  echo the_post_thumbnail( 'large_size',array('width ' => '900','height ' => '506','alt' => jin_image_alt('large_size') ) ); } ?>
    											<meta itemprop="url" content="<?php echo $src; ?>">
    											<meta itemprop="width" content="<?php echo $large_width; ?>">
    											<meta itemprop="height" content="<?php echo $large_height; ?>">
    										</div>
    									<?php endif; ?>
    								<?php else: ?>
    									<div class="cps-post-thumb" itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
    										<?php if(has_post_thumbnail()) { echo the_post_thumbnail( 'small_size',array('width ' => '384','height ' => '216','alt' => jin_image_alt('small_size')) ); } ?>
    										<meta itemprop="url" content="<?php echo $src; ?>">
    										<meta itemprop="width" content="<?php echo $large_width; ?>">
    										<meta itemprop="height" content="<?php echo $large_height; ?>">
    									</div>
    								<?php endif; ?>
    							<?php endif; ?>
    						<?php endif; ?>
    						<?php if ( ! get_option( 'sns_delete' ) ) : ?>
    							<?php if ( ! get_option( 'sns_top_delete' ) ) : ?>
    								<?php get_template_part('include/sns-top'); ?>
    							<?php endif; ?>
    						<?php endif; ?>
    
    						<div class="cps-post-main-box">
    							<div class="cps-post-main <?php if( ! get_theme_mod('h2_style_icon') == ""){ echo get_theme_mod('h2_style_icon'); } ?> <?php if( ! get_theme_mod('h3_style_icon') == ""){ echo get_theme_mod('h3_style_icon'); } ?> <?php if( ! get_theme_mod('h4_style_icon') == ""){ echo get_theme_mod('h4_style_icon'); } ?> <?php if( ! get_option('hl_custom_check')){is_h2_style();echo " "; is_h3_style();echo " "; is_h4_style(); }else{echo "hl-custom";} ?> entry-content <?php echo esc_html(get_option('font_size'));?> <?php echo esc_html(get_option('font_size_sp'));?>" itemprop="articleBody">
    
    								<?php get_template_part('ad-top'); ?>
    
    								<?php the_content(); ?>
    								
    								<?php get_template_part('ad'); ?>
    									
    								<?php if ( ! get_option( 'sns_delete' ) ) : ?>
    									<?php get_template_part('include/sns'); ?>
    								<?php endif; ?>
    								
    								<?php get_template_part('cta'); ?>
    							</div>
    						</div>
    					</article>
    				<?php endwhile; ?>
    				<?php else : ?>
    					<article class="cps-post">
    						<h1 class="post-title">記事が見つかりませんでした。</h1>
    					</article>
    				<?php endif; ?>
        		</section>
    			<?php comments_template(); ?>
    			<?php if( is_bread_display() == "exist") :?>
    			<?php if( is_mobile() ): ?>
    			<?php get_template_part('include/breadcrumb'); ?>
    			<?php endif; ?>
    			<?php endif; ?>
    			
    			<?php if( ! is_singular('cta') && is_single() ): ?>
    				<?php get_template_part('include/related-entries'); ?>
    			<?php endif; ?>
    			
    			<?php if( is_front_page() ) :?>
    				<?php if ( wp_isset_widets( 'home-bottom-widget',true ) ) : ?>
    					<div id="home-bottom-widget">
    					<?php dynamic_sidebar( 'home-bottom-widget' ); ?>
    					</div>
    				<?php endif; ?>
    			<?php endif; ?>
    			
    		</main>
    	</div>
    	<?php get_footer(); ?>
    

    single.phpやpage.phpなども同様に変更しています。

    また、以下も変更しました。
    ①日付関連のファイル(custom-time.php):マークアップを追記
    ②関連記事を表示しているpost-list-mag-parts.php:他のテーマをいろいろ見ましたが、関連記事がマークアップされているのは微妙と感じたので、投稿記事の場合はマークアップをしない形に変更

    一応、変更後のリッチリザルトテストの結果も貼っておきます。

    0_1630473781121_リッチリザルトテスト(変更後).png

    ※テストツール側にキャッシュが残っているのか、既にテストしたページは変更が反映されていなかったので、
     同じテンプレートを使用している別のページのテスト結果です。

    上記①②についても必要でしたら言っていただければと思います。