web-dev-qa-db-ja.com

メタタグがドキュメント本文に存在する場合はどうなりますか?

私は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ドキュメントの本文内にメタタグを配置するのはどれほど良いかと思います。どのような影響がありますか:

  1. サーチエンジン
  2. ブラウザ
54
Salman A

これはもちろんHTML4.01によるとinvalidです。 METAタグは HEAD内でのみ許可 (たとえばTITLEと同様)ですので、BODYに入れると、本質的に無効なマークアップが作成されます。

大まかなテストから、一部のブラウザ(Firefox 3.5やSafari 4など)は、ドキュメントツリーを作成するときにこれらの要素を実際にHEADに入れているようです。これはそれほど驚くことではありません。あらゆる種類の壊れたマークアップを解釈してみてください。

無効なマークアップを持つことは、めったに良いアイデアではありません。ブラウザーによる非標準の処理は、ピン留めが難しいさまざまなレンダリング(および動作)の不整合につながる可能性があります。ブラウザの推測に頼るのではなく、標準に従うことをお勧めします。

検索エンジンがこのようなタグスープにどのように反応するかはわかりませんが、実験するリスクを冒すことはありません:)おそらく、特定の情報についてHEADタグを解析し、BODY-または、これらのタグを悪意のあるギャンブルの試みと見なし、そのようなマークアップを含むブラックリストページと見なすこともできます。

要点—可能な限りこれを避けてください。

41
kangax

一番下の行は、可能な限りこれを避けることですDOCTYPEが禁止する場合。これはHTML5で間違いなく許可されており、microdataを使用する場合に非常に役立つと思います。例: http://schema.org/Event

29
Michael H

検索エンジンの最適化が目的の場合は、標準に従い、すべてのメタタグを<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>タグはすべて無視されました。
  • IE9標準モードのIE10もこのように動作します。
  • IE8標準モードのIE9はIE8と同じように動作し、本文に1 <title>タグを許可しました。

では、本文でメタタグを使用するとどうなりますか?概して、それらはうまく機能しているようです。メタタグはおそらく処理されます。したがって、メタタグを頭に入れられない場合は、あまり気にしません。

6
nullability

しませんそれはそれらのタグがどこに行くかではなく、検索エンジンはそれをスパムとみなすかもしれません。マスターページを再編成できる場合は、いつでもヘッドセクションにコンテンツプレースホルダーを追加できます。私はそれを些細なことでしました:

<asp:ContentPlaceHolder ID="HeadTags" runat="server" />

このようにして、ページのヘッドセクションに好きなコンテンツを追加できます。

<asp:Content ID="Whatever" ContentPlaceHolderID="HeadTags" runat="server" >

    <meta ... >

</asp:Content>
6
John Lockwood

検索エンジン向けの一部のメタタグは、ページの本文セクションの検索エンジンでは使用されません。

たとえば、Googleは、ページの本文ではrel = canonicalを尊重せず、ページのヘッドでのみ尊重すると述べています。 これはGoogleのMatt Cuttsの言うことです

BODYではrel = canonicalを許可していません(前述したように、人々はそれをスパムするので)。

3

私はあなたにそれを使うと言います。さまざまなWebページで本文内にメタタグを見つけましたが、それらは(Googleでの)トップ10検索の1つにあります。少なくとも私にとっては、このアプローチを使用した場合、searhエンジンは気にしないことを示しています。

他に方法がない場合は、先に進まなければなりません。

2
Parvinder Singh

メタタグは、HTMLの任意の場所に追加できます。

Webクローラーはそれらを読み取ることができますただし唯一の問題は、Facebookメッセンジャー、whatsappなどのようなアプリケーションでページを共有する必要がある場合です。

これらのアプリケーションは、head tag内に存在するmeta tagsのみを読み取ります。そのため、og:image、og:descriptionmeta tagのプロパティbody tag内に配置されている場合は読み取られないため、表示されませんそのようなアプリケーションで共有しながら。

SEOのみを目的とする場合は、メタタグをどこにでも追加できますが、内部にヘッドタグのみを追加することをお勧めします

0
Sitaram

私はいくつかのメタタグを本文に入れましたが、それはMicrodataテクノロジーのためです。 schema.orgの語彙に従ってオブジェクトを記述する必要がある情報を持つ通常の要素がない場合、このコンテンツでメタタグを設定します。代わりにdisplay:noneを使用して要素を設定することをお勧めします。私の知る限り、display:noneの方法は、これの代わりにGoogleの問題を引き起こす可能性があります。これはベストプラクティスではないことに同意しますが、ドキュメント(HTML5)を検証するとき、エラーなしで検証に合格します。また、私はいくつかのプロジェクトでこのトリックを行いましたが、いずれもグーグルや他の検索エンジンに問題はありません。 microdataでさえ、検索エンジンのランキングを改善します。コードにマイクロデータが含まれていないため、このメタタグを本文にどのように使用するのか正確にはわかりません。このアプローチに必要な場合は大丈夫だと思いますが、他の場合は、meta要素がheadセクションになければなりません!

0

WebサイトにMETA Descriptionタグを含めることは無効なマークアップですが、検索エンジンは定期的にタグを見つけられるため、大きな問題ではありません。私のウェブサイトはこれを行い、私のHTMLを見てください

http://cameras.specced.co.uk/compare/268/Canon_EOS_200D

METAはWebサイトBODYにありますが、Googleによってインデックスが付けられており、Googleの検索結果のテキストはクリックとしてページメタの説明が設定されています。

0
cousbrad