私はASPアプリケーションに取り組んでおり、コード、テンプレート、およびファイルは、bodyタグ以外のものを変更できないように編成されています。したがって、metaタグを挿入することを考えています体内-このように:
<!-- FEW ASP INCLUDES -->
<html>
<head>
<!-- FALLBACK TITLE AND DESCRIPTION -->
<title>Default Title</title>
<meta name="description" content="Default Description">
</head>
<body>
<!-- SOME HTML MARKUP -->
<div class="dynamic-content">
<!-- InstanceBeginEditable name="dynamic-content" -->
<!-- THIS IS WHERE I CAN WRITE ASP CODE -->
<title><%= Page.Meta.GetTitle( yada, yada ) %></title>
<meta name="description" content="<%= Page.Meta.GetDescription( yada, yada ) %>">
<!-- InstanceEndEditable -->
</div>
<!-- SOME MORE HTML MARKUP -->
</body>
</html>
HTMLドキュメントの本文内にメタタグを配置するのはどれほど良いかと思います。どのような影響がありますか:
これはもちろんHTML4.01によるとinvalidです。 METAタグは HEAD内でのみ許可 (たとえばTITLEと同様)ですので、BODYに入れると、本質的に無効なマークアップが作成されます。
大まかなテストから、一部のブラウザ(Firefox 3.5やSafari 4など)は、ドキュメントツリーを作成するときにこれらの要素を実際にHEADに入れているようです。これはそれほど驚くことではありません。あらゆる種類の壊れたマークアップを解釈してみてください。
無効なマークアップを持つことは、めったに良いアイデアではありません。ブラウザーによる非標準の処理は、ピン留めが難しいさまざまなレンダリング(および動作)の不整合につながる可能性があります。ブラウザの推測に頼るのではなく、標準に従うことをお勧めします。
検索エンジンがこのようなタグスープにどのように反応するかはわかりませんが、実験するリスクを冒すことはありません:)おそらく、特定の情報についてHEADタグを解析し、BODY-または、これらのタグを悪意のあるギャンブルの試みと見なし、そのようなマークアップを含むブラックリストページと見なすこともできます。
要点—可能な限りこれを避けてください。
一番下の行は、可能な限りこれを避けることですDOCTYPEが禁止する場合。これはHTML5で間違いなく許可されており、microdataを使用する場合に非常に役立つと思います。例: http://schema.org/Event
検索エンジンの最適化が目的の場合は、標準に従い、すべてのメタタグを<head>
に配置することをお勧めします。ただし、ブラウザの動作に関する限り、<meta>
タグを<body>
に配置すると、引き続き機能します。それ以外の場合は標準に準拠したドキュメントで複数の<meta http-equiv="refresh"/>
タグと<title>
タグを使用してこれをテストすることにしました。
私のテストの結果:
Firefox 18、Firefox 3.6、Firefox Mobile、Chrome 24、Chrome for Mobile、Opera 12、IE6、IE8、 IE10:
<meta>
タグが処理されました。<title>
タグが処理されました。後続の<title>
タグは無視されました。IE9:
<title>
タグはすべて無視されました。<title>
タグを許可しました。では、本文でメタタグを使用するとどうなりますか?概して、それらはうまく機能しているようです。メタタグはおそらく処理されます。したがって、メタタグを頭に入れられない場合は、あまり気にしません。
しませんそれはそれらのタグがどこに行くかではなく、検索エンジンはそれをスパムとみなすかもしれません。マスターページを再編成できる場合は、いつでもヘッドセクションにコンテンツプレースホルダーを追加できます。私はそれを些細なことでしました:
<asp:ContentPlaceHolder ID="HeadTags" runat="server" />
このようにして、ページのヘッドセクションに好きなコンテンツを追加できます。
<asp:Content ID="Whatever" ContentPlaceHolderID="HeadTags" runat="server" >
<meta ... >
</asp:Content>
検索エンジン向けの一部のメタタグは、ページの本文セクションの検索エンジンでは使用されません。
たとえば、Googleは、ページの本文ではrel = canonicalを尊重せず、ページのヘッドでのみ尊重すると述べています。 これはGoogleのMatt Cuttsの言うことです :
BODYではrel = canonicalを許可していません(前述したように、人々はそれをスパムするので)。
私はあなたにそれを使うと言います。さまざまなWebページで本文内にメタタグを見つけましたが、それらは(Googleでの)トップ10検索の1つにあります。少なくとも私にとっては、このアプローチを使用した場合、searhエンジンは気にしないことを示しています。
他に方法がない場合は、先に進まなければなりません。
メタタグは、HTMLの任意の場所に追加できます。
Webクローラーはそれらを読み取ることができますただし唯一の問題は、Facebookメッセンジャー、whatsappなどのようなアプリケーションでページを共有する必要がある場合です。
これらのアプリケーションは、head tag内に存在するmeta tagsのみを読み取ります。そのため、og:image、og:descriptionmeta tagのプロパティbody tag内に配置されている場合は読み取られないため、表示されませんそのようなアプリケーションで共有しながら。
SEOのみを目的とする場合は、メタタグをどこにでも追加できますが、内部にヘッドタグのみを追加することをお勧めします
私はいくつかのメタタグを本文に入れましたが、それはMicrodataテクノロジーのためです。 schema.orgの語彙に従ってオブジェクトを記述する必要がある情報を持つ通常の要素がない場合、このコンテンツでメタタグを設定します。代わりにdisplay:noneを使用して要素を設定することをお勧めします。私の知る限り、display:noneの方法は、これの代わりにGoogleの問題を引き起こす可能性があります。これはベストプラクティスではないことに同意しますが、ドキュメント(HTML5)を検証するとき、エラーなしで検証に合格します。また、私はいくつかのプロジェクトでこのトリックを行いましたが、いずれもグーグルや他の検索エンジンに問題はありません。 microdataでさえ、検索エンジンのランキングを改善します。コードにマイクロデータが含まれていないため、このメタタグを本文にどのように使用するのか正確にはわかりません。このアプローチに必要な場合は大丈夫だと思いますが、他の場合は、meta要素がheadセクションになければなりません!
WebサイトにMETA Descriptionタグを含めることは無効なマークアップですが、検索エンジンは定期的にタグを見つけられるため、大きな問題ではありません。私のウェブサイトはこれを行い、私のHTMLを見てください
http://cameras.specced.co.uk/compare/268/Canon_EOS_200D
METAはWebサイトBODYにありますが、Googleによってインデックスが付けられており、Googleの検索結果のテキストはクリックとしてページメタの説明が設定されています。