<h1>内のアンカータグまたはアンカータグ内の<h1>:どちらが良いですか?


52

<h1>ブログの投稿タイトルにタグを使用しようとしていますが、1つの問題に遭遇しました。タイトルはハイパーリンクされています。

事例1:

<h1> <a href=""> xyz </a> </h1>

ケース2:

<a href=""> <h1> xyz</h1> </a> 

SEOの点でどちらが良いですか?

回答:


57

HTML5を使用している場合は、1つを選択してください。それらは同等です。
HTML5はブロックレベルのリンクを許可しますが、ブロックレベルの要素は1つしかないため、それを行う特別な理由はありません。個人的には、ここでは実行しません。<h1>外部にタグがあると、ソースコードをスキャンしやすくなるからです。

他のもの(XHTML、HTML4など)と2番目のものはまったく間違っています。これは有効なコードではなく、検索の最適化に悪いレベルもあります[1つの違反が実際に何かにどの程度影響するかについての標準免責事項を挿入するなど]。


質問があります:<h1> hello <h1> // 5文字<h1> <a> hello </a> </ h1> // 5文字またはgoogleが12文字として読み取りますか?
hfarazm

11

SEOに関する限り、それらは同じです。(通常、ブロックレベル要素にはインライン要素が含まれ、その逆は含まれないため、最初の例を使用する必要がありますが、SEOには影響しません)。


3
実際、インライン要素に、HTML仕様に従ってブロック要素を含めることはできません
DisgruntledGoat

3
@DisgruntledGoatまったくそうではありません。Doctypeを考慮する必要があります。
Su

@Su 'どのDoctypeがインライン要素内のブロック要素を許可しますか?
不機嫌なヤギ

4
@DisgruntledGoat HTML5では、リンク(以前のインライン要素)がヘッダーや段落タグなどのブロック要素を囲むことができます。これはdoctypeが重要な場所です。HTML5を使用している場合は、必ずpatternを使用してください<a><h1></h1></a>。それ以外の場合は、の従来のパターンを使用し<h1><a></a></h1>ます。Googleは両方の方法に等しく注意を払いますが、正しいdoctype(HTML5)を持たない限り、一部のブラウザーは非標準のパターンでうまく動作しない場合があります。
ティナベルヴァンス

したがって、上記は名前付きアンカータグにも適用されます。そうではありませんか?<a name='intro'> <h1> Introduction </ h1> </a>以外の<h1> <a name='intro'> Introduction </a> </ h1>を使用することをお勧めします。
ジャヤパルチャンドラン

6

両方ともhtml5正しく、htmlはインライン要素のブロック要素を許可します。これはSEOにも影響を与えません。どちらの場合もテキストは見出しで折り返されるため、同じ値を保持します。

有効性の選択ではなく、ユーザーインターフェイスの設定です。

  • アンカーの周りにヘッダーをラップすると、大きなアンカーが作成され、テキストのみがクリック可能になります。
  • ヘッダーの周りにアンカーをラップすると、行全体がクリック可能になります。

jsFiddle.netで例を作成しました


4

ケース2では、href挿入がページの他の部分とずれていることがよくあります。しかし、それは私が私のマージンを設定する方法である可能性があり.cssます。したがって、ケース1を優先します。


1

ここで言うことは洞察に満ちています、ありがとうございました。もう1つノッチを取り上げましょう。方程式にmicrodataなどを追加します。

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

<h1 itemprop="name"><a href="http://goldenage.com/maths.html"
itemprop="url">Mathematics in The Muslim Golden Age</a></h1>

と競合する

<a href="http://goldenage.com/maths.html" itemprop="url"><h1
itemprop="name">Mathematics in The Muslim Golden Age</h1></a>

「パフォーマンスに関係なく」私にとっては、例2の方が理にかなっています。リンクは名前の一部ではないためです。違いは、innerHTMLとtextContent、DOMwiseの違いに要約されます。innerHTMLで見ると、アンカーが邪魔になります。textContentが方法である場合、タグは削除されます。したがって、innerHTMLまたはtextContentという質問もあります。

したがって、マイクロデータを考慮に入れて、外側にアンカーを置く方がより純粋です。

ベース:http : //thenewcode.com/617/How-To-Add-Microdata-To-Your-Blog



0

ブロックレベルのリンクは、SEOの目的で避ける必要があります-馬の口から:https : //www.seroundtable.com/block-level-links-google-seo-16369.html

更新:リンクの要点...

他の人が言ったように、どちらかのリンク構造を持つことは、リンクに適しています。ただし、SEOの目的のためには、アンカーテキストをきれいに保ち、Googleがアンカーをより適切に解釈し、適切な関連性を割り当てることができるようにする必要があります。

John Mueller(Googleのウェブマスタートレンドアナリスト)は次のように述べています...

その使用は私たち(Google)でうまくいくでしょう-私たちはまだリンクをピックアップし、それとアンカーとしてテキストを関連付けることができます。HTMLの解析には非常に柔軟性があるため、おそらくHTML4でも使用できます。とは言っても、アンカーテキストを明確にするほど、リンクのコンテキストを理解しやすくなるため、すべての内部リンクのアンカーとして必ずしも段落全体を使用するとは限りません。

TL; DR SEOの場合、ブロックレベルのリンクを使用しないでください。


回答を更新することを期待して、部分的に、両方の例が他の人が言ったように同等ではない理由を示します。
ロブ

-1

リンク内に追加のクリック可能な要素(画像など)を追加し、それでもhtml <5で検証することを目的とする場合は、javascriptを使用して両方の方法で実行できます。

<div onclick="if (this.getElementsByTagName('a')[0]) location=this.getElementsByTagName('a')[0].href;">
<img src="/foo" alt="" />
<h1>
<a href="#">
linked-heading
</a>
</h1>
</div>

それ以外の場合、単に:

<h1 onclick="if (this.getElementsByTagName('a')[0]) location=this.getElementsByTagName('a')[0].href;">
<a href="#">
linked-heading
</a>
</h1>

cursor:pointer親要素のcssに追加して、トリックを完成させます。


1
インラインjavascript?1999年に戻りましたか?;)
Martijn

なぜこれを行うのでしょうか?アンカーでヘッダーをラップするだけです。これは単に悪い習慣です
マルタイン

コメントを注意深く読んでください。答えはすぐそこに綴られています;)Html 4.01は実際には1999年と同じです。そのDoctypeの下で提案を検証しようとすると、次のエラーが表示されます。ここで要素「H1」を許可しない(...)このメッセージの考えられる原因の1つは、インライン要素内にブロックレベル要素(「<p>」や「<table>」など)を配置しようとしたことです( 「<a>」、「<span>」、「<font>」など)。もちろん、バリデーターの言うことを絶対に気にする必要はありません。したがって、コメントの最初にある「if」です。
ルシアンダビデスク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.