从中国访问欧洲网站,有一组已知的困难:距离、不总是稳定的国际链路,以及在本地托管所需的备案。同样的物理规律反过来也成立。托管在中国的网站,从欧洲打开,要跨越同样的距离,经过同一条跨境链路,只是方向相反。网站的所有者很少看到这一点,因为测试它的人都坐在服务器旁边的办公室里。欧洲的买家却每一次都能看到。
时间到底花在哪里
打开一个页面不是一次请求。浏览器先找到服务器的地址,再建立连接,再协商加密通道,然后才请求页面。每一步都是一次往返,每次往返都要付出访客与服务器之间的全部距离。页面到达之后,它还要请求样式表、脚本、字体和图片,往往来自好几个不同的地方。一台对身边访客响应很快的服务器,并不是对所有人都快的服务器:它只是离得近。
- 到服务器的距离。托管在亚洲、在欧洲打开的页面,在第一个字节到达之前的每一步都要付出这段距离。把托管放在靠近买家的地方,可以去掉其中的大部分。
- 跨境路由。中国与欧洲之间的流量并不总是走同一条路径,质量随时段和服务商而变化。问题恰恰在于这种变化:它很难复现,所以很少被修复。
- 过大的图片和视频。从设计文件里按原尺寸导出的产品照片,以及一进入就开始播放的背景视频,是首屏变慢最常见的原因,不论服务器在哪里。
- 来自别处的脚本。在线客服窗口、统计分析、地图、字体库和标签管理器,每一个都要多连接一个其他主机,而其中一些主机在欧洲很慢,甚至无法访问。
- 移动网络。欧洲买家在火车上用手机打开链接,与在办公桌前打开的可能性一样大。只在办公室光纤网络下测试的页面,会掩盖手机上显现的所有问题。
CDN 能做什么,不能做什么
内容分发网络(CDN,content delivery network)把您的文件副本保存在许多地方的服务器上,并从最近的一台向每位访客提供。对图片、样式表、脚本和字体来说,它彻底改变了局面:文件不再从源站传来,而是来自访客所在国家的节点。对于为每位访客单独生成的内容,比如购物车、账户或搜索结果,它帮不上忙,除非这些内容也被缓存,或在边缘节点生成。它还需要在您的目标市场附近有节点。一个在亚洲覆盖很强、在欧洲覆盖薄弱的网络,解决不了出在欧洲的问题,所以请核查服务商在您销售的那些国家的覆盖情况,而不要听它宣称的全球覆盖。
| 情形 | 什么变慢 | 可用的手段 |
|---|---|---|
| 服务器在中国,买家在欧洲 | 每个页面,从第一个字节开始 | 托管在欧洲,或在前面放置带欧洲节点的 CDN |
| 服务器在欧洲,图片过大 | 首屏,尤其在手机上 | 缩小并压缩图片;折叠线以下的图片延后加载 |
| 第三方脚本很多 | 页面可用之前要等待另一个主机 | 删掉没人看的;其余的放到内容之后加载 |
| 动态页面,没有缓存 | 即使有 CDN,首字节时间仍然很长 | 缓存对所有人都相同的部分;把源站移近 |
中国技术栈里的第三方脚本
为中国做的网站,常带着一些在中国有意义的工具:中国服务商的统计脚本、中国服务的地图、聊天窗口、社交账号登录、从中国网络提供的字体。从欧洲打开,其中每一个要么从远处缓慢加载,要么根本加载不出来,而一个等脚本加载完才显示的页面,可能会卡住。访客一旦在欧洲,同样的工具还会带来法律问题:它们把数据发送到欧盟之外的服务器,而且大多数在运行前需要获得同意。最简单的做法,是让页面的欧洲版本不含那些在欧洲毫无用处的工具,并把必需的工具放到内容之后、同意提示之后再加载。
如何站在买家一侧测量
- 从欧洲测,而不是在办公室里测。使用可以选择目标国家位置的测试服务,既在模拟的移动网络下运行,也在高速网络下运行。
- 看三项指标,而不是一个分数:首字节时间,反映服务器和距离;主要内容可见所需的时间;以及页面对点击或轻触作出响应有多快。
- 打开请求列表并按主机排序。记下每一个不属于您的域名,对每一个都问一句:有人在用它吗。
- 在一天中的不同时段、从第二个国家重复测试。结果随时段变化,说明问题在路由,而不在页面。
- 请欧洲的一位联系人用手机打开网站,告诉您他看到了什么。这只需要一分钟,却能发现任何工具都描述不出来的问题。
迁移网站并不总是第一步。如果图片大得离谱,页面还加载着十几个没人用的工具,欧洲的主机只会让一个沉重的页面稍早到达,并不会让它变轻。先给页面称重,再删减,再用 CDN 把文件拉近,最后才把源站迁到欧洲。在欧盟境内托管还有第二个好处,与速度无关:您的欧洲访客和客户的数据留在适用于他们的规则之下,隐私声明因此更简单。至于您是否还要在本地主机上保留一个中国版本,是另一个决定,两者可以并存。