为什么一些网站在URL末尾添加“slugs”?

115

45
"Slugs" 在URL中作为 "Caller ID Name"。当你接到电话时,知道来电人的名字并非必要,但它可以帮助你决定是否想要接电话。同样地,URL的“slug”帮助用户决定是否想要点击链接,并赋予其一些内在的上下文。 - Armstrongest
4
+1,但最好能将你的回复作为答案而不是评论来展示。 - Dienekes
有助于搜索引擎结果排名。 - Jay Smoke
https://dev59.com/Q3VD5IYBdhLWcg3wOo9h 也可以:P - Mohammed H
14个回答

170

使用“slug”可以使URL更加用户友好,当你点击链接时,你知道能得到什么。像谷歌这样的搜索引擎会在URL中包含搜索词时将网页排名提高。


3
其中使URL易于使用的一项因素是“可发现性”,意味着您可以仅从地址栏猜测URL。例如,http://i.love.pets.com/search/cats+dogs 可能很容易导航到 http://i.love.pets.com/search/pug+puppies 等地址。请注意,我的翻译力求保持原文意思不变,同时确保表达通俗易懂。 - Xian
13
仙,我之前听过这个论点,但我认为它经不起审查。除了极客以外,几乎没有人真正直接输入网址。易读性肯定很重要,我认为越来越多的用户会看到网址,但是当涉及“猜测”时,我认为少数派极其微小。 - eyelidlessness
4
@eyelidlessnes - 我必须表示不同意。虽然人们可能不会手动输入URL,但我已经看到了他们创建URL的证据。通过查看我们的日志和监控设备,我们可以看到一些示例,其中一个用户会话会执行某些操作,然后修改URL(这可以通过缺少引荐者来证明)。当然,并非每个人都在这样做,但绝对不是可忽略的流量数量。 - Joseph Ferris
@Xian。是的,有一些类型的URL,但是slug本质上是呼叫者ID。呼叫者的名称并不是必要的,但它可以帮助您决定是否想要接听电话。slug使URL看起来更友好,使用户更有可能点击它。 - Armstrongest
先生,那跟google.com/search?q=cat+puppy有什么不同呢?发现URL的人可能会这样做。我就是这样做的。 - netrox

40

可用性是其中一个原因,如果您在电子邮件中收到这个链接,您将知道可以期待什么。 SEO(搜索引擎优化)是另一个原因。像谷歌这样的搜索引擎会为URL中包含的关键字提高您的页面排名。


2
你认为谷歌为什么做出了这个决定?是什么激发了它的动机? - Mike Clark
你能在谷歌上找到任何明确说明如果关键词包含在URL中,他们会将页面排名提高的文档吗? - chainwork
@chainwork 不,但搜索引擎有数百种信号用于页面排名,你可以确信URL是其中之一。 - Michiel van Oosterhout
2
在谷歌搜索结果中,与搜索匹配的URL关键词会被加粗显示,从而使得它们更加突出,吸引用户的注意。 - chainwork

35

我最近将我的网站URL格式从以下方式更改:

www.mywebsite.com/index.asp?view=display&postid=100

www.mywebsite.com/this-is-the-title-of-the-post

我注意到,在更改后,文章的点击率增加了约300%。这确实有助于用户决定他们想要点击的内容是否相关。但就SEO而言,我必须说,更改后的影响很小。


4
希望你的帖子标题永远不要改变:很多人都讨厌死链接和会导致死链接的网络服务。 - Nikita Rybak
6
我无法猜测他正在使用哪个CMS或博客软件,但对于WordPress和许多类似软件,发布后修改文章标题不会更改永久链接(正如你所提到的原因)。 - Cyde Weys

25
我同意其他回答者的观点,任何输入错误的slug都应该301重定向到正确的形式。换句话说,https://dev59.com/Q3VD5IYBdhLWcg3wOo9h 应该重定向到 https://dev59.com/Q3VD5IYBdhLWcg3wOo9hy-do-some-websites-add-slugs-to-the-end-of-urls。这有一个未被提及的额外好处--如果你不将URL重定向到规范的URL,就会出现几乎无限数量的重复页面。Google讨厌重复内容。
也就是说,你应该只关心内容的ID,并允许任何slug的输入,只要你进行重定向。为什么呢? https://dev59.com/Q3VD5IYBdhLWcg3wOo9hy-do-some-websites-add-slugs-to-the-end-of-urls
......糟糕,邮件软件切断了URL的末尾!不过没关系,因为你仍然可以使用https://dev59.com/Q3VD5IYBdhLWcg3wOo9h
这种方法存在一个大问题,即如果你从内容标题中派生slug,那么你如何处理非ASCII、UTF-8标题呢?

1
不错的帖子,非常有价值的观点!+1至于你的问题,“你打算如何处理非ASCII,UTF8标题?”有一些算法可以解决这个问题,例如WordPress使用的算法。如果允许超过600个字符,我会发布一个针对这个确切问题的PHP解决方案。如果你真的想知道,就把它发表为一个问题,我很乐意回答 ;) - Mathias Bynens
1
回复:"近乎无限的重复页面" - 只有当链接到非正式 URL 时才会发生这种情况。如果在您的站点内保持一致,就不应该有问题。您关于 URL 被切断的理论有点荒谬,URL 可以在任何地方被截断,对吧?甚至在 4742 之后,这将引导到不同的问题。只要在 URL 中使用标准字母、数字、短划线和/或下划线,这种情况就不太可能发生。 - DisgruntledGoat
2
正如DisgruntledGoat所建议的那样,Google在没有其他人使用不同的slug链接到该页面时,不会发现任何重复内容,因此欺骗了Google的蜘蛛,使其认为存在重复内容。因此,蜘蛛会讨厌这个页面,干得好,伙计们 ;) - Austyn Mahoney
从技术上讲,如果您在页面中嵌入rel="canonical"提示,则无需执行301重定向。无论有多少个重复页面,Google都会采用唯一有效的规范URL。亚马逊不执行301。试试:http://www.amazon.com/lat-thinking-stragies/dp/0470942185。然而,最好两者都做。原因是某人可以发布具有完全修改的slug的链接,当查看者阅读它时,它看起来与内容不同--使查看者感到困惑。 - Ethan
你打算如何处理非ASCII、UTF8标题?你需要对它们进行百分号编码。所有现代浏览器都会在地址栏中显示Unicode的多语言光辉,但在你复制到剪贴板时会给你一个ASCII、百分号编码的URL。 - Stijn de Witt

15

这基本上是资源的更有意义的位置。使用ID是完全有效的,但对于机器而言比对于人来说更有意义。

严格来说,如果slug是唯一的,则不需要ID,您可以更轻松地通过将它们限定在日期范围内来确保唯一的slug。

例如:

/2008/sept/06/why-some-websites-add-slugs-end-of-urls/

基本上,这利用了同一天内两个相同的“slug”被使用的低概率。如果发生冲突,通常的惯例是在slug的末尾添加计数器,但很少会看到这种情况。

/2008/sept/06/why-some-websites-add-slugs-end-of-urls/
/2008/sept/06/why-some-websites-add-slugs-end-of-urls-1/
/2008/sept/06/why-some-websites-add-slugs-end-of-urls-2/
很多的URL生成算法也会去掉像“the”和“a”这样的常用词,以帮助保持URL简短。这种作用域的方法还使得查找给定日期、月份或年份的所有资源变得非常简单 - 只需截取相应的部分即可。
另外,stackoverflow的URL在引入slug时会增加一个额外的段落,这是不好的,因为它违反了每个段落应代表一个资源层次的原则。

15

大多数网站使用它的原因可能是为了SEO(搜索引擎优化)。雅虎曾经会对URL中搜索关键字的出现进行适当的加权,并且在谷歌搜索结果中也有所帮助。

最近,搜索引擎已经降低了给予URL中关键字的权重,可能是因为这种技术现在在垃圾站点上比合法站点更为常见。如果有的话,URL中的关键字现在只对搜索结果产生非常微小的影响。

至于StackOverflow本身,SEO可能是一种动机(老习惯难改)或者仅仅是为了可用性。


SEO是一个因素。但更重要的是像你说的那样,它关乎可用性。 - Armstrongest

11
术语“slug”来源于报纸/出版业。它是用于标识正在进行的故事的短标题。对URL语义感兴趣的人开始在其URL中使用简短的缩写标题。这在SEO领域也很有回报,因为URL中的关键字会增加页面的重要性。
具有讽刺意味的是,许多网站已经开始在其URL中放置完整的带连字符序列的标题,仅出于SEO目的,这意味着术语“slug”不再完全适用。这也令语义纯粹主义者感到恼火,因为许多实现只是在其URL末尾添加此序列化版本的标题。

10

1
这是一个错误还是特性? - Jakub Šturc
这很可能是一个特性。当服务器决定显示哪个问题时,slug 被忽略。该问题仅基于其 ID(在此情况下为 47427)进行获取。 - Juha Syrjälä
4
实际上,它确保您可以在主题被修改后(从而有了新的URL)访问帖子。 - Dirk Vollmar
3
理想情况下,每个互联网资源(“文档”)只有一个统一资源标识符(URI)。因此,允许同一文档通过不同的URI进行查看可能会对网站在搜索引擎结果页面中的排名产生负面影响。这可能是我不喜欢 Stack Overflow 的唯一原因;) - Mathias Bynens
3
这就是规范页面存在的原因,而Stack Overflow正在使用它们。 =) - Alix Axel
4
301重定向符号>代表将一个网页重定向到另一个规范页面。翻译完毕,没有其他内容返回。 - Mathias Bynens

8

正如已经说明的,"slug"有助于人们和搜索引擎......

值得注意的是,在页面的源代码中有一个规范URL

这可以防止页面被多次索引。

例如:

<link rel="canonical" href="https://dev59.com/Q3VD5IYBdhLWcg3wOo9h">

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接