结论:GJ 论坛 CLS 高多半是图片没写宽高、广告位动态插入、字体加载抖动这三处造成的,逐个固定尺寸就能压下去。
①图片必须预留位置:帖内图片、头像、表情都要在 img 标签或 CSS 里写死 width 和 height,或者用 aspect-ratio 占位,这样图片加载前后不会把文字顶走。
②广告和公告位提前占坑:论坛顶部、帖子间的广告位不要用 JS 插入后撑开高度,而是先放一个固定高度的空容器,广告加载完往里填,位置就不会跳。
③字体加载用 font-display: swap,并且尽量用系统字体栈,避免自定义字体加载完成后整页文字重排。
④动态内容要留最小高度:最新回复、在线会员这类异步加载的模块,容器先给 min-height,数据回来再渲染。改完用 PageSpeed Insights 和 Chrome 的 Layout Instability 面板复测,重点看移动端。