使用方法
- 把关键词粘进多行文本框。逗号、中文逗号或换行都算分隔符,默认样本是一串带重复项的清单,打开即已填好,不必自己先造数据。多行框里裸回车只换行,不会误触发生成。
- 设两个上限。「最多输出条数」防止 content 字段超长,「单词条最大长度」防止个别异常长词撑爆标签;两个数字框按回车立即生效,取值范围分别写在提示里。
- 选分隔符并生成。输出分隔符有逗号加空格、纯逗号、中文逗号三选一,只影响拼接外观;按 Ctrl/Cmd + Enter 或点「生成标签」即可,改了分隔符也会立即重算。
- 读结果区分清洗前后。结果区用 role="alert" 标注,第一行是完整 meta 标签,后面列出「拆分 → 去空 → 保序去重 → 截断」各步条数与被丢弃的重复项,读屏软件可整段播报;五张卡片对应每一步计数与标签长度。
- 核对与导出。对照表默认 12 行、可再展开 2 行,导出 CSV 带 BOM、复制按 TSV 分列。任一数字框留空、填非数字,或关键词被清空到没有有效词,红框会写明具体原因,不会静默给一个空标签。
这个工具能解决什么问题
一是给旧系统补一个必需但没人愿意手填的字段。不少老 CMS、企业内站模板在保存文章时仍要求 keywords 非空,缺了就报错或留下一条脏数据。本页把一堆零散、带重复、带空格的词一次清洗成规整串,复制粘贴即可填表,比在后台里逐条删重复快得多。
二是让站内标签与相关文章有一份干净的元数据。很多站内搜索、标签云、相关内容推荐并不依赖外部搜索引擎,而是直接读文章表里的 keywords 字段;重复词会让标签权重失真,空项会让推荐结果抖动。保序去重后的串更稳定,也便于在不同文章之间做数据比对。
三是产出可交付给第三方的规整清单。广告投放、内容聚合、内部数据字典常要求一段逗号分隔的关键词,而不是编辑器里的原始草稿,本页顺带把它包成可直接用的标签。旧模板里这类输出常被称作 Meta标签关键词生成器 的产物,但必须说清楚:本页只是字符串清洗工具,不承诺任何搜索排名提升,也不查词频、不联网拉取搜索量、不做同义词扩展。
原理和变量:一个早已不参与排名的标签,以及四步清洗
先把这个标签的身份与现状讲清楚。meta keywords 是放在 <head> 里的 <meta name="keywords" content="...">,上世纪九十年代末到二千年代初,搜索引擎会读它判断页面主题。但关键词堆砌很快把它变成噪声:Google 在 2009 年公开确认 meta keywords 完全不参与网页排名,此后主流搜索引擎也基本不再把它当排序信号。因此「认真填 keywords 就能上首页」是过时说法,本页从头到尾都不承诺 SEO 效果;谁拿它当排名手段,只会白费功夫,甚至可能因堆砌被旧规则误伤。
那它今天还有什么用。三类场景仍然真实存在:一是旧 CMS 与老模板的必填校验,二是站内搜索、标签系统、相关文章推荐读取的元数据,三是导出给第三方平台或内部数据字典的关键词清单。它们要的是「一段规整、无重复、无空项的字符串」,而不是排名信号。把用途说清楚,才不会对这个工具产生错误期待。
第一步,拆分与去空。输入按逗号、中文逗号或换行切成片段,每段去掉首尾空白,空片段直接丢弃。这一步决定了「原始词条数」的口径:数值复算表里的 6 条指的就是去空之后的片段数,而不是字符数或词数。空项不清掉会留下连续逗号,让下游系统解析出并不存在的幽灵关键词。
第二步,保序去重。用数组记录已见过的词,按原顺序保留第一次出现,后续重复项丢弃并记入「丢弃明细」。默认样本「计算器, 在线工具, 计算器, 免费, SEO, 在线工具」里「计算器」与「在线工具」各出现两次,于是 6 条去空后仍是 6 条,去重后只剩 4 条:计算器、在线工具、免费、SEO。保序很重要:编辑把最重要的词放在前面,去重不该打乱这个优先级,所以这里不用会重排的集合运算。
第三步,控制条数与长度。去重结果按「最多条数」截断,单词条按「最大长度」裁短,避免超出数据库字段或模板对 content 长度的限制。注意截断发生在去重之后,否则重复项会挤占本该留给新词的名额;长度裁短则在去重判定之前完成,保证两个只差尾部的长词能被正确识别为同一个词。
第四步,拼接并包成标签。按所选分隔符 join,把双引号转成 " 实体再放进 content 属性,防止词里带引号把标签撑破。这一步只是字符串拼接,不做任何网络请求。
完整示例(默认样本实测)
默认样本是「计算器, 在线工具, 计算器, 免费, SEO, 在线工具」,条数上限 10、单词条上限 20、分隔符为逗号加空格。逐项核对:
- 去空后词条数: 条,六个片段都非空;
- 去重后词条数: 条;
- 去重结果:;
- 生成的标签:。
被丢弃的是第二次出现的「计算器」与「在线工具」,各一份;其余四条保持原顺序。这些数字和字符串都是页面加载时由自己的 clean 函数算出再填进对应位置的,不是写死在 HTML 里,改动输入或上限立即重算,与数值复算表里的 6、4 和四词结果一一对应。
把「最多条数」改成 2,同一串只保留前两条;改成 1 只剩「计算器」,可见截断发生在去重之后且严格保序,不会把重复词重新放进来。
对照表与输入范围
表格列出 14 组不同的关键词串,前 12 行直接可见,后 2 行点「加载更多」展开。每组都调用同一个 clean 函数,按当前条数上限与单词条长度上限算出去空后、去重后、最终条数与输出预览,因此不是一张静态速查表:把上限从 10 改成 3,全表最终条数列会立即跟着变。
第一行就是默认样本,是整张表的锚点。其余组合覆盖三连重复、五连重复、只有逗号、中文逗号、首尾空格与超长词条,方便观察「重复比例越高,去重后剩得越少」,以及空串输入时计数归零的情形。
- 最多输出条数:1~50,步长 1,作用于去重之后的结果。
- 单词条最大长度:1~100 字符,步长 1,作用于去重判定之前。
- 输出分隔符:逗号加空格、纯逗号、中文逗号三选一,不改变计数。
- 关键词串:无字符上限,超长文本会线性增加一次扫描,属正常现象。
两个按钮从同一份计算结果生成数据:导出 CSV 带 UTF-8 BOM,Excel 打开中文表头不乱码;复制对照表按 TSV 送进剪贴板自动分列,屏幕所见与导出所得永远一致。
结果边界与舍入
- 没有数值舍入,只有条数截断。去重后条数超过上限就按 min 取前 N 条,不四舍五入、不补齐、不随机挑选,保证结果可预期、可复算。
- 去空与去重都保序。保留第一次出现的位置,后面重复项才丢弃;两个上限也只从队尾裁掉内容,不会重排剩下的词,编辑排好的优先级得以保留。
- 大小写与全半角不归一。「SEO」与「seo」视为不同词,页面不做大小写合并,全角半角也同理,避免把编辑有意保留的两种写法误判成重复。
- 特殊字符只做最小转义。双引号转成实体以免撑破属性;尖括号、与号等原样留在属性值里,粘贴到模板前建议自行检查一遍。空串输入会得到 0 条与空 content,页面会明确提示而不是给一个看似正常的空标签。
- 非法输入不静默归零。数字框留空、填字母、超出范围都会写明字段与允许范围;关键词全被清空也会提示「没有有效词」。整条链路是拆分、trim、数组查重与字符串拼接,纯本地执行,无网络请求,不写 Cookie 或 localStorage,也不承诺 SEO 效果。
常见问题
填了 keywords 能提升 Google 排名吗?
不能。Google 2009 年起就公开说明 meta keywords 不参与网页排名,主流搜索引擎也基本不用它。本页不承诺任何 SEO 效果,把它当排名手段只会白费功夫。
那为什么还要生成这个标签?
旧 CMS 的必填校验、站内搜索与标签系统读取的元数据、导出给第三方的关键词清单,这三类场景要的是一段规整字符串,而不是排名信号。
为什么有 6 条却只剩 4 条?
默认样本里「计算器」与「在线工具」各出现两次,保序去重丢掉后面两份重复,于是 6 条去空后去重成 4 条。
去重会不会打乱我排好的顺序?
不会。保留每个词第一次出现的位置,只丢弃后续重复项;条数截断也从队尾裁,剩下的词顺序和原来一致。
空项是怎么处理的?
每段先去掉首尾空白,trim 后为空就直接丢弃,所以连续逗号不会变成幽灵关键词,也不会在输出里留下多余的分隔符。
「最多条数」设小了会怎样?
去重后按上限截断,只留前 N 条,不会随机挑也不会补齐。截断放在去重之后,重复项就不会挤占新词的名额。
SEO 和 seo 算同一个词吗?
不算。页面不做大小写归一,全角半角也视为不同词,避免把编辑有意保留的两种写法误合并掉。
关键词会被上传吗?
不会。拆分、去重和拼接全在当前浏览器完成,页面不发起网络请求,也不写 Cookie 或 localStorage,Network 面板始终是空的。