关于WordPress的SEO优化相关的一些PHP页面脚本技巧
<p>随着搜索引擎大兴, 排列在前的网站引入大量流量. 无论是搜索页面的广告还是查出来的结果, 与搜索者的目标匹配度都比较高 (如果搜索引擎足够智能), 所以通过搜索引擎而来的访客很可能会从网站上得到他想要的东西, 并记住这个网站. 也就是说, 搜索引擎会带来很多有价值的流量, 所以花点时间针对搜索引擎优化一下 WordPress 博客也是值得的. 本文将为你分享一些 WordPress SEO 技巧.</p>
<p>
以前我没有花太多时间做搜索引擎优化, 搜索引擎收录效果不是很好. 去年二月我终于为博客搞了一下 SEO, 写下这个文章. 一年半以来陆续进行了更多 SEO 优化, 博客文章写得不多了, 流量却有增无减, 网站也重回 PageRank 7, 效果相当不错的. 这次我根据自己的 WordPress SEO 方案更新了本文的内容.</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="关于WordPress的SEO优化相关的一些PHP页面脚本技巧" alt="关于WordPress的SEO优化相关的一些PHP页面脚本技巧" src="https://zhuji.jb51.net/uploads/img/202305/9315d9d17860bb0db526e4f9b7bd4dff.jpg"></p>
<p>
<strong>优化博客副标题</strong></p>
<p>
副标题 (slogan), WordPress 中称为 tagline. 它与博客标题不一样, 可能会承载一些描述博客的文字, 优化一下可以利用起来. 如我的副标题是 "mg12's Blog - Just Another WordPress Blog", 其中的 WordPress Blog 被我设置为 h1. 因为我想告诉爬虫, 这是一个关于 WordPress 的博客.</p>
<p>
<strong>区分显示页面标题</strong></p>
<p>
页面的标题不要包含博客名称. WordPress 标题一般会用到 bloginfo('name') 和 wp_title() 两部分, 前者是博客名称, 后者是文章标题 (如果标题不存在则不显示). 经典主题和默认主题输出标题用的代码如下.</p>
<div>
<div>
<div id="highlighter_254380">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code><title><?php wp_title(</code><code>'&laquo;'</code><code>, true, </code><code>'right'</code><code>); ?> <?php bloginfo(</code><code>'name'</code><code>); ?></title></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
输出的标题结构是 "文章标题 » 博客名称".</p>
<p>
除非你的标题和文章内容相关度比较高, 否则这样的标题对 SEO 显然是不好的. 标题是爬虫认为重要的内容之一, 如果标题中包含了与文章内容无关的信息, 多少会对该页面有所影响.</p>
<p>
那应该怎么弄呢? 我们可以对不同类型的页面进行区分, 我的实现代码如下.</p>
<div>
<div>
<div id="highlighter_554277">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
<div>
13</div>
<div>
14</div>
<div>
15</div>
<div>
16</div>
<div>
17</div>
<div>
18</div>
<div>
19</div>
<div>
20</div>
<div>
21</div>
<div>
22</div>
<div>
23</div>
<div>
24</div>
<div>
25</div>
<div>
26</div>
<div>
27</div>
<div>
28</div>
<div>
29</div>
<div>
30</div>
<div>
31</div>
<div>
32</div>
<div>
33</div>
<div>
34</div>
<div>
35</div>
<div>
36</div>
<div>
37</div>
<div>
38</div>
</td>
<td>
<div>
<div>
<code><title><?php</code>
</div>
<div>
<code> </code><code>// 如果是首页和文章列表页面, 显示博客标题</code>
</div>
<div>
<code> </code><code>if</code><code>(is_front_page() || is_home()) { </code>
</div>
<div>
<code> </code><code>bloginfo(</code><code>'name'</code><code>);</code>
</div>
<div>
<code> </code>
</div>
<div>
<code> </code><code>// 如果是文章详细页面和独立页面, 显示文章标题</code>
</div>
<div>
<code> </code><code>} </code><code>else</code> <code>if</code><code>(is_single() || is_page()) {</code>
</div>
<div>
<code> </code><code>wp_title(</code><code>''</code><code>);</code>
</div>
<div>
<code> </code>
</div>
<div>
<code> </code><code>// 如果是类目页面, 显示类目表述</code>
</div>
<div>
<code> </code><code>} </code><code>else</code> <code>if</code><code>(is_category()) {</code>
</div>
<div>
<code> </code><code>printf(</code><code>'%1$s 类目的文章存档'</code><code>, single_cat_title(</code><code>''</code><code>, false));</code>
</div>
<div>
<code> </code>
</div>
<div>
<code> </code><code>// 如果是搜索页面, 显示搜索表述</code>
</div>
<div>
<code> </code><code>} </code><code>else</code> <code>if</code><code>(is_search()) {</code>
</div>
<div>
<code> </code><code>printf(</code><code>'%1$s 的搜索结果'</code><code>, wp_specialchars(</code><code>$s</code><code>, 1));</code>
</div>
<div>
<code> </code>
</div>
<div>
<code> </code><code>// 如果是标签页面, 显示标签表述</code>
</div>
<div>
<code> </code><code>} </code><code>else</code> <code>if</code><code>(is_tag()) {</code>
</div>
<div>
<code> </code><code>printf(</code><code>'%1$s 标签的文章存档'</code><code>, single_tag_title(</code><code>''</code><code>, false));</code>
</div>
<div>
<code> </code>
</div>
<div>
<code> </code><code>// 如果是日期页面, 显示日期范围描述</code>
</div>
<div>
<code> </code><code>} </code><code>else</code> <code>if</code><code>(is_date()) {</code>
</div>
<div>
<code> </code><code>$title</code> <code>= </code><code>''</code><code>;</code>
</div>
<div>
<code> </code><code>if</code><code>(is_day()) {</code>
</div>
<div>
<code> </code><code>$title</code> <code>= get_the_time(</code><code>'Y年n月j日'</code><code>);</code>
</div>
<div>
<code> </code><code>} </code><code>else</code> <code>if</code><code>(is_year()) {</code>
</div>
<div>
<code> </code><code>$title</code> <code>= get_the_time(</code><code>'Y年'</code><code>);</code>
</div>
<div>
<code> </code><code>} </code><code>else</code> <code>{</code>
</div>
<div>
<code> </code><code>$title</code> <code>= get_the_time(</code><code>'Y年n月'</code><code>);</code>
</div>
<div>
<code> </code><code>}</code>
</div>
<div>
<code> </code><code>printf(</code><code>'%1$s的文章存档'</code><code>, </code><code>$title</code><code>);</code>
</div>
<div>
<code> </code>
</div>
<div>
<code> </code><code>// 其他页面显示博客标题</code>
</div>
<div>
<code> </code><code>} </code><code>else</code> <code>{</code>
</div>
<div>
<code> </code><code>bloginfo(</code><code>'name'</code><code>);</code>
</div>
<div>
<code> </code><code>}</code>
</div>
<div>
<code>?></title></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>Keywords 和 Description</strong></p>
<p>
Keywords 为搜索引擎提供网页包含的核心内容, Description 则为搜索引擎提供网页的描述信息. 我发布的主题曾经包括了对 keywords 和 description 的处理, 但因为一些 SEO 插件发生冲突, 在较新的版本中已经去除. 笔者认为 WordPress 的很多所谓 SEO 插件做得并不到位, 对中文博客支持都很差, 自己修改一下效果可能更好.</p>
<p>
以下是我对 keywords, description 和页面标题的处理规则, 实现方法可以参考上一段关于页面标题的说明.</p>
<p>
文章详细页面的描述一般取文章的前 220 个字符即可, 特别重要的页面和文章可以自定义摘要, 使其信息准确度更高. 如果存在摘要信息则使用摘要, 没有则使用前 220 个字符, 实现代码如下.</p>
<div>
<div>
<div id="highlighter_243623">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
</td>
<td>
<div>
<div>
<code><?php</code>
</div>
<div>
<code> </code><code>if</code><code>(</code><code>$post</code><code>->post_excerpt) {</code>
</div>
<div>
<code> </code><code>$description</code> <code>= </code><code>$post</code><code>->post_excerpt;</code>
</div>
<div>
<code> </code><code>} </code><code>else</code> <code>{</code>
</div>
<div>
<code> </code><code>// utf8_trim 方法是为了在截取字符之前对字符串进行转义, 避免出现截取半个汉字的情况</code>
</div>
<div>
<code> </code><code>// 参考文档: http://php-utf8.61924.nl/documentation/functions/utf8_trim.html</code>
</div>
<div>
<code> </code><code>$description</code> <code>= utf8_trim(</code><code>substr</code><code>(</code><code>strip_tags</code><code>(</code><code>$post</code><code>->post_content), 0, 220));</code>
</div>
<div>
<code> </code><code>}</code>
</div>
<div>
<code>?></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
</p>
頁:
[1]