SEO优化之URL优化

很多初学者在看一些SEO教程时可能经常见到,优化就要将网站URL静态化,甚至将这一点列入非常重要的行列。个人不赞成此观点,选择动态URL还是静态页面,只要根据网站需要就可以了。

为什么很多SEOer强调使用静态页面?

早期由于搜索引擎Spider的不完善,网站程序不合理,或部分人故意造成一种蜘蛛陷阱(spider traps),导致Spider爬行时进入一个死循环。搜索引擎为避开这种死循环,减少对动态URL的读取,特别是带“?”符号的URL。

随着搜索引擎的完善,这种现象目前已经基本得以解决,Spider已经能够正常并顺利的读取动态URL地址,以及带“?”符号的URL。但是,目前对带过多环境变量(query string)的URL地址(如new.php?a=1&b=2&c=3&d=4……)仍不够理想(据相关资料称,Spider基本不读取带3个以上的环境变量的URL)。

如果动态URL与静态页面存在差别,差别在哪里?

樂思蜀认为,就目前搜索引擎技术而言,如果动态URL与静态存在差别,这种差别主要表现在下面两个方面:

1、Spider爬行效率:如上所说,多重环境变量的URL;Cookie数据导致访问页面的变化;给予不同的访问者Session ID等。这些因素会导致Sipider爬行效率较低,将制约着动态URL在搜索引擎中的表现。

2、页面信任问题:这个问题目前还没有一家搜索引擎公开表示,对网页有信任值。但通过本人的实验及参考相关资料,静态页面在搜索引擎中,同等条件下一般优于动态URL。

静态页面在搜索引擎中优势有多大?

对于搜索引擎而言,静态页面还是优于动态URL的,但优势能有多大?樂思蜀认为,差距很小,如果我们再把握好站内链接策略,并对URL进行适当的优化处理,这种差距会极小。

我的SEO论坛一直使用的动态URL,而且URL并没有做太多的优化处理,从2005年开站至今,SEO一词基本在前1~2位之间。

动态URL的静态化:伪静态

动态URL在网站目录中并不存在具体的文件,而是根据用户请求,从数据库中返回请求的结果。我们可以把这个过程模拟成静态页面或目录,就是常见的“伪静态”。

目前主流的很多程序都支持伪静态,我们也可以根据需要,对程序进行DIY,再对网站环境进行相应设置。Apache下mod_rewrite的重写模块就能很轻松的实现,Windows环境下也有rewrite组件。网上关于这方面的教程很多,大家可以搜索一下,查看相关的资料来实现。

动态URL的站内优化策略

如何让动态URL表现更好,樂思蜀从站内角度提出下面3个要点:

1、导航很重要:完善的站内导航,有利于Spider高效率的爬行。整站尽可能做到:从首页出发,较重要的位置,不超过3次点击就能到达;最重要的位置,应该在首页出现相应的链接;必要时,可以单独制作一个静态导航页。

2、制作网站地图:首先网站内应该有一个网站地图页面,将常用位置在这个页面中做上链接,用户可以最快的了解网站结构,搜索引擎Spider可以快速高效的对网站爬行;其次XML格式的网站地图目前已经不仅适用于Google,应尽可能的保持XML地图更新;最后,建议制作一份URL列表(urllist.html和urllist.txt),对网站是有益而无害的。

3、URL统一、规范:同一URL出现多个版本(如read.php?id=1和read.php?id=1&page=1),同一位置出现多个URL形式(如list.php?companyname=xxx和list.php?companyid=123),及大小写问题等都可能导致在搜索引擎中出现相似页面,从而影响网站在搜索引擎中的表现。

总之,个人认为动态URL不一定比静态页面差,只要优化得当,在搜索引擎中同样有好的表现。而且很多只能或最好用动态程序的时候(如论坛、订单系统等交互性很强的站点),没必要刻意要求生成HTML,或做成静态页面。

(0)

相关推荐

  • SEO优化之URL优化

    很多初学者在看一些SEO教程时可能经常见到,优化就要将网站URL静态化,甚至将这一点列入非常重要的行列.个人不赞成此观点,选择动态URL还是静态页面,只要根据网站需要就可以了. 为什么很多SEOer强调使用静态页面? 早期由于搜索引擎Spider的不完善,网站程序不合理,或部分人故意造成一种蜘蛛陷阱(spider traps),导致Spider爬行时进入一个死循环.搜索引擎为避开这种死循环,减少对动态URL的读取,特别是带"?"符号的URL. 随着搜索引擎的完善,这种现象目前已经基本得

  • PHP SEO优化之URL优化方法

    复制代码 代码如下: function getSeoVersion($phrase) { return preg_replace('/[^a-z0-9_-]/i', '', strtolower(str_replace(' ', '-', trim($phrase)))); } // example usage: echo getSeoVersion("German cars are amazing.");

  • MySQL优化之连接优化

    上文MySQL优化之缓存优化 这篇文章中提到了一个很重要的概念,就是show variables是用来表示系统编译或者配置在my.cnf中的变量值.而show status则称之为状态值,显示的是当前服务实例运行所具有的状态信息,是一个动态改变的值.因此常用来观测当前MySQl的运行是否正常,如果不正常那么依靠调整静态参数来提高MySQL的性能.所以明白这两个概念的不同,是后面调优的基础. MySQL 连接优化 记得有一次在公司内部连接MySQL的时候,总是连接不上.找到DBA后,经过排查原因,

  • 浅谈Android性能优化之内存优化

    1.Android内存管理机制 1.1 Java内存分配模型 先上一张JVM将内存划分区域的图 程序计数器:存储当前线程执行目标方法执行到第几行. 栈内存:Java栈中存放的是一个个栈帧,每个栈帧对应一个被调用的方法.栈帧包括局部标量表, 操作数栈. 本地方法栈:本地方法栈主要是为执行本地方法服务的.而Java栈是为执行Java方法服务的. 方法区:该区域被线程共享.主要存储每个类的信息(类名,方法信息,字段信息等).静态变量,常量,以及编译器编译后的代码等. 堆:Java中的堆是被线程共享的,

  • 详解Android性能优化之启动优化

    1.为什么要进行启动优化 网上流行一种说法,就是8秒定律,意思是说,如果用户在打开一个页面,在8秒的时间内还没有打开,那么用户大概的会放弃掉,意味着一个用户的流失.从这里就可以看出,启动优化的重要性了. 2.启动的分类 2.1 冷启动 先来看看冷启动的流程图 从图中可以看出,APP启动的过程是:ActivityManagerProxy 通过IPC来调用AMS(ActivityManagerService),AMS通过IPC启动一个APP进程,ApplicationThread通过反射来创建App

  • Android 分析实现性能优化之启动速度优化

    目录 启动方式 冷启动(启动优化目标) 热启动 温启动 启动流程中可优化的环节 检测工具 启动时间检测 Logcat Displayed adb 命令统计 CPU profile API level >= 26 API level < 26 StrictMode 严苛模式 优化点 黑白屏问题 本文主要探讨以下几个问题: 启动方式 启动流程中可优化的环节 检测工具 优化点 黑白屏问题 启动方式 应用有三种启动状态,每种状态都会影响应用向用户显示所需的时间:冷启动.温启动与热启动 冷启动(启动优化

  • Android性能优化及性能优化工具

    目录 1.Allaction Tracking (1)追踪 (2)分类我们的内存分配 (3)查看统计图 2.LeakCanary (1)配置 (2)制造一个单例内存泄漏的点 (3)LeakCanary 发出内存泄漏通知 (4)LeakCanary 分析 3.Lint分析工具  性能优化的帮助工具: MAT, Memory Monitor(属于AndroidMonitor中一个模块), HeapTool(查看堆信息), Allaction Tracking, LeakCanary Lint工具 1

  • MYSQL Left Join优化(10秒优化到20毫秒内)

    目录 [功能背景] [原始的SQL] [原始的SQL分析] [分析步骤] [优化后的SQL] [优化的SQL分析] 结合工作中的内容和大家分享一次Left Jon优化的过程,希望能给同学们新的思路. [功能背景]     我们需要按照用户订单号和商户号统计出购买的商品数量和售后的商品数量.涉及到的表和关系见下图: 很不幸工程师在起初进行表结构设计的时候没有在商户订单表中记录下购买的商品总数,在商户订单的售后单中也没记录下售后的商品数量. [原始的SQL] select o.no,s_order.

随机推荐