WordPress 网站 SEO 优化

by falcon [email protected] of TinyLab.org

2014/07/20

前言

本站建站有一段时间,买的阿里云,搭的WordPress, 刚开始一直有各种问题,导致无法访问,尝试过:

  • 升级Web服务器:从Apache到Nginx
  • 创建文件并配置Swap服务
  • 升级RAM:从512M到2G

但是发现有时访问还是很慢,特别是连接多了以后,服务器就down掉,所以得继续抽空优化。

兼容性问题

先做HTML的W3C兼容性测试,如果不兼容,很多浏览器可能无法访问,果然,通过http://validator.nu/一测,发现一大堆问题。最重要的问题莫过于:

Almost standards mode doctype. Expected “”

查了一下,发现元凶竟然是M$引入”BOM”(Byte Order Mark, UTF8文件的Magic Number,但是并没有标准化),不知道哪个插件作者用Windows开发的,导致文件里头带有BOM字节,而标准HTML在文件头是不允许有额外字节的,否则,有些浏览器就解析不了,比如M$ IE。这就是原来在IE上浏览不了该站的根源(所有页面靠左对齐了)。

通过如下命令可以确认网页开头到底有没有额外的BOM字节,如果有的话,会是这个样子:

$ curl -s http://www.your-web-site.com/ | head -1 | sed -n l
\357\273\277\r$

前三个字节是8进制的,对应十六进制刚好是:EF、BB、BF。

在Windows下可以用notepad++等直接去掉和添加BOM字节,在Linux下可以用vim做到:

$ vim test.c
:set fileencoding=utf-8

:set bomb
:set nobomb
:set bomb?

以上三个设置分别为添加/删除/查询bomb标志。

对于WordPress,如果安装插件很多,那得把含有BOM的文件一个一个找出来。咱们可以用grep,只需要匹配文件头是否有BOM字节就可以:

$ grep -r -I -l $‘^\xEF\xBB\xBF‘ test.c
test.c

找到以后,可以用sed -i做替换(注:千万记得备份):

$ sed -i -e ‘1s/^\xEF\xBB\xBF//g‘ test.c

这里是批处理(Again:操作前,千万要备份):

$ grep -ur -I -l $‘^\xEF\xBB\xBF‘ /test-dir | xargs -i sed -i -e ‘1s/^\xEF\xBB\xBF//g‘ {}

关于更多的不兼容性问题,就根据测试的结果一个一个解吧。

本节参考:

性能问题

接下来,咱们测试一下默认配置的性能,有蛮多免费的站点:12 个最好的免费网站速度和性能测试工具

当前试用了Google PageSpeed InsightsLoad Impact

前者允许用户分析网站页面的内容,并且会提供加快网站访问速度的建议,后者允许用户做些 web 应用的负载和性能测试。它不断增加网站流量来测量网站性能。Load Impact 会选择一个全球负载区,测试模拟客户,带宽,接收数据和每秒请求等。越来越多客户变活跃,这个工具会用个漂亮的图表来展示测量的加载时间。

通过Load Impact测试以后发现,访问时间跟并发数成线性关系,那意味着,前面提到的并发访问多了以后,整个服务性能逐步下降了,到最后Nginx都无法提供服务了。

化动为静;缓存起来

这个问题,通过查找资料并分析,发现务必要做几个工作:

  • 把动态页面转换为静态页面

这个跟Android上的ART一个原理,页面一旦编辑完就可以生成一个静态的html页面,用户访问时就可以直接从磁盘甚至内存里头拿html代码,无需额外的PHP解析开销(包括处理器和内存)了。

  • 把一些SQL访问缓存

大量并发的数据库访问会带来很大的IO性能开销,可以把一些SQL查询的结果缓存起来,这样可以节省IO开销。

上面两个的选择很多,经过对比,分别采用了:

除杂去冗,化繁为简

后面综合Google PageSpeed Insights的测试结果,又做了如下几项优化:

线性转并行;同步转异步

需要特别强调的是 JS 异步加载优化,这个效果非常明显也很典型。

该站用到了第三方统计,发现通过国外 VPN 进来的时候,统计站点的 Javascript 加载严重拖慢了整个系统,导致文章带有代码高亮插件的内容无法正常渲染。

于是乎,想到了异步加载 Javascript 应该能解决问题,通过查找确实发现大部分浏览器都已经支持 async 或者 defer 属性,后者确保执行时序,前者则不会保障 Javascript 的加载顺序。

对于我们这里的特例,统计站点与站内其他资源有任何依赖关系,完全可以用 async 属性,用法如下:

<script async src="siteScript.js" onload="myInit()"></script>

异步以后,效果相当明显,系统其他部分顺利加载,统计就让它慢悠悠地干吧。

需要注意的是,上面的方法好像效果不好,对于站长统计,会导致那个统计图标不显示,这样的话,可以用类似下面的思路(站长统计和百度统计都已经支持,可以直接复制过来):

<script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan id=‘cnzz_stat_icon_322289‘%3E%3C/span%3E%3Cscript src=‘" + cnzz_protocol + "s22.cnzz.com/stat.php%3Fid%12122212%26show%3Dpic‘ type=‘text/javascript‘%3E%3C/script%3E"));</script>

性能测试和优化建议

后面又尝试了其他几个测试服务:

  • neustar展示各地的连接速度,并且详细地展示了各个资源的获取时间,可以很方便地辅助开发者定位问题并做针对性优化。
  • Web Page Analyzer非常强大,提供了详细的网站分析数据并且会提供提高网站性能的建议。它提供大量的 web 页面速度报告,global report,外部文件计算,加载时间,网站分析数据和改善建议。
  • Octa Gate Site Timer 允许用户检测每个用户加载一个或多个页面的时间。当页面加载的时候,SiteTimer 存储每个项目加载的数据和用户接收的数据,这些数据会用一个网格来显示。
  • Pingdom 是个非常杰出的工具,帮助用户生成大量网站的报告(页面大小,浏览器缓存,性能等级等),确定网站的加载时间,而且允许用户跟踪性能的历史记录,能在不同位置进行网站测试。
  • GTmetrix 可以帮助用户开发一个快速,高效,能全面改善用户体验的网站。它会为网站性能打分,然后提供可行性的建议来改善已发现的问题。

本节参考:

搜索引擎收录问题

这里涉及三个动作,分别是:

  • robots.txt协议:告诉搜索引擎能不能搜,哪些目录可以搜
  • SiteMap协议:告诉搜索引擎我这个网站有哪些东西
  • 直接提交给搜索引擎进行收录

首先是robots.txt,这个可以通过一些网站自动生成一个配置文件:robots.txt,例如http://tool.chinaz.com/robots/,生成后这个文件放在网站根目录下。

接着是安装一个SiteMap自动生成的插件,例如:Baidu Sitemap Generator。生成后,在robots.txt的最后加入如下两行,例如,本站:

Sitemap: http://tinylab.org/sitemap_baidu.xml
Sitemap: http://tinylab.org/sitemap.html

在最后,咱们可以主动给各大搜索引擎提交收录,各大收录的入口地址这里有一份清单。

经过这三步以后,搜索引擎的收录问题就不大了。

更多SEO

除了上述问题外,通过一些专门的SEO评测站点可以获取更多有价值的优化信息。

该站提供了各家搜索引擎的收录情况,域名,备案,服务性能,站点描述与关键字设置情况等。通过该工具查到该站的主题没有添加站点描述和关键字信息。

这个网站则提供了另外的一些视角,比如上面的兼容性问题测试就是该站提出的建议。

通过SEO综合查询以及相关的检索后,找到了手动为各种场景添加关键字和描述的方式,那就是在header.php的head部分添加如下内容:

<?php
    if (is_home()) {
        $description = "网站描述:不超过200字符。";
        $keywords = "网站关键字:不超过100字符";
    } elseif (is_single()) {
        if ($post->post_excerpt)
            $description = $post->post_excerpt;
        else
            $description = $post->post_title . ‘:‘ . substr(strip_tags($post->post_content),0,200);

        $keywords = "";
        $tags = wp_get_post_tags($post->ID);
        foreach ($tags as $tag ) {
            $keywords = $keywords . $tag->name . ", ";
        }
    } elseif (is_category()) {
        $keywords = single_cat_title(‘‘, false);
                if (category_description())
                        $description = category_description();
                else
                        $description = $keywords;
    } elseif (is_tag()) {
        $keywords = single_tag_title(‘‘, false);
                if (tag_description())
                        $description = tag_description();
                else
                        $description = $keywords;
    }
    $keywords = htmlspecialchars(trim(strip_tags($keywords)));
    $description = htmlspecialchars(trim(strip_tags($description)));
?>
        <meta name="keywords" content="<?=$keywords?>" />
        <meta name="description" content="<?=$description?>" />

记得把首页部分的描述和关键字修改为你自己的内容。

小结

上面的优化其实都是最基础的,要真正优化SEO,那就是要逐步丰富与站点主体相关的内容,保持持续的更新和维护,吸引足够的忠实读者。

时间: 2024-11-09 03:07:02

WordPress 网站 SEO 优化的相关文章

WordPress SEO ? WordPress网站终极优化指南

原文地址:http://www.eastdesign.net/wordpress-seo/ 最新消息,东方设计学院 WordPress SEO 系列视频教程正在持续更新中,目前为了不至于让视频传播过于泛滥,设置了登陆权限,有兴趣查看的用户可以简单填写一个索取测试账号的表单,提交一份表单给我们,我们将尽快回复测试账号登陆密码,视频教程地址:http://www.eastdesign.net/wordpress-seo-tutorial/ WordPress网站终极优化指南 WordPress 是一

分享企业网站SEO优化思路

现在网络也成为了大部分企业的营销工具,网站SEO优化对企业的效益明显突出来了.下面介绍企业网站SEO优化思路. 一.域名检测 为了了解网站目前的状态,需要检测各项指标对网站当前的状况进行综合评估,即域名检测.检测的内容一般包括网站当前的PR值.ALEXA排名.百度和谷歌等SE的收录情况.PV.IP.反向链接数等. 1) 域名注册时间 2) 域名PR值 3) ALEXA排名 4) 百度收录 5) 谷歌收录 6) PV数 7) IP数 8) 反向链接 二.网站结构分析和优化 1)网站框架 按照网站的

web前端之网站seo优化学习笔记

这两天因为一些公司业务上的原因,学习了一些关于网站seo优化的方法和技巧. 之前在码代码的过程中其实还没有考虑过对于网站导流和优化网站关键字搜索排名的问题. 在了解了一些这方面的资料之后,觉得这是一个很有意思的领域.把这几天的学习笔记记下来. 个人理解是在一个项目基本上完成主要需求后需要运营需求加入的时候,此时seo优化就非常重要.所以在网站开发的最开始有经验的前端coder们在搭架子的时候就应该提前把以后运营汪们可能会提出的运营需求,特别是一些针对影响关键字排名和与搜索引擎相关的部分就可以考虑

然后我就去网上搜索“如何写网站SEO优化方案

这段时间属于网站的策划阶段,网站的定位.网站的布局以及关键词的选定 首先,需要确定自己建设一个什么样的网站.,我们当然是企业网站,然后,确定网站的关键词,确定关键词可以参考自己的竞争对手,也可以通过关键词挖掘工具选择合适的关键词,选出的关键词一定符合用户的搜索习惯,并且有一定的搜索量.最好是能够有明确转化意向的关键词. 关键词确定后,需要设计网站的整体布局,比如说首页应该放置哪些板块,你的客户最关心的是哪些内容?最想了解的是哪些信息?,这时就需要对你的客户进行分析了,比如我们做的是工业品,客户比

网站seo优化

现在一些中小型的电商网站,在优化上存在以下几点难度:1.中小型电商通常产品数量较少:2.有针对性的关键词扩展难:3.网站内容缺乏.网站用户体验建设是网站seo优化的王道,就象我们每个人的性格一样,性格影响一生,网站用户体验好,网站访客都喜欢这个网站,就算搜索引擎把你的网站 全部k光,对你来说也不会有很大的影响.网站的用户体验好坏反映在两个指标上,第一是网站的跳出率,第二网站的访问时长.那我们应该怎么样做才能降低网站的跳出率,增加网站的访问时长呢?今天跟大家谈谈几点体会: 网站跳出率就是网站访客到

分享详细网站SEO优化方案

下面分享详细网站SEO优化方案: 一.网站上线前准备阶段 1.域名选择 2.服务器及空间选择 3.网站类型选择:内容资讯型.商铺型.论坛型.文档分享下载型. 4.竞争对手调研分析 5.网站针对用户分析 6.程序选择 二.网站上线后SEO运营阶段 站内结构优化 合理规划站点结构(1.扁平化结构 2.辅助导航.面包屑导航.次导航) 内容页结构设置(最新文章.推荐文章.热门文章.增加相关性.方便自助根据链接抓取更多内容) 较快的加载速度 简洁的页面结构 1.站内SEO优化 ①关键词分析选择 ②网站框架

网站SEO优化策略是什么呢

SEO策略对于我们是非常重要的,我们在优化一个网站之前要先制定好策略,不能够盲目进行优化,那么,网站SEO优化策略是什么呢? 关键词定位 这是进行SEO优化最重要的一环,也是SEO优化的前提和基础.因为没有关键词,优化的对象就没 有.好比卖苹果,这个关键词就像苹果一样. 关键词分析包括:关键词关注量分析(中文用百度指数,英文用GOOGLE趋势,淘宝用淘宝指数). 竞争对手分析(找同行网站排在搜索引擎前三的).关键词与网站相关性分析.关键词布置(一般满足2%-8%).关键词排名预测(专门的SEO工

网站SEO优化的词怎么写?

网站SEO优化的词怎么写? 做SEO一些时间了,对于见网站SEO来说最重要的就是网站诊断,只有诊断出了网站的问题那么不管你是中途接手网站还是一个新站才会有一个明确的工作目标. 在2016年6月13号起,找了一个SEO的网站优化工作,这个网站是荣泰帽子厂的网站,通过百度站长查了相关信息后发现网站优化的词都 是没有指数的和网站业务不是很相关的词.细心的SEO朋友就会发现在百度上没有指数的关键词一般都能在短期内做到好的排名,那么是不是就算了一你成功了呢?从侧面试探了一下先来做网站优化的同事,他们说有排

网站SEO优化之内链问题到处怎么做

对于站长朋友来说,如何更好的运营网站是大家非常关注的.对于网站运营有一个非常重要的途径,那就是通过搜索引擎带来流量.于是就有了搜索引擎优化seo.今天在搜外问答看到一个问题:对于一个新网站,在设定内链规则的时候,生成内链的数量是不是越多越好?在发布文章内容时,内链是系统自动生成好,还是人工添加好?原来还是有不少站长朋友对内链问题持观望态度,基本不知所措. 网站内链我们应该怎么做,就好比这位朋友提出的,设定内链规则的时候,生成的内链数量是不是越多越好?这个肯定是不对了.作为站长大家都应该听过文章内