关于WordPress的SEO优化相关的一些PHP页面脚本技巧


Posted in PHP onDecember 10, 2015

随着搜索引擎大兴, 排列在前的网站引入大量流量. 无论是搜索页面的广告还是查出来的结果, 与搜索者的目标匹配度都比较高 (如果搜索引擎足够智能), 所以通过搜索引擎而来的访客很可能会从网站上得到他想要的东西, 并记住这个网站. 也就是说, 搜索引擎会带来很多有价值的流量, 所以花点时间针对搜索引擎优化一下 WordPress 博客也是值得的. 本文将为你分享一些 WordPress SEO 技巧.

以前我没有花太多时间做搜索引擎优化, 搜索引擎收录效果不是很好. 去年二月我终于为博客搞了一下 SEO, 写下这个文章. 一年半以来陆续进行了更多 SEO 优化, 博客文章写得不多了, 流量却有增无减, 网站也重回 PageRank 7, 效果相当不错的. 这次我根据自己的 WordPress SEO 方案更新了本文的内容.

关于WordPress的SEO优化相关的一些PHP页面脚本技巧

优化博客副标题

副标题 (slogan), WordPress 中称为 tagline. 它与博客标题不一样, 可能会承载一些描述博客的文字, 优化一下可以利用起来. 如我的副标题是 "mg12's Blog - Just Another WordPress Blog", 其中的 WordPress Blog 被我设置为 h1. 因为我想告诉爬虫, 这是一个关于 WordPress 的博客.

区分显示页面标题

页面的标题不要包含博客名称. WordPress 标题一般会用到 bloginfo('name') 和 wp_title() 两部分, 前者是博客名称, 后者是文章标题 (如果标题不存在则不显示). 经典主题和默认主题输出标题用的代码如下.

<title><?php wp_title('«', true, 'right'); ?> <?php bloginfo('name'); ?></title>

输出的标题结构是 "文章标题 » 博客名称".

除非你的标题和文章内容相关度比较高, 否则这样的标题对 SEO 显然是不好的. 标题是爬虫认为重要的内容之一, 如果标题中包含了与文章内容无关的信息, 多少会对该页面有所影响.

那应该怎么弄呢? 我们可以对不同类型的页面进行区分, 我的实现代码如下.

<title><?php
 // 如果是首页和文章列表页面, 显示博客标题
 if(is_front_page() || is_home()) { 
 bloginfo('name');
 
 // 如果是文章详细页面和独立页面, 显示文章标题
 } else if(is_single() || is_page()) {
 wp_title('');
 
 // 如果是类目页面, 显示类目表述
 } else if(is_category()) {
 printf('%1$s 类目的文章存档', single_cat_title('', false));
 
 // 如果是搜索页面, 显示搜索表述
 } else if(is_search()) {
 printf('%1$s 的搜索结果', wp_specialchars($s, 1));
 
 // 如果是标签页面, 显示标签表述
 } else if(is_tag()) {
 printf('%1$s 标签的文章存档', single_tag_title('', false));
 
 // 如果是日期页面, 显示日期范围描述
 } else if(is_date()) {
 $title = '';
 if(is_day()) {
  $title = get_the_time('Y年n月j日');
 } else if(is_year()) {
  $title = get_the_time('Y年');
 } else {
  $title = get_the_time('Y年n月');
 }
 printf('%1$s的文章存档', $title);
 
 // 其他页面显示博客标题
 } else {
 bloginfo('name');
 }
?></title>

Keywords 和 Description

Keywords 为搜索引擎提供网页包含的核心内容, Description 则为搜索引擎提供网页的描述信息. 我发布的主题曾经包括了对 keywords 和 description 的处理, 但因为一些 SEO 插件发生冲突, 在较新的版本中已经去除. 笔者认为 WordPress 的很多所谓 SEO 插件做得并不到位, 对中文博客支持都很差, 自己修改一下效果可能更好.

以下是我对 keywords, description 和页面标题的处理规则, 实现方法可以参考上一段关于页面标题的说明.

文章详细页面的描述一般取文章的前 220 个字符即可, 特别重要的页面和文章可以自定义摘要, 使其信息准确度更高. 如果存在摘要信息则使用摘要, 没有则使用前 220 个字符, 实现代码如下.

<?php
 if($post->post_excerpt) {
 $description = $post->post_excerpt;
 } else {
 // utf8_trim 方法是为了在截取字符之前对字符串进行转义, 避免出现截取半个汉字的情况
 // 参考文档: http://php-utf8.61924.nl/documentation/functions/utf8_trim.html
 $description = utf8_trim(substr(strip_tags($post->post_content), 0, 220));
 }
?>
PHP 相关文章推荐
PHP+MYSQL 出现乱码的解决方法
Aug 08 PHP
通用PHP动态生成静态HTML网页的代码
Mar 04 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
Aug 09 PHP
php下载文件的代码示例
Jun 29 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
May 04 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
php mb_substr()函数截取中文字符串应用示例
Jul 29 PHP
PHP中变量引用与变量销毁机制分析
Nov 15 PHP
php实现对两个数组进行减法操作的方法
Apr 17 PHP
php简单实现sql防注入的方法
Apr 22 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
PHP创建PowerPoint2007文档的方法
Dec 10 #PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
Dec 10 #PHP
调试WordPress中定时任务的相关PHP脚本示例
Dec 10 #PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
Dec 10 #PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 #PHP
php获取图片信息的方法详解
Dec 10 #PHP
在WordPress中使用wp-cron插件来设置定时任务
Dec 10 #PHP
You might like
收音机术语解释
2021/03/01 无线电
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
javascript import css实例代码
2008/07/18 Javascript
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
js 创建快捷方式的代码(fso)
2010/11/19 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
2018/02/22 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
班级聚会策划书
2014/01/16 职场文书
学生会干部自荐信
2014/02/04 职场文书
党建工作整改措施
2014/10/28 职场文书
消费者投诉书范文
2015/07/02 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js
python_tkinter弹出对话框创建
2022/03/20 Python