【问题标题】:Managing Descriptive URLs管理描述性 URL
【发布时间】:2009-07-25 20:41:21
【问题描述】:

我注意到许多博客使用如下所示的 URL:

http://www.hanselman.com/blog/VirtualCamaraderieAPersistentVideoPortalForTheRemoteWorker.aspx

我认为这是为了优化搜索引擎。

这是如何从底层数据模型中读取的?你真的会搜索

VirtualCamaraderieAPersistentVideoPortalForTheRemoteWorker

在数据库中?

如果是这样,描述是如何管理的?如果是密钥,是不是一旦创建就不能更改,不破坏网络链接?

【问题讨论】:

  • 仅供参考:我的办公室本周早些时候加入了 Google,在他们的演示中,他们确认漂亮的网址对搜索排名没有影响。
  • Google SEO 优化指南不同意这一点。见google.com/webmasters/docs/…
  • 很好。不要相信我的话! bit.ly/xWc1p
  • 那篇文章讨论了动态 URL(其中包含 ? 和 & 字符)与静态 URL。它没有讨论友好的 URL,至少在 SEO 的上下文中没有。
  • @Robert 我刚刚浏览了那个 PDF,并没有提到漂亮的 url 对排名有任何影响。正如它所说,“带有与您网站的内容和结构相关的文字的 URL 对于浏览您的网站的访问者来说更友好。访问者会更好地记住它们,并且可能更愿意链接到它们。”它并没有说“带有与您网站的内容和结构相关的字词的 URL 可以提高您的 Google 排名。”

标签: c# html asp.net-mvc seo


【解决方案1】:

您是正确的,它是为搜索引擎优化而完成的。不过,最好用破折号或下划线分隔各个单词。

这些对 SE 友好的 url 部分通常称为 slugsurl slugs。 slug 在您的应用程序中必须是唯一的,通常创建或检查它们的函数必须考虑到这一点。

就像其他任何事情一样,有多种方法可以实现这样的事情。通常,您存储有关数据库项目的文本字符串,例如。文章标题。如果您不想存储它,您可以在加载时将其动态转换为 url slug,或者您可以在插入/更新时保存真实标题和 url slug,并在加载时使用 slug 作为数据库选择标准相关页面。

如果您想使您的应用超级健壮,您可以自动保存 slug 历史记录,并在 slug 更改时生成“301 Moved Permanently”标头。

【讨论】:

  • 恐怕你是不正确的,这些网址现在对谷歌来说一文不值。更多信息在这里:bit.ly/xWc1p
  • 那篇文章讨论了动态 URL(其中包含 ? 和 & 字符)与静态 URL。它没有讨论友好的 URL,至少在 SEO 的上下文中没有。
  • @Dan - 我有什么不正确的地方?假设该 Google 博客文章中的所有内容都是正确的,这不会使我的答案中的任何内容出现错误。你应该重新考虑你的否决票。
【解决方案2】:

通常在创建文章时,该字符串作为键存储在数据库中,是的。一些博客引擎,如 Wordpress,允许您(作者)手动更改该字符串的内容,并且在您这样做之后,指向旧字符串的链接将不再起作用。

在 Wordpress 中,他们称其为“永久链接”,尽管不同的引擎对其有自己的名称。我不认为它有一个通用的术语。

【讨论】:

    【解决方案3】:

    对搜索引擎友好的 URL 有不同的策略。给定您的示例 URL,您可以搜索整个字符串,或使用 C# 哈希值作为(可能是非唯一的)键。如果标题被更改,无论哪种方式到此页面的链接都会中断。一种解决方案是在 URL 中嵌入一个额外的唯一键(有关示例,请参见 amazon.com)。

    如果您对 dasBlog 处理 URL 的方式感兴趣,可以在 http://www.dasblog.info/ 获取完整的源代码。

    【讨论】:

    • +1 表示哈希的想法,以前没有想到过。我想你的标题必须超过 32 字节才能受益,因为需要 SHA256 来保证唯一性。
    【解决方案4】:

    VirtualCamaraderieAPersistentVideoPortalForTheRemoteWorker 没有理由不能成为“帖子”表中的键,因为即使是 真正 大博客也不会超过,比如说post 表中有几千行。

    如果您确实决定重写它,那么您可以为该网址创建一个 301 重定向,而不会对 SEO 造成太大损害。

    但是,正如我在 cmets 中对您的问题所讨论的那样,像这样的静态网址在 SEO 上的作用是 no longer relevant。真正的好处是让用户拥有一个视觉上更易于导航的结构(“可破解”网址)。

    如果网址说:

    ,Google 不会在意
    hanselman.com/blog/index.aspx?id=123
    

    hanselman.com/blog/foobar.aspx
    

    不管怎样,排名都是一样的。

    【讨论】:

    • 你为什么一直链接到与描述性 URL 无关的文章?
    • 静态网址与漂亮的网址有很大关系!如果它一点都不可读,为什么还要费力创建一个静态 url?!我同意你所说的,并且 zombat 对你的问题的答案是正确的。我有点偏离了实际问题的重点。我的建议是接受 zombat 的回答。 :)
    • 好吧,你会因为努力而获得 +1。我确实看过谷歌网站管理员博客,谷歌既不确认也不否认任何一种观点。他们确实说 Google 工具栏中的描述性 URL 可能会带来边际收益。我们将在我们自己的网站上运行他们的内容分析工具,看看它说了什么。干杯!
    • 谢谢!此外,如果您有 IIS 7,请考虑使用 IIS 搜索引擎优化工具包:bit.ly/MajYo
    • 酷。不知道。
    【解决方案5】:

    阅读动态 URL 和 Apache mod_rewrite。

    同时检查这个 mod_rewrite rule generator

    作为 mod_rewrite 可以为您做的描述性 URL 的示例,永久链接可能被认为是 url:

     http://www.somesite.com/catalog.php?cat=widgets&product_id=1234
    

    重写模块将创建更具描述性和更简单的内容:

     http://www.somesite.com/catalog/widgets-1234.html 
    

    根据需要动态。我不确定这些映射中的任何一个是否被缓存在服务器端以供将来使用,但我不认为它会使用大量开销来处理规则。 这是进行上述重写的规则,该规则位于 .htaccess 文件中:

     RewriteEngine On
     RewriteBase /
     RewriteCond %{QUERY_STRING} ^cat\=([^&]+)\&product_id\=([^&]+)$
     RewriteRule ^$ /catalog/%1-%2.html [R=301,
    

    这个例子是在here找到的。

    动态生成描述性 URL 并让它为永久链接内容提供服务并不需要太多开销。我认为他们根本不担心在数据库中存储或缓存规则。

    似乎 SEO 爱好者强烈建议您创建一个 google sitemap.xml 来帮助 google 索引这些(可能是无限的,或者到未定义但 > 2000 字符 URL 的 URL 长度的上限将不起作用在许多浏览器中)静态生成的页面。只要规则是确定性的,它们也可能是永久链接。

    【讨论】:

    • 这是如何进行URL重写,这不是他的问题。他特别想知道在处理基于字符串而不是基于 ID 的 URL 时使用的数据库技术。
    • URL 重写难道不是每个人都如何处理描述性 URL 吗?
    • 您仍然需要在数据库中查找描述,不是吗?如果你已经有了数据库记录,为什么还要麻烦 URL 重写呢?
    猜你喜欢
    • 2010-10-27
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2021-09-13
    相关资源
    最近更新 更多