随手从Ahrefs导了3.8万条外链塞进Excel里用"删除重复项"点了三分钟,结果发现302跳转的链接没去重、加UTM参数的两个版本算了两条、裸域和带www的被当成不同链接、http和https也各算一个,整个列表真正有效的外链不到1.7万条,剩下2.1万全是重复和垃圾。Excel自带的去重只认字符串完全匹配,URL的"去重"远比把一模一样的行删掉复杂得多:同一个页面加不加斜杠、带不带追踪参数、302跳转链要不要跟着跳、同域名只保留权重最高的一条还是全部留下,每个环节都需要不同的过滤逻辑。那有没有一个工具能把这些需求全搞定?如果不用花钱的工具,命令行和Python脚本能覆盖多少场景?
先抛一个问题给正在读这篇文章的人:你上一次处理"链接列表"是什么时候?
可能是从百度站长平台导出的一批404页面需要分类,也可能是用爬虫跑了竞品站的结构后拿到几万条URL需要去重,还可能是做外链分析时从各种工具拼凑了一堆链接要筛选出真正值得跟进的。不管哪种场景,链接批量过滤这个需求绕不开六个维度:去重、状态检测、域名分类、参数清洗、关键词筛选、格式规范化。而市面上的工具按处理方式分成了三类:纯在线工具、桌面端软件、命令行/脚本方案。每一类的覆盖维度不同,价格从零到几千块一年不等。
链接过滤的六个维度,没有一个工具能全包
| 去重 | 精确字符串匹配只是最基础的。URL去重要处理:http/https算不算重复、www/非www算不算重复、末尾斜杠差异、大小写差异、参数顺序不同但值相同、302跳转后的最终URL相同。每个层次对"重复"的定义都不一样。 |
| 状态检测 | 批量检测200/301/302/404/500/超时/证书错误,有些还要跟踪重定向链。状态检测和去重经常要联动:两个不同的URL如果都301到同一个目标,算不算重复? |
| 域名分类 | 按主域名分组、提取根域名、筛选指定后缀(只留.com/.cn/.org)、筛选指定域名白名单/黑名单、统计每个域名下的链接数量。 |
| 参数清洗 | 去掉UTM参数(utm_source/utm_medium/utm_campaign等)、去掉追踪参数(fbclid/gclid/trackid等)、去掉锚点#后的内容、保留核心路由参数去掉无关参数。 |
| 关键词筛选 | URL路径中包含/不包含指定关键词、正则匹配路径模式(如只保留 /product/ 开头的链接)、排除特定路径(如排除 /tag/ /category/ /author/ 等归档页)。 |
| 格式规范化 | 自动补全协议(http://或https://)、统一小写、去掉默认端口号(:80/:443)、标准化IDN域名、补全相对路径为绝对URL。 |
第一类:在线工具,零门槛但各有短板
在线工具最大的优势是打开浏览器就能用,不用装任何东西。劣势也很明显:数据安全风险(链接列表上传到了服务器)、单次处理数量有上限、过滤维度通常只覆盖一两种。
按域名去重:UU在线工具、保哥笔记域名提取器
这两类工具只做一件事:把一堆URL按主域名去重,每个域名只保留一条。UU在线工具(uutool.cn/url-filter-domain/)处理速度很快,号称几万条链接也能秒出结果,所有计算在浏览器本地完成,数据不上传服务器。保哥笔记的域名提取器(zhangwenbao.com)额外支持提取eTLD+1(有效顶级域名+1级,比如提取"bbc.co.uk"而不是"co.uk"),对处理多国别域名的场景更精准。
适合场景:爬虫跑完一个站拿到几万条内页URL,只想知道这个站覆盖了多少个不同域名的外链来源。或者整理友链交换清单时,先把重复域名筛掉。
https://example.com/page?color=red" 和链接B "https://example.com/page?color=red&size=M" 会被当成两条不同链接。如果你需要"去参数后再去重",在线工具基本做不到,这个需求得靠后面的命令行方案。关键词筛选:西西链接工具
西西链接工具(linktool.cc/link-filter/)的过滤逻辑是关键词包含/排除:输入一批链接,设置"包含"关键词(如 /product/)和"排除"关键词(如 /tag/ /category/),工具会按规则过滤并输出结果。适合从一大堆链接里快速筛出你关心的那部分页面,比如从全站URL列表里只提取产品页、只排除博客归档页。

死链批量检测:懒人工具、Bulk URL Checker
懒人工具(lanren-tools.com/url-check/)是免费在线死链检测工具,粘贴URL列表后会逐个发送HTTP请求,返回每个链接的状态码和响应时间。Bulk URL Checker(bulkurlchecker.com)更专业一些:支持CSV上传最多75,000个URL、云端服务器处理完成后邮件通知结果、自动代理轮换避免触发目标服务器的429限速错误。免费版可检测300个链接,付费版$9.99/万次。
死链检测有个隐藏坑:大部分在线工具从同一个IP发送请求,如果一次性检测几千个链接指向同一个域名,目标服务器会触发限速,后面的请求全部返回429或403,导致大量误报。Bulk URL Checker和Screaming Frog(桌面端)能通过代理轮换解决这个问题。
参数清洗:Link Cleaner
Link Cleaner(linkcleaner.app)是一个专注URL追踪参数清理的工具,完全免费开源,所有处理在浏览器本地完成。支持智能识别并移除UTM参数、fbclid、gclid、si(Spotify追踪)等常见追踪参数,同时保留核心路由参数。还支持批量模式一键清理多个链接。如果你经常从社交媒体、广告平台复制链接,想分享给别人之前把尾巴参数清掉,这个工具很适合。
第二类:桌面端软件,深度但需要安装
Screaming Frog 是技术SEO的瑞士军刀。它本质上是一个网站爬虫,但爬取过程中会自动完成URL去重、状态码检测、重定向链追踪、内部链接结构可视化。免费版限制500个URL,对付小网站够了;年付£149解锁全部功能。它有个特别实用的场景:爬取整站后导出所有URL到CSV,然后结合Excel或Python做二次过滤——Screaming Frog负责"获取干净完整的URL列表",后续的精细化过滤交给其他工具。
Ahrefs的链接过滤能力主要体现在反向链接分析上。它能把外链按dofollow/nofollow、锚文本、DR权重、流量等维度分类筛选,帮你从几千条外链里快速定位高质量链接和垃圾链接。$99/月的起步价不便宜,但如果你的核心需求是外链质量评估和回收,这笔钱花得值。
桌面端 vs 在线工具,选哪个的判断标准很简单
如果你的链接列表不涉及外部网站的URL(比如你只是在整理自己网站的页面列表),在线工具完全够用。如果你的链接列表需要逐个发HTTP请求检测状态(比如验证外链是否存活),桌面端工具(Screaming Frog)或专业在线服务(Bulk URL Checker)更靠谱,因为它们有代理轮换机制。如果你的链接列表包含敏感数据(比如客户链接、内部系统URL),桌面端工具(本地处理)和本地命令行脚本优于任何在线工具。
第三类:命令行和脚本,灵活度最高但需要代码能力
如果你不排斥命令行,下面这几种方案组合起来能覆盖链接过滤的所有六个维度,一分钱不花。
文本去重和基础筛选:命令行一行搞定
精确去重(保留首次出现、删掉后续重复行):

sort urls.txt | uniq > deduped.txt关键词筛选(只保留URL中包含 /product/ 的行):
grep "/product/" urls.txt > filtered.txt排除特定关键词(删掉包含 /tag/ 或 /category/ 的行):
grep -v -E "/tag/|/category/" urls.txt > cleaned.txt按域名提取(只保留 example.com 域名的链接):
grep "example.com" urls.txt > domain_filtered.txt组合技:去重 + 过滤 + 排除,一个管道搞定:
sort urls.txt | uniq | grep "/product/" | grep -v -E "/tag/|/out-of-stock/" > final.txt正则表达式高级过滤:Regex101做测试,grep -P做执行
命令行过滤的瓶颈在于:grep的关键词匹配是"字符串包含",不是"URL结构匹配"。比如你想筛选所有产品详情页URL——它们可能长这样:/product/123、/item/abc-def、/p/sku-2024。三个路径模式完全不同,但都是"一个固定前缀 + 一个ID"的结构。这时候需要正则表达式。
先用 Regex101(regex101.com)写正则并测试,确认能准确匹配后,再用 grep -P 执行:
grep -P "/(product|item|p)/[a-z0-9\-]+$" urls.txt > product_pages.txt这行正则匹配的是:以 /product/ 或 /item/ 或 /p/ 开头,后跟字母数字和短横线组合,到行尾结束的URL。过滤精度远高于关键词匹配。
Python脚本:六维度全覆盖
命令行方案在"去参数后去重"和"跟踪302跳转后去重"这两个场景就吃力了——前者需要解析URL的query string,后者需要发HTTP请求。Python脚本可以补上这块:

from urllib.parse import urlparse, urlunparseimport csvdef normalize_url(url):"""去掉UTM参数、追踪参数、锚点,统一小写,去掉末尾斜杠"""parsed = urlparse(url.strip().lower())# 去掉追踪参数tracking_params = {'utm_source','utm_medium','utm_campaign','utm_term','utm_content','fbclid','gclid','trackid','ref','source'}query_parts = [p for p in parsed.query.split('&')if p.split('=')[0] not in tracking_params]new_query = '&'.join(query_parts)# 重建URLcleaned = urlunparse((parsed.scheme or 'https',parsed.netloc,parsed.path.rstrip('/'),parsed.params,new_query,'' # 去掉锚点))return cleaned# 读入、清洗、去重with open('urls.txt') as f:urls = [normalize_url(line) for line in f if line.strip()]unique_urls = list(dict.fromkeys(urls)) # 保持顺序去重with open('cleaned_urls.txt', 'w') as f:f.write('\n'.join(unique_urls))print(f"原始链接数:{len(urls)},去重后:{len(unique_urls)}")这个脚本做了五件事:去UTM和追踪参数、统一小写、去掉末尾斜杠、去掉锚点、保持原始顺序去重。如果你还需要检测HTTP状态码,加上 requests 库的 requests.head(url, timeout=5, allow_redirects=True) 即可。
四种典型场景的推荐方案
Excel做链接过滤,三个操作会出大问题
很多人的第一反应是用Excel的"删除重复项"和"筛选"功能处理链接列表。Excel不是不能用,但有三个坑踩中一个结果就全错:
如果你非要坚持用Excel,最少配合做两件事:第一,先用 =LOWER() 把URL统一小写,再用 =SUBSTITUTE() 去掉末尾斜杠,然后再去重,这样能多消除一部分重复。第二,Excel处理完之后,把结果导出为TXT文件,用在线死链检测工具跑一遍状态码。
命令行 vs 在线工具 vs 桌面软件,到底怎么选
| 维度 | 在线工具 | 桌面软件 | 命令行/脚本 |
|---|---|---|---|
| 上手门槛 | 零门槛,打开即用 | 需下载安装,有学习曲线 | 需要命令行基础或Python知识 |
| 数据隐私 | 部分工具上传到服务器处理 | 本地处理,数据不出电脑 | 本地处理,完全可控 |
| 过滤维度 | 通常只覆盖1-2个维度 | 覆盖3-4个维度 | 可覆盖全部6个维度 |
| 单次处理量 | 通常几千到几万条有上限 | 受本地RAM限制,可达几十万 | 几乎无上限(取决于磁盘和内存) |
| 状态码检测 | 免费版有限额,无代理轮换 | Screaming Frog等有代理轮换 | 需自行实现代理轮换 |
| 费用 | 大部分免费 | 免费版有限制,付费$10-150/月 | 完全免费 |
如果你的需求是偶尔处理一批链接,数据不敏感,过滤维度单一:先用在线工具(UU去重 + 西西筛选 + 懒人死链检测),三件套全免费,十分钟搞定。如果你的需求是定期处理大量链接,涉及客户或内部数据:学一下Python脚本方案,一次写好脚本后每次改个输入文件名就能跑,长期来看比反复打开在线工具粘贴复制高效得多。如果你的需求是SEO团队日常审计,需要可视化报告和趋势分析:Screaming Frog + Ahrefs的组合虽然不便宜,但省下的时间远超工具成本。
链接过滤的底层逻辑:没有一个工具能替你判断"哪些链接该留"
所有工具解决的只是"按规则筛选"这个体力活:去重、排除、检测状态、清洗参数。但真正难的不是这些——真正难的是定义规则本身。做外链分析时,DR=20的dofollow链接和DR=60的nofollow链接哪个更值得留?清理全站URL时,/tag/归档页虽然对SEO价值不大但已经有了外部链接指向它,删还是不删?这些问题工具回答不了。工具能帮你把3.8万条链接缩到800条候选,但这800条里哪条跟进、哪条放弃、哪条需要单独发邮件联系站长,只能靠你自己的判断。
最后把今天提到的工具按"零基础能用"和"进阶高效"分两档总结。零基础:UU在线工具域名去重 → 西西工具关键词筛选 → 懒人工具/Dead Link Checker死链检测 → Link Cleaner参数清洗,四个网页全部免费,覆盖四个维度。进阶高效:Screaming Frog整站爬取 + Python脚本去参数去重 + grep正则筛选 + Bulk URL Checker代理轮换状态检测,命令行窗口里敲,$10/月以内搞定全部六个维度。选哪条路取决于你的数据量和技术栈,但不管走哪条,Excel的"删除重复项"按钮永远只是万里长征第一步。
