好吧,那就说我正在写一个论坛应用程序,我想要漂亮的URL。但是,我的所有表都使用数字ID,因此我不确定格式化这些资源的URL的最佳方法。让我假装我正在尝试获取ID为123456且标题为这是一个论坛帖子的主题。我已经看到它做了几个方面:
你会说哪一个是考虑所有因素(包括搜索引擎优化),最佳网址?
很抱歉,如果这个问题太模糊,但它似乎与编程有关,并且它不是难以置信的开放式,因为我只是想听听每种方法的优缺点。
答案 0 :(得分:15)
我会使用选项3,并使slug(最后一位)可选
由于?
我相信这就是Stack Overflow的作用......并且还注意到它们在搜索引擎中的表现相当不错。
从评论中,确保301将任何丢失的slug版本重定向到正确的slug。
答案 1 :(得分:6)
网址1绝对不是最理想的。 URL 2很有吸引力,但如果标签发生碰撞,您就会面临混淆的风险,特别是如果它们仅在标点符号上有所不同。所以我认为URL 3是明显的赢家。
另请注意,仅仅因为您显示网址3没有理由不接受所有3,其他两个重定向。如果URL 2不明确,则应重定向到消歧页面。
答案 2 :(得分:2)
我认为第二个URL对SEO来说是最好的,因为它有意义并且深度较少。它对人们来说也更好,因为你可以查看URL并了解内容的含义。
答案 3 :(得分:2)
不包含标题,因此您将失去在网址中包含这些关键字的额外SEO值。
效果不好,因为它没有唯一的数字ID,所以如果有人试图发布标题为“这是一个论坛帖子”的主题,你会怎么做?然后你开始进入digg做的奇怪的事情,它必须给第二个网址“http://www.example.com/topic/this-is-a-forum-post_2”,依此类推。这使得他们更难以获取他们尝试加载的网址,并确切地确定他们想要访问的主题。
拥有两全其美,这将是我的选择风格。
答案 4 :(得分:1)
Stackoverflow似乎使用模式3,标题被完全忽略(只使用了id)。
这样可以生成很好的语义URL,并且易于实现,如果标题稍后更改,它仍然有效。
当然,标题可能完全是假的:
答案 5 :(得分:1)
我会选择第一个。你知道现在真的没关系。由于有长URL转换器,它将扩散并将成为未来的标准。请记住,您的网址越长,您获得的搜索引擎优化点就越少。
你无法控制人们为论坛主题命名的方式。所以,我只会选择第一个简单和常规。
答案 6 :(得分:1)
对于搜索引擎优化/流量,毫无疑问肯定是2号。每次都从URL中获取那些毫无意义的数字。
www.example.com/topic/this-is-a-forum-post
从您的数据库中取出“this-is-a-forum-post”,并通过查询将其映射回数据库中的ID号。然后将内部URL重写到真实页面,例如/topic.php?ID=324342
答案 7 :(得分:1)
我会选择2,因为SEO可以更好地理解。
Stack Overflow使用第三种方式,可能就是这个原因,Stack Overflow网址没有针对SEO进行优化。我不确定上面的答案。
但是根据我与Google的经验,很多时候,我可以看到其他论坛的解决方案,而stackoverflow解决方案几乎是不可见的。
Best way to format pretty URLs for numeric IDs Best way to format pretty URLs for numeric IDs
如果两个网址都是同一个,那么搜索引擎优化只是选项2,而不是优化。
答案 8 :(得分:1)
我不相信更长的网址是SEO的麻烦。深度似乎是一个更大的问题,而不是通过计算斜杠,而是通过从具有排名的索引页面到内容页面的步骤。我最近创建了一个名为/content/roofing/how-much-does-a-shingle-roof-cost.html的虚拟测试页面,并将其扔到服务器上以测试路径并确保我的目录正常工作。我甚至不确定谷歌是如何发现这个页面的,但是它确实发现了流量,所以我不得不给它内容并让它成为家庭的一部分。假内容是我们关于页面的副本,所以它不是空的,但我很惊讶一个未启动的页面会引起关注,并认为URL与此有关。
这为URL的上述3个选项提供了一个轻微的替代方案。如果你使用3号但最后添加了.html怎么办?我通常用动态URL来做这件事,但我没有具体的证据表明它有用。根据Google的说法,他们吹嘘说他们可以将动态网址编入索引就好了,因此根本不需要进行网址重写。如果其他引擎不如此优秀,谷歌并不在意。我信任的几个网站最后添加了html(例如博客)并且它不会受到伤害,所以我仍然这样做。
答案 9 :(得分:0)
我会建议第一个,因为主题标题可以由管理员更改为清晰,然后网址将不一致。
www.example.com/topic/123456
还允许人们只编辑网址的最后一位(数字并跳转到另一个主题),不太可能发生,但仍然是可用的功能。