很多刚接触wordpress的人都不知道应该如何去设置固定链接(英文名称:PermaLink,一般译作固定链接或永久链接,是一个指向特定博客页面或者文章页面的固定URL,它们基本上是保持不变的、永久的指向你的网站页面。)所以当我在国外看到这一篇精彩的介绍wordpress永久链接的文章时,我马上约稿了,非常感谢Lampth Neo。希望大家从中能够了解到各种固定链接的利与弊,并且自己能够做出最为恰当的选择。
如果能够正确使用wordpress的固定链接,它的作用将是无比强大的,它常常以其完美的装饰效果和所带来的搜索引擎优化效果为大众所熟知。
一般的固定链接结构
在Wordpress博客程序中,默认使用一个简单的数字变量链接结构,看起来效果如下所示:
http://www.appthemes.com/?p=123
这种链接结构既不漂亮,也不能体现出页面或者文章的具体含义。但是有的时候,你会发现,这种链接结构的综合表现却是最好的。
其他一些常见的自定义链接结构如下:
/%postname%/ /%category%/%postname%/ /%year%/%monthnum%/%postname%/
什么样的链接才算最好的固定链接
这真是一个好问题,但是不得不承认,到目前为止,还没有标准的答案。这得要看:什么对你来说是最为重要的,以及现在你的网站或者将来你准备把你的网站做成多大。
那么,什么样的永久链接结构对你的网站来说是最好的?你该如何进行抉择?下面我将尽我所能的为你提供你所需的所有信息。现在互联网上已经有了很多不同的观点,但对于你来说,你能够了解到真相,并且自己能够做出最为恰当的选择才是最好的。
性能良好的固定链接
如果你准备架设一个拥有着成百上千文章的网站,并且想确保它是可扩展的和快速运行的,那么下面是你应该遵守的一些规则:
- 静态链接结构中不要以你的栏目和文章名字作为开端,比如说:
/%category%/ /%postname%/
这些是最耗资源的自定义链接结构,因为它们是文本字段,并且是你永久链接结构的开端,它使得wordpress花费更多的时间来区分是文章页面还是普通页面,并且需要在你的数据库中存储额外的元数据。
- 选择一个以数字(如年份或文章ID)或者以硬编码路径(如/posts/)开始的静态链接结构,比如说:
/%year%/%postname%/ /%post_id%/%postname%/ /posts/%postname%/
有利于seo的固定链接
网上有很多的文章告诉你,搜索引擎优化(SEO)效果最好的自定义固定链接结构就是文章名字链接。事实上,这正是我们所要大力倡导的链接结构,并且相信学会它的使用是至关重要的。但是这并不适合所有人。
/%postname%/
当有了几年的SEO经验之后,我们了解到它确实能帮助提升网站排名。并且包含有关键字的短链接(而不是多层级的)所带来的好处远远高于包含日期和文章ID的固定链接结构。我们已经将这条经验应用于数十个wordpress网站上,并且没有出现任何问题。但是不得不提的是,我们大多数(不是所有的)的wordpress网站都是仅有数百个页面的小站,所以在性能上都不是问题,并且我们还使用了插件来帮助提升性能。
如果你的网站很大,并且想要它是可扩展的,这种固定链接结构或许并不适合你。
无论如何,我们仅仅将此种固定链接结构认为是代表最利于搜索引擎优化(SEO)的。
两全其美的固定链接结构
到目前为止,你已经看到了两个极端,那么最为中庸的是什么样的呢?很高兴地告诉你,目前我们已经找到了能够迎合我们所有核心利益的最为完美的解决方案。
选择一个硬编码的路径地址
这种链接结构可以集速度,易用性,SEO于一身,这恰好与SEO碰撞起了一点点小火花,因为这种结构使得每个文章页面都是一层的链接结构,而不是都处于根目录下面。
/blog/%postname%/ => http://www.appthemes.com/blog/the-post-title/
用一个数字变量开始
这种结构在速度,易用性和SEO都可以带来很高的分数,但是稍稍有所不同。因为没有子目录结构(/blog/),你可以获得更高的SEO权重。但是另一方面,你牺牲了美观,因为文章ID出现在了URL的前端,wordpress最先要寻找的就是这个数值。
/%post_id%-%postname%/ => http://www.appthemes.com/123-the-post-title/
另外值得一提的是:Google News(http://www.google.com/support/news_pub/bin/answer.py?answer=68323&cbid=1d7kv7l9u7to0&src=cb&lev=answer)需要所有的文章链接都包含一个特有的三数字编号,这将有利于搜索引擎索引。
但这仅仅是体现在谷歌新闻中,而不是一般的谷歌搜索结果。但如果在静态链接中包含文章ID和日期,仍然能够带来不少的好处。
唯一的问题在于谷歌新闻不会收录你最开始的99篇文章/页面,因为它们只含有两个数字。
最理想的固定链接结构
在理想的世界里,wordpress的永久链接引擎将会为提升性能而被优化,这将会使得有关于自定义链接的速度和SEO的争论被束之高阁。我知道要达到这个目的还有很长的一段路要走,但是这将是在即将发布的版本中是有所解决的,并且是无比伟大的改变。
目前已经有了一些需要改进的小建议(#12935 http://core.trac.wordpress.org/ticket/12935& #16687http://core.trac.wordpress.org/ticket/16687),它们都很有希望解决这些问题。
因而wordpress—如果你听从训导的话—这有两个很完美的自定义链接结构,它们将给大家带来很多SEO、组织、立场遵守方面的好处。你所要做的就是将文章ID置于URL中,而不是从左边去进行搜索。
%postname%-%post_id%/ => http://www.appthemes.com/the-post-title-123/
或者
/%category%/%postname%-%post_id%/ => http://www.appthemes.com/news/the-post-title-123/
这就是APPThemes论坛(http://forums.appthemes.com/)所采用的静态链接结构。
在WordCamp SF(http://2011.sf.wordcamp.org/)上与OTTO(wordpress核心贡献者)交谈之后得知,在wordpress3.3之后,类似于包含/%postname%/ 或者 /%category%/的静态链接结构将不会产生任何性能上的问题。这是一个振奋人心的消息,这不仅仅有利于解决性能和SEO上的争端,还能使这历史性的争论戛然而止。在WPCandy(http://wpcandy.com/reports/postname-performance-issues-eliminated-in-3-3)上的一篇文章已经提到了这一点。
AppTheme网站所使用的固定链接结构
在本博客中,我们考虑了速度、可用性、SEO。这个问题最终以一个混合型方法得到了解决,在我们所有的文章页中都包含了硬编码的路径结构,它们大致看起来如下所示:
/blog/%postname%/
以下是我们采用此种结构的原因:
- 硬编码路径结构运行速度要快于仅仅是包含文章名的链接结构(或其他链接结构)
- 这个URL结构对SEO也是友好的,在搜索引擎的结果页面它也呈现了一个简单而又干净的片段。
- 这种结构不包含日期,我们一般尽量写一些“永恒的”博客文章,并且保持着与一个较长的时期有关。
- 关键词在URL中是以连字符分隔而不是以下划线进行分隔,这是采自于Matt Cutts(谷歌首席SEO工程师)的建议。
如果我们想要重新进行更新我们的静态链接结构,我们也会在文章名字后面加上文章ID这样我们的URL就会更符合谷歌新闻的政策。
/blog/%postname%-%post_id%/
我可以改变我已有的网站固定链接结构吗?
可以修改,但如果你的网站已经存在一段时间了的话(超过6个月或者有了很多的反向链接),我们不推荐修改你已经存在了的静态链接结构。
你或许会问为什么?其中最大的原因是:链向你网站的链接。这些链接不仅仅可以给你的网站带来流量,也可以提升你的搜索引擎排名。改变你的网站静态链接结构将会打断这些入站链接,除非你能进行恰当的操作。
打一个很好的比方。正如你目前的居住地一样,所有的邮件都是被发送到同一个家庭地址,对否?假如说你哪天爬起来就搬到了另外一个地方,并且不让任何人知道你的新地址。那么你所有的邮件将会发生什么?它们将会丢失或者退回给寄件人。
当涉及到你的网站网址,这是同样的道理,如果你没有设置正确的301重定向,你将失去所有的外部链接和那些入站链接。
回到搬家这个问题上,在没有与邮局联系,设立邮件转发之前,你不会搬家,对不对?
所以,你可以在技术上更改你已经建立好的网站静态链接结构,但你得要确保你的做法(比如说用301重定向)是正确的。目前已经有几个比较好的插件可以帮助你改变你的静态链接结构。
如果你有成百上千的文章和页面,一个高效的方法将是在你的.htaccess文件中书写重写规则,但这是高技术的,高难度的,很多人都不会这样做。
在这种情况下,你应该聘请专业的开发人员或系统管理员,因为他们有着书写正则表达式的经验和懂得Apache重写规则。
wordpress的404永久链接错误
对于wordpress博客主来说,404错误是一个典型的“此页无法找到”的错误信息,它通常意味着你没有正确设置好你的wordpress永久链接结构。
随着最近的自定义文章类型的兴起,这种错误已经出现得比以往更多,在这种情况下,解决方法十分简单,在你添加一个新的自定义文章类型(或者使用自定义文章类型的主题)之后,你只需要重新保存你的自定义静态链接结构即可。