标题:锚文本放在标题里面或者标题放在锚文本里面,对SEO有影响吗?

95

我在制作例如WordPress博客等网页时,经常遇到这个(相当简单的)问题。应该将标题(也应该是链接)放在锚点<a>元素中,还是应该反过来?为什么呢?

<a href="foo">
    <h1>bar</h1>
</a>

(2):

<h1>
    <a href="foo">bar</a>
</h1>
我总是选择使用(1),因为这样做似乎更合理,可以将标题包裹在链接中。

这样做会对 SEO 产生影响吗? 它会反映在 SEO 排名上吗?


3
你要找的是这个Pro Webmasters上的问题:在h1标签内部使用锚点标记还是在锚点标记内部使用h1标签,哪种更好? - John Conde
可能是重复的问题:哪个更正确:<h1><a>...</a></h1> 或者 <a><h1>...</h1></a>?(https://dev59.com/ymw05IYBdhLWcg3wy012) - mhrabiee
2
我投票关闭此问题,因为虽然在提问时这是相关的,但非编程SEO问题不再是此处的相关话题,应该在[webmasters.se]上提问。具体而言,之前链接的锚标签内<h1>或<h1>内锚标签:哪个更好?在那里回答了这个问题。 - dbc
3个回答

88

HTML5 之前:
锚点必须位于标题内部,您不能在锚点中放置块级元素,如果这样做,大多数浏览器将无法完全可靠地呈现它。

在 HTML5 中:
没有关系,使用最符合语义的任何一个即可。很可能是第一个选项。

请记住,如果您的文档使用 HTML4 DTD,则无法验证并且可能不会正确呈现,因为它使用旧规则,在锚点中不能包含块级元素。只能在 HTML5 中使用第一种选项。XHTML 等同于 HTML4,但我对 XHTML1.1 不是百分之百确定(可以试试看是否有效)。


8
如果您正在使用HTML 4.01 DTD(不确定过渡期,但肯定是严格的),则锚元素必须出现在标题元素内。如果您不知道自己使用哪个DTD,请检查您的文档类型声明(假设您有一个,这样您的代码才被认为是有效的)。HTML5文档类型声明如下:
<!DOCTYPE HTML>

4.01文档类型声明如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

如果你要使用4.01版本,我建议你熟悉DTD本身,它会回答所有这种类型的问题。


-4

第一个对于SEO来说是最好的,因为谷歌可以很容易地索引它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接