WordPressテーマSANGOの質問

カテゴリー重複について

アバター
にゃん

いつもお世話になっています。
ここでお聞きして良いのか見当違いだったら申し訳ありません。

サーチコンソール>カバレッジ>除外>を見てみると
「重複しています。ユーザーにより、正規ページとして選択されていません」

と表示されていて、
カテゴリーが重複してしまっている状況で、
何か対応方法はありますでしょうか?

重複内容:https://ドメイン/category/子カテゴリ

親カテゴリを作って現在は子カテゴリに移動しているのですが、
(https://ドメイン/category/親/子カテゴリ)
移動したあとも前のカテゴリは残ってしまうものなのでしょうか?
前のカテゴリ構造でURLを入力するとアクセスできる状態です。

お忙しいところ、申し訳ありませんが、教えていただけたら有難いです。

SEOを考えたカテゴリー設定
SEOを考えたカテゴリー設定をしよう
コメントへの回答
サルワカくん
サルワカくん
2019/03/03

子カテゴリーの記事一覧ページが重複しており、それをGoogleが認識してしまったということですね。
まず子カテゴリーの記事一覧ページがhttps://example.com/category/子カテゴリhttps://example.com/category/親カテゴリ/子カテゴリで2つ出来てしまうこと自体については、WordPressの仕様です。(ほぼ全てのテーマで再現すると思います)。

WordPressではデフォルトで投稿ページにcanonicalタグを出力しますが、それ以外のページでは出力しません。
「内部リンクが貼られるのは/親カテゴリ/子カテゴリの方だけでGoogleは基本的にこちらしか認識しないから重複しても良いよね」という考えかもしれません。
ただ、今回のようにカテゴリーの階層を後から変えたときにはSearch consoleで警告が出てしまいます。
サイトマップには片方しか載っていないため、放って置いてもSEOには影響しないと思います(警告もそのうち出てこなくなるのではないかと思います)。

とはいえ気持ち悪いと思うので、正規化しておく(これが評価されるページのURLだよと明記する)と良いと思います。
やることは簡単で、子テーマのfunctions.phpに以下を貼り付けるだけです。

//canonicalタグをカテゴリーページに追加
add_action( 'wp_head', 'add_canonical_to_category_pages' );
function add_canonical_to_category_pages() {
  if(is_category()) {
    echo '<link rel="canonical" href="'. get_category_link( get_query_var('cat') ) .'"/>';
  }
}
//end canonicalタグをカテゴリーページに追加

「テーマ側でデフォルトでやってくれれば良いじゃないか」と思われるかもしれませんが、WordPress本体で今後対応がなされる可能性があること(テーマのものと重複してしまう)、ほとんどのケースでは問題が生じないと思われること等から対応予定は現状ではありません。
よろしくお願いします。