包含数字的搜索引擎友好URL。。。好还是坏?

包含数字的搜索引擎友好URL。。。好还是坏?,url,mod-rewrite,url-rewriting,seo,Url,Mod Rewrite,Url Rewriting,Seo,我制作了一个具有层次结构和搜索引擎友好(SEF)URL的网站,如: /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

我制作了一个具有层次结构和搜索引擎友好(SEF)URL的网站,如:

/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查询中使用它相当容易。我认为在查询中使用文本比较(其中Name='%s')比使用整数比较(其中ObjectID=%d)要慢,因此我犹豫不决。问题更像是,是否值得让URL更人性化,而代价是降低编码/性能友好性。

搜索“种子”、“花朵”、“蔬菜”等内容将与URL匹配,因此URL很好,引擎将很好地处理它们


你是否想让他们变得更人性化是另一个问题。

同意切鲁维姆的观点,并将进一步扩大

这里要考虑的两件事--

人性化是一个要点……如果您的用户想要输入蔬菜/洋葱/维达利亚而不是蔬菜/洋葱-10,那么对最终用户来说显然更有意义

此外,搜索引擎还可以获取更多的细节……因此,搜索vidalia onion可能会为您的网站提供更好的排名

最后,顾问公司正在推广可读性这一流行语。是的,从长远来看,它可能总体上更好(并且应该像编写一个漂亮的.htaccess小文件一样简单),但是你的设置没有什么问题

编辑

老实说,这实际上可以归结为你的客户想要什么。正如其他用户所指定的,在显示链接的方式上,实际上没有太大的性能差异


现在真正重要的是你的客户是否想要展示。他们是否关心人类是否可以阅读这类信息?如果他们只是想听取顾问的建议,那么你最好执行你的重写规则。

从技术角度来看,如果关键字在上下文中不是唯一的,你只需要数字ID

例如,如果第一级中可能有多个种子,则情况就是如此。然后需要数字ID(或另一个唯一值)来区分不同的种子:


但是,如果所有关键字在其上下文中都是唯一的(路径是唯一的),那么您可以删除数字ID而不丢失任何信息。

在URL中保留ID没有什么错。到处都是。例如:

  • 这里是堆栈溢出(/questions/2264708/search-…)或
  • 亚马逊(0735619670/)
  • 这只是两个例子,还有更多。在URL中嵌入ID几乎是无处不在的,特别是对于大型站点或大型数据集,在这些站点或数据集中,对slug进行字符串比较的成本很高


    这根本不会伤害SEO。它可能不那么友好,因为用户无法“猜测”URL,但这是一个完全不同的问题。

    如果您按层次结构显示数据,那么您也应该按层次结构存储数据。这些示例很模糊,我与FarmVille无关:)我实际上有两种方案来实现此功能:#1使用一个表,递归关系,无限级别的deep#2和6个表,正好6个级别的deep使用完全相似的URL(如上所述)的任何好例子。我认为phpbb有,但我无法验证或找到在线示例。
    /seeds-1/…
    /seeds-2/…
     ⋮