web-dev-qa-db-ja.com

検索エンジンは、表示されないHTMLからのリッチスニペットデータをインデックス化しますか?

リッチスニペット(パンくずなど)にデータを追加したいのですが、この情報はページに表示されません(たとえば、デザイナーがまだスケッチを準備していないため)

このデータにインデックスを付けるように検索エンジンに指示する方法はありますか?

3
Dan

私は100%のケースで機能する2つの手法(Google、Yahoo、Bing、Yandexのテスト済み)をお勧めします。

最初-メタタグ:

<meta itemprop="xxx" content="yyy">

-position:absolutez-index、負のマージンなどを使用して非表示にします:

<span itemprop="xxx" style="position:absolute;top:-20000px"> yyy </span>

2番目はより複雑ですが、いくつかの階層データ(多くのノードを含む)を配置する場合に機能します

2番目の方法は、Googleや他の企業との黒のSEOに適しています。本当に2014年にはこれを期待していませんでした。

1
Dan

Googleは、ページ上でユーザーに表示されないリッチスニペットデータを使用しません。 ヘルプページ から:

一般的に、Googleは、人間のユーザーには見えないリッチスニペットのコンテンツを表示しません。 display:none、value-title、cssなどの手法を使用して、リッチスニペット用にマークアップしたコンテンツを非表示にしないでください。 Googleは、人間のユーザーに表示されないコンテンツを無視するため、訪問者がWebページに表示するテキストをマークアップする必要があります。

編集:Googleはこのポリシーを多少緩和したようです。彼らは、マークアップされたデータをユーザーから隠すべきではないと言いますが、マークアップをHTMLに表示されるテキストに適用できない場合を考慮しています。彼らのガイドラインは今言っています:

マークアップを使用して、ユーザーに表示されないコンテンツをどのような形式でも非表示にしないでください。誤解を招く、または欺de的な検索エクスペリエンスが作成される可能性があります。たとえば、JSON-LDマークアップがパフォーマーを記述する場合、HTMLボディは同じパフォーマーを記述する必要があります。

Googleは、ユーザーに表示されているとは思わないデータを引き続き無視する可能性があります。マークアップされたデータにGoogleが注意を払うようにする最良の方法は、ユーザーに表示されるデータをマークアップすることです。 Googleがあなたがこれについてだまされていると感じた場合、彼らはGoogleのランキングであなたのサイトを罰するかもしれません。

3

JSON-LD

物事を行う別の方法です。ボーナスは、HTMLを汚染しないということです。例:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Restaurant",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Sunnyvale",
    "addressRegion": "CA",
    "postalCode": "94086",
    "streetAddress": "1901 Lemur Ave"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4",
    "reviewCount": "250"
  },
  "name": "GreatFood",
  "openingHours": [
    "Mo-Sa 11:00-14:30",
    "Mo-Th 17:00-21:30",
    "Fr-Sa 17:00-22:00"
  ],
  "priceRange": "$$",
  "servesCuisine": [
    "Middle Eastern",
    "Mediterranean"
  ],
  "telephone": "(408) 714-1489",
  "url": "http://www.dishdash.com"
}
</script>
1
Dan