web-dev-qa-db-ja.com

Joomlaで重複したコンテンツ/ URLを処理するにはどうすればよいですか?

私は重大なSEOの問題を見つけただけで、当面は解決しましたが、私はそれがなぜ最初に起こったのか、そして間違いがあったのか、それともJoomla自体に関係があるのか​​を理解しようとしています。最初の問題:

Mozを使用してサイトをクロールすると、ホームページに4つの重複したコンテンツが表示され、予想外でした。たとえば、ホームページ http://www.foo.com の場合、次のような重複したコンテンツURLが表示されていました。

foo.com/2-uncategorised/1-offers (canonical = foo.com/2-uncategorised/1-offers)
foo.com/2-uncategorised/2-enquiry (canonical = foo.com/2-uncategorised/2-enquiry) 
foo.com/2-uncategorised/3-products (canonical = foo.com/2-uncategorised/3-products) 

そして、これらすべてのリンクは単にホームページのコンテンツをロードしていましたが、メタの詳細は記事からのものでした。これは明らかにJoomlaがリンクを自動作成していたことを示しており、4つのリンクでも同じことがわかりました。記事のリンクは次のとおりです。

index.php?option=com_content&view=article&id=1&catid=2&Itemid=1
index.php?option=com_content&view=article&id=2&catid=2&Itemid=1
index.php?option=com_content&view=article&id=3&catid=2&Itemid=1

Itemid = 1は、ホームページが読み込まれた理由を説明するホームページメニュー項目に対応しています。問題の再現を試みましたが、できませんでした。コンテンツを追加した人々によると、ここにそれらの記事とリンクを作成するときに彼らが行った手順があります:

  1. 記事を作成する
  2. コンテンツエディターの[記事]タブを使用して、他の記事へのリンクを追加します。
  3. 記事にメニュー項目を作成する

それで、明らかに何かが間違っているのではないかと思っていました。 100以上の記事があるので混乱していますが、これは約5つの記事でのみ発生しました。ありがとう。

11
sifu

この回答の目次:

  1. 同じアイテムIDのコンテンツ
  2. 複製コンテンツの作成方法/動的ページ/ URL
  3. SEOの視点
  4. Joomlaでの重複コンテンツの処理
  5. 参照とリンク

1.記事が同じitemidで表示される理由

まず第一に、これは重複したURLを取得する理由ではありません。他のアイテムIDが割り当てられていないため、記事はホームページのアイテムIDを使用しています。

これについてもっと読む:

そして、これも洞察に満ちているかもしれません:



2.「重複コンテンツ」の作成方法/動的ページ/ URL

これは、実際にはRLパラメータを使用してクエリ文字列を作成してフィールド値ペアの形式でページを生成する動的Webサイトの標準的な動作です。サーバー/アプリケーションはクエリを受信して​​処理し、関連するコンテンツをブラウザーに返します。

これをよりよく理解するには、Joomla WebサイトでSEF URLを無効にして、ページの非SEF URLを少し調べることをお勧めします。

例:

index.php?option = com_content&view = article&id = 3&catid = 9&Itemid = 101

上記のクエリを、表示されるフィールドと値のペアに分割します。

  • オプション= com_content
  • 表示=記事
  • id = 3
  • catid = 9
  • アイテムID = 101

これらはJoomlaが理解し、次のコンテンツを次のように返そうとするフィールド値です:

Com_contentコンポーネントでクエリを実行し、記事ビューを使用して、ID 101のメニュー項目を使用して、カテゴリーID 9のID 3のコンテンツ項目(記事)を表示します。


1ページに多数のURLバリエーション

ただし、さらに多くのフィールドと値の組み合わせで同じ記事を表示できます。

可能な組み合わせは次のとおりです:

  • index.php?option = com_content&view = article&id = 3&catid = 9
  • index.php?option = com_content&view = article&id = 3&Itemid = 101
  • index.php?option = com_content&view = article&id = 3&Itemid = 102
  • index.php?option = com_content&view = article&id = 3&Itemid = 103
  • index.php?option = com_content&view = article&id = 3
  • index.php?option = com_content&view = article&id = 3&lang = en
  • index.php?option = com_content&view = article&id = 3&catid = 9&Itemid = 101&lang = en

  • index.php?option = com_content&view = article&id = 3&catid = 9&Itemid = 101&lang = en&print = 1

  • index.php?option = com_content&view = article&id = 3&catid = 9&Itemid = 101&lang = en&tmpl = component

ご覧のとおり、上記のすべてはシステムから同じデータを要求しています。これはid = 3の記事です。これらは、さまざまな異なるURLを介して同じコンテンツ/ページにアクセスでき、場合によっては異なるレイアウトで表示されます。

* SEF URLsがJoomlaで有効になっている場合、上記は同じ記事/コンテンツに対して複数のSEF URLに変換される可能性があります。



3. SEOの視点

最近の検索エンジンGoogleは特に、この動作を認識しています。通常、彼らは最善を尽くして、インデックスを付け、検索結果にページに最適なURLを保持します。さらに、Googleは、これが原因で重複したコンテンツに実際の「罰則」がないことを明らかにしました。

ただし、同じコンテンツ/ページが2回以上インデックスに登録されている場合の主な問題は、ページランキングが失われている可能性があり、最高のSEOパフォーマンスが失われていることです。ページランキングが1ではなく複数のページに分割されるためです。

これを念頭に置いて、異なるURLが同じまたは異なるコンテンツを表示しているかどうかを推測する際に、検索エンジンにURLのインデックスを作成させるのではなく、これに対処するのが賢明です。
さらに、URLとSEがインデックスに登録する内容を制御すると、サイトのユーザーは1つの標準URLだけで同じページを見つけることができるため、全体としてより優れたユーザーエクスペリエンスを実現でき、より堅実な構造を生成できます。ウェブサイトとその管理。



4.重複するコンテンツを処理する方法

  • ページに正規URLを使用します。
    正規URLは、クロールしてインデックスに保持する必要があるページの適切なURLがどれであるかを検索エンジンに指示します。

  • INDEX/NOINDEX、FOLLOW/NOFOLLOWメタデータを使用します。ページでこのようなメタデータを使用すると、ページのコンテンツにインデックスを付けるかどうか、およびリンク先をたどるかどうかを検索エンジンに指示しますそれ。

  • 1リダイレクト/ htaccessを使用する
    他のすべてのURLをメインで必要なURLにリダイレクトできます。これはSEF Extensionsまたはhtaccessで実現できます。どちらも優れたパワーを提供しますが、htaccessはあらゆる種類のリダイレクトに正規表現を使用できること、またはmod_rewriteを使用して書き換えることができるため、柔軟性に優れています。 J Extensionsについては、必要に応じて通常 sh404SEF を使用します。

    更新: @Neil Robertsonがコメントで述べたように:1つの重要なリダイレクトは、Webサイトの非wwwバージョンからWebサイトのwwwバージョンへ、またはその逆です。これをwwwからwwwへのリダイレクト以外の.htaccessファイルに追加します。

        ### Redirect non-www to www
        RewriteCond %{HTTP_Host} !^www\. [NC]
        RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [R=301,L]
        ### Redirect non-www to www - END 
    
  • Googleウェブマスターツールの使用
    Googleウェブマスターツールには、クローラーが RLパラメーター でどのように動作するかを調整するオプションがあります。

  • サイトマップの使用
    サイトのURL構造を検索エンジンに送信します。

  • Robots.txtファイルの使用
    Googleおよびその他の主要なSEは、Robots.txtを尊重しています。特定のディレクトリ/ URLパスをクロールしないように指示できます。

上記のすべてのオプションを組み合わせて、目的の結果を得ることができます。

*どこでもそうであるように、Joomlaでは、優れた計画とコンテンツ編成が常により良い結果に到達するのに役立ちます。特にJoomlaでは、これにはクリーンなコンテンツの分類とメニュー項目の構造も含まれます。



5.参照とリンク

Joomla SEO拡張機能

通常Joomlaでは、これを効率的に処理したい場合、サードパーティのSEO-SEF拡張機能をインストールすることになります。



もっと読む:

15
FFrewin

同じコンテンツにアクセスする複数のメニュー項目がある場合、メニューマネージャーにあるシステムリンク/メニュー項目のエイリアスを使用します。これに関する古い記事があります。しかし、この方法は現在でも存在しています: https://magazine.joomla.org/issues/issue-apr-2016/item/2997-avoid-duplicate-content-with-a-menu-item-alias =

@ニール、私はwww以外のコンテンツとwwwのコンテンツが重複して読み取られることについて100%同意します。 wwwを非wwwに強制するコードは次のとおりです。それをhtaccessファイルに配置します。また、httpsセキュリティプロトコルも追加します。このコードは唯一の方法ではありませんが、多くのサイトで正常に使用しています。

RewriteCond %{HTTP_Host} ^www.yourwebsite.com [NC]
RewriteRule ^(.*)$ https://yourwebsite.com/$1 [L,R=301]
0
yaya