猫窝私语 — Makumo's Blog

玛酷猫的温馨小窝,记录生活点点滴滴。

@玛酷猫6年前

07/16
16:25
JS&JQUERY

Ajax的收录与history API

虽然google reader已经关闭,但是作为一个重要的学习途径,rss阅读之路还要走下去。

rss上面好东西还是不少的,毕竟还是有不少人还是分享自己的技术知识,今天看到了一篇文章《如何让搜索引擎抓取AJAX内容?》,以前经常在cnbeta上看新闻,就有个疑问,它的首页是不停的用ajax加载的,搜索引擎该如何收录。这篇文章至少提及了一种解决思路。核心就是靠history api来实现。这东东其实并不陌生,工作中经常会用到:

history.back;
history.go(-1);

在HTML4的中,经常使用如下几种方法

  • length:历史堆栈中的记录数。
  • back():返回上一页。
  • forward():前进到下一页。
  • go([delta]):delta是个数字,如果不写或为0,则刷新本页;如果为正数,则前进到相应数目的页面;若为负数,则后退到相应数目的页面。

在HTML5中,又增加了几种用法

  • pushState(data, title [, url]):往历史堆栈的顶部添加一条记录。data为一个对象或null,它会在触发window的popstate事件(window.onpopstate)时,作为参数的state属性传递过去;title为页面的标题,但当前所有浏览器都忽略这个参数;url为页面的URL,不写则为当前页。
  • replaceState(data, title [, url]):更改当前页面的历史记录。参数同上。这种更改并不会去访问该URL。

看完后突发奇想,岂不是这个方法可以用来掩饰钓鱼网站。。在chrome控制台里面试了下,直接报错“Error: SECURITY_ERR: DOM Exception 18”,看来担心是多余的,应该只能在同域名下使用。用这个方法也可以在网站上面搞搞恶作剧,比如做一个好玩的页面,pushState替换成另一个恶搞页面,发给别人,别人不注意再复制转发的话,嘿嘿。再比如Google的20 Things I Learned About Browsers and the Web(需要科学上网),还有这个Eight Equals Equals Dee IN UR URLS(少儿不宜:))

Ajax的收录与history API

@玛酷猫11年前

11/18
23:42
WordPress 建站日志

SEO、点击数、其他

这今天看了几篇SEO相关的文章,正好手边有个良好的测试对象,就拿自己的小窝试一试。懒猫当然是借助插件帮忙了,先去下载了[name]All in One SEO Pack,http://wordpress.org/extend/plugins/all-in-one-seo-pack/[/name],其实可以自己修改相关文件来达到插件的作用,不过作为标准懒猫,还是拿来主义O(∩_∩)O。不过有点比较郁闷的是插件包里面带着有zh_CN.mo的语言包,为什么显示还是英文=。=不过好在比较简单,英文也就凑合这用了。设置完成后将WP默认的“站名-文章名”的title转变成对搜索引擎相对友好的“文章名-站名”,同时也把页面中的keyword和description填补了起来。在编写文章的时候也可以填写相关SEO的内容,还是很方便的。顺便补完了分类的描述,使分类页面中间的description能正常显示,不过显示出来的文字前后多了个<p></p>。。改天找下对应的函数,把这个抹掉。

WP居然不自带文章点击数的统计,难道国外的博客都不将点击数作为一种衡量标准吗?虽然说点击数水分比较大,但是也不至于舍弃这个功能吧,也仅仅是加个字段,加几句代码罢了。依旧发挥懒猫精神,下了[name]wp-postviews,http://lesterchan.net/wordpress/readme/wp-postviews.html[/name],安装后,在样式侧边管理里面多了一个新的模块,可以显示热门文章了,不过我遇到了两个很奇怪的问题,一个就是将计数器控制调整成everyone,怎么刷新都不见点击数加1;另外就是之前All in One SEO Pack所设置的meta标签内容全部乱码了-_-!暂时先停止这个插件,之后慢慢研究那块冲突了。

懒猫还是比较爱吃的,准备抽个时间把以前网上搜索的食谱整理下,发出来,一是方便自己查找,二是有福共享嘛。

晚上天气还是好冷。。。打一会字就手脚冰凉了,不多写了,钻被窝了。O(∩_∩)O

SEO、点击数、其他

@玛酷猫11年前

06/18
09:30
他山之石

网站SEO并非一定需要静态化。

在国内,很多“SEO专家”给客户网站的第一诊断结果就是要页面静态化。这倒不是因为动态页面就做不了SEO,而是相对静态页面而言,动态页面的SEO更加难做,受“SEO专家”的技术能力所限而已。

对于搜索引擎而言,在主观上对静态页面和动态页面并没有特殊的好恶,只是很多动态页面的参数机制不利于搜索引擎收录,而静态页面更容易收录而已。此外,页面静态化在一定程度上也提高了页面访问速度和系统性能及稳定性——这使得在搜索引擎优化上面,为使得效果更加明显,问题简单快速解决,大家对站点的静态化趋之若骛。

然而对于一些大型网站,静态化带来的问题和后续成本也是不容忽视的:

由于生成的文件数量较多,存储需要考虑文件、文件夹的数量问题和磁盘空间容量的问题———需要大量的服务器设备;

程序将频繁地读写站点中较大区域内容,考虑磁盘损伤问题及其带来的事故防范与恢复——硬件损耗要更新、站点备份要到位;

页面维护的复杂性和大工作量,及带来的页面维护及时性问题——需要一整套站点更新制度和专业的站点维护人员;

站点静态化,增加了更新维护难度和网站管理人员工作强度,增加了硬件设备需求和损耗速度,增加了站点潜在的访问冲突和故障概率。对于一个大型网站而言,这都是必须考虑的问题。

对于SEO优化,我们不需要真正静态化,只需要假装就可以了。动态页面也一样能够做好SEO优化。

目前大多数搜索引擎基本都能收录动态页面,使用动态页面的站点数也远远大于静态页面的站点数。

许多大型网站虽然网址的后缀为。htm,但其实还是动态页面,只是用了URL Rewrite的方式“欺骗”搜索引擎,真正完全静态的没有发现几个。

目前对于一个动态网站,实施相对静态化的做法基本有如下几种:

1. 伪静态,URL Rewrite方式。

2. 类似蜘蛛的方法,动态站点也存在,只是通过一个程序去抓取整个站点并保存发布为需要访问的静态站点。

不论是真静态页面还是伪静态页面,在方便搜索引擎收录这一点上,效果都是一样的。既然如此,为什么不使用效率更高的“相对静态化”的方法,以避免真正静态化所产生的诸多问题呢?

在页面更新维护问题上,即使是伪静态,也带来了不少维护的复杂性和工作量。目前较为可取的更新方式有:

触发式更新:当维护人员在后台更改某些信息后,系统自动或提供手动更新相应显示页面。

独立、分片式更新:更新与维护分开,页面划分为不同的区,根据一定的规则对于区进行更新。区之间的整合与分离,有的是采用活动域,有的是采用SSI(Server Side Include)。

对于独立、分片式更新,应当是大型网站相对静态化后较为理想的更新维护模式:

1. 将各页面定义分区、编号,给定存储规则和更新规则,更新规则分为“依据数据变更更新”和“周期更新”。

2. 对于各区采用优先级的方式,并提供手工触发的即时更新,以保证部分信息的更新时间需要。

3. 静态页面替换动态页面,同时保留动态页面,并在静态页面未生成完毕时采用动态页面代替。

静态化对于网站SEO来说,应当只是一个信号,告诉搜索引擎我的站点很好收录,然后带领搜索引擎尽可能多的“浏览”站点内的内容。只要能够方便浏览和收录,不论是静态页面还是动态页面,搜索引擎都会一视同仁的去收录。

对于小网站而言,站点静态化或许是解决网站收录量的一个简便的办法,而对于大网站来说,则要认真考虑了,是不是真的有必要去做静态化,还是做一下“相对静态化”就够了。

网站SEO并非一定需要静态化。