我将这个问题分为几个部分,因为我认为这将使它变得更加
我的一些发现
几个网站似乎都假定了以下文档概述:
1. Programmer's Guide (https://www.dartlang.org/docs/)
1. Getting Started
2. Concepts
1. Libraries
2. Fundamental classes
etc.
我发现有趣的是,上面的示例未使用带有适当标题的
<nav>
元素。我喜欢大纲的简洁性,并且喜欢成为Google,我可以肯定地说他们知道自己在做什么。但是我很困惑,因为上面的大纲没有提到“ Dart” 。从语义上仅提及“ Dart”似乎是在主文档
<title>
元素“程序员指南| Dart:结构化Web应用程序”之内。遵循此原则的网站。 <h1>
的许多标题提供了完整的上下文(HTML5文档的各节和大纲): )。例如,下面的HTML5大纲是否与CSS,HTML5或C#相关联...仅附带文档大纲,谁知道呢!最糟糕的是,如果MDN包含2个主题相同(或非常相似)的标题“避免过时的做法”,其中一个是CSS指南的一部分,另一个是HTML指南的一部分... />在频谱的另一端,网站似乎使用主<body>
级别的标题表示产品名称(Foo)或主题容器(Foo用户指南)。然后,所有后续页面都使用<h2>
作为实际页面标题。问题
搜索引擎如何使用DOM和HTML5大纲来推断MDN网站上的网页上下文?
标记的正确方法是什么?以下HTML5页面,以便Google可以在适当的上下文中为该页面编制索引?这包括
<title>
,<header>
和<h1>
元素的用法。公司名称
产品名称
用户指南
入门
在Web浏览器中查看的HTML中最重要的标题,它应该代表整个网站的上下文(公司名称或产品名称),主题集合(用户指南)还是实际的主题(入门) )?
我的最佳猜测
1. Sections and Outlines of an HTML5 Document
1. Untitled Section (nav)
2. Untitled Section (nav)
3. Structure of a Document in HTML 4
4. Problems Solved by HTML5
领先于大纲: />
#1 楼
在广泛的网络搜索中,我发现了一个引文,觉得有用,并且怀疑将来这个问题的读者也会使用。使用
<h1>
作为顶层标题<h1>
是文档第一级标题的HTML元素:如果文档基本上是独立的,例如在日内瓦的“看与做的事情”,则顶部
如果它是集合的一部分,例如,关于宠物的页面集合中有关“狗”的部分,则顶层标题应具有一定的上下文;只需写
<h1>Dogs</h1>
即可在标题在任何情况下都可以使用的情况下:狗-您的宠物指南。提示/ Use_h1_for_Title 以上引用似乎表明文档级
<h1>
元素可以假定使用<title>
本身定义的当前页面的上下文。因此,如果有多个页面具有完全相同的<h1>
,那么这没关系... <title>Getting Started | Guide | Uber Product - Company Name</title>
<h1>Getting Started</h1>
<title>Getting Started | Guide | Other Uber Product - Company Name</title>
<h1>Getting Started</h1>
另请参见:
接受答案之前,我想等一下别人的想法。
评论
好的问题更新和后续答案。如果您认为这是正确的答案,也许其他人会听到,如果不接受您的答案。
– dan♦
2014年2月28日在23:16
#2 楼
我会质疑在标题中使用H1还是“产品名称”的任何标题级别。H1代表页面的标题,而不是产品,应用程序或站点。
出于可访问性和SEO的目的,每页上重复H1都是有害的。不幸的是,在这种情况下,没有语义HTML标记表示“站点标题”,因此唯一的选择是
<div>
或<p>
或什至<strong>
标记,以对其进行语义强调。 <main>
<header>
<div>Logo</div>
<div>Product name</div>
<nav>
<ul> ... </ul>
</nav>
</header>
<section>
<h1>Getting started</h1>
...content
</section>
</main>
#3 楼
没有一个正确的答案,有不同的选择。以下是一些选择,但是它们都有优点和缺点:
此选项或多或少您提出的一个标题,但标题更多,内容会去往何处,再加上徽标的概念,它比图像/文字要复杂得多,它具有所有相关元素,给人留下深刻的印象公司的个性,那何必节。再次。它不能是一个部分,而只能是一个div。
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Getting Started | User Guide | Product Name - Company Name</title>
</head>
<body>
<section>
<a id="logo" href="http://example.com">Company Name</a>
</section>
<nav>
<ul> ... </ul>
</nav>
<main>
<header>
<h1>Product Name</h1>
</header>
<p>...</p>
<header>
<h1>User Guide</h1>
<p>...</p>
</header>
<p>...</p>
</main>
</body>
</html>
下一个介绍了主要标签,以显示页面的相关部分。该标签在支持和将来方面仍是粗略的,但是它清楚地表明导航与产品或页面无关。
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Getting Started | User Guide | Product Name - Company Name</title>
</head>
<body>
<section>
<a id="logo" href="http://example.com">Company Name</a>
</section>
<nav>
<ul> ... </ul>
</nav>
<main>
<header>
<h1>Product Name</h1>
</header>
<section>
<header>
<h1>User Guide</h1>
<p>...</p>
</header>
<p>...</p>
</section>
</main>
</body>
</html>
下一个使用文章,因为大多数人倾向于使用那个。
我将使用类似下一个的东西,因为我是非常模块化的且面向块的,因此每个元素从数据库角度都是独立的,仅与相关的键相关。尽管我很可能会跳过这些部分标签。
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Getting Started | User Guide | Product Name - Company Name</title>
</head>
<body>
<article>
<a id="logo" href="http://example.com">Company Name</a>
<nav>
<ul> ... </ul>
</nav>
<main>
<header>
<h1>Product Name</h1>
</header>
<section>
<header>
<h1>User Guide</h1>
<p>...</p>
</header>
<p>...</p>
</section>
</main>
</article>
</body>
</html>
仍然有更多选择。
评论
它们对我来说看起来都过于复杂。
–马丁F
2014年5月5日,0:41
评论
我是否正确理解您是否在寻找文档,以及搜索引擎如何使用该大纲? (而不是与SEO无关的建议使用哪种标记)@unor我想了解MDN / Dart文档中使用的技术为何有效,以及我是否缺少任何关键知识。他们似乎依靠
Ubermachine用户指南
是不好的主意,在该页面上以入门
表示主题标题...还是大纲应该开始入门
和随附的如果有2个单独的产品,那么很可能会有2个用户指南包含其各自的“入门”主题。因此,我对MDN方法的部分关注以及为什么我想知道
我不会担心搜索引擎。如果您正在这个级别上考虑,那么您网站的其余部分在技术上可能会很好,并且对于搜索引擎来说足够好。请考虑您的用户。
您没有提及网址。这也是人类和机器人友好的重要机制。例如,当您的两个MDN示例
不一致时。上下文中,它们的两个URL都在页面标题之前包含/ web / guide / html /。