你随便去找一个做SEO的人或者一个公司,他百分之百会让你把网页弄成纯静态页面,然后告诉你这样对搜索引擎是如何如何地好,那么我告诉你,这个做 SEO的,肯定不专业。

  网页静态化这个东西,纯属以讹传讹的事。我们要说说这个事情的起源,在搜索引擎刚刚起步的时候,那个时间动态页面刚刚兴起,很多网页的地址后面都带有一大堆的参数,并且这些参数可能是动态变化的,他会根据用户的操作不同而有不同的参数。对于这样的地址,搜索引擎是不喜欢的,这是为什么呢?我们先看搜索引擎在做什么事,搜索引擎实际上是一个程序,学名叫Spider,放出去之后把某个网站下载进行分析,然后把摘要部分放到自己的数据库,下次用户搜索的时候,就直接搜索到它的数据库了。

  我们说具体一些,就拿我的网站举例吧,比如说Google要来索引我的网站,它首先会访问http://iove.net这个主域名,而实际上 http://iove.net是定位到http://iove.net/index.php这个页面的。这样spider首先下载index.php当前页的html内容,注意,spider只需要原生的html内容(当然包括文本),不包括iframe中的任何内容,也不包括js等脚本生成的任何内容,也不会包括图片、flash等多媒体的内容,仅仅是对html标签和标签中的内容进行索引。

  如果你对正则了解,那么你就应该完全可以知道搜索引擎的工作原理了,它当你的html是一段文本,然后进行分析,取得其中的文字内容和链接内容,再根据这个链接进行下一个索引。明白我的意思了么?搜索引擎不是浏览器,不会作任何像浏览器的解释动作。当然,实际的技术要复杂得多,如何取出正确的摘要(索引),如何编制这些索引,提高搜索命中率,这些都是比较复杂的技术问题。

  通过上面,你就可以看到,搜索引擎实际就是把文本进行分析,然后放到数据库。注意数据库!有些技术基础的人都知道,只要是数据库,就会有主键,而根据范式理论,数据库应该有一个唯一的主键,那么搜索引擎索引回去的数据,也应该有一个唯一的主键。这个主键是什么?就是我们的网址。这里再提一下,搜索引擎并不是采用关系型数据库,而是文件型数据库,并且索引方式也与我们常用的数据库不一样,但不管怎么样,它还是一个数据库。

  再看静态页面与动态页面的区别,静态页面的内容是固定不变的,而网址也是不变的。动态页面的内容是实时变化的,根据用户的操作和时间的不同(比如说最新回复这样的内容)会显示不同的内容,动态页面有可能是不变的网址,也有可能是变化的网址。在速度方面,一般情况下,静态网页都要快于动态网页。

  看到上面你明白为什么了,搜索引擎不是喜欢静态页面,而是喜欢静态网址,更确切地说,喜欢较静态(不太变化)的网站。所以不管是Google的 SEO指南,还是百度的站长指南,都有提到一个问题,就是网址后面不要带太多的参数。

  很多时候,我们为了SEO将网站全部搞成静态化,有这个必要么?我们知道,现在网站做成纯静态的基本上不太可能,除了一些像维基百乎之类的网站,我们的网站都需要去修改,需要用户去参与互动,还有一大堆的原因让我们的网站都在动态的变化,而这个时候,我们却需要将网站完全做成html静态页。结果我们就牺牲用户的友好体验来“博得搜索引擎的欢心”,哪知道,搜索引擎并不是喜欢静态页。

  如果你对IIS有研究,你就知道IIS可以将任何一个扩展名的网页改成html的进行执行,比如说我可以将aspx的网页改成html,然后让 iis把html交给.net framework去解析,这样对搜索引擎来说,也就变成html了,有什么区别吗?

  那么,改成html对搜索引擎完全没有改善么?也不是,起码可以提升速度,这个对seo是有很大的好处的,但如果你网站的html静态页与动态页差不多,我们又为什么要牺牲功能、增加难度去搞什么静态页面呢?况且,如果你的服务器静态文件太多,而磁盘不太好的话,可能速度还会降低!

  我们应该怎么做?首先,网址要较为固定,不要搞一大堆的参数挂在网页后面;其次,不要将希望被搜索引擎看到的参数,放到form中,然后用post 方式提交,这一点特别是.net做得非常不招人待见,因为.net的form都是在本页提交,把参数都写在隐藏域里面。所以我们看到,.net基本是在企业内网这样的系统中太有作为,在internet网站方面,如果你不经过特殊处理,asp.net变得一无是处!

  对于固定地址,我们可以采用url rewriter来重写地址,这个功能不管是.net还是apache都有,比如说我可以将http://iove.net /page.aspx?page=1这样的网页重写成http://iove.net/page/1,这样对url对搜索引擎是友好的。

  所以说,如果为了SEO去搞静态化,牺牲了网站可维护性和友好性、扩展性,是完全不可取的,基本上不会带来什么效果。我们应该从程序上下功能,让网站的速度变得更加快,html变得更加简洁,这样才更加有利于搜索引擎。

SEO误区之——静态化页面的更多相关文章

  1. 利用PHP的ob函数实现生成静态化页面

    之前用过一些开源的CMS管理系统,当时就很好奇后台中的生成HTML静态文件是怎么实现的.今天和同事讨论了下,没想到同事之前做过这类的生成静态页面的功能,果断向他请教了下. 经他讲解后,才知道其实生成静 ...

  2. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_12-页面静态化-页面静态化流程

    需要知道数据结构,然后去做模板标签.首先需要获取页面的数据模型.下面的每一条记录都代表一个页面. 比如这个轮播图.就需要提前给这个轮播图编写一个模板 有很多的页面如果知道每个页面的dataUrl.例如 ...

  3. springboot2.0结合freemarker生成静态化页面

    目录 1. pom.xml配置 2. application.yml配置 3. 使用模板文件静态化 3.1 创建测试类,编写测试方法 3.2 使用模板字符串静态化 使用freemarker将页面生成h ...

  4. ThinkPHP的静态化页面方法

    原来ThinkPHP自带了生成静态页的函数buildHtml,使用起来很方便!最新的手册里没写这个方法,向大家介绍一下.     protected function buildHtml($htmlf ...

  5. Smarty实现HTML静态化页面

    <?phprequire_once("./config/config.php"); ob_start();$id=$_GET[id];$sql="select * ...

  6. 转:php页面静态化之真静态

    之前的缓存和现在所说的页面静态化都是为网站提速的,如果是访问量小的小型网站可能不需要但是如果网站规模或访问量很大,那么页面静态化和缓存就会体现出各自的价值了下面先来了解下页面静态化的分类 页面静态化的 ...

  7. php&amp;&amp;页面静态化

    页面静态化.主要是出于两个方面的考虑.     第一:訪问html页面的速度比訪问php页面的速度快.在訪问php页面时候.须要对php进行解析.訪问html时候,直接浏览器能够解析出来.特别是PV量 ...

  8. [转]PHP实现页面静态化的超简单方法

    为什么要页面静态化? 1.动态文件执行过程:语法分析-编译-运行 2.静态文件,不需要编译,减少了服务器脚本运行的时间,降低了服务器的响应时间,直接运行,响应速度快:如果页面中一些内容不经常改动,动态 ...

  9. PHP实现页面静态化的简单方法分享

    为什么要页面静态化? 1.动态文件执行过程:语法分析-编译-运行 2.静态文件,不需要编译,减少了服务器脚本运行的时间,降低了服务器的响应时间,直接运行,响应速度快:如果页面中一些内容不经常改动,动态 ...

随机推荐

  1. MongoDB01——安装MangoDB

    一.MongoDB的下载 到MongoDB的官网——https://www.mongodb.com/download-center/community,选择要下载的版本,点击Download 二.安装 ...

  2. PAT——乙级1026and1046

    1026 程序运行时间 (15 point(s)) 要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() ...

  3. Leetcode with Python -> Array

    118. Pascal's Triangle Given numRows, generate the first numRows of Pascal's triangle. For example, ...

  4. [转]/dev/null 命令用法

    /dev/null :代表空设备文件 :代表重定向到哪里,例如:echo "123" > /home/123.txt 1 :表示stdout标准输出,系统默认值是1,所以&q ...

  5. 【转】DontDestroyOnLoad(Unity3D开发之五)

    原文  http://blog.csdn.net/cocos2der/article/details/38320773 主题 Unity3D Unity中我们从A场景切换到B场景的时候,A场景所有对象 ...

  6. 【bzoj4999】This Problem Is Too Simple! 树链剖分+动态开点线段树

    题目描述 给您一颗树,每个节点有个初始值. 现在支持以下两种操作: 1. C i x(0<=x<2^31) 表示将i节点的值改为x. 2. Q i j x(0<=x<2^31) ...

  7. Xposed初体验

    Xposed初体验 1 测试环境 硬件:小米2s 16GB 电信版 系统:MIUI 4.4.18(开发版) Xposed版本: 2.5 注:Xposed版本号必须大于2.3,MIUI系统版本号也必须大 ...

  8. df du 的区别

    https://blog.csdn.net/mike8825/article/details/51986405 https://www.cnblogs.com/scl1314/p/7534894.ht ...

  9. jquery 实践操作:div 动态嵌套页面

    此篇记录如何在指定 div 中嵌套一个页面 load() 方法: 1. 使用 $.load() 直接导入一个页面 $('#addPage_div').load("temp/handle.ht ...

  10. 【01】react 之 hello world

    React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站.做出来以后,发现这套东西 ...