想想看,XHTML1.1规范和扩展的HTML5(假设)...好吧,标记的设计使得除非另有说明,否则"顺序"不应该重要。
显然,Body 标签中的所有内容都是以特定的方式排序的,以便浏览器渲染引擎解释,但 HEAD 和 BODY 标签本身在概念上与渲染顺序无关(尽管它们的名称,并且除了 HEAD 中的包含;如果一个包含依赖于另一个包含,显然必须首先加载),因此遵循与任何标记语言相同的规则。
将 HEAD 标签块扔到BODY 标签块下方是有效的(至少在基于 WebKit 的浏览器中是这样),但到目前为止我所能做的就是测试 te Title 标签是否正常工作。这不是一个完全有利的测试,但是当我在手机上写这篇文章时,我没有时间
进一步思考。我想知道这样做会如何影响 SEO,更糟糕的是:加载通常在 HEAD 中处理的脚本和 CSS 文件。 我知道最近有一种做法,脚本文件的外部加载发生在标记的底部或附近,以延迟页面准备就绪时的加载,这会有什么不同吗?
基本上我在问,拥有一个HEAD块位于BODY块下方的网站的*影响*是什么?
<html>
<body>
Test
</body>
<head>
<title>Test</title>
<script src="test.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="test.css" />
</head>
</html>
它只会对SEO产生负面影响,如果有的话。
首先,您的提案会导致不正确的 HTML。HTML4.01 DTD严格定义了HTML文档的结构,要求<head>
在<body>
之前成为:
<!ENTITY % html.content "HEAD, BODY">
(如果顺序无关紧要,那么它将<!ENTITY % html.content "(HEAD|BODY)+">
其次,我敢打赌,大多数蜘蛛会尽快寻找<head>
元素,如果它在<body>
元素之前找不到一个,那么它可能会打折你的文档,如果不是完全忽略它的话。我怀疑大多数蜘蛛会忽略<body>
之后遇到的任何<head>
元素。
第三,它破坏了用户体验。有时页面可能需要一段时间才能加载,但浏览器会在下载时解析 HTML。一旦它看到<title>
它就会将其显示给用户,以便用户知道页面至少部分加载(即使它尚未呈现)。如果没有此功能,如果浏览器选项卡/窗口加载速度太慢,您的用户可能会出于沮丧而关闭浏览器选项卡/窗口,因为他们会认为该网站完全没有响应。
有趣的问题,但我坚信 HTML 结构与人体解剖学(头-身-脚)非常相似,如果它的结构不正确,会发生什么以及它的外观?看起来很丑,很难识别特定的人,这里的浏览器根据通用结构(如头-正文-页脚)行事,所以这些是我们需要遵循的几个预定义结构以获得最佳结果。
关于SEO,在这种情况下,场外SEO工作,我们如何遵循结构,当然它会影响谷歌蜘蛛和更多事情。