web-dev-qa-db-ja.com

<meta name = "fragment" content = "!">を含めると、ハッシュバングのあるページに有害ですか?

Googleはこのメタタグについて次のように述べています。

以下の重要な制限が適用されます。

  1. メタタグは、ハッシュフラグメントのないページにのみ表示されます。
  2. 「!」のみコンテンツフィールドに表示される場合があります。
  3. メタタグはドキュメントの先頭に配置する必要があります。

出典: https://developers.google.com/webmasters/ajax-crawling/docs/specification?hl=fr-FR

私はそれがハッシュバンを含んでいないないページでのみ必要であることに気づいていますが、それでもスナップショットで提供する必要があります。しかし、それは通常、単なるホームページです。

私たちが持っているとしましょう:

www.foo.com

www.foo.com/#!/jobs

2つ目は次のようにフェッチされます。

www.foo.com?_escaped_fragment_=/jobs

ちょうどハッシュバンのため。

ただし、ルートページにはハッシュバングがないため、この特別なメタタグを先頭に含める必要があります。

<meta name="fragment" content="!">

しかし、私のすべての単一ページアプリケーションは同じ<head>これまでのところ、doにハッシュバングが含まれている他のすべてのページでメタタグを保持するのは実際に害があるのでしょうか。

実際に何が起こりますか?

26
Christoph

それは単なるオプトインではありませんか?つまり、ハッシュバングを含むページで使用するのは冗長です(有害ではありません)。!私の理解では、クローラーは、URIでハッシュバングを検出した場合、_escaped_fragment_-pageを自動的に探します。 URIにハッシュバングがない場合にのみ、メタタグを使用して_escaped_fragment_-parameterを追加するようにクローラーにアドバイスできます。これにより、パラメーターが設定されている場合に異なるコンテンツを提供できます。これが一部のブログスポットテーマの動作方法です(例 http://illegalcartoon.blogspot.de/ )。

私はあなたの質問を正しく理解しましたか?

更新:

AJAX _escaped_fragment_はGoogleによって廃止されました。これは関連するブログ投稿からの引用です:

現在、GooglebotによるJavaScriptファイルやCSSファイルのクロールをブロックしていない限り、通常、最新のブラウザのようにWebページをレンダリングして理解することができます。

こちらの記事全体をお読みください: https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html

Tl; dr:これの使用をやめてください!

7
Emanuel Kluge

google からのこの説明に基づいて、ページに<meta name="fragment" content="!">

ハッシュフラグメントのないページをインデックスに登録するには、ページのHTMLの先頭に特別なメタタグを含めます。重要:このソリューションは、Ajaxコンテンツを含むページにのみ使用してください。これを非Ajaxページに追加してもメリットはなく、サーバーとGoogleに余分な負荷がかかります。

このタグは、このURLの醜いバージョンをクロールする必要があることをクローラーに示します。上記の合意に従って、クローラは一時的にプリティURLを対応する醜いURLにマッピングします。つまり、www.example.comのページに配置すると、クローラーはこのURLを一時的にwww.example.com?_escaped_fragment_=にマッピングし、サーバーにこれを要求します。サーバーは、www.example.comに対応するHTMLスナップショットを返します。

したがって、サーバーがこのようなリクエストを受け取るとwww.example.com?_escaped_fragment_=なしでスナップショットを戻すことができますname="fragment" content="!"

3
Salvador Dali