[{"data":1,"prerenderedAt":475},["ShallowReactive",2],{"blog-preload-preconnect-misuse":3,"blog-prev-preload-preconnect-misuse":127,"blog-next-preload-preconnect-misuse":369},{"id":4,"title":5,"author":6,"body":7,"canonical":111,"category":112,"cover":111,"date":113,"description":114,"draft":115,"extension":116,"keywords":111,"meta":117,"navigation":118,"noindex":115,"ogImage":111,"path":119,"seo":120,"seoDescription":111,"seoTitle":111,"stem":121,"tags":122,"updated":111,"__hash__":126},"blog\u002Fblog\u002Fpreload-preconnect-misuse.md","preload 用错反而更慢，先看这三个判断","元析智能",{"type":8,"value":9,"toc":100},"minimark",[10,14,18,21,24,27,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97],[11,12,13],"p",{},"2026 年 8 月我们接手一个站，head 里写了九条 preload，测完发现只有三条真正被首屏用到。剩下的不但没帮忙，还抢了 LCP 图片的带宽，首屏反而慢了 200 毫秒。资源提示不是越多越好。",[15,16,17],"h2",{"id":17},"三种提示各管什么",[11,19,20],{},"dns-prefetch 只做 DNS 解析，最轻，适合那些一定会请求、但不急的第三方域。",[11,22,23],{},"preconnect 多做一步，把 TCP 连接和 TLS 握手也提前完成，成本高一点，适合关键第三方域，比如字体、CDN、支付。",[11,25,26],{},"preload 直接下载指定资源，优先级最高，会和其他关键资源抢带宽，所以只该给首屏必需的东西。",[15,28,30],{"id":29},"什么该-preload","什么该 preload",[11,32,33],{},"LCP 那张图。它是首屏最大的元素，提前下载能直接改善指标。",[11,35,36],{},"关键字体。字体藏在 CSS 里发现得晚，preload 能省一个来回，但要带 crossorigin。",[11,38,39],{},"关键 CSS，如果它放在外部文件里，可以 preload 之后切换成样式表。",[11,41,42],{},"我们通常控制在三个以内。超过三个，就要问一句：这些真的都是首屏必需的吗。",[15,44,45],{"id":45},"用错的三种情况",[11,47,48],{},"第一种，preload 了没用上的资源。Chrome 会在控制台警告“资源被预加载但未在几秒内使用”，看到这条警告就该删。",[11,50,51],{},"第二种，crossorigin 不匹配。字体 preload 不带 crossorigin，浏览器会当成另一个请求，等于下载两次，比不 preload 还慢。",[11,53,54],{},"第三种，给非首屏图片做 preload。用户在首屏根本看不到，提前下载纯属浪费。",[15,56,57],{"id":57},"怎么验证",[11,59,60],{},"DevTools 网络面板有一列优先级，看 preload 的资源是不是真的排在前面，有没有把 LCP 图挤下去。",[11,62,63],{},"再看瀑布图。preload 生效的话，关键资源的请求起点会提前到和 HTML 解析并行；没生效的话，它还是排在一堆请求后面。",[11,65,66],{},"最后对比改前改后两次的 LCP。没有改善就说明用错了，别留着。",[15,68,69],{"id":69},"一次真实的清理",[11,71,72],{},"2026 年 6 月我们查另一个站的 preload，九条里有六条是产品经理要求加的，理由是重要。",[11,74,75],{},"逐条看：两张大图不在首屏、一个统计脚本、一个客服组件、一个字体子集其实没用到、一个视频预加载了八兆。",[11,77,78],{},"删掉六条、保留三条之后，首屏 LCP 从 2.9 秒降到 2.4 秒。加的时候每个人都说重要，删的时候没人反对。",[15,80,81],{"id":81},"怎么跟团队解释",[11,83,84],{},"资源提示的效果很难用业务语言描述。我们的说法是：它只影响首屏的等待时间，不影响功能。",[11,86,87],{},"所以争议最小，改起来也安全。上线前测一次，有改善就留，没改善就删，不需要开会讨论。",[15,89,90],{"id":90},"一个判断",[11,92,93],{},"资源提示是微调工具，不是万能药。它能省一两百毫秒，前提是用对地方。",[11,95,96],{},"网络优化的顺序应该是：先砍掉不必要的资源，再优化关键路径，最后才用提示做微调。",[11,98,99],{},"顺序反过来，先加一堆 preload，只会让本来就拥挤的首屏更乱。",{"title":101,"searchDepth":102,"depth":102,"links":103},"",2,[104,105,106,107,108,109,110],{"id":17,"depth":102,"text":17},{"id":29,"depth":102,"text":30},{"id":45,"depth":102,"text":45},{"id":57,"depth":102,"text":57},{"id":69,"depth":102,"text":69},{"id":81,"depth":102,"text":81},{"id":90,"depth":102,"text":90},null,"技术SEO","2026-07-22","一个站 preload 了九个资源，只有三个真用上，首屏反而慢了两百毫秒。这篇写 preload、preconnect、dns-prefetch 各管什么，什么时候不该用。",false,"md",{},true,"\u002Fblog\u002Fpreload-preconnect-misuse",{"title":5,"description":114},"blog\u002Fpreload-preconnect-misuse",[123,124,125],"preload","资源提示","首屏","FYfSwZ9RKnp5r0UiOJqEfvsEYM57zqA9y25fjjoFO5Q",{"id":128,"title":129,"author":6,"body":130,"canonical":111,"category":112,"cover":111,"date":358,"description":359,"draft":115,"extension":116,"keywords":111,"meta":360,"navigation":118,"noindex":115,"ogImage":111,"path":361,"seo":362,"seoDescription":111,"seoTitle":111,"stem":363,"tags":364,"updated":111,"__hash__":368},"blog\u002Fblog\u002Fsoftware-app-schema.md","SoftwareApplication 结构化数据：9 个站加完后的效果和坑",{"type":8,"value":131,"toc":349},[132,135,138,141,144,147,279,282,289,293,296,299,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345],[11,133,134],{},"软件公司该加的 JSON-LD，不是 Article 和 FAQPage，而是 SoftwareApplication。2025 年 12 月到 2026 年 5 月我们给 9 个站加完，6 个出现富结果，3 个没有任何变化。差异不在代码，在页面是否真的\"像个产品\"。",[15,136,137],{"id":137},"先搞清楚它能带来什么",[11,139,140],{},"SoftwareApplication 告诉搜索引擎：这是一个软件产品，有名称、有价格、有评分、有适用平台。它可能让搜索结果里出现评分星星、价格区间，或者被归到软件类结果里。",[11,142,143],{},"它不是排名因素，别指望加了就涨排名。它的价值是提高点击率，以及在 AI 搜索里被准确识别为产品。",[15,145,146],{"id":146},"我们加的核心字段",[148,149,153],"pre",{"className":150,"code":151,"language":152,"meta":101,"style":101},"language-json shiki shiki-themes github-light github-dark","{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"SoftwareApplication\",\n  \"name\": \"产品名\",\n  \"applicationCategory\": \"BusinessApplication\",\n  \"operatingSystem\": \"Web\",\n  \"offers\": {\"@type\": \"Offer\", \"price\": \"0\", \"priceCurrency\": \"CNY\"}\n}\n","json",[154,155,156,165,181,194,207,220,233,274],"code",{"__ignoreMap":101},[157,158,161],"span",{"class":159,"line":160},"line",1,[157,162,164],{"class":163},"sVt8B","{\n",[157,166,167,171,174,178],{"class":159,"line":102},[157,168,170],{"class":169},"sj4cs","  \"@context\"",[157,172,173],{"class":163},": ",[157,175,177],{"class":176},"sZZnC","\"https:\u002F\u002Fschema.org\"",[157,179,180],{"class":163},",\n",[157,182,184,187,189,192],{"class":159,"line":183},3,[157,185,186],{"class":169},"  \"@type\"",[157,188,173],{"class":163},[157,190,191],{"class":176},"\"SoftwareApplication\"",[157,193,180],{"class":163},[157,195,197,200,202,205],{"class":159,"line":196},4,[157,198,199],{"class":169},"  \"name\"",[157,201,173],{"class":163},[157,203,204],{"class":176},"\"产品名\"",[157,206,180],{"class":163},[157,208,210,213,215,218],{"class":159,"line":209},5,[157,211,212],{"class":169},"  \"applicationCategory\"",[157,214,173],{"class":163},[157,216,217],{"class":176},"\"BusinessApplication\"",[157,219,180],{"class":163},[157,221,223,226,228,231],{"class":159,"line":222},6,[157,224,225],{"class":169},"  \"operatingSystem\"",[157,227,173],{"class":163},[157,229,230],{"class":176},"\"Web\"",[157,232,180],{"class":163},[157,234,236,239,242,245,247,250,253,256,258,261,263,266,268,271],{"class":159,"line":235},7,[157,237,238],{"class":169},"  \"offers\"",[157,240,241],{"class":163},": {",[157,243,244],{"class":169},"\"@type\"",[157,246,173],{"class":163},[157,248,249],{"class":176},"\"Offer\"",[157,251,252],{"class":163},", ",[157,254,255],{"class":169},"\"price\"",[157,257,173],{"class":163},[157,259,260],{"class":176},"\"0\"",[157,262,252],{"class":163},[157,264,265],{"class":169},"\"priceCurrency\"",[157,267,173],{"class":163},[157,269,270],{"class":176},"\"CNY\"",[157,272,273],{"class":163},"}\n",[157,275,277],{"class":159,"line":276},8,[157,278,273],{"class":163},[11,280,281],{},"这是最小可用版本。再补 aggregateRating、featureList、screenshot、softwareVersion 会更完整。",[11,283,284,285,288],{},"关键点：",[154,286,287],{},"offers"," 里的价格必须和页面上显示的一致。不一致会被判无效，严重的会被手动处理。",[15,290,292],{"id":291},"_6-个出现富结果的站有什么共同点","6 个出现富结果的站有什么共同点",[11,294,295],{},"页面本身有清晰的产品信息：价格页、版本说明、适用平台、真实截图。结构化数据只是把这些信息翻译成机器格式。",[11,297,298],{},"结构化数据和页面内容对不上，是富结果不出现的头号原因。",[15,300,302],{"id":301},"_3-个没变化的站","3 个没变化的站",[11,304,305],{},"第一个，产品页只有一段介绍和一个\"联系我们\"，没有价格、没有版本、没有平台信息。数据填了，搜索引擎没东西可展示。",[11,307,308],{},"第二个，把 SoftwareApplication 加在了博客文章上，文章讲的是行业趋势，不是产品。",[11,310,311],{},"第三个，用 SaaS 的首页做产品页，介绍的是公司，不是软件。",[15,313,314],{"id":314},"三个容易写错的地方",[11,316,317],{},"第一，评分造假。没有真实评价就填 aggregateRating，被查到轻则不展示，重则整站结构化数据被降权。我们只建议有真实用户评价的站加。",[11,319,320],{},"第二，价格写成\"联系销售\"。这不是错误，但不会出现价格富结果。B2B 软件常见，接受这个结果就行。",[11,322,323],{},"第三，多个版本混在一个页面。免费版、付费版、企业版价格不同，要么用多个 Offer，要么拆页面。别在一个 SoftwareApplication 里塞三个不相关的价格。",[15,325,326],{"id":326},"什么情况下别加",[11,328,329],{},"产品还没上线、页面只有一个\"即将推出\"，别加。",[11,331,332],{},"公司官网的首页，别加。首页是公司介绍，不是产品页。",[11,334,335],{},"已经有成熟的产品页结构的站，加了收益也不大，优先级排在内容和内链之后。",[15,337,338],{"id":338},"判断",[11,340,341],{},"结构化数据的收益是\"锦上添花\"，不是\"雪中送炭\"。页面信息本身不完整，加再多 schema 也没用。",[11,343,344],{},"我们现在的顺序：先把产品页的价格、版本、平台、截图补齐，再加 JSON-LD。这个顺序反了，白忙。这个顺序我们改过三次，9 个站都按这个来。",[346,347,348],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":101,"searchDepth":102,"depth":102,"links":350},[351,352,353,354,355,356,357],{"id":137,"depth":102,"text":137},{"id":146,"depth":102,"text":146},{"id":291,"depth":102,"text":292},{"id":301,"depth":102,"text":302},{"id":314,"depth":102,"text":314},{"id":326,"depth":102,"text":326},{"id":338,"depth":102,"text":338},"2026-07-21","软件公司该加的 JSON-LD，不是 Article 和 FAQPage，而是 SoftwareApplication。2025 年 12 月到 2026 年 5 月我们给 9 个站加完，6 个出现富结果，3 个没有任何变化。加什么字段、三种常见错误、什么情况别加，都在这篇。加完能看到效果的前提是页面信息本身完整，这点很多人忽略。",{},"\u002Fblog\u002Fsoftware-app-schema",{"title":129,"description":359},"blog\u002Fsoftware-app-schema",[365,366,367],"结构化数据","JSON-LD","富结果","FGz7yBJs6B85VGSxHmgipgN49_5JhspPCvD_J8bGbFc",{"id":370,"title":371,"author":6,"body":372,"canonical":111,"category":463,"cover":111,"date":464,"description":465,"draft":115,"extension":116,"keywords":111,"meta":466,"navigation":118,"noindex":115,"ogImage":111,"path":467,"seo":468,"seoDescription":111,"seoTitle":111,"stem":469,"tags":470,"updated":111,"__hash__":474},"blog\u002Fblog\u002Fmultilingual-market-priority.md","多语言先做哪个市场，我们用四个分数排顺序",{"type":8,"value":373,"toc":453},[374,377,381,384,387,391,394,397,401,404,407,411,414,417,420,423,426,429,432,435,438,441,444,447,450],[11,375,376],{},"多语言内容最贵的错误，是同时开三个市场。我们的做法是先算分，选一个市场做完再开第二个。四项打分，10 分制，谁高做谁。2026 年上半年我们帮两个客户用这套方法排过，都只开了一个新市场。",[15,378,380],{"id":379},"第一项现有询盘从哪来","第一项：现有询盘从哪来",[11,382,383],{},"翻最近 12 个月的询盘和成交记录，按国家或地区分组。已经有海外询盘的，那个市场就是第一优先级。",[11,385,386],{},"如果一个海外询盘都没有，说明产品还没验证这个市场，先别写内容。",[15,388,390],{"id":389},"第二项搜索需求","第二项：搜索需求",[11,392,393],{},"用目标语言在 Google 里搜你的核心词，看有没有相关的搜索建议、有没有竞品在投广告、有没有第三方评测站。",[11,395,396],{},"需求存在但供给很差的市场，是最好的机会。",[15,398,400],{"id":399},"第三项竞品覆盖程度","第三项：竞品覆盖程度",[11,402,403],{},"你的竞品在目标市场有没有本地语言站。有，说明这个市场有人在打；没有，可能是没需求，也可能是没人做。",[11,405,406],{},"两种情况要分开：如果是同类产品的大厂都没做，谨慎；如果是区域小厂在做，可以进。",[15,408,410],{"id":409},"第四项支持能力","第四项：支持能力",[11,412,413],{},"这是最容易忽略的一项。客户来了，谁用当地语言回复？谁处理时区差异？谁做发票和合规？",[11,415,416],{},"没有支持能力的市场，内容做得再好也接不住，流量只会拉高跳出率。",[15,418,419],{"id":419},"怎么算总分",[11,421,422],{},"四项各 10 分，加权：询盘 40%、搜索需求 25%、竞品 20%、支持能力 15%。",[11,424,425],{},"低于 6 分的市场先不做。6 到 7.5 分可以先做一个试点，写 5 篇内容看三个月。",[15,427,428],{"id":428},"一个实例",[11,430,431],{},"一个做 API 网关的客户，英文市场询盘占 35%，搜索需求 8 分，竞品覆盖 6 分，支持能力 4 分，总分 6.4。",[11,433,434],{},"我们的建议是先补英文售前支持，再做英文内容。先做内容的话，询盘来了没人跟，等于白做。",[15,436,437],{"id":437},"做完一个再开下一个",[11,439,440],{},"一个市场的内容体系，从词表到支柱页到案例，至少要六个月才能跑顺。同时开两个，等于两个都做不深。",[15,442,443],{"id":443},"开新市场前先做的事",[11,445,446],{},"先跑三个月的英文询盘，看有没有真实成交。没有成交就先别写内容。",[11,448,449],{},"2025 年 12 月我们劝住过一个客户，他想做日文站，但三年里只接过两个日本询盘，且都没成交。第二年他先找了日本代理，再回来做内容，顺序对了。",[11,451,452],{},"我们见过一个客户同时做英文、日文、德文三个站，一年后三个站加起来不到 200 个自然访问。",{"title":101,"searchDepth":102,"depth":102,"links":454},[455,456,457,458,459,460,461,462],{"id":379,"depth":102,"text":380},{"id":389,"depth":102,"text":390},{"id":399,"depth":102,"text":400},{"id":409,"depth":102,"text":410},{"id":419,"depth":102,"text":419},{"id":428,"depth":102,"text":428},{"id":437,"depth":102,"text":437},{"id":443,"depth":102,"text":443},"内容运营","2026-07-23","不是所有市场都值得做多语言。我们按询盘来源、搜索需求、竞品覆盖、支持能力四项打 10 分制，先做分数最高的一个市场，做完再考虑第二个。",{},"\u002Fblog\u002Fmultilingual-market-priority",{"title":371,"description":465},"blog\u002Fmultilingual-market-priority",[471,472,473],"多语言","出海","市场选择","ZSuOs23cgSOpvno6MLCRbiK35DFWSBNnQ9wmNDQWfiI",1794088103589]