包含数字的搜索引擎友好 URL……好还是坏?
Posted
技术标签:
【中文标题】包含数字的搜索引擎友好 URL……好还是坏?【英文标题】:Search engine friendly URLs that contain numbers... good or bad? 【发布时间】:2011-01-16 21:46:59 【问题描述】:我创建了一个具有层次结构并具有搜索引擎友好 (SEF) 网址的网站,例如:
/seeds-1/
/seeds-1/fruits-2/
/seeds-1/fruits-2/black-berries-5/
/seeds-1/fruits-2/blue-berries-6/
/seeds-1/fruits-2/strawberries-7/
/seeds-1/vegetables-3/
/seeds-1/vegetables-3/potato-8/
/seeds-1/vegetables-3/onion-9/
/seeds-1/vegetables-3/cabbage-10/
/seeds-1/flowers-4/
/seeds-1/flowers-4/red-rose-11/
/seeds-1/flowers-4/tulips-12/
等等。您会注意到末尾的数字是 ID。现在我已经完成了网站和所有事情,一位“顾问”介入并告诉我的客户“...... url 不是 100% 搜索引擎友好的,要让它们 100% 搜索引擎友好,必须删除数字...”。我显然无法与“顾问”交谈,因为他们已经完成了他们的工作并且消失了。
如果有人能指出这两种 URL 的优点和缺点,我将不胜感激。我需要一些可靠的论据来说服客户,而且我真的需要知道我在为我的网站选择这种 URL 方案时是否犯了错误。
编辑----
可能是我太懒了。重写规则如下:
RewriteRule ^[^/]+-([0-9]+)/$ object.php?ObjectID=$1
RewriteRule ^[^/]+-([0-9]+)/[^/]+-([0-9]+)/$ object.php?ObjectID=$2
.
.
.
从查询字符串中提取 ObjectID,将其转换为整数并在 SQL 查询中使用它相当容易。我认为在查询中使用文本比较(WHERE Name = '%s')比使用整数比较(WHERE ObjectID = %d)要慢,因此我很犹豫。问题更像是是否值得以降低编码/性能友好性为代价使 URL 更人性化。
【问题讨论】:
如果你分层展示你的数据,那么你也应该分层存储。 示例被混淆了,我与 FarmVille 无关 :) 我实际上有两个场景来实现这个:#1 有一个表,递归关系,无限深层次 #2 有 6 个表,正好 6 层深 【参考方案1】:同意 cherouvim 并将扩大。
这里需要考虑两件事 -
人性化是一点...如果您的用户想要输入蔬菜/洋葱/vidalia 而不是 vegatables/onions-10,那么它显然对最终用户更有意义。
此外,搜索引擎还可以获取更多细节...因此搜索 vidalia onion 可能会为您的网站带来更好的排名。
最后,顾问正在推广可读性这个流行词。是的,从长远来看,它可能总体上会更好(并且应该像编写一个漂亮的小 .htaccess 文件来修复一样简单),但您的设置确实没有任何问题。
编辑
老实说,这真的归结为您的客户想要什么。正如其他用户也指出的那样,您呈现链接的方式实际上并没有太大的性能差异......
现在真正重要的是您的客户是否希望展示它。他们是否关心这种信息是否可以被人类阅读?如果他们只是要听取顾问的建议,那么您还不如执行您的重写规则。
【讨论】:
【参考方案2】:搜索“种子”、“花”、“蔬菜”等会在 URL 上匹配,因此 URL 很好,引擎会很好地处理它们。
您是否想让它们更人性化是另一个问题。
【讨论】:
【参考方案3】:从技术角度来看,如果关键字在其上下文中不是唯一的,您只需要数字 ID。
例如,如果第一级中可能有多个种子,就会出现这种情况。然后您需要数字 ID(或另一个唯一值)来区分不同的种子:
/seeds-1/…
/seeds-2/…
⋮
但如果所有关键字在其上下文中都是唯一的(路径是唯一的),那么您可以删除数字 ID 而不会丢失任何信息。
【讨论】:
【参考方案4】:在 URL 中包含 ID 没有任何问题。到处都是。例如:
-
在 Stack Overflow 上 (/questions/2264708/search-...) 或
亚马逊 (http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/)
只是两个例子,还有更多。将 ID 嵌入到 URL 中几乎无处不在,尤其是对于大型网站或大型数据集,对 slug 进行字符串比较的成本很高。
它根本不会伤害 SEO。由于用户无法“猜测” URL,因此它可能对用户不太友好,但这完全是一个不同的问题。
【讨论】:
使用完全相同的 URL(如上文所述)的任何良好示例。我认为 phpbb 可以,但我无法验证或找到在线示例。以上是关于包含数字的搜索引擎友好 URL……好还是坏?的主要内容,如果未能解决你的问题,请参考以下文章