我应该在没有h1的情况下使用多个h1或多个h2吗?

时间:2012-01-04 05:01:41

标签: html seo html-heading

在显示导师列表的网页中,显示当前的HTML代码:

<div id="tutors">

 <h1>Tutors</h1>
 <div class="tutor">
  <h2>John</h2>
  <p>...</p>
 </div>

 <div class="tutor">
  <h2>Mary</h2>
  <p>...</p>
 </div>

 <div class="tutor">
  <h2>David</h2>
  <p>...</p>
 </div>

</div>

现在,出于某些原因,需要在页面中删除当前由h1包装的 Tutors 一词。我可以想到3个选择:

  1. 使用css隐藏它。
  2. 只需删除它,页面就会有h2 没有h1。
  3. 将其删除,并将所有h2更改为h1。
  4. 哪一个更合适?

6 个答案:

答案 0 :(得分:6)

#3:删除它,并将所有h2更改为h1。

  1. 对于搜索引擎优化,隐藏文本是不赞成的,因为它可以被认为是黑帽SEO。除非您要用带有文本的图像替换标题,“Tutors”。
  2. 除非事先有<h2>,否则您不能拥有<h1>

答案 1 :(得分:1)

根据页面的用例,其中任何三个听起来都像是有效的选项。也就是说,在考虑这个问题时,我想到了以下几点:

  • 搜索引擎优化:似乎有一些意见认为标签内容的选择可能会影响搜索引擎排名。
  • 无样式渲染:如果由于某种原因,页面可能在没有附带的css表的情况下进行渲染,请注意页面上默认渲染的效果以及您希望它如何执行
  • 请注意,HTML 5中有一些新的常见标记,例如“section”,它可能适合您的页面,并且在语义上比H标记更清晰

答案 2 :(得分:1)

这是一种偏好。你应该总是把表达和结构分开,所以我只想说出来,并把它用在那里。如果你隐藏它,这实际上不是表示,因为它从未见过。所以3是最合适的。

答案 3 :(得分:1)

没关系。

如果您使用jQuery来显示和隐藏它与SEO无关的东西。搜索引擎会看到您在所有实际意义上查看源时看到的内容。无论如何,你没有偷偷摸摸地做任何事情。

在堆栈溢出If I do everything on my page with Ajax, how can I do Search Engine Optimization?

上引用我的帖子

因为您正在做的是搜索引擎为了所有实际目的而查看它。

答案 4 :(得分:1)

这些选项都不是优秀的SEO。

  1. 这是冒险的,也是一种不好的做法。搜索引擎已经非常善于确定隐藏文本的时间,如果他们发现像<h1>这样的重度加权标记被隐藏,则会损害您的排名。
  2. 你永远不应该跳过标题层次结构中的一个步骤(没有<h3>的{​​{1}}没有等等)。此外,它们应始终按重要性降序排列。
  3. 每个页面应该只有一个<h2>,它应该是第一个标题标记。就SEO重量而言,它们大约为<h1>
  4. 为什么这个标题首先需要隐藏?这似乎是对页面内容的一个很好的描述。

答案 5 :(得分:1)

也许您应该考虑将这些项目格式化为定义列表,例如:

<div id="tutors">
    <h1>Tutors</h1>
    <div class="tutor">
        <h2>John</h2>
        <p>...</p>
    </div>
    <div class="tutor">
        <h2>Mary</h2>
        <p>...</p>
    </div>
    <div class="tutor">
        <h2>David</h2>
        <p>...</p>
    </div>
</div>

变为:

<dl title="Tutors">
    <dt>John</dt>
        <dd>...Description here...</dd>
    <dt>Mary</dt>
        <dd>...Description here...</dd>
    <dt>David</dt>
        <dd>...Description here...</dd>
</dl>

然后将CSS类和样式应用于元素,以便为有视力的用户美化它。只是一个想法。