我最近阅读了很多关于"友好网址"的讨论(包括在本网站和其他地方),但我不确定究竟是什么让网址"友好",为什么我们真正关心(直到某一点) .插图:
以下是大多数当前Web开发人员称为"友好"的URL示例:
www.myblog.com/posts/123/this-is-the-name-of-my-blog-post
虽然这将被视为"不友好"(即坏,尼安德特人,无知,愚蠢):
www.myblog.com/posts.aspx?id=123
我的问题:
"友好"网址是否包含有关相关博客帖子的重复标识信息?换句话说,一旦你有帖子的id(123),为什么你需要标题?这不是违反"不要重复自己"的咒语吗?
就用户而言,URL的形式有何不同?用户是否真的手动输入完整的URL(当然除了TLD之外)?用户是否曾查看页面的URL以确定页面的内容?为什么我们需要URL中博客文章的标题?这不是页面
标签和内容的用途吗?
我经常听到SEO作为首选"友好"URL表单的原因.为什么搜索引擎蜘蛛关心URL?它们不只是抓取页面的自动化软件(以及指向其中包含的其他页面的链接)吗?如果搜索引擎像其他软件组件(例如数据库访问组件)一样编写,则URL将只是一个无意义的标识符(类似于关系数据库中的rowguid).如果我正在设计一个数据库模式,其中包含上面的"友好"URL作为表的主键,我会(非常正确地)被剔除.
我之前说过"达到一定程度",因为很明显,网址可能会失控.以下是来自Amazon.com的实际网址,我认为他们认为没有人会认为"友好":
http://www.amazon.com/Bissell-Kitchen-Housewares/b/ref=amb_link_5001972_17?ie=UTF8&node=694500&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=gp-center-5&pf_rd_r=1ZXNJFE0CCFFDH4B9HGH&pf_rd_t=101&pf_rd_p=405478901&pf_rd_i=510080
Matt Howell.. 60
大约10年前,Tim Berners-Lee(WWW的建筑师)写了一篇关于这个主题的伟大文章.
您的示例是一个错误的URL - 但不仅仅是因为它同时具有id和"slug"(页面标题的缩写,带连字符的形式).从长远来看,将页面标题放入您的网址是有问题的. 内容会随着时间而改变.如果您更改了该博客帖子的标题,您将被迫在保留旧URL或更改URL以匹配新标题之间进行选择.更改URL将破坏之前指向该页面的链接; 并且不更改它意味着您将拥有与该页面不匹配的URL.这对用户都没有好处.最好还是去www.myblog.com/posts/123.
用户通常需要输入网址,但更重要的是,有时他们还会编辑现有网址以查找网站中的其他网页.因此,拥有可发现的URL通常很好.例如,如果我想看到帖子#124,我可以轻松查看当前的URL,并确定我想要查看的页面的URL是www.myblog.com/posts/124.这是一个用户友好程度,可以帮助人们找到他们正在寻找的东西.包括其他信息(如帖子的主题)可能会使这变得不可能 - 因此它减少了我的探索选项.
忘记SEO.搜索引擎技术已经在一段时间内降低了SEO黑客的效率.好的内容仍然是王者 - 从长远来看,你将无法对系统进行游戏.
将主题放在网址中并不意味着它会破坏.如果您只使用要检索的项目的ID,则URL的其余部分无关紧要. (18认同)
"忘掉SEO"?我不能不同意.好的网址不好只是因为它们很短,它们很好,因为它们是独一无二的并且与页面的内容对话.这场辩论完全取决于您的内容的背景和该内容的典型用户. (11认同)
@Ryan:如果你正在使用这个"slug"方案,并且你曾经改变了一个页面的标题 - 然后改变了匹配的URL - 那么之前到该页面的所有链接都将被破坏.或者,不要,和slug不匹配.将页面标题放入URL中确实没有面向用户的好处. (3认同)
slu_-part通常被软件完全丢弃.你通常可以替换任何你想要的随机文本 - 唯一真正重要的是整数ID (2认同)
James Brady.. 18
对我来说,友好的URL意味着有一些尝试在URL中包含语义信息,使其更适合人类消费.这是一个有趣的例子,计算机 - 计算机接口被增强和构建,以创建一个更好的人机界面.
所以,在你的两个例子中:
www.myblog.com/posts/123/this-is-the-name-of-my-blog-post
是友好的,因为你已经在URL中包含了标题 - 它告诉你关于页面的一些信息.
www.myblog.com/posts.aspx?id=123
是不友好的,因为它是神秘的和模糊的:它对数据库很有意义,但对你或我来说都没有.
友好的URL在某些情况下非常棒,在其他情况下无用.基本上,如果用户将要接触到它,我会将友好的URL创建作为优先事项,这不仅仅是美学问题.这使得很多更容易得到回从地址栏的网址,如果你可以快速查看并了解各种选项,再加上它使得在那里你马上就要去,如果你从以下网页的链接更明显页.
将所有这些与Firefox 3+中的棒棒相结合(当然也可以在其他浏览器中使用),并且当您处理友好的URL时,地址栏中的自动完成变得非常强大.
大约10年前,Tim Berners-Lee(WWW的建筑师)写了一篇关于这个主题的伟大文章.
您的示例是一个错误的URL - 但不仅仅是因为它同时具有id和"slug"(页面标题的缩写,带连字符的形式).从长远来看,将页面标题放入您的网址是有问题的. 内容会随着时间而改变.如果您更改了该博客帖子的标题,您将被迫在保留旧URL或更改URL以匹配新标题之间进行选择.更改URL将破坏之前指向该页面的链接; 并且不更改它意味着您将拥有与该页面不匹配的URL.这对用户都没有好处.最好还是去www.myblog.com/posts/123.
用户通常需要输入网址,但更重要的是,有时他们还会编辑现有网址以查找网站中的其他网页.因此,拥有可发现的URL通常很好.例如,如果我想看到帖子#124,我可以轻松查看当前的URL,并确定我想要查看的页面的URL是www.myblog.com/posts/124.这是一个用户友好程度,可以帮助人们找到他们正在寻找的东西.包括其他信息(如帖子的主题)可能会使这变得不可能 - 因此它减少了我的探索选项.
忘记SEO.搜索引擎技术已经在一段时间内降低了SEO黑客的效率.好的内容仍然是王者 - 从长远来看,你将无法对系统进行游戏.
对我来说,友好的URL意味着有一些尝试在URL中包含语义信息,使其更适合人类消费.这是一个有趣的例子,计算机 - 计算机接口被增强和构建,以创建一个更好的人机界面.
所以,在你的两个例子中:
www.myblog.com/posts/123/this-is-the-name-of-my-blog-post
是友好的,因为你已经在URL中包含了标题 - 它告诉你关于页面的一些信息.
www.myblog.com/posts.aspx?id=123
是不友好的,因为它是神秘的和模糊的:它对数据库很有意义,但对你或我来说都没有.
友好的URL在某些情况下非常棒,在其他情况下无用.基本上,如果用户将要接触到它,我会将友好的URL创建作为优先事项,这不仅仅是美学问题.这使得很多更容易得到回从地址栏的网址,如果你可以快速查看并了解各种选项,再加上它使得在那里你马上就要去,如果你从以下网页的链接更明显页.
将所有这些与Firefox 3+中的棒棒相结合(当然也可以在其他浏览器中使用),并且当您处理友好的URL时,地址栏中的自动完成变得非常强大.
似乎有很多关于查询字符串对搜索器有什么影响的相互矛盾的信息,但是共识是有多个参数会损害你的搜索引擎优化,因为长的查询字符串变量表示动态内容,因此大多数搜索引擎会很多不那么激进的索引页面.
在您的网址中添加一个slug,例如您的示例中的my-the-name-of-my-blog-post,也会使您的链接彼此之间的区别比一个简单的ID号更加不同,并且会将更多重要的单词添加到您的网址中.网址.这些都是搜索引擎寻找的东西.
我个人觉得这样的网址在视觉上更容易解析,因为使用的标点字符较少,而且查询字符串中的名称 - 值对可能非常冗长且难以记住.
关于如何在URL中放置不必要的信息,这是一个很好的观点.
http://stackoverflow.com/questions/522466/what-makes-a-friendly-url
一旦知道了唯一的id 522466 - 其余的就没用了,所以它纯粹用于使URL看起来"不错",并为用户提供关于页面链接的想法.但这会产生另一个问题.大多数网站都没有"验证"这部分网址,所以你可以把 -
http://stackoverflow.com/questions/522466/omg-goatse-bought-by-bill-gates
但它仍将链接到这篇文章.您可以看到这可能会导致更多问题而不是它们的价值,因为它们可能被恶意使用.
我觉得Digg采取了正确的方法.他们不在URL中使用ID.在幕后,他们纯粹从给出的标题中获取数据库中的ID.
http://digg.com/linux_unix/I_Like_Linux_so_my_aunt_sends_me_this_for_Christmas
对我来说,这是一个完美的网址.它为我提供了点击链接时我感到安全所需的所有信息.
事实上,标题扮演着如此巨大的角色,在digg的世界里,人们"盲目挖掘"纯粹基于他们喜欢标题或者对它感兴趣的事实.如果您的网址看起来很有趣,那么您的网站可能会获得更多流量.与此同时,您将使其更加用户友好,更漂亮,搜索引擎将感谢您.据我所知,友好的网址对每个人来说都是双赢的.
我对你的三颗子弹的看法:
我会说这不是一个最佳的URL.我不知道为什么会显示帖子标识符和标题.我根本没有在我的网址中包含帖子ID,只包括标题和(有时)日期
对于用户来说,越短越好.
搜索引擎查看网址.无论是否有意义,他们都会这样做.在URL中使用关键字将提供一些SEO优势.