Ø ⊙ ╰_╯ ● § ㄥ ★ ☆ ▽ ° ◎ 〤ι〤 ≡ ˋ_ˊ ← → ↖ ↗ ↘ ↙ ↑ ↓ ﹏ ε ☭ ξ ็ ä └(^o^)┘ ﹌○﹋ ^o^

ส็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ ส็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ ส็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ ส็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ ส็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็> ฌูููููู

本文适合新手老手,有不对的地方欢迎指正! 如果有什么问题或者建议,请务必留言, :-)

老高很高兴与大家交流! 同时欢迎关注我的微博

写在前面:搜索引擎是个很神奇的东西,脾气捉摸不定,动不动就学个新算法让你不得安居乐业。许多新手都会觉得想让搜索引擎收录真难啊! 那么对于刚刚建成的新站和收录有问题的旧站,如何才能让搜索引擎顺利的收录你的网站呢? 花点时间看完本文,我相信你对SEO的理解一定会更加透彻。 预先约定几个说法(不分大小写)

  • wordpress ->wp
  • Search Engine Optimization->SEO
  • Uniform Resource Locator ->URL 下面老高就针对wordpress的SEO优化讲讲具体的步骤:

浅谈URL的优化

说到SEO,最先想到的应该是URL了,什么!你不知道URL是啥? 8-O 简单地说,URL就是

统一资源定位符(Uniform Resource Locator,缩写为URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。https://blog.phpgao.com/ 就是一个URL,访客和搜索引擎就是靠他找到你的资源。URL的优化其实很简单,做到以下几点就OK!

伪静态

美化你的URL显示格式,即做好伪静态,打个例子,本文的URL默认为www.phpgao.com/?p=***|的形式,\*|为文章的数字ID,但是实际上他显示为www.phpgao.com/seo.html,如果这两个URL都指向同一篇文章,哪一个更能勾起你的欲望呢?同样的,搜索引擎也会试着理解你的URL ,然后抓取你的内容,分以适当的权重 ---|- 那么如何设置成这样的形式呢?首先需要了解伪静态、404错误、linux、win主机等概念,后面章节有讲。

网站地图

URL格式确定以后下面就要把你的URL告诉搜索引擎了,所以你需要一个**网站地图**,他可以告诉搜索引擎网站是什么结构,哪些页面比较重要,哪些可以忽略,有利于搜索引擎抓取。

robots.txt

robots的作用是控制爬虫的抓取范围,举个比方,你可以禁止爬虫收录你的wp-admin文件夹下所有文件,这样可以保证安全性。你需要明确的是,爬虫来到你的网站,就像吃货进了一个自助餐馆一样,只要能吃的他都不放过,如果你放任不管,那么可能他会把你和你太太盘子里的饭菜都会吃掉。所以你必须告诉他:“爬虫兄啊,你不能吃这个,这个是桌子!”。简单的介绍一下用法:

  • 请将robots.txt放到网站的根目录下,你可以参考一下www.taobao.com/robots.txt(百度中枪)
  • 编码无所谓,一般不会出现中文
  • 第一行写User-agent: * 意思只针对所有搜索引擎的爬虫
  • 紧接着Disallow: /wp-* 意思是不允许看wp-开头的所有文件
  • 你可以写很多个Disallow规则,记得首字母要大写
  • 你还可以在文件中指明sitemap路径 Sitemap: https://blog.phpgao.com/sitemap
  • robots.txt不要过于复杂 robots文件真的很重要,老高之前写过一个爬网页的程序放到了某个二级目录下,并在首页加了链接,但是忘记了屏蔽搜索引擎,导致谷歌收录了本站的9000多个垃圾内容页 :-( ,悲剧啊!话说百度还是很谨慎的,就是不收录!

提交入口--来我家玩吧!

提供几个提交网站的入口,此步是通知搜索引擎来收录你的网站

  1. 百度网站登录入口
  2. Google网站登录入口
  3. 360网站登录入口
  4. Bing网站登录入口
  5. 搜狗网站收录提交入口 这步最简单了!不要偷懒哦! 8-)

站长工具--查询收录的利器

站长工具就站长管理网站收录,转化率等信息的瑞士军刀

  1. 百度站长工具
  2. 谷歌站长工具
  3. seo工具

老高要在这里赞一下百度的抓取诊断功能,通过使用发现百度没有更新我站的DNS信息,于是换了DNSPOD解析,立马解决问题!

由于网络错误导致抓取失败

网站统计分析

网站统计,顾名思义就是统计网站浏览量,分析受众群体。原理是通过放脚本或者图片链接在你的网站里,每次访问的时候都会将此次请求信息发送给统计服务器,然后就可以在统计后台查看到实时访问信息了。与基于访问日志分析的办法不同,这种统计方法不是很准确,但是对付一般需求足够了!使用此插件必须在wp主题文件footer.php加入系统提供给你的统计代码,老高的经验是把统计代码加入一个

包裹的div中,因为可能一不小心,这条统计代码会带出来一个很丑的图片,影响网站美观!所以最终的代码会是这样的,其中script标签才是真正的统计代码,div的工作是让他不要影响网站的呈现。

主流工具如下:

  • 百度统计
  • 谷歌分析
  • 老高推荐百度统计(基于速度考虑)

直到这一步!你的网站才算是真正投入到了互联网这个茫茫大海之中,你要意识到的是搜索引擎只是索引到了互联网信息的一小部分而已,而这个数字已足够庞大,所以逛光光完成到这一步是不够的,下面就是提高篇!

##优化访问速度

###选择主机系统

这里你有两种选择

  • windows+iis
  • linux+apache

一般来说,linux主机是比win贵的,原因是:

更安全,windows面对黑客只能说雅蠛蝶了 更快,不是网速快,而是同等硬件下linux+apache跑PHP性能更好 更强大,其实最主要还是说伪静态的问题,linux天然支持,IIS就悲剧了,先哭着 :-( ,后面说原因 更稳定,linux一般很少死机的,windows我只能说呵呵了 总之,钱多就上linux;苦逼的话win还是能接受的。

###服务器地址

内地?香港?美国?韩国?到底搬哪儿好呢?

这还用问?当然是离得越近,速度越快了!下面简单说说利弊吧:

内地主机速度一定不会太慢,但是需要网站已备案 香港主机速度不一定,我在XX购买的空间电信打不开,网通倒是挺快。。。很郁闷 美国主机速度可能不如香港,快也快不到哪儿去 韩国速度和以上两地差不多

再此还是要罗嗦几句:

一般购买一年的空间,商家都会承诺一个月内退款的,没有声明的话请勿使用,或者提出试用要求,并且使用超级PING工具测速 一定要看看空间服务商的备案号,很多都是假的

★★网站开始运行后一定要定时备份,不论是空间还是数据库!★★

###GZIP–压缩html

GZIP一看就知道是压缩用的,能开就开吧。一般的panel都是提供这个功能的,如果没有也不影响。

查询是否压缩请使用Gzip检测工具检测,至于压缩率嘛,自己看吧!

是否压缩 是 压缩类型 gzip 原始文件大小 89103 字节 压缩后文件大小 13896 字节

###伪静态

伪静态就是为了让url美观一些,本文的网址为默认为

https://blog.phpgao.com/?p=238

但我修改固定连接格式是之变成了

https://blog.phpgao.com/seo.html

看到这个URL你会不会觉得根目录下就有一个seo.html吧?

其实不然,当你的浏览器访问了此网址https://blog.phpgao.com/seo.html,服务器在解析这个URL时会参考你的伪静态规则,隐性的将url变为https://blog.phpgao.com/index.php/seo.html,然后剩下工作就交给index.php,他会帮你找到对应的文章显示给读者!

####IIS

IIS悲剧的伪静态ISAPI_Rewrite分版本不说,不同版本伪静态的写法还有差别。。。设置参考我的文章

IIS下wordpress伪静态的配置

####APACHE

这里风景一片大好,htaccess教IIS学做人

####404补救

404也可以伪静态,但是设置很麻烦,一般不推荐。 原理就是当访问一个不存在的地址,服务器会找一个叫类似404.php的文件,在这个文件中分析URL并导航至相应页面去。

有兴趣自己实现的请百度之!

###静态内容加速

原理就是CDN服务商将你的网页文件缓存之,然后你的服务器就不用提供诸如jpg,css,js等不常更新的文件,减小了自己服务器的压力,好用的加速主要有七牛。

##网站结构优化

一个网站可能有很多栏目,栏目下会有许多文章,就像大树上结的果子。文章之间可能也会有相互关联,这种关系叫做叫内链。相对的,文章或栏目等指向他人网站的链接就叫外链。 每篇文章有自己的标题、关键字、描述和内容。

以上几个概念就是组成一个网站的基本结构。

###文章的结构

标题、关键字、摘要和内容分别对应英文中的title,keywords,desciption、content。 这些词语在几乎每一个网页中都有体现,搜索引擎就是根据以上几个属性来了解一个网站的所有内容。 其重要性按大小排序:content>title>desciption>keywords 所以在优化策略中,如果你的内容和别人的一样(比如使用火车头采集),那么如果你的标题设置的好,或者描述提取的好,那么你的排名就相对靠前一点。 (未完待续)

参考:

http://www.chinaz.com/web/2011/0727/201918.shtml

http://www.xmlas.com/robots-google-txt.html

一般wordpress主题都会在head标签之间使用wp_head()函数,因为这是个很重要的头部函数,很多功能插件都会用到它。 不过,如果你的wordpress主题用到了该函数,则会在head头部显示许多冗余的代码。

如果希望移除wordpress头部的多余代码,可以使用以下方法解决: 在主题文件夹下的functions.php文件中加入以下代码:

remove_action( 'wp_head', 'wp_generator' );//WordPress版本信息。
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );//最后文章的url
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );//最前文章的url
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );//上下文章的url
remove_action( 'wp_head', 'feed_links_extra', 3 );//去除评论feed
remove_action( 'wp_head', 'feed_links', 2 );//去除文章的feed
remove_action( 'wp_head', 'rsd_link' );//针对Blog的离线编辑器开放接口所使用
remove_action( 'wp_head', 'wlwmanifest_link' );//如上
remove_action( 'wp_head', 'index_rel_link' );//当前页面的url
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );//短地址

来源: http://www.daxiawp.com/remove-wordpress-head-code.html

博客用的国外的主题,对中文处理不是太好。尤其是首页会把文章的全部内容都输出,使首页变得很长,对于我这种爱贴代码的程序猿来说,这个病,必须治!

解决办法有三种:

  1. more标签
  2. 自己写方法截取文字
  3. the_excerpt()

more标签

以下引用sumile_ting 的话:

这种方法是在每次写文章时在文章中插入一个More标签。

添加More标签的方法:

写文章时,在需要作为摘要的地方点击编辑器中的More标签,或在HTML编辑状态加加入,或者直接按Alt+Shift+T,3种方法任选其一。

这种方法使用起来太麻烦,要求每一篇文章都得手动加,一不小心可能就忘记了。还不如修改主题模板来的方便快捷。

自造方法

自己写方法必须对function.php和content.php做改写,先找到


the_content()方法返回了文章的内容,处理一下就可以限制字数了,具体方法请自查。

但是对于我还是不合适,因为此时文章还没有被插件渲染,文章内的代码会被直接以纯文本的形式展示,很不和谐。 所以这个方案,pass

the_excerpt()

此方法是wordpress显示文章摘要的API,效果与the_content() 一样,只是这个函数对中文支持不好,需要处理一下

以下是步骤:

方法2的the_content()修改为the_excerpt() 在function下加入以下代码

function custom_excerpt_length( $length ) {
    return 200;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

给readmore加个链接,同样在functions.php中添加:

function new_excerpt_more( $more ) {
    return '阅读全文';
}
add_filter('excerpt_more', 'new_excerpt_more');

完美解决

参考:

http://sumile.blog.hexun.com/63924812_d.html

http://www.gemshe.com/fashion/suneyeglass/wordpress%E7%9A%84%E6%96%87%E7%AB%A0%E5%BD%A2%E5%BC%8Fget_post_format/

http://www.seanstudio.com/archives/2558

http://www.daxiawp.com/change-to-excerpt.html

apache的配置文件一直看得我云里雾里的,今天好好把配置文件研究了一下,还是有点收获的。 看httpd.conf的内容,它主要分成3大部分:

Section 1:Global Environment Section 2:'Main' server configuration Section 3:Virtual Hosts

以后修改配置的时候一定要注意,不要写错了地方

阅读剩余部分

简单的记录一下搭建自己的博客需要做的事情!

确定主题

一个网站的主题很重要,要不然你会无从下手,所以千万不要像我这样开一个这么无聊的blog。为什么说此步骤最难,就是因为点子是最重要的,只要主题(目标)明确,那么建立(实现)它就是易如反掌了。

选域名

域名是什么?其实就是一个网站的艺名而已。人家的网站叫“234.156.78.90”,你的叫“ccav.com”,那么你说那个更容易出名呢?所以,好的域名可能让你的网站迅速火起来。举个小栗子,以前的京东商城的域名是360buy.com,不懂英语的人当然不好记了,现在改名jd.com,既好记又提升了企业形象,何乐而不为呢?(估计这个域名京东花了不少钱)。不建议大家购买com以外的域名,尤其是cn结尾的,至于为什么大家可以自己研究。域名选好了后,就购买空间了。

虚拟主机(网站空间)

光是有了像phpgao.com这样的域名是不够的,因为你需要把你的文章放到互联网上供大家访问,所以你需要一个专用服务器,当然自己搭建服务器也是可以的,但是如果是个规模不大的网站老高建议还是租用吧,我的空间就是淘宝上买的,28半年,香港主机,速度还行。(为什么是香港空间?免备案呗!)

域名与空间的绑定

GOOD!既然你已经有了域名和空间,是时候将它们相互关联了。这一步比较关键!为了让大家更好的理解这一节。老高来举个大栗子,某一天老高要孤身一人拜访位从未谋面的远房亲戚,远程通话后确定目的地,坐飞机2小时(想的好美啊),下飞机后找那个举着牌子的人,我才能顺利见到那位亲戚。也就是说,我从出发到坐飞机,到达后根据牌子辨认身份这一系列的动作如果有一个失误,我的此次出行就是失败的,之后我只能沮丧的回家了。。。反应到现实就是:和我通话的那个人就是域名,他告诉我他在哪个IP等我,等我通过IP到站后,找那个举着牌子的人,这样就完成了一次“见面”。简单的说空间有个IP,你的域名必须解析到那个IP才行,当然不要忘了空间需要和你的域名绑定。

最后的工作

如果域名没有备案的话,那么你的空间应该和我一样不在内地吧。不过不要紧,能访问就行。想要搭建WP这类博客,你的空间还需要一个不是太小的MYSQL空间,也就是传说中的数据库。我的空间是200M+200M型,也就是说我的空间能放小于200M的MP3文件并且在数据库能够存放200M的数据。其实这么点空间建一个站已经很富裕了。(注:国外的空间不是很稳定,一定要定期备份!)

Windows

步骤如下: 1.停止mysql服务(以管理员身份,在cmd命令行下运行)

net stop mysql 

2.使用 mysqld –skip-grant-tables 命令启动mysql数据库

>D:\>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。
D:\>mysqld --skip-grant-tables

3.新开一个cmd窗口,进行如下操作

D:\>mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.26-rc-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> update mysql.user set password=password('root') where user='root';
Query OK, 1 row affected (0.02 sec)
Rows matched: 2  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4.打开任务管理器,停止mysql,mysqld进程,使用net start mysql启动mysqld服务,就可以使用root用户 root密码进入数据库了。

mysql -u root -p root

Linux

linux下解决办法和win下差不多,都是先开启一个没有权限验证的mysql,修改密码后直接重启mysql即可!

# 停用mysql
service mysqld stop


--------------------------------


# 使用无权限验证启动mysql
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

# 如果启动失败可以采用修改mysql配置文件的方法
vim /etc/my.ini

[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock
# ADD 
skip-grant-tables

# 重启mysql
service mysql restart

--------------------------------

# 修改密码操作同上


# 重启mysql

service mysqld restart

常见密码:

以下是常见的mysql密码,修改的时候就不用使用password()再生成了。


SELECT PASSWORD('123456');  -  *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
SELECT PASSWORD('mysql');  -  *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA
SELECT PASSWORD('admin');  -  *4ACFE3202A5FF5CF467898FC58AAB1D615029441
SELECT PASSWORD('root');  -  *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
SELECT PASSWORD('toor');  -  *9CFBBC772F3F6C106020035386DA5BBBF1249A11
SELECT PASSWORD('new-password');  -  *4A82FDF1D80BA7470BA2E17FEEFD5A53D5D3B762
SELECT PASSWORD('kangle');  -  *39534390859F20B4F7591340666D1B1FF1DC0F30
SELECT PASSWORD('asdqwe');  -  *7E1FF641317801DCCB60031184404B45E8A84BCC

2015年1月19日更新:

增加linux解决方法

补充常见密码