转到正文

站保姆

专业承接网站日常维护服务

存档

标签: 错误

 自定义404错误页面是提供用户体验的很好的做法,但在应用过程中往往并未注意到对搜索引擎的影响,譬如:错误的服务器端配置导致返回“200”状态码或自定义404错误页面使用Meta Refresh导致返回“302”状态码。正确设置的自定义404错误页面,不仅应当能够正确地显示,同时,应该返回“404”错误代码,而不是“200”或“302”。虽然对访问的用户而言,HTTP状态码究竟是“404”还是“200”来说并没有什么区别,但对搜索引擎而言,这则是相当重要的。

  (一)自定义404错误页返回“200”状态码

  当搜索引擎蜘蛛在请求某个URL时得到“404”状态回应时,即知道该URL已经失效,便不再索引该网页,并向数据中心反馈将该URL表示的网页从索引数据库中删除,当然,删除过程有可能需要很长时间,而当搜索引擎得到“200”状态回应时,则会认为该url是有效的,便会去索引,并会将其收录到索引数据库,这样的结果便是这两个不同的url具有完全相同的内容:自定义404错误页面的内容,这会导致出现复制网页问题。对搜索引擎而言,特别是Google,不但很难获得信任指数TrustRank,也会大大降低Google对网站质量的评定。(为什么会出现返回“200”状态码的情况?请参看下面内容“自定义404错误页面的基本原则”)

  我一直在使用Google Sitemap,当我们提交XML格式网站地图文件时,Google会验证我们的身份以确保是网站合法的管理者。验证方式有两种:上传指定名称的html页到网站根目录或者在网页meta区域添加一个标识身份的meta标签。我通常是使用上传html网页的方式,但Google却提示我网站根目录下找不到这个网页(实际上我已上传,并且通过浏览器可以访问),这是一个很可怕的问题。

  (二)自定义404错误页使用Meta Refresh返回“302”状态码

  常常看到许多网站的自定义404错误页面采取类似这样的形式:首先显示一段错误信息,然后,通过Meta Refresh将页面跳转到网站首页、网页地图或其他类似页。根据具体实现方式不同,这类404页面可能返回“200”状态码,也可能返回“302”,但不论哪种,从SEO技术角度看,均不是一种合适的选择。

  HTTP404错误对SEO有什么影响吗

  对“200”状态的情况我们上面已经谈过,那么,当404页面返回“302”时,搜索引擎会怎么对待呢?从理论上说,对“302”错误,搜索引擎认为该网页是存在的,只不过临时改变了地址,仍然会索引收录该页,这样,同样会出现类似于“200”状态码时的重复文本问题;其次,以google为代表的主流搜索引擎对302重定向的适用范围要求越来越严格,这类不当使用302重定向的情况存在很大的风险。

  确保自定义404错误页面能够返回“404”状态码

  在自定义404错误页面设置完毕后,一定要检查一下其是不是能够正确地返回“404”状态码。可以使用Server Header检查工具,输入一个不存在网页的url,查看一下HTTP Header的返回情况,确信其返回的是“404 Not found”。

  逆向思维在中国已经不是什么新鲜事了,但在网络上用的并不多,因为网络这东西传播的速度太快了,人们更愿意用她主张些主流、大众的东西,也有不尽其然的,偶尔冒出些瞅着别扭但是瞬间却有了人气的东西,但是现在还不多见。

  中国错网就是这样一个事物,她的思想其实就是一种逆向思维。按照人们的习惯,总喜欢把自己的行为过错或者其他过错隐藏起来,被人看见的越少就越好。错网的创始人魏钰说:“我这个网站就是采取了逆向思维模式,目的就是帮助人们发现错误、分享错误、解决错误、避免错误。”—目前所提供的是一个错误交流平台,据创始人魏钰透漏,他们正在加紧实施下一步战略计划—-做一个强大的错误数据库,提供商业上的错误服务!

  错网成立3个月以来,共搜集了来自各大新闻媒体以及门户网站大大小小4000多个错误事件,正是他们冒着“逆”的大态势坚持下来,才建立了这么一个“错误大百科”,这倒更符合Web2.0的精神,也就是WIKI精神,即用户通过共同合作,对总数据库进行修正、添加、删减而建设成一个大百科全书。

  对于这样一个敢于冲在网络最前沿的网站,我们应当投以鼓励与关注的目光,因为我们的网络世界需要这样的勇敢者,正是他们的努力,才促进了整个大网络多样化和个性化的形成。所以,他们的存在是很有意义的。

  魏钰表示:“我们现在虽然有困难,但是这将是暂时的。因为我们知道,我们现在所做的,是对人们传统观念的改变,这本身就是个艰巨的事业,而且光靠我们这个网站是远远不够的,我们需要更多的人敢于承认错误、展示错误。” 站

  欢迎大家前来指点交流:

  http://www.jouyi.cn (主站)

  http://www.jouyi.cn/bbs (论坛频道)

  站长交流QQ:534672051

  昨天本站(http://www.tangzhehao.com.cn)从XHTML1.0有121个错误和CSS近10个错误,本人用了近两个小时,将所有错误搞定。积累技巧如下,与大家分享讨论。为了让大家印象深刻,我们采用边做题,边总结的方法。

W3C XHTML 1.0 国际标准:

  第一题:在 <div class=tzh>I am TZH!</div> 这段语句中有什么错误?
1. 标点符号问题。这其实也是大家最容易忽视的问题,其实就是小小的两个引号,就造成了这个错误。虽然很多浏览器在不加引号的情况下仍然能正确识别渲染。但是这样想要通过严格的W3C XHTML国际标准是不可能的,请大家记住等号后面一定要接引号。正确写法:<div class="tzh">I am TZH!</div>

 第二题:在 <SPAN class="tzh">TZH is me!</SPAN> 这段语句中有什么错误?
2. 大小写注意。这和第一个问题一样,都是特别容易忽视的细节问题。在W3C标准中是绝对不允许大写的,其中我仍记得我在检测一段javascript代码的时候,由于为了让自己一目了然写出的onLoad也被判断成了错误,原因就是L不能大写。正确写法:<span class="tzh">TZH is me!</span>

 第三题:在 <p>I am TZH!</p><br><p>TZH is me!</p> 这段语句中有什么错误?
3. <br />标签问题。对于强制换行标签<br />来说,很多新手都分不清它和<br>的区别,甚至在FCKeditor编辑器中有时都会时不时冒出个<br>来充当<br />。虽然同样很多浏览器都能自动纠错,将<br>作为<br />识别。但最好的编辑方法还是推荐大家使用Dreamweaver进行编辑,当你按下Ctrl+Enter,就会自动写上一个<br />。正确写法: <p>I am TZH!</p><br /><p>TZH is me!</p>

 第四题:在 <h1>~tangzhehao~hey~</h1> 这段语句中有什么错误?
4. 注意标签结束后面接的标点符号,很多标签结束后都不能接特殊标点符号,比如这里的"~"波浪号,但你要问,那叫我怎么用呢?那就使用ISO Latin-1字符集(ISO Latin-1 Character Set),在这里,查找到“~”波浪号相对应的字符集十进制编码是~,然后就用这个十进制编码代替~波浪号,记住最后的分号不能丢。在ISO Latin-1字符集中以已命名实体(Named entity)最优先,十进制编码(Decimal code)其次,也就是说,一个符号在同时有十进制编码和已命名实体的时候,优先选用已命名实体而不使用十进制编码。
P.S.:ISO Latin-1字符集地址:http://www.tangzhehao.com.cn/css/z_iso.html

 第五题:在 <form id="54tzh"></form> 这段语句中有什么错误?
5. 注意id和class特殊情况。W3C XHTML1.0 标准中规定,在id或class中,第一个字符是不能是数字的,必须是字母。正确写法:<form id="tzh45"></form>

 第六题:在 <img src="logo.gif"> 这段语句中有什么错误?
6. <img>标签注意。W3C XHTML1.0 标准中规定,在<img>标签中,必须包括alt元素。正确写法:<img alt="Logo" src="logo.gif">

 第七题:在<script language="JavaScript"> 这段语句中有什么错误?
7. <script>标签注意。W3C XHTML1.0 标准中规定,在<img>标签中,必须包括type元素。正确写法:<script language="JavaScript" type=text/javascript>

 第八题:在<div><h1>I am TZH!</div></h1> 这段语句中有什么错误?
8. 注意标签开始结束顺序对应。正确写法:<div><h1>I am TZH!</h1></div>

9. 注意特殊套装。比如:<dl><dd><ul><li>等一些特殊标签,套装顺序中缺一不可。必须按照顺序将<dl><dd><ul><li>四个标签写完全。类似的还有许多。

10. 注意未打开标签。所谓未打开来自于W3C检测,这类错误显示的错误是 is not open,翻译过来也就是未打开的意思。如果按照中文的意思来理解就是有首无尾或者有尾无首。通常这种错误出现的原因都是因为有一段代码在修改的时候被删除,而没有顾及到相对较远的结束或者开始标签。

W3C CSS国际标准:
1. 少用偏门。类似break-word断行,z-index手动分层,还有像垂直对齐等等这些偏门CSS最好少用,因为不一定所有浏览器都支持,而且极难通过W3C检测。
2. center不是float的值。很多新手都会把center误认为是float的值,而偏偏不是如此。center只是text-align的值。
3. 对齐不能包括两个值。很多新手会在float或者text-align中填写两个值,比如:float:left top。这是不允许的,浏览器也无法识别。
4. 滚动条颜色最好不要自定义。很多浏览器不能正常识别自定义颜色的滚动条,况且很多自定义颜色都不能通过W3C。
5. 单独滚动条设置。现在经常使用overflow-x(横向滚动条)或者overflow-y(纵向滚动条),在设置这个的时候经常会发现并不是所有的客户端上都有效果,大家在设置的时候最好在body和html同时进行设置。然而这个CSS也不是CSS2.1支持的(CSS2.1支持overflow,同时定义横纵滚动条),直到CSS3才支持这种定义方式。尽量少用。
6. background和color颜色相同会受到警告。

在最后,如果你的站通过了W3C的检测之后,将获得检测通过W3C认证Logo,下图(左图为W3C XHTML 1.0通过,右图为W3C CSS通过):

Valid XHTML 1.0 TransitionalValid CSS! 

  暂时就是以上几点了,大家如果觉得还有什么可以互相交流,也可以联系我http://www.tangzhehao.com.cn

为什么要使用Web标准?


一些Web开发人员和Web设计师对使用Web标准持抵触态度。普遍的看法是它太难了,不管它是怎么运作,我使用的那些软件总会创建出一些不规范的代码。.


学习新的技术并放弃您所熟知的技术,这很容易引起情绪上的反感,并产生抵触的情绪。然而,如果您很理智的观察一下现在的形势,将会发现,通过学习和使用Web标准会得到许多好处。举几个例子:


更简易的开发与维护:使用更具有语义和结构化的HTML,将让您更加容易、快速的理解他人编写的代码。


与未来浏览器的兼容:当您使用已定义的标准和规范的代码,那么您这个向后兼容的文本就消除了不能被未来的浏览器识别的后患。


更快的网页下载、读取速度:更少的HTML代码带来的将是更小的文件和更快的下载速度。如今的浏览器当处于标准模式下将比它在以前的兼容模式下拥有更快的网页读取速度。


更好的可访问性:语义化的HTML(结构和表现相分离)将让使用浏览器以及不同的浏览设备的读者都能很容易的看到内容。


更高的搜索引擎排名:内容和表现的分离使内容成为了一个文本的主体。与语义化的标记结合会提高您在搜索引擎中的排名。


更好的适应性:一个用语义化标记的文档可以很好的适应于打印和其他的显示设备(像掌上电脑和智能电话),这一切仅仅是通过链接不同的CSS文件就可以完成。你同样可以仅仅通过编辑单独的一个文件就完成跨站点般的表现上的转换。


Web标准可以为网站的创建者节省时间与金钱,还可以为网站的浏览者提供一个更好的经历。此外,Web标准是未来的。如果你还没有使用We b标准,那么现在应该开始动手了,否则你会落伍的。


校验


校验是一个控制的过程,在这个过程中,文档必须遵守语言的规则。你可以通过对比,检查出文本中的拼写或语法错误。


规范是网页开发中的一个重要部分。许多很难被发现的错误可以在验证中发现。错误可能是一个微不足道的打字错误,也可能是严重的元素和属性的不规范错误。


不幸的是,许多人并不验证他们的文档。一些人或许根本不知道验证这回事,还有一些人想不起来去验证,甚至还有一些人故意的逃避验证。这种情况的出现,大部分的责任要归咎于Web浏览器的开发商。大多数的浏览器都会去尽全力的去解释不规范的HTML代码,并努力的去猜测作者的意图,以此来避免显示错误的信息。这种行为就导致了如今混乱代码的泛滥。这种标记的问题是,它带来了一些不可预测的结果,因为它依靠的是Web浏览器错误的处理。


没有任何原因不去验证您的HTML和CSS。相反,它还会给您带来许多好处。


理解校验显示的错误提示可能有一些困难。一个位于文档前面的错误可能会导致另外几个额外的错误。改了第一个错误后,通常你就会减少一定数量的错误了。下面这个网址,将有一些常见错误提示的说明: Common XHTML Validation Errors



确保你的代码是完全规范的,总是一件好事,但是当一些校验的错误很难避免时,就会有一些特殊的情况。其中最常见的的例子就是在一篇文档中嵌入Flash或者一些其他需要插件的内容。下面是关于这个问题的相关文章 Flash Satay: Embedding Flash While Supporting Standards和Embedding flash without <embed> .


 


 

  做SEO的,经常会碰到一些棘手问题。有人说SEo就是一把双刃剑。用得好,遵循搜索引擎规则,那么很可能得到好排名;反之,则会导致网站排名下降甚至会被K。世界上没有十全十美的道理。做SEO也是一样难免会有失误的时候!所以我应该尽量避免失误,杜绝错误。

  1 )选择错误的关键词

  几乎每一个SEO都努力围绕所选择的关键字来获得高排名。如www.jarlee.com,我们可以从keyword中看出主关键词是“网站推广”、“搜索引擎优化”、“SEO”。如果专注于错误的关键词则可能丢失流量。仔细研究哪些关键字和关键短语是市场需要的,然后相应的优化。使用关键字分析工具选择确切的关键字。

  2 )错误的网页标题

  第一种错误是标题没有用使用明确的关键字。另一种错误是,所有网页属于一个网站具有相同的标题,这是一个很大的错误。确定每个网页都应该有自己独特的名称。

  3 )没有使用标题标签

  标题标签- <h1> , <h2> , … , <hn> -是非常重要的标签。那么,一个网页上添加几个H标签好?H标签是强调网页要点。搜索引擎寻找重要的关键字在您的标题标记,以便随时使用它们强调的要点您的文字,务必H标签里带有关键词。但还要多嘴一句,不要过度使用关键字,否则搜索引擎很可能会将你的网站列入黑名单。这就是我们经常说得被K。

  4 )没有任何文字内容

  无论你有一个多么时髦的网站,如果没有足够的文字,整站全是一个FLASH,搜索引擎将永远不会了解你打算出售的是什么产品或服务。

  5 )错误的内容

  错误的内容指的是没有好内容或者不良内容,搜索引擎最忌讳这点了。这里包括“色情”“SF”等内容!就算有好的排名最后也会被K,导致昙花一现。

  6 )滥使用图形和动画

  图片和动画看起来很酷,但他们只是看起来很酷一次。这里只想提醒一点,当蜘蛛访问你的网站,蜘蛛不会在乎什么图片;他们只在乎你的文字内容。

  7 )链接的建设误区

  链接是一个非常强大的搜索引擎优化方法,但要得法。不分青红皂白导入和导出会让你的网站排名下降。尝试和一些权重较高的知名网站链接。注意一点:被认为是“垃圾链接” (色情,SF,诈骗,病毒等)请勿链接。

  因此,避免这些错误的SEO,再加上一点点原创文章,那么你将会看到你的网站排名在慢慢的提高。

辛苦了好多天,我们努力学习使用XHTML+CSS来重新设计我们的网站。那么我们如何知道自己制作的页面真的符合web标准?W3C和一些志愿者网站提供了在线校验程序,来帮助我们检查页面是否符合标准,并提供了修正错误的帮助信息。这些校验非常有用,是我调试页面第一步要做的事情。

1.XHTML校验


       校验方式:网址校验、文件上传校验


  校验成功,会显示\”This Page Is Valid XHTML 1.0 Transitional!\”,如图:



  校验失败,会显示更多校验选项和错误信息,如图:



  一般选择\”Show Source\”和\”Verbose Output\”可以帮助你找到错误代码所在行和错误原因。


XHTML校验常见错误原因对照表



  • No DOCTYPE Found! Falling Back to HTML 4.01 Transitional–未定义DOCTYPE。
  • No Character Encoding Found! Falling back to UTF-8.–未定义语言编码。
  • end tag for \”img\” omitted, but OMITTAG NO was specified–图片标签没有加\”/\”关闭。
  • an attribute value specification must be an attribute value literal unless SHORTTAG YES is specified–属性值必须加引号。
  • element \”DIV\” undefined—DIV标签不能用大写,要改成小写div。
  • required attribute \”alt\” not specified—图片需要加alt属性。
  • required attribute \”type\” not specified—JS或者CSS调用的标签漏了type属性。

  其中最最常见的错误就是标签的大小写问题了。通常这些错误都是关联的,比如忘记了一个</li>其他<li>标签都会报错,所以不要看到一堆的错误害怕,通常解决了一个错误,其他的错误也都     没有了。如果你的页面通过XHTML1.0校验,可以在页面上放置这么一个图标: 代码如下:

<p> <a href=\”http://validator.w3.org/check/referer\”><img src=\”http://www.w3.org/Icons/valid-xhtml10\” alt=\”Valid XHTML 1.0!\” height=\”31\” width=\”88\” /></a> </p>