[{"data":1,"prerenderedAt":320},["ShallowReactive",2],{"blog-url-naming-rules-software":3,"blog-prev-url-naming-rules-software":130,"blog-next-url-naming-rules-software":196},{"id":4,"title":5,"author":6,"body":7,"canonical":115,"category":116,"cover":115,"date":117,"description":118,"draft":119,"extension":120,"keywords":115,"meta":121,"navigation":122,"noindex":119,"ogImage":115,"path":123,"seo":124,"seoDescription":115,"seoTitle":115,"stem":125,"tags":126,"updated":115,"__hash__":129},"blog\u002Fblog\u002Furl-naming-rules-software.md","软件公司 URL 怎么起名，我们的 6 条规矩","元析智能",{"type":8,"value":9,"toc":103},"minimark",[10,14,19,30,34,51,55,61,65,71,75,78,82,85,88,91,94,100],[11,12,13],"p",{},"URL 不是技术细节，是内容资产。三年后它还要出现在你的 API 文档、客户邮件、微信群里。改一次的成本远高于起名时多想十分钟。下面 6 条是我们给软件公司定 URL 规矩时最常用的。",[15,16,18],"h2",{"id":17},"_1-全小写短横线分隔","1. 全小写，短横线分隔",[11,20,21,25,26,29],{},[22,23,24],"code",{},"\u002Fdocs\u002Fapi-rate-limit"," 对，",[22,27,28],{},"\u002FDocs\u002FAPI_RateLimit"," 错。大小写混写和下滑线不会让页面打不开，但会让同一个页面出现两个地址，多一层重复内容要处理。",[15,31,33],{"id":32},"_2-用英文关键词不要拼音不要数字-id","2. 用英文关键词，不要拼音、不要数字 ID",[11,35,36,25,39,42,43,46,47,50],{},[22,37,38],{},"\u002Fproducts\u002Fdata-sync",[22,40,41],{},"\u002Fproduct\u002F12345","、",[22,44,45],{},"\u002Fchanpin\u002Fshujutongbu"," 错。数字 ID 对搜索引擎和用户都没有信息量；拼音对英文搜索没有帮助，对海外用户不可读。软件公司的产品名如果是自造词，就把功能词放进去，比如 ",[22,48,49],{},"\u002Fproducts\u002Fedge-cache","。",[15,52,54],{"id":53},"_3-层级不超过四层","3. 层级不超过四层",[11,56,57,60],{},[22,58,59],{},"\u002Fdocs\u002Fapi\u002Frate-limit"," 够了。再往下一层，点击深度和抓取效率都会变差。语言和版本不要塞进路径主层级，宁可放子域或参数。",[15,62,64],{"id":63},"_4-版本号别进主路径","4. 版本号别进主路径",[11,66,67,70],{},[22,68,69],{},"\u002Fdocs\u002Fv2\u002Frate-limit"," 会让每个版本变成一批独立页面，升级大版本时整批 301。2025 年 3 月一个 API 工具站把 v2 挪到主路径，1800 个文档页全换了 URL，三个月排名都没回到原来的位置。建议路径保持稳定，版本用页面内切换，旧版单独放一个归档区。",[15,72,74],{"id":73},"_5-参数只留功能性的","5. 参数只留功能性的",[11,76,77],{},"筛选、排序、分页参数可以存在，但要配 canonical 或 robots 规则处理。追踪参数（utm 那一堆）不要出现在可索引的链接里，服务端能拦就拦。参数越多，重复内容治理越麻烦。",[15,79,81],{"id":80},"_6-改了就必须-301","6. 改了就必须 301",[11,83,84],{},"URL 一改，旧地址 301 到新地址，sitemap 同步更新，站内链接一次性替换干净。别留旧链接挂着 404，也别让两个地址同时可访问。",[15,86,87],{"id":87},"改名的操作顺序",[11,89,90],{},"已经上线的 URL 要改，顺序别乱：先盘点旧 URL 和流量（GSC 里按点击排序，取前 200 个），再定新 URL 规则，然后写 301 映射表并上线，同时改站内链接和 sitemap，最后在 GSC 提交改版。这个客户改 800 个 URL 用了三天，映射表核对占了两天，上线本身半小时。上线后前两周流量会掉 10% 到 20%，属于正常波动，别急着回滚。",[15,92,93],{"id":93},"一个反例",[11,95,96,99],{},[22,97,98],{},"\u002Fblog\u002F2025\u002F03\u002F12\u002Fseo-tips"," 这种带日期的路径，除非你真的按时间归档，否则别用。用户和蜘蛛都会觉得旧文章过期，日历层级又多两层。我们给客户改版时，带日期的博客路径是最常被顺手收拾的一类。",[11,101,102],{},"起名的时候把 URL 念一遍，看能不能在电话里说清楚。念不清的，重起。",{"title":104,"searchDepth":105,"depth":105,"links":106},"",2,[107,108,109,110,111,112,113,114],{"id":17,"depth":105,"text":18},{"id":32,"depth":105,"text":33},{"id":53,"depth":105,"text":54},{"id":63,"depth":105,"text":64},{"id":73,"depth":105,"text":74},{"id":80,"depth":105,"text":81},{"id":87,"depth":105,"text":87},{"id":93,"depth":105,"text":93},null,"技术SEO","2025-10-31","URL 是会被写进文档、发到群里的长期资产，改一次成本极高。这 6 条规矩来自我们改过的三万多条软件站 URL：全小写、短横线、能看出内容、不随版本变、改了必须 301。",false,"md",{},true,"\u002Fblog\u002Furl-naming-rules-software",{"title":5,"description":118},"blog\u002Furl-naming-rules-software",[127,128,116],"URL设计","站点结构","gKD3HPdkPazEvttQVeqFrANB7XHDD0cFy85m6dJajBA",{"id":131,"title":132,"author":6,"body":133,"canonical":115,"category":184,"cover":115,"date":185,"description":186,"draft":119,"extension":120,"keywords":115,"meta":187,"navigation":122,"noindex":119,"ogImage":115,"path":188,"seo":189,"seoDescription":115,"seoTitle":115,"stem":190,"tags":191,"updated":115,"__hash__":195},"blog\u002Fblog\u002Fahrefs-backlink-filter.md","从竞品外链里挑可复制的，我们只留三类",{"type":8,"value":134,"toc":178},[135,138,142,145,148,151,154,157,160,163,166,169,172,175],[11,136,137],{},"2025 年 10 月我们把 6 个竞品站的外链全部导进 Ahrefs，一共 3.2 万条，按页面类型分桶再筛，最后值得动手联系的只有 340 条。外链这事做错方向，比不做的伤害大，因为低质链接现在会被识别成操纵行为。",[15,139,141],{"id":140},"先按来源页面分桶别看域名","先按来源页面分桶，别看域名",[11,143,144],{},"新手常按域名 DR 排序，挑高 DR 的站去联系，结果一堆新闻门户和目录站。我按链接所在的页面类型分：工具清单页、评测对比页、行业目录、博客正文、论坛签名、付费新闻稿。前三种有争取空间，后三种基本是浪费时间。",[11,146,147],{},"分桶之后再看页面本身：那篇工具清单还在不在更新，文章有没有被删，链接是正文里还是页脚。页脚链接和正文链接的价值不一样，这个判断工具不会替你做完。",[15,149,150],{"id":150},"三类值得花时间",[11,152,153],{},"第一类，工具清单和资源页。GitHub 上的 awesome 列表、开发者工具合集、开源项目推荐页，这类页面接受提交，通常走一个 pull request 或者邮件。它们的价值在于稳定和相关性，我的经验是这类链接带来的排名帮助比新闻稿大得多。",[11,155,156],{},"第二类，竞品评测和对比文章。写这类文章的作者需要把你的产品补进去，前提是你提供清楚的信息：定价、免费额度、和竞品的功能差异、一句话定位。发一封只有链接的邮件过去，没人会理。",[11,158,159],{},"第三类，行业协会和开源社区目录。这类要一次性提交，审核慢，但一旦上去几年不掉。",[15,161,162],{"id":162},"主动放弃的四类",[11,164,165],{},"批量目录站提交，一次几千个，三个月掉一半，还留下操纵痕迹。论坛签名和评论区，nofollow 居多，现在也不缺这点权重。付费链接包和新闻稿分发，Google 从 2024 年起对买卖链接的处理更坚决，一旦被判定，前面的工作全白费。最后是和你业务八竿子打不着的综合门户，相关性为零的链接，多一条都是负担。",[15,167,168],{"id":168},"我们的执行流程",[11,170,171],{},"导出竞品外链，按来源 URL 去重，去掉已经联系过的，剩下按相关度和页面活跃度打分。打分只看三项：页面主题是否和软件业务相关、页面最近 12 个月有没有更新、链接是编辑推荐还是自动收录。",[11,173,174],{},"联系模板我写得很短，三段：我是谁、你的页面里哪一段适合补我们的产品、我可以提供什么素材。发送记录进表格，3 周后没回复就放弃，不追第二封。",[11,176,177],{},"外链这件事最怕的是失控。我们每季度回查一次已获得的外链，掉链的记下来，掉得多说明对方在清理，以后就别再花力气。",{"title":104,"searchDepth":105,"depth":105,"links":179},[180,181,182,183],{"id":140,"depth":105,"text":141},{"id":150,"depth":105,"text":150},{"id":162,"depth":105,"text":162},{"id":168,"depth":105,"text":168},"工具评测","2025-10-30","3.2 万条竞品外链，筛完值得联系的只有 340 条。这篇写我们的分桶方法、三类值得争取的页面，以及哪些外链碰都别碰，附完整工作流。",{},"\u002Fblog\u002Fahrefs-backlink-filter",{"title":132,"description":186},"blog\u002Fahrefs-backlink-filter",[192,193,194],"外链建设","Ahrefs","竞品分析","2O-L1sZbD7YKu88IgC5VkaaP7cn0CrUQ_JbXA0mTQoA",{"id":197,"title":198,"author":6,"body":199,"canonical":115,"category":116,"cover":115,"date":309,"description":310,"draft":119,"extension":120,"keywords":115,"meta":311,"navigation":122,"noindex":119,"ogImage":115,"path":312,"seo":313,"seoDescription":115,"seoTitle":115,"stem":314,"tags":315,"updated":115,"__hash__":319},"blog\u002Fblog\u002Finp-common-questions.md","INP 是什么、怎么测、怎么改：客户最常问的八个问题",{"type":8,"value":200,"toc":303},[201,204,207,213,216,221,224,229,232,235,240,243,248,251,256,259,262,267,270,275,278,283,286,291,294,297,300],[11,202,203],{},"INP 是 Core Web Vitals 里最容易被误解的指标，因为它不像 LCP 那样有一个\"看得见的元素\"。下面是我们被客户问得最多的八个问题，答案尽量短。",[15,205,206],{"id":206},"定义和阈值",[11,208,209],{},[210,211,212],"strong",{},"Q：INP 到底测什么？",[11,214,215],{},"用户每次交互（点击、按键、触摸）到浏览器画出下一帧的延迟，取整个会话里偏差最大的那次作为分数。它衡量页面响应快不快。",[11,217,218],{},[210,219,220],{},"Q：多少算合格？",[11,222,223],{},"低于 200 毫秒算好，200 到 500 毫秒需要改进，超过 500 毫秒算差。和 LCP 一样，要求 75% 的用户访问达标。",[11,225,226],{},[210,227,228],{},"Q：它和 FID 什么关系？",[11,230,231],{},"FID 是旧指标，2024 年 3 月被 INP 替代。FID 只看第一次输入，而且只算输入延迟不算渲染，所以经常一片绿。INP 看所有交互，包含处理耗时和下一帧渲染耗时，严格得多。",[15,233,234],{"id":234},"怎么测",[11,236,237],{},[210,238,239],{},"Q：为什么 PageSpeed 测出来和客户说的不一样？",[11,241,242],{},"PageSpeed 的 INP 是实验室模拟，很多交互它触发不了，有时直接显示无数据。要看真实情况，用 GSC 的 Core Web Vitals 报告或 CrUX。",[11,244,245],{},[210,246,247],{},"Q：移动端为什么普遍比桌面差？",[11,249,250],{},"CPU 性能差，加上主线程任务没有为低端机优化。同一段 JS 在开发机上 30 毫秒，在四年前的中端安卓上就是 200 毫秒。",[11,252,253],{},[210,254,255],{},"Q：有没有必要自己搭 RUM？",[11,257,258],{},"访问量超过每天一千就建议搭。web-vitals 库加一个上报接口，半天能上线。实验室数据只能定位方向，验收必须靠自己的真实数据。",[15,260,261],{"id":261},"怎么改",[11,263,264],{},[210,265,266],{},"Q：改哪里收益最大？",[11,268,269],{},"按我们的经验排序：去掉事件处理器里的同步重活、列表虚拟化、第三方脚本延后、减少首屏水合。这四项能覆盖大多数站。",[11,271,272],{},[210,273,274],{},"Q：加服务器有用吗？",[11,276,277],{},"基本没用。INP 是浏览器主线程的问题，服务器再快，JS 还是要在用户设备上跑。带宽和机器解决 LCP 和 TTFB，解决不了交互。",[11,279,280],{},[210,281,282],{},"Q：改完多久能看到指标变化？",[11,284,285],{},"真实用户数据一般要两到四周才稳定。INP 取的是偏差最大的那次交互，样本量不够的时候波动很大。我们有个客户改完第三天看数据反而变差了，第二周才回落到 180 毫秒。别用三天的数据下结论。",[11,287,288],{},[210,289,290],{},"Q：能不能只改最慢的那个交互？",[11,292,293],{},"可以，而且往往是性价比最高的做法。INP 的分数由少数极差交互决定，修好 P95 那一个交互，整站分数就能上一个台阶。前提是你得先知道是哪一个，这就要有能归因到元素的 RUM。",[15,295,296],{"id":296},"补一句",[11,298,299],{},"INP 有个天然缺陷：它只统计交互延迟，不统计\"用户想点但没有可点元素\"的时间。按钮灰着、加载中不能操作，这些体验问题不会进 INP。所以别把 INP 当体验的全部，它只是一个及格线。",[11,301,302],{},"我们的做法是把 INP 和两个自建指标放一起看：首次可交互时间、关键操作完成时间。三个数一起看，才不容易被漂亮的单项分数骗过去。",{"title":104,"searchDepth":105,"depth":105,"links":304},[305,306,307,308],{"id":206,"depth":105,"text":206},{"id":234,"depth":105,"text":234},{"id":261,"depth":105,"text":261},{"id":296,"depth":105,"text":296},"2025-11-01","INP 是替代 FID 的交互指标，200 毫秒合格、500 毫秒算差。八个高频问题：阈值、和 FID 区别、移动端为什么更差、PSI 为什么测不出、加服务器有没有用、多久见效。",{},"\u002Fblog\u002Finp-common-questions",{"title":198,"description":310},"blog\u002Finp-common-questions",[316,317,318],"INP","问答","Core Web Vitals","522k-jzEwKKosFlHmpbLJLKkw62jUa1ys0fCETNMh6s",1794088111216]