网站静态化——伪静态&S+E+O

Posted Jackling

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网站静态化——伪静态&S+E+O相关的知识,希望对你有一定的参考价值。

什么是伪静态,伪静态作用



需要伪静态功能地方


考虑搜索引擎优化SEO,将动态网页通过服务器处理成静态页面,如www.w3cschool.cn/php?=php-json这样的动态网页处理成www.w3cschool.cn/php/php-json.html 这样格式静态页面,常见的论坛帖子页面,都是经过伪静态处理成静态页面格式html 页面。考虑网站所用的程序语言不易被发现,经过重写来伪静态来将动态网页的程序后缀变为html的静态页面格式。


伪静态的利与弊



我们应该选择伪静态还是真静态?


  • 使用真静态和假静态对SEO来说没有什么区别

  • 使用真静态可能将导致硬盘损坏并将影响论坛性能

  • 使用伪静态将占用一定量的CPU占有率,大量使用将导致CPU超负荷


针对SEO的静态化方案选择:

最重要的一点,如果我们要静态是为了SEO所以:


  • 使用真静态的方法可以直接排除了,因为无论怎么生成,对硬盘来说都是很伤的。

  • 既然真伪静态的效果一样,我们就可以选择伪静态了。

  • 但是伪静态大量使用会造成CPU超负荷。

  • 所以我们只要不大量使用就可以了。

既然静态只是给SEO看的,我们只需要伪静态给SEO就行了,不需要给用户使用。针对Discuz论坛,所以我们只要在专门提供给SEO爬的Archiver中使用伪静态就可以了。


关于伪静态和真静态的评论


真正的静态化和伪静态还是有本质的区别的。为浏览用户处理一个纯粹htm和一个调用多个数据的php在CPU的使用率方面明显前者少。记得原来有个人说html下载硬盘读写频繁,他这么说好像读取数据库不用读写磁盘似的,何况还有一大堆缓存的零散php 也是放在硬盘的,这些读取不用磁盘操作么?可笑。读取单个htm+图片Flash等附件就可以实现的目的,何苦要读数据库又要读php缓存文件又要重新整合数据输出再+图片Flash等附件这么大费周章呢?CMS首页不需要很多的互动的,论坛那一套不应该拿到这里来用,相反应该更多考虑的是:美观!兼容!信息的直观!性能!还有稳定!伪静态查考-Apache与IIS伪静态设置方法具体伪静态实现可以根据自己所用的语言写的网站去百度或谷歌搜索实现方法 。


SEO动态页面



动态页面和静态页面的 seo 优缺点



那么看似百利而无一害的伪静态页面是否就是最好的呢?结合动态页面和静态页面的优缺点对比看看。


动态页面

在服务器端运行的程序组件和网页都属于动态网页,根据用户的要求返回页面,交互性很好,但是存在着很大的安全隐患,动态网站页面的信息必须从数据库中读取, 每打开一个页面造成一次读取命令,如果人数过多会增加服务器的工作量,从而影响这个网站的运行速度,动态网站的变量链接很容易造成死循环,使蜘蛛深陷其中,所以对搜索引擎很不友好。


静态页面

静态页面实际存在于服务器内,无需经过编译就能直接加载到用户浏览器上显示出来,中间省略的脚本计算和读取数据库提高了访问的速度,缺点同样并存与优点之中,由于静态页面存放在服务器中药占据空间内存,可以想象如果某论坛有 10 万帖,每个帖的大小 100K ,如果全部作为静态页面存在于服务器中就要占据 10G 的大小,不包括存储计算中造成的空间浪费,所以相当消耗空间资源。


伪静态页面

那么伪静态页面是否就能结合动态页面和静态页面的优点,既能解决搜索引擎友好的问题,又能解决静态页面空间资源消耗大的问题几乎完美的存在,其实不然,浏览器访问伪静态页面时是通过正则判断,而这个分辨的过程由 cpu 完成,导致 cpu 使用率上升出现超负荷,影响网站的正常服务就是伪静态的最大弊病。


由此可以看出每种形式都是有长有短的,怎么合理的使用各种形式完全取决于站长对网站规模的计划和类型的定位。


伪静态还有的2点好处:1)防止某些黑客恶意攻击。有些大网站采用不同的技术开发不同功能的页面。而把拓展名改掉,让黑客无法确认此页面用的技术是什么,从而就无从下手。2) 方便访问者使用。访问者不是程序员,他们不明白什么是.jsp,.php.aspx,他们只知道URL。所以统一把拓展名拿掉,或者统一把拓展名换为html,htm,有利于用户的使用。用户可以知道现在在你网站的位置,如何通过输入URL到某一页面。


针对 seo 优化动态网页如何优化


动态生成的网页:

对于那些动态生成网页,我们这些实际的访问者可以通过肉眼看到。但对于大多数搜索引擎的蜘蛛程序却往往是不可见的,这也就是动态网页很难被搜索引擎的 SPIDER 检索的原因。因而,要想让你的动态网页能够出现在搜索引擎的搜索结果中,只要保证你的网站内容对搜索引擎是可见的,即搜索引擎的 Spider 程序能够看到你网站的内容就可以了 .


所谓动态网页一般指的是采用 ASP , PHP , ColdFusion , CGI 等程序动态生成的页面,该网页中的大部分内容来自与网站相连的数据库。在网络空间中并不存在这个页面,只有接到用户的访问要求后才生成并传输到用户的浏览器中。而且由于访问者能够实时得到他们想要的数据,动态网页往往容易给人留下深刻的印象。此外,动态网页还具有容易维护和更新 的优点。例如,对于一个新产品或价格的调整。网站管理员只要对数据库做一下简单的改动就可以了,根本不需要去修改每个单独的静态页面。


我们可以看出,从用户角度来考虑,动态网页确实非常棒。但如果在搜索引擎的角度来看,结论却不同了。


动态网页的问题所在 :

问题就出在这些动态网页在网络空间中并不是实际存在的,只有当用户在变量区中输入一个值以后它们才会生成 。而我们大家也都知道,搜索引擎的 Spider 再聪明,它也只是一个搜索程序,它们无法象真正的人那样选择变量并输入数值。亦可将查询编入主页上的一个链接中,使得该链接成为一个预先定义的网站目录的查询。用户可在一个搜索表格中键入查询条件来查询,通常动态脚本需要某些信息来返回页面内容,最常见的如 Cookie 数据, SessionID 或一个环境变量。但对搜索引擎的 Spider 程序来说,它们压根不可能知道去使用你的搜索功能,或者该问什么问题。就是因为如此, Spider 对网站的检索往往会在一个动态站点前不得不止步。此外,在动态页的 URL 中包含了问号 (?) 和百分号 (%) 。还有一些符号诸如 & , % , + 和 $ 等在一个动态页的 URL 中也经常能看到。这样的 URL 被称作“环境变量” (querystring) 。不过大多数 SPIDER 都无法解读符号“ ? ”后的字符 。很显然,由于这个 URL 并不实际存在,所以它们一无所获。因此,如果你的整个网站或网站上有大部分网页都是采用动态来生成的,为了使 SPIDER 易于读取你网站上的内容,你需要对网站做一定的修改。还有一些搜索引擎在对页面进行检索时往往也会拒绝对 cgi-bin 目录下的静态页面 ( 即被保存成静态页面的动态页 )URL 进行检索 。


搜索引擎为何不读取符号“ ? ”后的内容:

搜索引擎的 SPIDER 不愿意读取放在 cgi-bin 目录下的网页,或是 URL 中包含了符号“ ? ”的字符。其原因就在于,如果在 CGI 中提供了“无穷”数量的 URL ,那么 SPIDER 往往就会因为对这些“无穷”网页的检索而被牢牢套住,陷入死循环。这就是所谓的蜘蛛陷阱 (spidertraps) 。数据库程序对 SPIDER 亦有可能创建一个与此类似的情形。因而为避开可能的陷阱, Spider 对于那些带有符号“ ? ”的 URL 中的“ ? ”之后的字符一概不予读取。倘若 Spider 被你的服务器套住,不只是对 Spider 本身不妙, Spider 对你网站页面的重复访问请求也会导致你的服务器系统彻底瘫痪。


动态链接的静态化

动态链接的静态化:

  动态页面的链接是动态产生的,在返回页面内容之前,动态脚本需要一些信息,如 cookie data 、 session id 或字符串。动态页面是基于数据库驱动的,通过脚本语言动态产生的页面。动态网站中有模板,内容一般存放于数据库中。要浏览页面时,模板调用数据库中的内容,参数被添加到 URL 上 , 这种复合型 URL 告诉了模板要装载的具体内容。浏览者在动态网站中通过使用查询字符串发现信息,这种查询字符串被键入表单中或被预先编码在主页上的链接中。




搜索引擎友好的动态页面,修改 URLs ,参数越少越好,最好把页面静态化。


伪静态页面生成方法示例:

在文章列表中把文章的连接如/blog/articleInfo.do?userName=zy&&blogId=1&&articleId=1转换成blog/a/0101002526B90C548A833416.html这种URL,这样蜘蛛就可以进而爬进去看相应的内容了,因为文章列表中的每一篇文章都是不同的静态URL。


静态与伪静态的比较:

第一、速度,对于速度而说,静态页面比伪静态好,因为静态页面是实实在在存在于服务器上的页面。在用户向服务器发出请求时,可以直接直接调用。然而伪静态,其实是一个动态页面,只是用一个技术或手段,将动态页面中的“?”等一些符号用蜘蛛可以很内容识别出来的字母给代替了。所以像这种静态页面,要向服务器发出请求时,还要多出一个功能就是转化功能,如何同时请求过多,会加大服务器的负荷。
第二、容量,对于容量而言,因为静态页面是实实在在存在于服务器中,因此会占用一定的空间,如何文件过多,占用的空间就多。然而伪静态就可以避免这一点,因为伪静态是将动态的URL给转换成静态,实际在服务器上是不存在的。
第三、搜索引擎友好性。对于静态URL页面,实实在在存在于服务器上,当搜索引擎收录之后,URL是不会改变的,哪有用户访问时,也不会出问题。然而如果是伪静态页面,服务器伪静态组件不出问题,这个URL就没有问题,如何伪静态组件出问题了,哪么当搜索引擎收录这个URL就会出错,如果出现错误过多,会让搜索引擎讨厌你网站,所以在试用伪静态页面时,伪静态组件,一定不要出错。

内容源自:
http://www.divcss5.com/html/h63.shtml
https://zy116494718.iteye.com/blog/1685127


以上是关于网站静态化——伪静态&S+E+O的主要内容,如果未能解决你的问题,请参考以下文章

JSPGenCMS伪静态完美解决方法

aspnetcore 实现简单的伪静态化

图文详解IIS网站服务器伪静态化配置

将JSP程序URL静态化

URL为什么要静态化或者伪静态化?

静态化 - 真静态技术