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

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

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

优化博客副标题

副标题 (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));
 }
?>
(0)

相关推荐

  • 在WordPress中使用PHP脚本来判断访客来自什么国家

    区分访客国家有什么用? 这里是几个我利用该功能的例子. 1.区分网站功能 这个博客有翻译文章的功能, 这是为了方便海外访客阅读文章, 但对中国人显得十分多余. 所以我通过 IP 判断国家, 对中国大陆地区屏蔽翻译功能. 2.区分展示广告 比如中国大陆地区在侧边栏最下方看到的是拿福能的广告, 而其他地区看到的是 Google 的广告. hostucan 是我的一个广告主, 有英文网站, 也有中文网站, 所以我可以向他提供区分展示服务, 免得浪费流量. 3.屏蔽布点服务 海外有很多好的服务平台, 在

  • 判断、添加和删除WordPress置顶文章的相关PHP函数小结

    判断置顶文章 is_sticky() 函数用来判断一篇文章是否为置顶文章. 用法 is_sticky( $post_id ); 参数 $post_id (整数)(可选)要判断的文章 ID,默认是循环中的当前文章. 默认值:0(循环中的当前文章) 返回值 (布尔)文章是否为置顶文章. 例子 if( is_sticky() ) echo //'当前文章是置顶文章'; if( is_sticky( 68 ) ) echo //'ID 为 68 的文章是置顶文章'; 其它 此函数位于:wp-includ

  • 调试WordPress中定时任务的相关PHP脚本示例

    一般人们使用WordPress的Cron API来实现定时任务,它的原理就是将创建的定时任务存储到数据库里,当有人访问的时候就去判断一下是否到时间需要执行这个定时任务,如果到时间则执行. 因为这种原理,所以执行的时间可能会有一些偏差,但随着网站的浏览量攀升和网络爬虫的不断访问,会让定时任务执行的时间越来越准确. 想在 WordPress 里创建一个定时任务一般用两个函数就行,其中之一是wp_schedule_event() wp_schedule_event( $timestamp, $recu

  • 修改PHP脚本使WordPress拦截垃圾评论的方法示例

    拦截英文垃圾评论 由于绝大多数的垃圾评论都是英文的,所以国内不少朋友在使用 Some Chinese Please 插件,它可以有效地拦截内容中不带有中文字的comment和trackback(pingback),不写入数据库中,可有效地减小spam对blog服务器的无谓使用.虽然已经 2 年多没有更新,但还是可用的. 其实还可以简化下,直接将下面的代码添加到主题的 functions.php 文件,效果与使用 Some Chinese Please 插件相同: /* refused spam

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

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

  • SEO优化之URL优化

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

  • 详解Vue开发网站seo优化方法

    因为用了vue等js的数据绑定机制来展示页面数据,爬虫获取到的html是模型页面而不是最终数据的渲染页面,搜索引擎是不回去执行请求到的js.vue的项目都是ajax请求数据,引擎爬虫进入页面获取不到文字内容,现在大多数解决方案是不采用ajax渲染数据,而是采用server端渲染,也就是所谓的SSR. 目前基于vue的方案是Nuxt.js,同类型的也有React版的Nuxt.js所以服务端渲染就是尽量在服务器发送到浏览器前,页面上是有数据可让爬虫进行爬取 方法一.利用prerender-spa-p

  • vue单页面如何通过prerender-spa-plugin插件进行SEO优化

    目录 一.前言 二.过程 prerender-spa-plugin插件只能对静态的页面做预渲染实现SEO优化,如果是后台请求的数据需要做SSR处理,例如商品详情页,可使用Vue SSR,详细参考我的另一篇博客:VueSSR的一些理解和详细配置 一.前言 之前虽然一直有看过SEO相关的文章,但是一直没去实践过,然后突然技术总监要求要对咱们的官网做个SEO的优化. 于是才正式动手搞这玩意.地址:火石创造官网 首页用的根目录的index.html /bluebook页面用的bluebook目录下的in

  • vue单页面SEO优化的实现

    SEO(Search Engine Optimization)搜索引擎优化.利用搜索引擎的规则提高网站搜索引擎内的自然排名. 目的:为网站提供生态式的自我营销解决方案,让其在行业内占据领先地位,获得品牌收益,免费流量,从网 站结构.内容建设方案.用户互动传播等. 随着前端框架的强势兴起,vue框架迅猛发展,使用vue构建开发的人员越来越多,但是使用vue-cli打包项目一般为spa(单页面)项目,众所周知单页面应用不利于SEO,于是有ssr(服务端渲染)和预渲染两种解决方案,这里我们只讨论预渲染

  • ASP.NET MVC3 SEO优化:利用Routing特性提高站点权重

    简介 我们在开发互联网程序的时候,有个很重要的事情就是做搜索引擎优化(SEO),我们都知道ASP.NET MVC程序提供了友好的URL以及永久重定向的支持,这些友好的URL是利用Routing系统的特性来支持的,但是在这个Routing里有个问题,就是多个不同的地址和指向同一个action方法,那对于搜索引擎来说就意味着你的站点有很多地址的内容都是重复的. 本章内容将展示如果解决这一问题. 正文 对于SEO,一个地址对应一个唯一独立的内容是保证最好权重的一个重要步骤,所以我们需要确保每一个URL

  • Unity项目优化相关技巧

    目录 一.简单优化 二.优化进阶 四.代码相关优化 一.简单优化 1.图片纹理大小尽量为2的幂次方(比如128,512,1024等等),以便unity对其进行优化. 2.将多个小图片纹理合并一个大的图片纹理以降低drawcall,特别是同一个ui面板的元素都放到一个图集中,背景图片尽量单独做一个图片. 3.尽可能的共用材质球,原因同上. 4.不需要播放动画的模型把Animator或animation组件删除掉,因为不管用或不用他们都会被初始化. 5.模型方面要注意尽可能的减少顶点数和三角面数,尽

  • 优化Docker镜像安全性的12个技巧总结

    目录 1前言 2避免泄露构建密钥 多阶段构建 BuildKit的密钥 题外话:不要推送在开发机上构建的镜像 3以非root用户身份运行 4使用最新的基础镜像构建和更新系统包 背景知识 6对你的镜像进行漏洞扫描 7扫描你的Dockerfile是否违反了最佳实践 8不要对DockerHub使用Docker内容信任 9扫描你自己的代码是否有安全问题 10使用docker-slim来删除不必要的文件 11使用最小的基础镜像 12使用受信任的基础镜像 背景知识 13测试你的镜像是否能在降低能力的情况下工作

  • 实现MySQL定时批量检查表repair和优化表optimize table的shell脚本

    本文介绍mysql定时批量检查表repair和优化表optimize table的shell脚本,对于MySQL数据库的定期维护相当有用!如下所示: #!/bin/bash host_name=192.168.0.123 user_name=jincon.com user_pwd=jincon.com database=my_db_name need_optmize_table=true tables=$(mysql -h$host_name -u$user_name -p$user_pwd $

  • WordPress中获取所使用的模板的页面ID的简单方法

    什么是模板呢?默认情况 WordPress是使用主题目录下page.php来作为模板显示页面的,但是有时候我们需要不同的模板来显示页面,比如登录.注册和投稿页面等,这些页面跟普通的页面是有所区别,这时候WordPress提供了页面模板让开发者可以自定义WordPress页面外观甚至功能. 页面模板php文件的匹配 WordPress中是通过自定义栏目来记录页面所使用的模板的,自定义栏目名称:_wp_page_template,值为模板的文件名: 如果是默认模板page.php,那么 _wp_pa

随机推荐