微信小程序UV一直不涨,检查一下这6个地方

209 阅读21分钟

作者按: 这篇文章写给已经上线一段时间、UV停滞在某个数字(比如每天几十个、几百个)不增长的小程序运营者。我会给你一个诊断清单,按照这个清单逐项检查,基本能找到问题所在。


一、先算一下:你的UV到底算不算低(行业基准参考)

在急着优化之前,先确认你的UV是否真的偏低。不同品类、不同发展阶段的小程序,UV基准差别很大。

行业基准参考(日均UV)

小程序类型上线1个月上线3个月上线6个月上线1年
电商类(无推广)20-100100-500300-15001000-5000
工具类(无推广)10-5050-300200-1000800-3000
内容类(无推广)5-3030-200100-800500-2000
服务类(有门店)30-150150-800500-20001500-8000

说明:

  • 以上数据是基于真实案例的经验值,不是官方数据,仅供参考
  • "无推广"指没有投广告、没有大规模线下推广的自然增长
  • 有公众号、视频号等外部流量导入的,UV会明显高于上表
  • 垂直细分领域(如"宠物殡葬"“古董修复”)的UV天然偏低,但转化率可能很高,不能单纯看UV

怎么判断UV是否正常

计算方法: 你的UV ÷ 同类型同阶段小程序的基准中值

  • 大于1.5倍: UV表现优秀,重点看留存和转化
  • 0.8-1.5倍: UV正常,可以按本文清单做细致优化
  • 小于0.8倍: UV确实偏低,需要按本文清单逐项排查

示例: 你的电商小程序上线4个月,日均UV是200。查表:电商类上线3个月基准是100-500,中值是300。200 ÷ 300 = 0.67,小于0.8,说明UV确实偏低,需要排查。


二、检查1:场景值分布 — 流量入口是否过于单一

什么是场景值

场景值是微信用来标识用户从哪里进入小程序的代码。比如:

  • 1001:发现栏小程序主入口
  • 1020:公众号关联小程序卡片
  • 1022:聊天顶部置顶小程序入口
  • 1023:安卓系统桌面图标
  • 1024:微信小程序桌面快捷方式
  • 1025:长按图片识别小程序码
  • 1026:扫描小程序码
  • 1027:扫描手机相册中的小程序码
  • 1028:扫描一维码
  • 1029:扫描小程序码(长期有效)
  • 1030:扫描小程序码(临时有效)
  • 1035:公众号自定义菜单
  • 1036:App分享消息卡片
  • 1042:添加到桌面图标
  • 1043:公众号模板消息
  • 1044:群聊会话中的小程序消息卡片
  • 1045:朋友圈广告
  • 1046:朋友圈消息
  • 1047:扫描小程序码(长期有效)
  • 1048:扫描一维码
  • 1049:扫描小程序码(临时有效)
  • 1052:客服消息列表
  • 1053:搜一搜
  • 1056:聊天顶部置顶小程序入口
  • 1057:系统桌面快捷方式
  • 1058:小程序主页(附近的小程序)
  • 1059:体验版小程序绑定邀请页
  • 1060:内部测试(WeChat Work)
  • 1065:URL Scheme
  • 1067:公众号文章
  • 1068:附近的小程序列表
  • 1069:移动应用(App)
  • 1072:二维码
  • 1073:小程序互跳
  • 1074:小程序互跳(返回)
  • 1077:浮窗
  • 1078:连Wi-Fi状态栏
  • 1079:微信游戏中心
  • 1081:客服消息
  • 1082:公众号标签
  • 1084:朋友圈广告(小程序)
  • 1088:会话分组
  • 1089:微信聊天主界面下拉(我的小程序)
  • 1090:长按小程序右上角菜单
  • 1091:公众号文章商品卡片
  • 1092:城市服务入口
  • 1095:小程序广告组件
  • 1096:微信钱包(微信卡包)
  • 1097:微信支付收银台
  • 1099:视频号
  • 1100:视频号(直播)
  • 1101:视频号(短视频)
  • 1102:聊天主界面下拉(最近使用)
  • 1103:聊天主界面下拉(我的小程序)
  • 1104:群应用(群工具栏)
  • 1106:聊天主界面下拉(我的设备)
  • 1107:订阅消息
  • 1113:视频号(活动)
  • 1119:订阅号消息
  • 1120:聊天主界面下拉(我的小程序)
  • 1121:视频号(直播)
  • 11241124:朋友圈广告(小程序)
  • 1125:朋友圈广告(小程序)
  • 1126:朋友圈广告(小程序)
  • 1129:微信小程序客服
  • 1131:朋友圈广告(小程序)
  • 1133:微信小程序客服
  • 1135:朋友圈广告(小程序)
  • 1137:微信小程序客服
  • 1142:朋友圈广告(小程序)
  • 1144:微信小程序客服
  • 1146:朋友圈广告(小程序)
  • 1148:微信小程序客服
  • 1150:朋友圈广告(小程序)
  • 1152:微信小程序客服
  • 1154:朋友圈广告(小程序)
  • 1156:微信小程序客服
  • 1158:朋友圈广告(小程序)
  • 1160:微信小程序客服
  • 1162:朋友圈广告(小程序)
  • 1164:微信小程序客服
  • 1166:朋友圈广告(小程序)
  • 1168:微信小程序客服
  • 1170:朋友圈广告(小程序)
  • 1172:微信小程序客服
  • 1174:朋友圈广告(小程序)
  • 1176:微信小程序客服
  • 1178:朋友圈广告(小程序)
  • 1180:微信小程序客服
  • 1182:朋友圈广告(小程序)
  • 1184:微信小程序客服
  • 1186:朋友圈广告(小程序)
  • 1188:微信小程序客服
  • 1190:朋友圈广告(小程序)
  • 1192:微信小程序客服
  • 1194:朋友圈广告(小程序)
  • 1196:微信小程序客服
  • 1198:朋友圈广告(小程序)
  • 1200:微信小程序客服

(注:场景值会不定期更新,以上仅列出常用部分)

在哪里看场景值分布

  1. 登录小程序管理后台 → 「统计」→「访问分析」→「访问来源」
  2. 可以看到最近30天内,各个场景值的UV占比

诊断标准

健康的状态: 场景值分布相对均匀,至少有3-5个不同的入口,且没有一个入口占比超过50%

不健康的状态:

  • 只有一个入口占比超过70%(流量过于单一,风险高)
  • 没有任何一个入口占比超过10%(说明没有稳定的流量来源)
  • "其他"占比超过30%(说明有很多流量来源不明,可能是刷量)

常见问题与优化方案

问题可能原因优化方案
只有"聊天顶部置顶"占比高用户基数小,只有老用户在用做搜一搜优化、线下推广,获取新用户
只有"公众号菜单"占比高过度依赖公众号,没有独立获客能力拓展其他入口(搜一搜、附近的小程序等)
"附近的小程序"占比为0没有开通或优化附近的小程序参考本文第一篇的方法1
"搜一搜"占比为0或很低搜一搜优化没做好参考本文第三篇的SEO优化方法
"分享"占比很低分享卡片设计不好或产品缺乏分享动力优化分享卡片(参考本文第一篇的方法5)

自建统计SQL(可选)

如果你有自建数据统计系统,可以用以下SQL查询场景值分布:

sql复制

SELECT 
  scene_value,
  COUNT(DISTINCT user_id) AS uv,
  COUNT(DISTINCT user_id) * 100.0 / SUM(COUNT(DISTINCT user_id)) OVER () AS uv_percent
FROM user_visits
WHERE visit_date >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
GROUP BY scene_value
ORDER BY uv DESC;

三、检查2:分享卡片数据 — 分享次数多但打开率低,问题在哪

在哪里看分享数据

  1. 登录小程序管理后台 → 「统计」→「分享分析」
  2. 可以看到:分享次数、分享人数、分享回流率(分享后被打开的次数 ÷ 分享次数)

诊断标准

分享回流率基准:

  • 优秀:15%以上
  • 正常:8-15%
  • 偏低:5-8%
  • 很差:5%以下

分享次数多但回流率低的原因

原因1:分享卡片设计差

检查点:

  • 分享标题是否吸引人?(参考本文第一篇的方法5)
  • 分享图片是否清晰、有视觉冲击力?
  • 分享摘要是否补充了标题没说的信息?

优化方案: 准备2-3版分享文案和图片,A/B测试哪版回流率高。

原因2:分享动机不对

检查点: 用户为什么分享?是觉得内容有用、想推荐给朋友,还是被你诱导了?

错误示范:

  • “分享后截图领优惠券”(诱导分享,违规)
  • “不分享不能用”(胁迫分享,违规)

正确示范:

  • 用户完成预约后,分享卡片文案是"我刚在XX完成了预约,推荐给你"(真实体验分享)
  • 用户学到有用知识后,分享卡片文案是"这篇文章讲清楚了怎么选月嫂"(有价值的内容分享)

原因3:分享路径不带参数

检查点: 分享路径是否带了from=share之类的参数?如果没有,你无法区分分享带来的UV和自然UV,也就无法计算回流率。

优化方案: 在onShareAppMessagepath参数中加上来源标识,比如:

javascript复制

path: '/pages/index/index?from=share&user_id=123'

然后在小程序后台的「统计」→「自定义分析」中,可以新建一个事件,追踪from=share的访问。

自建统计SQL(可选)

如果你有自建数据统计系统,可以用以下SQL计算分享回流率:

sql复制

-- 分享次数
SELECT COUNT(*) AS share_count
FROM user_actions
WHERE action_type = 'share'
  AND action_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY);

-- 分享回流次数(分享后被打开)
SELECT COUNT(DISTINCT v.user_id) AS share_back_uv
FROM user_visits v
JOIN user_actions s ON v.user_id = s.user_id
WHERE s.action_type = 'share'
  AND v.visit_date >= s.action_date
  AND v.visit_date <= DATE_ADD(s.action_date, INTERVAL 7 DAY)
  AND v.visit_source = 'share';

四、检查3:首屏加载速度 — 超过3秒用户会流失

为什么加载速度重要

微信官方数据显示:小程序首屏加载时间超过3秒,用户流失率会增加30%以上。加载超过5秒,一半用户会直接关闭。

在哪里看加载速度

方法1:小程序管理后台

  1. 登录小程序管理后台 → 「统计」→「性能分析」→「加载监控」
  2. 可以看到:平均下载耗时、平均渲染耗时、首屏加载耗时

方法2:微信开发者工具

  1. 打开微信开发者工具 → 进入你的小程序项目
  2. 点击「调试」→「性能」→「加载性能」
  3. 可以看到详细的加载时间分解

方法3:真机测试

用不同价位的手机(高端机、中端机、低端机)实际打开小程序,记录从点击到完全加载的时间。

诊断标准

首屏加载耗时评价用户流失风险
< 1秒优秀
1-2秒良好
2-3秒及格中高
3-5秒较差
> 5秒很差很高

常见原因与优化方案

原因1:图片过大

检查点: 小程序包内是否有超过200KB的图片?是否有未压缩的高清图?

优化方案:

  • 图片压缩:使用TinyPNG等工具压缩图片,在不影响视觉效果的前提下减小文件大小
  • 使用WebP格式:比JPEG小30%左右
  • 懒加载:首屏只加载可见区域的图片,滚动后再加载其他图片

原因2:请求过多

检查点: 首屏是否需要调用5个以上的接口?是否有可以合并的请求?

优化方案:

  • 合并接口:将多个小接口合并为一个大接口
  • 缓存数据:已请求过的数据存到本地缓存(wx.setStorage),下次直接从缓存读
  • 延迟加载:非关键数据(如推荐商品、评论)可以等首屏渲染完成后再请求

原因3:代码包过大

检查点: 小程序代码包是否超过2MB?(微信限制单个包最大2MB,总包最大20MB)

优化方案:

  • 代码压缩:开启开发者工具的代码压缩选项
  • 删除无用代码:用微信开发者工具的"代码依赖分析"功能,找出未使用的代码并删除
  • 分包加载:将不常用的页面放到分包中,主包只保留核心页面

原因4:服务器响应慢

检查点: 接口响应时间是否超过500ms?是否有数据库慢查询?

优化方案:

  • 服务器升级:如果服务器配置低,考虑升级
  • 数据库优化:添加索引、优化SQL查询
  • 使用CDN:静态资源(图片、视频)放到CDN上,减少服务器压力

自建统计SQL(可选)

如果你有自建数据统计系统,可以用以下SQL统计加载耗时分布:

sql复制

SELECT 
  CASE 
    WHEN load_time < 1000 THEN ' < 1秒'
    WHEN load_time < 2000 THEN '1-2秒'
    WHEN load_time < 3000 THEN '2-3秒'
    WHEN load_time < 5000 THEN '3-5秒'
    ELSE ' > 5秒'
  END AS load_range,
  COUNT(*) AS visit_count,
  COUNT(*) * 100.0 / SUM(COUNT(*)) OVER () AS percent
FROM user_visits
WHERE visit_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
GROUP BY load_range
ORDER BY MIN(load_time);

五、检查4:页面跳出率 — 哪个页面用户进来就走

什么是跳出率

跳出率 = 只访问了一个页面就离开的用户数 ÷ 总访问用户数

在哪里看跳出率

  1. 登录小程序管理后台 → 「统计」→「访问分析」→「页面分析」
  2. 可以看到每个页面的:进入次数、离开次数、跳出率

诊断标准

整体跳出率基准:

  • 优秀:40%以下
  • 正常:40-60%
  • 偏高:60-80%
  • 很高:80%以上

单个页面跳出率基准:

  • 首页:应该低于50%(用户进来后应该继续浏览)
  • 内容页:可以高于70%(用户看完就走是正常的)
  • 支付页:应该低于30%(如果高,说明支付流程有问题)

跳出率高的原因与优化方案

原因1:首页没有清晰的价值主张

检查点: 用户打开小程序后,能否在3秒内看懂你是做什么的、能帮他解决什么问题?

优化方案:

  • 首页顶部放一句清晰的话,说明你的核心服务(如"北京家政保洁,30分钟上门预约")
  • 配一张高质量的主图,展示服务场景
  • 放一个醒目的按钮,引导用户行动(如"立即预约"“立即购买”)

原因2:首页加载慢

参考"检查3"的优化方案。

原因3:页面内容与用户预期不符

检查点: 用户从哪个入口进来的?分享卡片的文案是否与页面内容一致?

示例: 分享卡片写"领取优惠券",用户点进来却发现是商品列表,没有优惠券入口,就会立刻退出。

优化方案:

  • 分享卡片的文案要与落地页内容一致
  • 如果是从搜一搜进来的,确保落地页与搜索关键词相关

原因4:页面设计不友好

检查点:

  • 字体是否太小?
  • 按钮是否不明显?
  • 是否有弹窗广告打扰用户?
  • 页面是否太长,用户不知道往哪滑?

优化方案:

  • 字体大小至少28px(微信小程序推荐)
  • 按钮用对比色,放在页面底部或顶部固定位置
  • 不要一打开就弹窗(广告、活动、订阅请求),至少让用户看3秒再提示
  • 页面长度控制在3屏以内,重要内容放在第一屏

自建统计SQL(可选)

如果你有自建数据统计系统,可以用以下SQL计算页面跳出率:

sql复制

-- 计算每个页面的跳出率
SELECT 
  p.page_path,
  COUNT(DISTINCT CASE WHEN p.visit_count = 1 THEN p.user_id END) AS bounce_users,
  COUNT(DISTINCT p.user_id) AS total_users,
  COUNT(DISTINCT CASE WHEN p.visit_count = 1 THEN p.user_id END) * 100.0 / COUNT(DISTINCT p.user_id) AS bounce_rate
FROM (
  SELECT 
    user_id,
    page_path,
    COUNT(*) AS visit_count
  FROM user_page_visits
  WHERE visit_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
  GROUP BY user_id, page_path
) p
GROUP BY p.page_path
ORDER BY bounce_rate DESC;

六、检查5:搜索来源UV — 搜一搜有没有收录你的小程序

为什么要关注搜索来源

搜一搜是微信生态最重要的自然流量入口。如果搜一搜没有收录你的小程序,等于放弃了一个巨大的免费流量池。

在哪里看搜索来源UV

  1. 登录小程序管理后台 → 「统计」→「访问分析」→「访问来源」
  2. 找到场景值1053(搜一搜),查看其UV占比

诊断标准

搜索来源UV占比基准:

  • 优秀:30%以上(说明SEO做得好)
  • 正常:10-30%
  • 偏低:5-10%
  • 很差:5%以下或完全没有

搜一搜没有收录或排名低的原因

原因1:小程序新规审核未通过

检查点: 登录小程序管理后台 → 「设置」→「基本设置」→「服务类目」,是否显示了类目?如果类目为空或显示"审核中",说明你的类目申请还没通过,搜一搜不会收录。

优化方案: 重新提交类目申请,确保提供的资质真实有效。

原因2:页面标题、描述未优化

参考本文第三篇的SEO优化方法。

原因3:小程序上线时间太短

微信搜一搜对新上线的小程序有1-2个月的观察期,观察期内排名会偏低。这是正常机制,持续运营即可。

原因4:小程序质量分低

微信搜一搜会对小程序打分,分数低则排名低。影响分数的因素包括:

  • 服务可用性(是否有大量用户投诉)
  • 页面加载速度
  • 内容质量(是否有原创、有价值的内容)
  • 更新频率(是否长期不更新)

优化方案:

  • 确保服务稳定,及时处理用户投诉
  • 优化加载速度(参考"检查3")
  • 定期更新内容(如博客文章、产品上新)
  • 不要刷量、不要做违规操作

怎么确认搜一搜是否收录了你的小程序

方法1:微信搜一搜测试

打开微信 → 搜一搜 → 搜索你的小程序名称,看是否能找到。

方法2:搜索核心关键词测试

搜索你优化的关键词(如"北京家政保洁"),看你的小程序是否出现在结果中。

如果搜不到,说明要么没收录,要么排名太靠后。

自建统计SQL(可选)

如果你有自建数据统计系统,可以用以下SQL统计搜索来源UV:

sql复制

SELECT 
  DATE(visit_date) AS date,
  COUNT(DISTINCT user_id) AS search_uv
FROM user_visits
WHERE scene_value = 1053  -- 搜一搜的场景值
  AND visit_date >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
GROUP BY DATE(visit_date)
ORDER BY date;

七、检查6:留存率 — UV涨了但留存差,说明流量质量有问题

什么是留存率

留存率 = 第N天后还回来的用户数 ÷ 初始用户数

常用的留存率指标:

  • 次日留存率:用户首次访问后,第二天还回来的比例
  • 7日留存率:用户首次访问后,7天后还回来的比例
  • 30日留存率:用户首次访问后,30天后还回来的比例

在哪里看留存率

  1. 登录小程序管理后台 → 「统计」→「用户分析」→「留存分析」
  2. 可以选择:次日留存、7日留存、30日留存

诊断标准

留存率基准(电商类):

  • 次日留存:30-50%
  • 7日留存:15-30%
  • 30日留存:8-20%

留存率基准(工具类):

  • 次日留存:40-60%
  • 7日留存:20-40%
  • 30日留存:10-30%

留存率基准(内容类):

  • 次日留存:20-40%
  • 7日留存:10-25%
  • 30日留存:5-15%

留存率基准(服务类):

  • 次日留存:25-45%
  • 7日留存:12-28%
  • 30日留存:6-18%

留存率低的原因与优化方案

原因1:流量质量差(刷量、虚假流量)

检查点: 新增用户的留存率是否接近0?(正常用户至少会有10-30%的次日留存,如果只有1-2%,很可能是刷量)

优化方案: 停止任何刷量行为,依靠真实运营手段获取用户。

原因2:产品没有留存价值

检查点: 用户用完一次后,为什么还要回来?你的小程序是否解决了用户的持续需求?

示例:

  • 电商小程序:用户买完一次,如果没有复购动力(如会员积分、新品上新),就不会回来
  • 工具小程序:如果用户的问题一次就解决了(如"房贷计算器"),天然留存率低,这是正常的

优化方案:

  • 电商:做会员体系、积分商城、新品提醒
  • 工具:做历史记录、收藏功能、定期提醒(如"每月房贷还款提醒")
  • 内容:做更新提醒、系列内容
  • 服务:做定期服务(如"每月保洁预约")

原因3:没有引导用户"添加到我的小程序"

参考本文第一篇的方法6。

原因4:没有使用订阅消息提醒用户回来

参考本文第一篇的方法7。

自建统计SQL(可选)

如果你有自建数据统计系统,可以用以下SQL计算次日留存率:

sql复制

-- 计算次日留存率
SELECT 
  DATE(first_visit_date) AS cohort_date,
  COUNT(DISTINCT user_id) AS new_users,
  COUNT(DISTINCT CASE WHEN DATEDIFF(second_visit_date, first_visit_date) = 1 THEN user_id END) AS retained_users,
  COUNT(DISTINCT CASE WHEN DATEDIFF(second_visit_date, first_visit_date) = 1 THEN user_id END) * 100.0 / COUNT(DISTINCT user_id) AS retention_rate
FROM (
  SELECT 
    user_id,
    MIN(visit_date) AS first_visit_date,
    MIN(CASE WHEN visit_date > MIN(visit_date) THEN visit_date END) AS second_visit_date
  FROM user_visits
  GROUP BY user_id
) u
WHERE first_visit_date >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
GROUP BY DATE(first_visit_date)
ORDER BY cohort_date;

八、诊断结论:对应问题的优化优先级

根据上述6个检查点的结果,按以下优先级优化:

优先级1(立即处理)

  • 首屏加载速度超过3秒 → 用户体验太差,不修复其他优化都没用
  • 留存率接近0 → 很可能是刷量,立即停止并排查流量来源
  • 场景值分布显示"其他"占比超过30% → 可能是刷量,需要排查

优先级2(1周内处理)

  • 搜索来源UV为0或很低 → 搜一搜是自然流量最重要的来源,必须优化
  • 分享回流率低于5% → 分享是微信生态最核心的传播方式,必须优化
  • 首页跳出率超过50% → 首页是用户的第一印象,必须优化

优先级3(1个月内处理)

  • 场景值分布过于单一 → 拓展更多流量入口,降低风险
  • 留存率低于行业基准 → 做"添加到我的小程序"、订阅消息等留存手段

总结

UV不涨通常不是单一问题,而是多个问题叠加的结果。按照本文的清单逐项检查,找到问题所在,然后按优先级逐个解决。

快速诊断流程:

  1. 先看留存率 → 判断流量质量
  2. 再看场景值分布 → 判断流量来源是否健康
  3. 然后看首屏加载速度 → 判断产品体验是否合格
  4. 最后看分享数据和搜索来源 → 判断增长空间

如果你在完成上述检查后仍有疑问,可以登录微信公众平台查看官方文档,或在微信开放社区提问。