zh-Hans v
en zh tw

UTM 链接生成器

生成推广链接、检查已有 UTM 参数,或移除 UTM 并保留其他查询参数。

先约定活动命名

填写落地页、来源、媒介和活动名称。为同一推广渠道保持统一拼写,例如 newsletter / email / autumn_launch,便于汇总报表。ID、关键词、内容标记和来源平台可不填。直接输入空格、中文或 &,工具会编码一次;不要预先把空格写成 %20。

如何处理已有参数

“替换全部”先移除名称以 utm_ 开头的全部查询参数,不区分大小写,再加入新活动。“替换已填值”更新已填写字段,空白可选字段保留已有值。“保留首次已有值”优先使用原链接中第一次出现的值,即使对应字段另有输入。已知重复参数统一为单个小写名称;未知 UTM 参数在后两种策略中保留。

最终来源、媒介和活动名称必须非空。小写选项只处理新输入的值,不改写保留值。“检查参数”展示原始名称、重复项及缺失的标准小写参数;“移除 UTM”仅清理查询参数,不处理 # 后的片段。

保留内容与输入限制

其他查询参数保持原有顺序和原始编码,包括重复键、无等号标记、+ 和 %20。域名、国际化域名和路径由浏览器 URL 解析器规范化。片段仍位于查询字符串之后;新参数采用 UTF-8 百分号编码,空格为 %20。再次生成同一组活动参数不会不断追加重复项。

仅支持不含凭据的完整 HTTP/HTTPS URL。解析或生成的 URL 在百分号编码后最长 8,192 个字符,每个活动字段最多 2,048。错误百分号编码、控制字符和 URL 中未编码的空格会被拒绝。为带签名的 URL 加参数仍可能导致签名失效,应先核对目标服务的规则。

UTM 的用途

UTM 用来标记访问来源,不会安装统计代码,也不保证出现转化数据;目标站点需要正确记录活动参数。不要用它标记站内导航,以免干扰归因。本工具不缩短链接,也不访问目标网址。

常见问题

为什么某个参数消失了?

“替换全部”会清理全部 UTM 参数,包括可选项和未知参数。希望保留未填写的可选项时请选择第二种策略;修改前可先检查原链接。

会访问或保存链接吗?

不会。字段在本机 Web Worker 中处理,不访问目标站点,不保存到本地存储,也不把输入发送到 API。

UTM 能提高搜索排名吗?

UTM 是归因标记,不是排名功能。站点仍应为活动链接采用一致的规范网址策略。

其他语言

参考资料

我们如何确保结果正确

我们使用以下自动化测试验证此工具。下方保留测试用例的原始名称,便于查看实际断言和复现。

验证方法
检查 UTM 编码、替换/合并/保留/清理模式,保留无关查询参数及 fragment,并避免重复编码。
对比依据
明确 URL 输入输出对和 Unicode 样本。
验证范围
只覆盖这些样本和边界;不代表所有输入均已证明正确。
测试源码与用例(点击文件名查看)
  • seo-tools.test.js
    • UTM encodes Unicode, spaces and literal delimiters exactly once and keeps unrelated raw pairs
    • UTM replace removes stale known and unknown UTM parameters regardless of spelling
    • UTM merge replaces specified values and keeps unspecified optional values without duplicate known keys
    • UTM keep uses the first existing value and enforces a complete effective campaign
    • UTM clean is idempotent, removes only query UTMs, and preserves fragments and unrelated pairs
    • UTM inspect reports duplicates, original casing and missing recognized campaign fields without changing URLs
    • UTM optional lowercase affects new values only and has reversible Unicode encoding
    • UTM rejects invalid URL, credentials, controls, malformed mode and excessive field size

这些测试覆盖列出的样本和边界,不代表所有输入都已证明正确。往返测试和使用同一依赖库的检查,不属于独立交叉验证。