68

私は ASP アプリケーションに取り組んでおり、コード、テンプレート、およびファイルは、body タグ以外を変更できないように編成されています。だから私は本文の中にメタタグを挿入することを考えています - 次のように:

<!-- 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 ドキュメントの body 内にメタ タグを配置するのがどれほど良いか疑問に思っています。どのように影響しますか:

  1. サーチエンジン
  2. ブラウザ
4

9 に答える 9

51

もちろん、これはHTML4.01 では無効です。META タグはHEAD (TITLE など) 内でのみ使用できるため、BODY に挿入すると、本質的に無効なマークアップが作成されます。

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

無効なマークアップを使用することは、ほとんど良い考えではありません。ブラウザーによる非標準の処理は、ピン留めが難しいさまざまなレンダリング (および動作) の不一致につながる可能性があります。ブラウザーの推測に頼るのではなく、標準に従うのが最善です。

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

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

于 2009-09-19T06:11:39.630 に答える
32

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

于 2011-10-04T08:36:53.543 に答える
9

目的が検索エンジンの最適化である場合は、標準に従い、すべてのメタ タグを<head>. ただし、ブラウザの動作に関する限り、<meta>タグを配置して<body>も機能します。<meta http-equiv="refresh"/>複数のタグと<title>タグを使用して、標準に準拠したドキュメントでこれをテストすることにしました。

私のテストの結果:

Firefox 18、Firefox 3.6、Firefox モバイル、Chrome 24、Chrome for Mobile、Opera 12、IE6、IE8、IE10:

  • 本文のすべての<meta>タグが処理されました。
  • ドキュメントの最初の<title>タグは、本文にある場合でも処理されました。後続<title>のタグは無視されました。
  • 最も早いメタ リフレッシュ ディレクティブが有効になり、両方が処理されたことを意味します。

IE9:

  • 上記と同じですが、本文のすべての<title>タグが無視されました。
  • IE9 標準モードの IE10 もこのように動作します。
  • IE8 標準モードの IE9 は IE8 と同じように動作<title>し、本文に 1 つのタグを許可します。

では、本文でメタ タグを使用するとどうなるでしょうか。全体として、それらはうまく機能しているようです。メタタグはおそらく処理されるので、頭に入れなくてもあまり気にしません。

于 2013-01-24T17:01:21.547 に答える
6

私はそれをしません。それはそれらのタグが行く場所ではなく、検索エンジンはそれをスパムと見なす可能性があります. マスター ページを再編成できる場合は、コンテンツ プレースホルダーを head セクションにいつでも追加できます。私はそれを簡単にしました:

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

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

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

    <meta ... >

</asp:Content>
于 2009-09-19T06:03:49.880 に答える
3

私はあなたがそれを使うと言うでしょう。さまざまなウェブページの本文内にメタタグが見つかりました。これらは(Googleで)上位10件の検索の1つに含まれています。少なくとも私には、このアプローチを使用したかどうかをsearhエンジンが気にしないことを示しています。

他に方法がない場合は、先に進む必要があります。

于 2013-01-05T10:29:50.357 に答える
3

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

たとえば、Google は、ページの本文では rel=canonical を尊重せず、ページの先頭でのみ尊重すると述べています。 Google の Matt Cutts 氏は次のように述べています

BODY で rel=canonical を使用することはできません (前述したように、人々はスパムを送信するため)、

于 2013-03-19T23:56:47.173 に答える
0

本文にいくつかのメタ タグを入れましたが、これは Microdata テクノロジによるものです。schema.org の語彙に従ってオブジェクトを記述する必要があるという情報を含む通常の要素がない場合は、このコンテンツでメタ タグを設定します。代わりに、display:none で要素を設定するために、そのようにすることを好みます。私の知る限り、display:none を使用すると、これよりも多くの Google の問題が発生する可能性があります。ベスト プラクティスではないことに同意しますが、ドキュメント (HTML5) を検証すると、エラーなしで検証に合格します。また、私はいくつかのプロジェクトでこのトリックを実行しましたが、Google や他の検索エンジンで問題が発生したプロジェクトはありません。マイクロデータでさえ、検索エンジンのランキングを向上させます。コードにマイクロデータが表示されていないため、このメタ タグをボディに挿入して何をしたいのか正確にはわかりません。

于 2013-06-21T09:44:15.610 に答える