Magentoの商品は複数のカテゴリに所属させることができます。
また、カテゴリ自体も2階層、3階層というように何階層にでも階層を作ることができます。

ですが、このように複雑なカテゴリ階層を持つサイトを構築すると、同じようなコンテンツがあちこちにできてしまいます。
昨今の検索エンジンは重複コンテンツについてきちんとチェックしてくるので、Magentoの設定を見直して対処しましょう。

重複コンテンツとは?

重複コンテンツとは、「同一サイトまたは他のサイト上に全く同じコンテンツ(あるいは内容が極めて類似していると検索エンジンに判断されるもの)が存在している」状態を指します。

昨今の検索エンジンは「コンテンツとして価値のあるページ」を重視するため、同じコンテンツが重複してインターネット上に存在することを良しとしません。ですから、できるかぎり重複コンテンツを避けることが望ましいと言われています。 

Magento上で重複コンテンツができやすい場所

Magento上で重複コンテンツがもっともできやすい場所は、商品ページです。
複数のカテゴリに商品を所属させている場合、カテゴリAとカテゴリBに同じ商品が登録されていると、

  • カテゴリA: http://www.example.com/categoryA/product.html
  • カテゴリB: http://www.example.com/categoryB/product.html 

というように同じ商品に対してカテゴリ名のついた異なるページができます。
これをそのまま放置しておくと、検索エンジンに重複コンテンツとみなされてしまい、場合によっては評価を下げられてしまいます。 

重複コンテンツを作らないためには

では、重複コンテンツを作らないためにはどうすればよいのか?
Magentoには標準で2つの設定項目が用意されています。
これらを使うことによって、重複コンテンツを防止することができます。 

Canonicalタグを定義してURLを正規化する

まず1つめは「Canonicalタグ」を定義することです。
Canonicalタグは、「<link rel="canonical" href="http://www.example.com/" />」のようにheadタグ内に記述するもので、ここに書かれたURLがそのページのURLとして正しいものである、と検索エンジンに通知します。
つまり、

  • カテゴリA: http://www.example.com/categoryA/product.html
  • カテゴリB: http://www.example.com/categoryB/product.html 

があった場合、Canonicalタグで、カテゴリAを指定すると、カテゴリBのURLはカテゴリAの別名という扱いになり、検索結果にはカテゴリAのURLが表示されるようになります。

Magentoでこの設定を行うには、管理画面の「システム>設定>カタログ」にアクセスし、「検索エンジン最適化」の項目を変更します。
以前にこの内容は「Magentoを検索エンジンに最適化するには」で解説しています。

 SEO設定

この設定項目の下から2つがCanonicalタグに関連する項目です。
標準状態では「No」になっていますが、ここはぜひ「Yes」にしておいてください。
これらの項目は、カテゴリページと商品ページにCanonicalタグを出力し、検索エンジンが重複コンテンツとみなさないように対処することができます。

カテゴリページにCanonicalタグが必要なのか?と思われる方は、カテゴリページでページ送りが起きる場合を考えてみていただければよいかと思います。カテゴリの1ページあたりの商品表示件数は設定で変更することができますが、所定の件数を超える場合は、2ページ目、3ページ目へのページ送りナビゲーションが表示されます。

もしCanonicalタグを使っていない場合、検索エンジンは2ページ目以降をインデックスしてしまい、重複コンテンツとみなしてしまう恐れがあります。
ですからカテゴリにもCanonicalタグが必要になるのです。 

商品ページURLからカテゴリパスを除去する

先ほどの画面イメージの中には、「商品URLにカテゴリパスを使用する」という設定項目があります。
この設定項目も通常は「Yes」になっています。

この項目が有効になっていると、商品ページにアクセスした際のURLが、

  • カテゴリA: http://www.example.com/categoryA/product.html
  • カテゴリB: http://www.example.com/categoryB/product.html 
  • カテゴリなし:http://www.example.com/product.html 

のように複数できてしまいます。これでは媒体に出稿する際や、検索エンジンにインデックスしてもらう際に不都合が出てきます。
なので、この設定は「No」にしておき、商品ページのURLにはカテゴリパスがつかないようにする必要があります。
こうすることで、サイト上の商品ページURLは常にユニークになるため、商品説明が重複しない限りにおいては、検索エンジン側から重複コンテンツだ、とみなされることはなくなります。

まとめ

Magentoで重複コンテンツを防ぐには、

  • システム設定でCanonicalタグを有効にする
  • 商品ページURLにカテゴリパスを使用しない

という2つの設定が重要です。
どちらも簡単に設定できる項目ですが、サイトをオープンしてから変更すると影響が大きいので、できれば構築時に設定しておくことが望ましいと言えます。