お問い合わせ

SEO対策|ページ分割時の2ページ目以降のcanonicalタグの設定値に注意

SEO SIMPLE PACKを使っていて、canonicalタグの設定値を見ていたら、ahrefの記事で指摘されている非推奨な値になっていました。

この記事を書いた人

Wordpressのカスタマイズ歴10年のプロです。無料から有料までWordpressテーマの使用経験は豊富で、テーマのカスタマイズに関する知見も深い。Webサイト制作からカスタマイズまで仕事を請け負った実績は多数あり。

目次

ページ分割した2ページ目以降のcanonicalタグの値は1ページ目に正規化してはいけない

Mistake #4: Canonicalizing all paginated pages to the root page

Paginated pages should not be canonicalized to the first paginated page in the series. Instead, self-referencing canonicals should be used on all paginated pages.

Why? As Google’s John Mueller stated on Reddit, this is improper use the rel=canonical.

The main thing to avoid, since this post is about canonicalization, is to use the rel=canonical on page 2 pointing to page 1. Page 2 isn’t equivalent to page 1, so the rel=canonical like that would be incorrect.

John Mueller

John Mueller, Webmaster Trends Analyst Google

https://ahrefs.com/blog/canonical-tags/

ページ分割されている時の2ページ目以降のcanonicalタグの値をpage 1に正規化するのはNGだそうです。

理由は、page1とpage2の内容が違うから同じものと伝えるのは間違いということです。

SEO SIMPLE PACKでページ分割のcanonicalタグ値はどうなる?

SEO SIMPLE PACKは、タームアーカイブページのcanonicalタグの設定値をタームへのリンクを常に設定するようになっています。

つまり、2ページ目以降も常にpage1のURLが設定されています。

case is_tax() || is_tag() || is_category():
				$term = self::$obj;
				if ( ! isset( $term->term_id ) ) break;

				$meta_canonical = get_term_meta( $term->term_id, SSP_MetaBox::TERM_META_KEYS['canonical'], true );
				$canonical      = $meta_canonical ?: get_term_link( $term, $term->taxonomy );

				// get_term_link() がエラーだった場合
				if ( is_wp_error( $canonical ) ) {
					$canonical = '';
				}
				break;

canonicalタグの値はフックで書き換えられますが、ページ分割された値にするのも面倒です。

簡単な対応方法

他のSEOプラグインでもページ分割時のcanonicalタグに同様な問題

他のSEOプラグインでも同じ問題があったようで、その時の対応は意外なものでした。

ページ分割されている場合は、そもそも指定しないというのが正解だそうです。

add_filter( 'the_seo_framework_rel_canonical_output', function( $url, $id ) {

    if ( is_paged() )
        return '';

    return $url;
}, 10, 2 );

SEO SIMPLE PACKでページ分割のcanonicalタグ値を書き換える

このスニペットは、SEO SIMPLE PACKのAPIに変更して適用することができます。

2ページ目以降はcanonicalタグを出力しない

<?php
add_filter( 'ssp_output_canonical', function($canonical){
    if ( is_paged() )
        return '';

    return $canonical;
});

2ページ目以降はページを含むcanonicalタグを出力

<?php
add_filter( 'ssp_output_canonical', function($canonical){

	$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
	if($paged>1) $canonical = get_pagenum_link($paged);
	
    return $canonical;
});

2ページ目以降をnoindexは時代遅れと言われている

ページ分割されたページの2ページ目以降をnoindexにするのが一時期話題になりました。

しかし、今回のcanonicalタグの件と合わせて考えると分割されたページの内容はそれぞれ独立しているので、意味があるページであるということになります。

Yoast SEOプラグインでも、サブページのnoindex機能は削除されましたが、その背景は同じ理由によるものです。

なので、サブページはnoindex,followよりも、index,followの初期設定の方が良いと思いますし、canonicalタグはページ分割のページを指定する方が自然だと思います。

The “noindex subpages” feature is also gone

Since Google has gotten much better at working with paginated series, we’ve removed the feature that allows noindexing subpages of archives. According to Joost de Valk, the reasoning behind this is simple: “rel="next" and rel="prev" make sure Google sends people to the first page in a paginated series. There is one catch: sometimes it will send people to a specific page in the series, but that’s when that page is the best match for their query. This, therefore, should be better for the searcher. Noindexing all these pages leads to a lower amount of crawls for them (source), which subsequently leads to lower amounts of crawls for older articles, which is not a good idea on most sites.”

Googleはページ分割されたシリーズを扱うのがずっと上手になったので、アーカイブのサブページをnoindexにする機能を削除しました。Joost de Valk氏によると、その理由は単純です。「rel=”next “とrel=”prev “は、Googleがページ分割されたシリーズの最初のページに人々を送ることを確認するものです。しかし、そのページがクエリに最もマッチしている場合にのみ、特定のページが表示されます。したがって、これは検索者にとってより良いはずです。これらのページをすべてNoindex化すると、それら(ソース)のクロール量が少なくなり、その後、古い記事のクロール量が少なくなり、ほとんどのサイトでは良いアイデアとは言えません。”

https://yoast.com/yoast-seo-6-3/

ページ分割したコンテンツの場合

まず、長いコンテンツを複数のページに分割した場合、先ほどの公式ブログによると「すべて表示」ページを用意して、そこに向けたcanonicalタグを各ページに記述するといった方法が考えられます。(長いコンテンツページへの正規化)
分割した1ページ目にcanonicalを指定するわけではなく、全てまとまった長いコンテンツを用意して、そこに正規化するということです。

ブログのカテゴリページなどの場合

次に、ブログのトップページ含めディレクトリなどページャーによってページ分割されたコンテンツの場合、そもそも2ページ目、3ページ目で内容が重複しているわけではないので、トップへ正規化するのではなくパス指定は各ページとなります。(自己参照による正規化)

https://keywordfinder.jp/blog/seo/prev-next/

ページネーションした、2 ページ目、3ページ目のページは、それぞれ独立したページとして扱われます。
rel=”prev/next” によって、一連のページとして他のページと繋がっていると Google が認識したり、評価を統合したりことはありません。

https://www.suzukikenichi.com/blog/google-no-longer-supports-rel-prev-or-rel-next/

まとめ

アーカイブページの2ページ目以降はnoindex、nofollowというのが常識になっていてSEO的にはインデックスさせないのが常識になっています。

canonicalタグについてもページ分割されている場合のページでは、1ページ目に正規化するのではなく、各ページのURLを指定するか、そもそもcanonicalタグを出力しないというのが正解のようです。

そもそも、canonicalタグはGoogleが補助的に使うモノなので、あった方が良さそうだと考える人は多いと思いますが、少なくとも自分自身を指して正規化するためのcanonicalタグについては正直なくてもいいのかな?と思います。

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

目次