接下来我们探讨HTML方面的问题:
(一)HTML结构化单元
(二)内容突出和表格
(三)帧
(四)表单
HTML结构化单元
通常,HTML提供的结构化单元可以帮助搜索引擎从全局上了解文件内容,以及定位逻辑分区和重要部分,例如<h1>和<h2>,<b>标签等。如果在HTML代码中没有给出此类结构化单元,搜索引擎将完全根据自己的判断工作。
大多手工编写的网站在这方面做得很好,特别是在搜索引擎营销人员参与动作后。但是通常很多内容管理系统在这方面不尽如人意。所见即所得的网页制作软件一般不使用这类标签,而是使用style属性中内嵌的CSS来生成HTML。这些因素不利于针对搜索引擎的优化。请看下面这段代码:
<ol>
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
</ol>
虽然在当前运用的样式表下,屏幕上显示的内容完全相同,但上面这段代码比下面这段代码提供了更多的语义信息:
<img src='buller.gif'>Item1<br>
<img src='buller.gif'>Item2<br>
<img src='buller.gif'>Item3<br>
如果已经使用了所见即所得编辑器开发了WEB内容,那么最好通过手工编辑已生成的HTML代码来优化内容。当然,也可以选择直接创建HTML而不使用这种编辑器。在这里,将介绍另一种解决方案,即使用自定义标记语言来解决这个问题。
内容突出和表格
内容突出指的是物理上的深度,即该内容在HTML文档中的实际起始位置。由于搜索引擎对越靠近HTML文档顶端的内容越重视,所以要尽量避免在页面的初始内容中设置重复和不相关的内容。
通常的内容格式中,最没有必要设置在HTML文件顶端的是JavaScript代码。最好将位于HTML文档顶端的JavaScript代码移到底部,或者移到单独的文件中,因为JavaScript包含网络蜘蛛难以检索的大量脚本。可以使用下面的代码调用外部JavaScript文件:
<script src='my_script.js'></script>
注意:调用外部JavaScript文件时,不要忽略了</script>标签,否则浏览器不会执行该脚本。
这个问题的另一种常见的表现形式就是,由于很多基于表格的站点将导航单元置于网页左边,也会出现上述问题。因为以这种方式使用表格,将会把主要内容的物理位置向下推,从而导致页面在搜索引擎中的排名更加靠后。由于导航单元在文档中的物理位置很靠前,如果导航单元设置过多,还将导致搜索引擎将无法判断页面的主要内容:
提示:搜索引擎会检测页面上的重复单元,例如物理位置在主要内容之前的导航单元,然后尽可能多地忽略这些单元。现代搜索引擎不只看源文档中内容的物理位置,而是检查出内容实际显示出现的位置。尽管如此,避免出现导航单元带来的问题,总会带来好处。
要解决这个问题,有如下三种方法:
(一)使用纯CSS类替代表格进行排版。这样可以任意确定页面内容的顺序。
(二)在使用表格排版时,可以将导航单元放置在页面右边。
(三)使用表格技巧技术。该技术使用HTML手法在维持表格的出现顺序的同时,逆置表格单元在文档中的物理位置顺序。
这并不是说网页中完全不能出现表格。如果在网页中使用了表格,可以将其中一部分表格转换为CSS版本。由于表格一般占有很大一片覆盖区,所以要缩减HTML代码规模。最好从代码中的重复单元着手。
表格技巧说明
表格技巧使用2*2的表格,第一行第一个单元为空,第二个单元中将rowspan设置为2,接着将导航信息放入第二行的第一个单元。
以下是一个简单的HTML示例:
<table>
<tr>
<td valign=top>Navigation</td>
<td valign=top>Content</td>
</table>
此时,可以通过重写HTML代码,在不改变外观顺序的同时,将文档中的相关内容前置,代码如下所示:
<table>
<tr>
<td></td>
<td>Content</td>
</tr>
<tr>
<td>Navigation</td>
</tr>
</table>
通过这个方法,可以使文档中导航代码的物理位置在内容的物理位置之下,而且当代码载入浏览器时,导航仍会出现在页面左边。
帧
由于在使用帧时会出现很多问题,以致有很多设计者都对为什么要使用帧感到困惑。搜索引擎在搜索含有帧的网站时,会出现很多问题。当一个页面中包含与上下文相关的帧时,搜索引擎不能为该页面创建索引,只有单个帧页面才能被索引。但在经常用导航帧将这些帧相关起来,这样一来,即使一些单个帧页面被索引了,也有可能使得用户收到不带导航的孤立页面。对这个问题也有一个解决方法,然而此方法又会导致其他问题;noframes标签试图处理这个问题,但它只是个不可见的页上因素,并且被垃圾网站滥用。任何使用帧的网页都会存在上述问题,因此建议设计网页时不要使用帧。
Jacob Nielsen在1996年就提出了这个问题,并建议不要使用帧。10年过去了,仍然没有证据说明使用帧能够带来什么好处。而且与表格带来的问题不一样,帧的这些问题没有那么简单的解决方法。
使用表单
由于搜索引擎蜘蛛不提交任何表单,导致表单导航下的所有内容都会被蜘蛛忽视。蜘蛛不会填写表单,表单只能由下拉菜单、复选框和单选框三者的排列组合定义,但哪些组合能被蜘蛛提交并不可知。这种方法在实践中并不可用。
提示:也有报告称某些搜索引擎可以索引简单表单下的内容。例如,由一个下拉菜单组成的,可以指引用户进入一个特殊页面的表彰,就是一种可被检索的简单表彰,但是,不推荐依赖这种方法检索自己的表单页面内容。我们认为,如果不应该检索某种静音指向的内容,那么最好以明晰的排除机制排除该内容,例如使用robots.txt或者robots meta标签。
没有什么办法可以解决这个问题。但是也有一个绕过去的方法,只要将脚本配置为接受来自GET请求的参数,就可以在网站中的站点地图或者其他地方设置某些表单请求的URL。
如果表单提交它的值并创建动态URL的代码如下所示:
/search.php?category_id=1&color=red
那么同样的链接就可以放到站点地图,而蜘蛛可以检索到它。