SEF 这个词我通常翻译为“友好网址”,它是 Search Engine Friendly(搜索引擎友好)的缩写。友好的什么?这里省略了一个关键词 URL(网址)。如果你熟悉搜索引擎优化(SEO),就应该知道 SEF 也是一个很重要的 SEO 手段。在进行 Joomla SEO 时,启用 SEF 是最基本的要求。

从 Joomla 1.0.x 时代起,Joomla 自身就提供了 SEF 功能。但是 J1.0 平台的 SEF 确实不怎么样,只是去掉了 URL 中的“?”和“&”及“=”这些符号,却没有实现 SEF 的重点:URL 中含有关键词

到了 Joomla 1.5.x 平台,Joomla 官方终于改进了自带的 SEF 功能,这回可以在 URL 中含有关键词了。为了方便非英文语言用户(包括中文 Joomla 用户),官方还为文章单元、类别及标题这些 URL 中必须用到的部分增加了“别名”(Alias)字段。Joomla 核心 SEF 默认使用别名来生成 SEF URL,于是中文用户可以在文章别名中使用英文关键词来达到理想的 SEO 效果。

万事大吉了吗?非也。现在产生了一个新问题:中文用户必须填写 Alias 字段才能生成满意的 SEF 网址,但是并非每一个站长,或者文章作者,都是 SEO 专家,甚至有些作者连英文都不懂,你让他如何填写别名?还要考虑这些情况:作者忘记填写别名呢?网站有多个作者投稿,如何避免重复的别名?网站有海量文章,天长日久之后,如何避免重复的别名?

 

目前对中文 Joomla 文章进行 SEF 的处理办法

现在中文 Joomla 网站比较常见的 SEF 方案有下面三种:

 

  1. 不使用别名,直接使用中文标题生成 SEF:由于 Joomla 1.5 支持生成 UTF-8 编码的 URL,因此在 URL 中使用中文完全可行。这个方法的优点是简单易行,作者撰写文章时无需考虑 SEO 技巧 —— 他甚至不用知道什么是 SEO;同时 URL 中含有中文关键词也有利于 SEO。缺点也很明显:含有中文的 URL 不方便国际交流,你能指望老外看懂这样的 URL 吗?
  2. 在别名中使用中文关键词:有时候文章标题并不含有最佳的关键词组合,因此作者在别名中填写若干中文关键词。这样的 SEO 效果比上一条好一些,但是缺点是一样的。
  3. 通过插件自动转换中文为拼音然后生成 SEF:这样的方法避免了在 URL 中出现中文字符,汉语拼音的外观与英文字母完全一致,因此优点是方便交流,方便文章作者——作者同样不用考虑 SEO 技术。这个方法的缺点也是严重的:
  • 像“的”、“与”、“和”这些无用的词汇无法剔除,因为如果你刻意滤除,则同时滤除了“德”、“雨”、“河”这些词汇,而后者很可能就是文章的关键词!比如,“德甲”被处理成 jia(de 被滤除了),还有意义吗?
  • 相邻拼音之间如果不用连字符分隔,可能出现误解。例如:“jianzhan”这个字串你怎么理解?很可能是“建站”,也很可能是“集安站”(吉林省集安市)—— 谷歌搜索引擎再聪明,恐怕也猜不出吧?如果使用连字符分隔,请问“xiao-he-hen-nan-guo”是指“小河很难过”,还是指“小何很难过”?更不用说这样产生的 URL 长度会增加很多!
  • 考虑到汉字里面“同音字”非常多,因此“拼音 SEF 法”也难以避免重复 URL 出现(糟糕的是这两个重复的 URL 本应该属于不同的页面)!很难设想在一个拥有成千上万文章的网站(例如区域信息港之类的门户网站)使用这种 URL!

综上所述,我个人认为这三种方法都不好。中文 Joomla 网站要实现便捷而且有利于 SEO 的 SEF,要么老老实实手动填写英文关键词做别名(小网站),要么就使用我建议的方案(适用于大型网站或作者不熟悉 SEO,或不熟悉英文):

Joomla 之门的解决方案

我认为中文 Joomla 文章最理想的 SEF 方案必须满足:

  1. URL 是唯一的,永远不可能重复或冲突;
  2. 文章作者无需考虑将来怎样生成 URL,集中精力写文章;
  3. 生成 SEF 网址的过程是自动化的;

这三个基本原则我想您不会不同意把?好,我们就沿着这个思路来处理。

在 Joomla 的文章参数中,什么是唯一的?只有一个,那就是 ID !每一篇文章都有自己的 ID,即使删除一些文章,再新建文章时也不会重复使用过去的 ID!

也就是说,我们如果要满足第一个条件,就必须使用文章 ID。

你或许注意到了,Joomla 核心的 SEF 方式就在 URL 中使用了文章 ID,但是它不仅仅使用了 ID,还带有别名,这才把问题复杂化了——我是指对中文文章来说。

第二个条件:文章作者如果不填写别名部分,那就是空的了。但是 Joomla 1.5 有一个很糟糕的设计是:自动给空的别名填写形如“2009-12-04-10-28-17”这样的“日期 + 时间”型别名。所以我们必须排除或替换(override/replace)这样的别名!

手动替换?不,全自动。因为必须满足第三个条件。这就要求必须开发一个全新的软件,来做到:自动将全部文章(包括以后新建的文章)的别名填写为该文章的 ID,如果某篇文章已有别名,也删掉,替换为文章 ID。

那么,最终我的方案想得到什么样的 URL 呢?形如:

https://www.uhiker.com/section-alias/category-alias/48.html

解释一下:由于文章单元和类别的“别名”可以由站长在后台控制,并且一般不可能产生“重复”或“冲突”,因此还建议使用英文关键词做别名。而 URL 中的文章部分,只使用其 ID,就是示例中最后的数字 48。这样的 URL 简洁、方便,虽然在 URL 的“文章”部分没有任何关键词,有一点 SEO 损失,但是极大地方便了大型网站的投稿活动。

Joomla 之门的产品:JG Numbered Alias

你不用搜索 JG Numbered Alias 这个词了,这是 Joomla 之门站长在24小时之前刚刚创造的新词汇,同时也是一个 Joomla 插件的软件名称。我相信目前互联网上还没收录这个词,而当你使用这个插件之后,或许你会帮忙传播 JG Numbered Alias 这个名字以及 Joomla之门的名声。

 

如果将前面的思路整合在现有的高级 SEF 组件如 Artio JoomSEFAceSEF 中,就是最理想的结果了。我在这两个软件的官方论坛都提过这个建议,Artio 官方说“好主意,可以试试”,JoomAce 官方则说“这玩意没啥意思,你要做的话,付钱给我,我专门给你定制”。

我对 AceSEF 的收费没有意见,我要求他们将这个功能集成到 AceSEF 参数中,作为一个选项提供给用户。我相信不仅能受到中文用户的欢迎,同时也能造福日语、韩语、阿拉伯语等所有非拉丁语系(Non-Latin)Joomla 网站的用户!但是他们如此不重视这个方案,我无法认同。

而 Artio 官方迟迟不见动静,我终于萌生了自力更生的念头。我给几个 Joomla 开发人员发送了邮件,最后 Joomler!.net 回信,于是有了我们合作的结晶:JG Numbered Alias 插件。

2010年2月18日补充:Artio JoomSEF 刚刚发布了 v3.5.5 版本,此版本采纳了 Joomla之门 的建议,为文章系统(com_content)提供了“纯数字格式友好网址”选项。这个数字可以是“文章 ID”,也可以是“日期”,或者“日期+ID”。

JG Numbered Alias 的功能就是:自动将每篇文章的“别名”替换为该文章的 ID,然后配合高级 SEF 组件,就能生成前面提到的 URL。

提醒一下:JG Numbered Alias 必须配合高级 SEF 组件使用,如果只启用 Joomla 核心的 SEF,它会继续添加一个 ID 上去,从而将 URL 变成:

https://www.uhiker.com/section-alias/category-alias/48-48.html

Joomla之门愿意继续改进“ID SEF”方案

在某些网站,尤其是新闻网站,对这种数字式 SEF 的方案还应该改进一下:由单纯的 ID 改为“日期 + ID”,例如:

https://www.baijianpeng.com/news/latest/20091204048.html

新闻网站上(或新闻栏目)使用 Date+ID 形式的 SEF URL,有助于让读者(当然还有搜索引擎)迅速明白这篇文章的发表日期,便于判断新闻是否真的“新”。

另外,JG Numbered Alias 插件只解决了文章系统。我们还应该想到,其它一些第三方 Joomla 扩展也都会遇到同样的 SEF 难题。例如:你安装了论坛组件,怎样为论坛的话题和帖子生成 SEF 网址呢?你要知道,论坛组件连“别名”这个字段都没有!

我认为还是使用 ID,简单的数字,使 URL 简洁(据说 Google 等搜索引擎不喜欢太长的 URL)且保持唯一。

你可能说:怎么又用数字?没有关键词啊。那么别忘了,著名的 Discuz! 论坛一直是使用数字作为帖子 URL 的。如果你有更好的 idea,请到论坛发帖或在页底评论中提出。

不止是论坛,还有图库组件、下载系统等等。我认为对于不太熟悉英文而且没时间仔细处理每一个别名的网站,使用 ID 是最好的方法。例如:著名的下载组件 Remository 在我的建议下,为下载类别和下载文件都提供了别名字段,你可以通过英文别名来生成最佳的 SEF 效果,但是如果做大型下载站呢?就可以使用 ID,所生成的数字式 URL 一样好用 —— 天空下载、霏凡下载、华军软件园等大型网站不都是使用数字作为 URL 的“页面”部分吗?

当然了,Joomla之门的站长是不懂 PHP 开发的。如果你有兴趣,欢迎加入“Joomla 中文开发小组”,我们一起来做点有意义的事情。怎么样?

 

后记:JG Numbered Alias 插件是由 Joomla之门付费给 Joomler 才开发成功的。因此,如果您认同我的思路,愿意看到 Joomla之门继续为中文 Joomla 用户提供更多好用的扩展,请您点击下面的链接捐款给我们,帮助我们继续发展。谢谢!

点击此处立即向 Joomla! 捐款,升级到高级会员

 

{quickdown:283}

  1. 评论 (5)

  2. Add Yours

评论 (5)

这里还没有人发表评论
  1. JPCAD.net

这个插件支持Mosets Tree组件吗

  附件
您无权查看附件
 
  1. Joomla之门

<br />404组建呢
<br />sh404SEF 已经完全收费了(没有免费版本),不方便用户试用,因此不做推荐。

  附件
您无权查看附件
 
  1. chndesign

“提醒一下:JG Numbered Alias 必须配合高级 SEF 组件使用……”<br />是指“Artio JoomSEF 或 AceSEF”?
<br />404组建呢

  附件
您无权查看附件
 
  1. 野草工作室

“提醒一下:JG Numbered Alias 必须配合高级 SEF 组件使用……”<br />是指“Artio JoomSEF 或 AceSEF”?

  附件
您无权查看附件
 
  1. ckdycn747

感谢站长和全体支持Joomla之门的兄弟的无私努力!Appreciate a lot!

  附件
您无权查看附件
 

免费下载最新Joomla!核心中文版

扫描此二维码,立即开始下载 Joomla 3 核心中文版

付费下载汉化版扩展

付费后即可下载独家海量

Joomla! CMS 扩展汉化版

了解付费会员制度

点击这里给我发消息

了解 joomlagate.com 网站的付费会员制度