URL slug 的理想长度是多少

Posted

技术标签:

【中文标题】URL slug 的理想长度是多少【英文标题】:What is the ideal length of an URL slug 【发布时间】:2011-02-24 15:34:57 【问题描述】:

为了从文章标题制作漂亮的 URL,我使用了一个简单的函数。但是最近我担心这些“蛞蝓”的理想长度。据说破折号太多不好。

但是,有些文章的标题可能很长,而且太长的 URL 可能不会被 google 喜欢。当然,这违背了拥有 URL slug 的整个想法。

那么有没有人知道 URL slug 应该有多长。是否应该限制使用的“破折号”字符?

【问题讨论】:

我的建议是检查它是如何在 wordpress 中完成的,他们确实使用标题中有限数量的单词 FWIW,*** 的问题 slug 通常最多 80 个字符。 【参考方案1】:

我的猜测是,如果你从你的 url 中扔掉所有不重要的词,就不会剩下那么多了……对于这个问题,它是理想的,长度,url 和 slug。

据我了解,google 是非常以关键词为中心的,“what”、“is”、“the”、“of”、“an”等词都不是很好的关键词。

无论如何,如果你只保留最有特色和最重要的词,那么在较短的 URL 将包含不太重要的信息的意义上,slug 不会变得太长。

当然这只是猜测。

问候 back2dos

【讨论】:

【参考方案2】:

我认为对使用的短划线字符数量进行限制不会产生影响。您应该将整个字符串限制在最多 80-100 个字符左右。

就像 back2dos 说的你可以删除一些常用词,但理想情况下,slug 作为页面标题应该是有意义的。以这个页面为例,删除所有常用词会给你ideal-length-url-slug 这有点工作。但我会说ideal-length-of-url-slug 更好。

【讨论】:

【参考方案3】:

如果你真的想节省 URL 空间,我会比介词和动词更积极地删除冠词(the、a、an 等),因为删除冠词不会太大改变句子的语义。

例如

What is the ideal length of an URL slug

删除文章

What is ideal length of URL slug

去掉“是什么”

ideal length of URL slug

标准化

ideal-length-of-url-slug

【讨论】:

您可以删除of,它仍然可以理解。 @chacha102,是的,但是 IMO 对可读性的伤害远大于删除的文章 如果所有这些转换仍然产生一个笨拙的长 URL,你会怎么做?我的感觉是,确实没有合理的方法可以自动执行此操作。 +1 - 但我们不要忘记 URL 首先是为人类服务的,其次才是搜索引擎。您所做的任何对 SEO 有利但对人们不利的事情都是不明智的。 +1 @dreeves。虽然这是一个有用的答案,但它并不能真正回答是否需要/需要硬限制。【参考方案4】:

我建议将 slug 缩短到整个 URL 最多 72 个字符的程度。这是一个古老的电子邮件惯例,允许在达到标准的 80 个字符限制之前进行几级引用。我知道现代技术意味着我们不必关心线路长度限制,但由于各种原因,它仍然是一个合理的惯例。请参阅此相关讨论:Is there a valid reason for enforcing a maximum width of 80 characters in a code file, this day and age?。 还有一个实际问题是,如果您的 URL 在某些电子邮件客户端中封装后可能无法保持完整和可点击。

至于如何将 URL 保持在合理的长度,我认为应尽可能手动选择 URL。 你写了一篇完整的文章,不妨也为它编一个简洁的 URL。 下面是我博客的 .htaccess 文件,以防您觉得它有帮助。 每篇文章都有一个长 URL,例如

myblog.com/2010/05/30/ideal-length-of-url-slug

(Wordpress 建议使用默认值,但我通常会手动将其压缩一点。) 然后我使用如下的重写规则来制作一个我通常可以轻松记住和提及的尽可能短的版本(当然,也可以用于 twitter)。类似的东西

myblog.com/slugs

这是我的 .htaccess 文件的内容,位于 /var/www/html/myblog:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^admin/?$       wp-admin  [L]

# Aliases for blog posts: (NB: NEVER CHANGE/DELETE THESE; ONLY ADD NEW ONES!)
RewriteRule ^flu/?$         2009/03/21/the-future-is-yesterday [R,L]
RewriteRule ^oracle/?$      2009/03/25/the-oracle-of-brackets [R,L]
RewriteRule ^perfbrack/?$   2009/03/29/the-perfect-bracket [R,L]
RewriteRule ^nytimes/?$     2009/04/01/anon-sources-at-the-new-york-times [R,L]
RewriteRule ^mktbottom/?$   2009/04/07/finding-the-market-bottom [R,L]
RewriteRule ^landlords/?$   2009/05/24/landlords [R,L]
RewriteRule ^buyrent/?$     2009/06/01/buyrent [R,L]
RewriteRule ^sunk/?$        2009/06/23/sunk [R,L]
RewriteRule ^horse/?$       2009/07/01/horse [R,L]
RewriteRule ^wellmanblog/?$ 2009/07/31/wellmanblog [R,L]
RewriteRule ^centmail/?$    2009/08/15/centmail [R,L]
RewriteRule ^longtail/?$    2009/08/31/anatomy-of-the-long-tail [R,L]
RewriteRule ^scarequotes/?$ 2009/09/30/scarequotes [R,L]
RewriteRule ^scare/?$       2009/09/30/scarequotes [R,L]
RewriteRule ^dst/?$         2009/10/31/dst [R,L]
RewriteRule ^searchpred/?$  2009/11/30/what-can-search-predict [R,L]
RewriteRule ^scrooge/?$     2009/12/31/scrooge [R,L]
RewriteRule ^pmhype/?$      2010/01/14/prediction-without-markets [R,L]
RewriteRule ^predmarkets/?$ 2010/01/14/prediction-without-markets [R,L]
RewriteRule ^calibration/?$ 2010/02/28/calibration [R,L]
RewriteRule ^calib/?$       2010/02/28/calibration [R,L]
RewriteRule ^calresults/?$  2010/03/31/calibration-results [R,L]
RewriteRule ^misleadingmeans/?$ 2010/04/30/misleading-means [R,L]

</IfModule>

不过,事后看来,我会放弃 URL 中的日期,并做类似 *** 所做的事情,试图通过简洁与描述性的 URL 两全其美。 *** 允许您在问题 ID 部分之后尽可能多地截断甚至更改问题的 URL。所以以下都是这个问题的链接:

What is the ideal length of an URL slug What is the ideal length of an URL slug What is the ideal length of an URL slug What is the ideal length of an URL slug

最后一个对我的口味来说仍然太长,所以我希望规范 URL 是

myblog.com/foo

然后允许在斜线后跟其他任何内容,例如

myblog.com/foo/fooing-and-barring-in-the-modern-world

这是一个重写规则:

RewriteRule ^foo(/.*)?$   foo [R,L]

如果您希望 myblog.com/bar 成为 myblog.com/foo 的别名,可以添加其他规则:

RewriteRule ^bar(/.*)?$   foo [R,L]

这里的缺点是,如果您希望您的文章 slug 位于您网站的全局命名空间中(我认为这比 myblog.com/articles/foo 之类的名称更可取),那么您必须添加重写规则每篇文章。

【讨论】:

以上是关于URL slug 的理想长度是多少的主要内容,如果未能解决你的问题,请参考以下文章

apache 的最大 url 长度是多少?

URL 路径中的段的安全最大长度应该是多少?

您可以传递给 Wininet 函数 HttpOpenRequest 的最大 URL 长度是多少?

GET请求的长度限制?

htaccess - 限制 url slug 中的单词数

在 Internet Explorer 中使用同步可插入协议的自定义 url 协议的最大长度是多少?