V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Reign
V2EX  ›  程序员

从 SEO 角度,网址中的查询 id 结构怎么设计才最好?

  •  
  •   Reign · 2017-02-23 12:09:44 +08:00 · 2500 次点击
    这是一个创建于 2616 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以 stackoveflow 为例,它的问题列表是: http://stackoverflow.com/questions

    现在在它的问题列表下的一个问题是这种 URL 结构:

    http://stackoverflow.com/questions/42406362/how-to-check-for-inclusion-of-multisets

    理论上来说,最佳的 URL 结构应该是:

    http://stackoverflow.com/questions/how-to-check-for-inclusion-of-multisets

    这样就能突出 URL 目录的依次归属关系,也许数据表中“ how-to-check-for-inclusion-of-multisets ”来查询效率太低吧,所以他增加了一个 id 来传参: http://stackoverflow.com/questions/42406362/how-to-check-for-inclusion-of-multisets ,这样做的好处是增加了查询效率,坏处就是把 URL 结构的依次归属关系打乱了,而且增加了目录层次,那么从 Google SEO 的角度,下面哪种 URL 设计最好喃?

    1. http://stackoverflow.com/questions/42406362/how-to-check-for-inclusion-of-multisets
    2. http://stackoverflow.com/questions/42406362-how-to-check-for-inclusion-of-multisets
    3. http://stackoverflow.com/questions/how-to-check-for-inclusion-of-multisets-42406362
    4. http://stackoverflow.com/questions/how-to-check-for-inclusion-of-multisets/42406362

    如果上述方式都不好,怎样快速在 MySQL 中查询“ how-to-check-for-inclusion-of-multisets ”?

    23 条回复    2017-02-24 09:03:06 +08:00
    b821025551b
        1
    b821025551b  
       2017-02-23 12:16:00 +08:00
    全文索引。
    id4alex
        2
    id4alex  
       2017-02-23 12:16:07 +08:00
    从 SEO 的角度,肯定是 3 但是可行性太低,问题太多.
    Reign
        3
    Reign  
    OP
       2017-02-23 12:19:55 +08:00
    @b821025551b 全文索引感觉非常不合适
    rogerchen
        4
    rogerchen  
       2017-02-23 12:22:03 +08:00
    Reign
        5
    Reign  
    OP
       2017-02-23 12:23:01 +08:00
    @rogerchen 但万一问题重复了咋办?
    qiayue
        6
    qiayue  
       2017-02-23 12:26:11 +08:00
    如果你纠结的话,选 2 ,平衡了技术难度和 URL 结构
    rogerchen
        7
    rogerchen  
       2017-02-23 12:26:29 +08:00
    @Reign
    quora 运营来处理,我记得他们还发起了一个利用深度学习判断两个问题是不是重复的项目。
    技术上来说直接不允许两个完全一样的题目被创建就好。
    default
        8
    default  
       2017-02-23 12:28:20 +08:00
    @Reign 那个是可以设置成人工指定的,参考 Typecho 博客撰写文章功能
    Reign
        9
    Reign  
    OP
       2017-02-23 12:29:08 +08:00 via iPhone
    @default 但对于数据条目多的就麻烦了
    sexoutsex2011
        10
    sexoutsex2011  
       2017-02-23 12:33:48 +08:00   ❤️ 1
    参考亚马逊做法即可。
    canonical 标签
    <link rel="canonical" href="https://www.amazon.cn/%E7%94%B5%E8%84%91-it-%E5%8A%9E%E5%85%AC/dp/B01I88B8F6" />
    含关键词。

    但用户访问时 https://www.amazon.cn/dp/B01I88B8F6 即可。
    id4alex
        11
    id4alex  
       2017-02-23 12:50:28 +08:00
    @rogerchen
    我觉得两个社区性质有一些不一样. sf 注重的是这个问题怎么解决,相对而言是有所谓的正确答案,关闭后就没有继续回答的必要了. quora 和 zhihu 之类的更偏重在你对这个问题的看法是什么样的,并不是一定有正确答案,即使有高票答案之后你也可以来分享你的见解.

    两个完全一样的题目怎么去处理的方法导致最后 url 结果也不尽相同.
    yjxjn
        12
    yjxjn  
       2017-02-23 15:19:37 +08:00
    我是这么设计的 https://jetyu.me/%E6%8A%80%E6%9C%AF/20170112.html

    分类 /页面名.html
    enenaaa
        13
    enenaaa  
       2017-02-23 15:54:39 +08:00
    单纯只是给搜索引擎看的话, 我个人觉得 url 有没有文本不重要。 因为你的页面里肯定包含了这些内容。
    GoBeyond
        14
    GoBeyond  
       2017-02-23 17:00:26 +08:00 via Android
    直接拿 title 查可能会拖慢查询速度吧
    moult
        15
    moult  
       2017-02-23 17:45:57 +08:00 via iPhone   ❤️ 1
    查询的话,数据库可以存储一下 URL 中标题的 md5 或者 sha1 就行了。这样查询跟用 ID 查询没太大区别了吧。
    bianhua
        16
    bianhua  
       2017-02-23 17:53:39 +08:00   ❤️ 1
    其实楼主你关于 StackOverflow 的猜测完全弄错了。你可以试试这个 URL :

    https://stackoverflow.com/questions/42406362/this-slug-is-existing-totally-just-because-we-want-to-make-seo-friendly-url
    和你直接访问 https://stackoverflow.com/questions/42406362 的结果是一样的。

    从系统设计的角度来说, URL 本身就应该是 questions/42406362 ,后面的 Slug 只是为了 SEO 而已。
    allenhu
        17
    allenhu  
       2017-02-23 17:56:35 +08:00
    除非是自己的 cms ,不然总得带个 id
    allenhu
        18
    allenhu  
       2017-02-23 17:59:19 +08:00
    @moult 搞得好像 md5 sha1 不是 string 一样
    binux
        19
    binux  
       2017-02-23 18:12:16 +08:00
    @allenhu #18 md5, sha1 不是 string ,是 128bit / 160bit integer
    Reign
        20
    Reign  
    OP
       2017-02-23 18:43:41 +08:00
    @bianhua 对啊,我也是这个意思啊,就是不知道怎样安排这个 id 值
    bianhua
        21
    bianhua  
       2017-02-23 18:58:58 +08:00
    @Reign 不,我的意思是说那段 Slug 完全不是数据库索引的一部分,可能只是取出数据之后做了一下比较而已。

    另外,只用 Slug 来确定数据项的话,用在 Blog 这样数据量小的系统上确实问题不大,但是像 StackOverflow 这样的系统而言,可能会遇到重复的问题。

    最后,如果说上面 4 个 URL 中哪一个最好,按照我个人的经验应该是 3 。因为 URL 的中有 SEO 意义部分都在最前面,而且 /符号比较少。

    不过我的知识是基于很多年前的经验,不知道现在还是否适用。
    viko16
        22
    viko16  
       2017-02-24 00:13:43 +08:00 via Android
    内个,搜索引擎不只是爬你的 url 呀
    实际上 url 多糟糕也会先爬取一下内容再决定是否索引的
    aksoft
        23
    aksoft  
       2017-02-24 09:03:06 +08:00
    seo 不是规则,是经验
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5335 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 07:06 · PVG 15:06 · LAX 00:06 · JFK 03:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.