外贸站海外打开慢?
先别换服务器。
海外访客打开要五秒,你第一反应是升主机。但慢的成因有五种,换机器只治其中一种。这篇按「先查什么、后查什么」的顺序走:TTFB、图片、第三方脚本、CDN 缓存、SSL 模式。
海外客户说打开要五六秒,你第一反应是「主机不行,升个配置」。但慢的原因有五种,换机器只治其中一种——而且是最贵的那种。这篇按该查的顺序走一遍,每一步都给出判断标准,你自己就能定位到段。
先量一个数:TTFB
别猜,先量服务器说话有多快。在终端跑一条:
curl -o /dev/null -s -w "dns %{time_namelookup}\nconnect %{time_connect}\nttfb %{time_starttransfer}\ntotal %{time_total}\n" https://你的域名/
time_starttransfer 就是 TTFB,服务器把第一个字节送出来的时间。这个数包含的东西比很多人想的多:
“TTFB is a metric that measures the time between starting navigating to a page and when the first byte of a response begins to arrive.” “As a rough guide, most sites should strive to have a TTFB of 0.8 seconds or less.”
web.dev 的定义:TTFB 量的是从开始导航到响应的第一个字节开始到达之间的时间;粗略的参考是,多数站点应当把 TTFB 控制在 0.8 秒以内。它的分级也直白——0.8 秒以内算良好,超过 1.8 秒算差。
web.dev · Time to First Byte (TTFB)
这一步定生死:TTFB 超过一秒,说明访客每一页都在等你服务器算;这时候压图片、换字体、砍脚本,全是在前端白忙。反过来,TTFB 只有两三百毫秒、首屏却慢,那问题一定在资源上,直接跳到第二节。
有个容易混淆的地方:海外访客测出来的 TTFB 和你自己在国内测的不是一个数。物理距离会带来额外的往返延迟,如果主机在美西、客户在德国,光是 TCP 和 TLS 握手就要多花几个来回。所以测的时候要用海外节点,PageSpeed Insights 或者任意一个海外测速站都行,别拿本地数字安慰自己。
第二处:图片,通常是最肥的一块
外贸站的图片有个共同特点:产品图来自设计师或工厂,动辄 4000 像素宽、单张三四兆,直接原图上传。浏览器拿到之后先下载完整尺寸,再缩到 600 像素显示。流量全花在了看不见的像素上。
判断方法很简单:打开浏览器的开发者工具,切到 Network,勾上 Disable cache,刷新,按 Size 排序。首屏(还没滚动的那部分)如果超过一兆,几乎一定是图。正常水平是几百 KB。
改法按性价比排:长边按实际显示尺寸重出,格式换 WebP,首屏以下的图加懒加载。这三步做完,首屏体积通常能砍掉七成以上,而且不用花一分钱。
第三处:第三方脚本,你看不见的那几个
外贸站上常见的外挂:在线客服、统计、广告像素、字体图标库、社交分享按钮、A/B 测试。每一个都要连一个外部域名,每一个都要等对方的服务器响应。海外访客访问一个挂在境内或某个慢节点的脚本,等于把整页的加载时间绑在别人身上。
在 Network 里按 Domain 看一遍,把不属于你域名的请求挑出来,逐个问三个问题:这个脚本现在还有人用吗、能不能延迟到页面加载完再加载、能不能直接删掉。图标库这类东西最常见——为了几个图标引入一整套字体文件,几百 KB。
一个经验数字:外部域名的请求数控制在三个以内,再多就该怀疑了。
第四处:CDN 开了为什么没起作用?
很多人以为「接了 CDN」就等于「全球都快」。实际上 CDN 只有命中缓存才快,没命中就是回源——照样要等你那台主机。判断方法看响应头里的 cf-cache-status(Cloudflare)或者 x-cache(其他家):HIT 是命中,MISS 是没命中。
外贸站最常见的两种没命中:一是 HTML 被设成不缓存(很多主机默认这样),二是带参数的 URL 太多,每个参数组合算一份新缓存。前者可以在 CDN 的缓存规则里对静态资源放宽,后者要在站内统一链接写法,别让统计参数混进 canonical。
Cloudflare 的缓存规则本身是按 URL、文件类型、请求头这些维度配的,配置项不算多,但配错了症状很像「CDN 没用」。
第五处:SSL 模式配错会怎样?
用 Cloudflare 的人很容易忽略这一项。SSL/TLS 模式有四种:Off、Flexible、Full、Full (strict)。设成 Flexible 的时候,Cloudflare 到你的源站走的是明文 HTTP,源站如果是 HTTP→HTTPS 强制跳转,就会形成无限重定向,页面直接打不开或者转半天。
正确做法是源站装上证书,模式选 Full (strict)。这一步做完,顺带把「Always Use HTTPS」打开,让 HTTP 的访客 301 到 HTTPS——301 是永久重定向,谷歌会把权重算到新地址上,这一点比 302 干净。
如果你没有独立源站、直接把文件托管在 CDN 上(比如 Cloudflare Pages 这类纯静态托管),这一项根本不存在,也就不会有配错的机会。
五处按成本排个序
| 查什么 | 怎么判断有问题 | 改起来的成本 |
|---|---|---|
| TTFB | 海外测超过 1 秒 | 高:涉及主机或程序,先做完下面四项再动 |
| 图片 | 首屏体积超过 1 MB | 低:几乎不花钱,一次改完管很久 |
| 第三方脚本 | 外部域名请求超过 3 个 | 低:删、延后、合并,只需要判断力 |
| CDN 缓存 | 静态资源显示 MISS | 低:改缓存规则,注意排除动态页 |
| SSL 模式 | Flexible,或源站没证书 | 低:装证书、改一个下拉框 |
顺序反了就是浪费:先升主机、再发现是图片太大,钱花了问题还在。这五处里,四处不需要花钱,只需要花半小时看数据。
还有一个更常见的误区:把「首页快」当成「站快」。真正带来询盘的是产品页和文章页,这些页面往往图最多、文字最长,反而没人测。挑三个最有价值的页面各测一次,比测首页十次有用。
什么时候换主机才是对的?
三种情况,换得值:
- TTFB 忽高忽低。白天两秒、凌晨三百毫秒,说明你那台机器在被邻居抢资源。这是共享主机的通病,优化前端治不了。
- 流量一上来就崩。做个促销或者投一波广告,站就打不开了。这是并发能力的问题,配置升一级能顶一阵,但成本会跟着涨。
- 主机商在你目标市场没有节点。客户全在欧洲,主机只有美西机房,中间隔着一次跨洋。
这三种之外,换主机大概率是「花钱买心理安慰」。而且要注意:WordPress 站换主机往往要重新配一次环境、迁一次数据库、调一次缓存插件,折腾一天,速度可能只改善两成。
我们怎么让这件事从「反复查」变成「不用查」
我们做的站是纯静态的:服务器上就是 HTML、CSS、图片和一份样式表。上面五处里,有两处直接不存在——没有程序要执行,TTFB 就是发文件的时间;没有后台和插件,就没有第三方脚本偷偷挂进来。
剩下三处仍然要人管:图片按显示尺寸出、字体按页面用字裁子集、缓存规则按文件类型配好。这三件是出站时就做掉的,不会随内容增长慢慢失控。
说清一句:静态站不是自动快。往里扔一张 5MB 的原图,它照样慢。区别在于慢的原因只剩图片和字体两个,都在自己手上,查一遍就知道。
想知道自己的站慢在哪一段,不用先决定换不换。把网址发我,我按上面五处过一遍,当天回你一句:是能调,还是该换。
资料来源
- web.dev · Time to First Byte (TTFB)(定义与 0.8 秒 / 1.8 秒分级,2026 年 10 月查看)
- Cloudflare · Cache(缓存规则与命中状态说明)
- Google 搜索中心 · 重定向与 Google 搜索(301 与 302 的区别)