最近检查一个网站的GA4数据时,发现跳出率超过90%。
跳出率这么高,不一定代表内容质量差或网站体验有问题。它可能来自一次正常的流量变化,也可能是埋点、页面性能或自动化访问造成的。仅凭跳出率本身,不能直接下结论。
这次进一步拆分后发现,异常会话大多来自Direct,且集中从一些不符合正常用户访问路径的分页URL进入。结合服务器日志中的IP 特征,判断这部分流量更像自动化爬虫或代理池访问。
本文记录这次排查过程,以及如何在Nginx中仅对“首次着陆页包含 /page/”的请求返回404,减少类似流量继续消耗服务器资源和污染分析数据。
不要因为跳出率高就直接封禁
GA4 的跳出率等于:跳出率 = 1 − 互动率
一个会话如果未满足互动会话条件,例如停留时间较短、没有关键事件、没有至少两个页面浏览,就可能被记为跳出。
因此,跳出率超过 90% 可能有多种原因:
- 用户确实快速离开;
- 页面加载、埋点或 Consent Mode 出现问题;
- 某个广告活动带来低质量流量;
- 自动化访问只加载了一个页面;
- 爬虫、扫描器或代理池访问了大量异常 URL。
这次案例的关键不在于“跳出率高”,而在于多个信号同时出现:
- 异常会话主要集中在 Direct;
- 着陆页集中在包含 /page/ 的分页 URL;
- 这些分页 URL 不是正常的外部访问入口;
- 日志中的 IP 经第三方检测工具标记为爬虫或数据中心网络;
- 访问行为缺少正常用户会话中常见的后续页面、互动和转化。
第一步:从渠道拆分异常流量
先在GA4中按默认渠道组、来源/媒介查看会话和跳出率。
这次异常流量基本来自Direct。
不过Direct不等于机器人流量。GA4会将无法识别来源的访问归到Direct,所以,Direct只能帮助缩小排查范围,不能作为封禁依据。
第二步:结合服务器日志检查IP特征
接下来从Nginx日志抽查异常请求的 IP,并使用第三方IP查询工具检查其网络类型。
部分IP被标记为爬虫、数据中心、托管网络或代理服务,而不是常见的住宅网络。
但这里也要注意:第三方IP数据库并不绝对准确。企业VPN、云服务、学校网络和移动网络出口都可能被误判。
更可靠的判断方式,是把IP类型和请求行为结合起来看,还需要进一步分析。
第三步:在GA4中找到共同的特征
在GA4里分析这部Direct还有什么特征,如使用的设备,浏览器,访问的页面,可能会高度集中。
通过分析,发现大量异常会话集中落在带有 /page/的分页URL,这不是正常的访问入口的。
为什么不只在GTM或GA4中排除?
GTM可以根据着陆页变量阻止GA4代码触发,避免异常会话进入数据报表。
但它无法阻止请求到达网站。机器人仍然会经过:
请求网站 → Nginx → 网站→ 返回页面 → GTM执行 → GA4被排除
如果请求量较大,仍会占用服务器、带宽资源。
因此,这类明确无价值的异常路径,更适合在Nginx层尽早返回404:
请求网站 → Nginx识别异常着陆页 → 返回404
这样请求不会继续进入网站。
配置思路:只拦截“首次访问 + 路径包含 /page/”
不能简单屏蔽所有 /page/ 页面。
因为用户可能先进入正常页面,再通过站内分页继续浏览;这种情况不应被拦截。
本次使用一个短期 Cookie 标记用户是否已成功进入过网站:
- 没有Cookie,代表首次访问;
- 首次请求的路径包含 /page/,返回 404;
- 已访问过正常页面的用户,允许继续访问分页;
- Cookie有效期为 30 分钟;
- 机器人通常不保留Cookie,因此会持续命中拦截规则。
Step 1:在Nginx全局配置中创建判断变量
在 http{}里添加:
# 没有 Cookie 时,视为首次访问
map $cookie_site_visited $is_first_visit {
default 0;
"" 1;
}
# 路径任意位置包含 /page/
# 例如:/page/2、/page/19
map $uri $has_page_path {
default 0;
~*/page/ 1;
}
# 只有首次访问且路径包含 /page/ 时拦截
map "$is_first_visit:$has_page_path" $block_page_landing {
default 0;
"1:1" 1;
}
# 被拦截时不写 Cookie,防止刷新后绕过
map "$is_first_visit:$has_page_path" $visit_cookie {
default "site_visited=1; Path=/; Max-Age=1800; SameSite=Lax";
"1:1" "";
}
Step 2:在网站配置中返回404
在server {}里添加:
# /page/ 作为首次着陆页时返回 404
if ($block_page_landing) {
return 404;
}
# 正常页面访问后,写入 30 分钟标记
add_header Set-Cookie $visit_cookie always;
保存、重载Nginx,
Step 3:验证规则是否生效
用无痕窗口直接打开/page/11 测试,应返回 404,也可以查看日志:
101.4.131.162 - - [13/Aug/2026:09:24:29 +0800] "GET /page/11" 404 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
使用前必须确认的风险
搜索引擎爬虫和来自搜索结果的新用户,通常同样没有site_visited Cookie。如果Google或真实用户首次访问的是一个有效分页URL,也会得到404。
对于明确无价值的异常着陆页,Nginx返回404可以减少网站和GA4的无效消耗。
如果URL仍可能被真实用户或搜索引擎正常访问,就不要用路径规则一刀切。更稳妥的方式是继续结合 User-Agent、请求频率、访问路径和WAF规则,逐步缩小拦截范围。




