以 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 设计最好喃?
如果上述方式都不好,怎样快速在 MySQL 中查询“ how-to-check-for-inclusion-of-multisets ”?
1
b821025551b 2017-02-23 12:16:00 +08:00
全文索引。
|
2
id4alex 2017-02-23 12:16:07 +08:00
从 SEO 的角度,肯定是 3 但是可行性太低,问题太多.
|
3
Reign OP @b821025551b 全文索引感觉非常不合适
|
4
rogerchen 2017-02-23 12:22:03 +08:00
@b821025551b quora 就是不带 ID 的,就看技术实力了。
https://www.quora.com/Data/Where-can-I-find-large-datasets-open-to-the-public |
6
qiayue 2017-02-23 12:26:11 +08:00
如果你纠结的话,选 2 ,平衡了技术难度和 URL 结构
|
7
rogerchen 2017-02-23 12:26:29 +08:00
|
8
INW017bzMfgkkYGn 2017-02-23 12:28:20 +08:00
@Reign 那个是可以设置成人工指定的,参考 Typecho 博客撰写文章功能
|
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 即可。 |
11
id4alex 2017-02-23 12:50:28 +08:00
@rogerchen
我觉得两个社区性质有一些不一样. sf 注重的是这个问题怎么解决,相对而言是有所谓的正确答案,关闭后就没有继续回答的必要了. quora 和 zhihu 之类的更偏重在你对这个问题的看法是什么样的,并不是一定有正确答案,即使有高票答案之后你也可以来分享你的见解. 两个完全一样的题目怎么去处理的方法导致最后 url 结果也不尽相同. |
12
yjxjn 2017-02-23 15:19:37 +08:00
|
13
enenaaa 2017-02-23 15:54:39 +08:00
单纯只是给搜索引擎看的话, 我个人觉得 url 有没有文本不重要。 因为你的页面里肯定包含了这些内容。
|
14
GoBeyond 2017-02-23 17:00:26 +08:00 via Android
直接拿 title 查可能会拖慢查询速度吧
|
15
moult 2017-02-23 17:45:57 +08:00 via iPhone 1
查询的话,数据库可以存储一下 URL 中标题的 md5 或者 sha1 就行了。这样查询跟用 ID 查询没太大区别了吧。
|
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 而已。 |
17
allenhu 2017-02-23 17:56:35 +08:00
除非是自己的 cms ,不然总得带个 id
|
21
bianhua 2017-02-23 18:58:58 +08:00
@Reign 不,我的意思是说那段 Slug 完全不是数据库索引的一部分,可能只是取出数据之后做了一下比较而已。
另外,只用 Slug 来确定数据项的话,用在 Blog 这样数据量小的系统上确实问题不大,但是像 StackOverflow 这样的系统而言,可能会遇到重复的问题。 最后,如果说上面 4 个 URL 中哪一个最好,按照我个人的经验应该是 3 。因为 URL 的中有 SEO 意义部分都在最前面,而且 /符号比较少。 不过我的知识是基于很多年前的经验,不知道现在还是否适用。 |
22
viko16 2017-02-24 00:13:43 +08:00 via Android
内个,搜索引擎不只是爬你的 url 呀
实际上 url 多糟糕也会先爬取一下内容再决定是否索引的 |
23
aksoft 2017-02-24 09:03:06 +08:00
seo 不是规则,是经验
|