干了三年独立站SEO之后,我越来越确信一句话:大部分词研工作,本质上都是体力活。每天打开各种工具,拉词、看量、筛词、分组、做表格,一套流程下来,真正需要动脑的时间不到两成。所以当我把“Claude帮你做SEO!开源工具让关键词研究全自动化”这句话落地成实际脚本时,感受到的不是惊艳,而是终于有人把活干了。这篇文章会完整拆解我是怎么用Claude配合开源工具,把关键词研究从纯人工变成半自动管线的,里面包含工具选型思路、完整代码流程、踩过的坑,以及跑了整整一周之后拿到的真实数据。无论你是独立站站长、SEO新手,还是只会用半自动工具的从业者,这套思路都可以直接抄作业。
1. 为什么我要折腾关键词研究自动化
1.1 手动词研的“三个噩梦”
先说一下以前手动做关键词研究的日常。假设你接了一个宠物用品独立站,想围绕“狗狗牵引绳”挖一批词,通常流程是这样:先去某关键词工具里拉一堆相关词,导出Excel;再逐条看搜索量和商业价值;然后在脑子里把它们分组,比如“材质类”“场景类”“痛点类”;最后还要结合自己的页面规划,想每一组词该放到哪个产品页、哪个博客页。
这个流程听起来不复杂,但操作起来很折磨人。第一个噩梦是数据量。随便一个种子词,工具能给你拉出几百上千个相关词,人工一个个过根本看不完,大部分人看前面两三百条就开始疲劳。第二个噩梦是分类,不同词背后的搜索意图差异很大,同一个词可能是买家搜索、也可能是做市场调研的用户在搜索,万一把两类词混在一起做页面,流量来了也留不住。第三个噩梦是写大纲,好不容易筛选出三十个词,还要每个词琢磨页面标题怎么写、文章结构怎么安排,这部分的思考成本比拉词高得多。
这三个噩梦的共同点,就是重复性高、规律性强、但又有一定判断门槛。这种任务,恰恰是最适合交给AI的。
1.2 自动化不是推翻人,是解放时间
有人一听“自动化”就紧张,觉得是不是要被工具取代了。我自己的感受恰恰相反。把机械部分交给脚本,才能空出时间去干真正有价值的活,比如判断品牌词和竞品词的取舍、决定要不要做视频内容、分析竞品的覆盖策略。这些才是真正拉开差距的地方。
具体到我这个项目,我的目标不是做一个“全自动SEO平台”,而是做一个“半自动关键词研究助理”。人工负责给种子词、定方向;脚本负责拉数据、跑接口;Claude负责分组、判断意图、生成大纲。人机各管一段,效率和准确率都能兼顾。
我给自己定了一个验收标准:从输入一个种子词,到输出一份包含分组、意图、难度、搜索量和内容大纲建议的表格,全程不超过十分钟。如果中途不需要人工干预,就算成功。
1.3 为什么是Claude,而不是纯规则脚本
你可能想问,关键词分组这件事,用简单的规则脚本也能做吧?比如写一堆正则表达式,把包含“价格”的词归到购物意图,把包含“怎么洗”的归到长尾内容词。这种做法对固定格式的英文词有一定效果,但一遇到语义复杂的情况就露馅。
举个例子,claude “best dog leash for running”和“dog leash pulling solution”这两个词,如果靠关键词硬匹配,前者带“best”,多半会被分到“产品对比”,实际上它是跑步爱好者在找不勒手的产品;后者带“pulling”,看起来是痛点词,但它真实意图可能是“怎么解决爆冲”的内容需求。这种语义层面的判断,规则脚本很难覆盖全。
Claude这种大语言模型的优势在于,它能结合上下文理解搜索意图,也能按照你的要求稳定输出结构化格式。我这套方案里,Claude做的不是辅助写文章,而是承担了“阅读关键词-判断意图–分组归类–生成大纲”这段最需要理解力的链条。这也是整套自动化方案能跑通的核心理由。
2. 开源工具选型与整体方案设计
2.1 数据源:Google Keyword Planner API + Google Trends
自动化关键词研究,第一步要解决的是数据从哪来。我调研了一圈,最后选了两个主要数据源:
第一个是Google Keyword Planner API。这个接口可以获取关键词的建议列表、月均搜索量、竞争程度等核心指标。虽然Google的官方接口对个人开发者有比较严格的审核,但只要你用正规Google Ads账号去申请,一般都能通过。我实测下来,它能返回的关键词数量和质量都够用,而且数据更新频率较高。更关键的是,它是官方源头,不需要冒着数据失真或版权风险去爬第三方工具。
第二个是Google Trends的公开数据接口。Keyword Planner给的是绝对搜索量,Google Trends给的是趋势变化,两者结合可以判断一个词是上升期还是衰退期。比如某个词搜索量看着很大,但过去半年逐年下滑,就要警惕是不是已经进入退潮期。
可能有朋友会说,很多商业SEO工具,比如Ahrefs或者SEMrush,也有开放API,为什么不直接接他们的数据?原因很简单:贵。个人做自动化研究,API调用量往往很大,按月订阅商业工具的API套餐,费用可能比脚本本身还高。而Google自家提供的免费或低成本接口,配合开源工具处理数据,在经济上要划算得多。
2.2 Claude在管线中的核心作用
Claude在这套管线的定位,很多新手容易搞混,以为就是让AI“写关键词文章”。实际上我的用法更接近把它当作一个“结构化信息处理器”。
具体来说,它承担四个任务:
第一是关键词语义分组。给Claude一批原始关键词,让它按搜索意图分成“信息型”“导航型”“交易型”等类别,并给出每个分组的依据。这一步看起来简单,但对prompt的要求很高,后面我会详细展开。
第二是搜索意图判断。不仅给它一个词,还给它这个词的SERP(搜索引擎结果页)信息,让它判断这个搜索结果里是产品页多还是博客页多,从而推断这个词更适合做首页还是做文章页。
第三是内容大纲生成。对每组关键词,让它用统一的标题结构和章节权重来生成写作大纲。这里不是让它自由发挥,而是让它在固定模板里做选择,保证输出一致性和可用性。
第四是数据清洗与标记异常。比如有些词明显不是目标市场语言,或者包含品牌商标词而不适合拿来投广告,Claude可以批量打标,减少人工过滤时间。
一句话总结:脚本负责“数据多”,Claude负责“判断准”。
2.3 整体工作流与逻辑架构
我先跑通了最小可行版本,整个流程分四步:
第一步,用户输入一个种子词,比如“dog harness”。 第二步,脚本调用Google Keyword Planner API拉取相关词列表,再调用Trends接口补充趋势数据。 第三步,把关键词列表和SERP信息一并组装成一个结构化的Prompt,发送给Claude API,让它返回分组结果和意图判断。 第四步,脚本把Claude返回的JSON解析成表格,并结合竞争度数据打上建议动作,比如“优先做”“可以做”“不建议做”,最后输出Excel或CSV。
整个流程在本地用Python跑,调度用GitHub Actions,可以定时触发,也可以手动触发。数据落地用CSV和SQLite双写,既方便预览,也方便后续分析。整套架构完全基于开源组件,只有Claude API是商业调用,但单次研究的成本很低,后面会算一笔账。
2.4 为什么不直接买高价SaaS
市面上不缺关键词自动化的SaaS产品,有的甚至带AI分组功能。我不买的原因有三个,不光是钱的问题。
第一是数据可控性。很多SaaS工具的数据是“黑盒”,你不知道它是从哪抓来的词,可能是Google建议词拼凑的,也可能是从自家爬虫库里导出的,准确性没有保证。自己接官方API,至少数据源头明确。
第二是定制自由度。SaaS的字段和流程是固定的,我想加一个“SERP页面类型统计”,它就未必支持。自己写管线,想加什么指标都行。
第三是可复现性和扩展性。脚本是资产,今天可以跑SEO关键词,明天把种子词换成小红书话题,换个数据源就能做社媒内容研究,这个灵活度是SaaS给不了的。
3. 实操落地:从零搭建关键词自动化管线
3.1 环境准备与依赖安装
先交代一下运行环境,我用的是Python 3.11,系统是Windows 11,但代码本身跨平台,Linux和macOS一样能跑。建议用虚拟环境,别把依赖全装到系统Python里,否则后患无穷。
依赖库主要用到下面几个:
google-ads:Google Ads API的官方Python客户端,用来调Keyword Planner。pandas:数据处理和表格输出,不用多介绍。anthropic:Claude API官方SDK。requests:顺手用来抓SERP信息。pytrends:开源的Google Trends非官方封装库,用来补趋势数据。python-dotenv:管理环境变量,API Key别硬编码在代码里。
pip install pandas google-ads anthropic requests pytrends python-dotenv装完后建一个.env文件,写明配置项,但别提交到Git仓库里:
GOOGLE_ADS_CLIENT_ID=xxx GOOGLE_ADS_DEVELOPER_TOKEN=xxx CLAUDE_API_KEY=xxx这里提醒一个坑:Google Ads API的认证走的是OAuth2,不是简单的API Key,新手容易卡在这里。你需要在Google Cloud Console里创建客户端ID,下载JSON凭证文件,再配合Refresh Token刷新。第一次配置确实繁琐,但配置一次之后就能长时间复用。
3.2 数据采集:用官方接口和开源包拉关键词
数据采集中,第一步是调用Keyword Planner API。这里不直接给完整代码,因为Google的认证样板代码比较长,我把核心调用逻辑拆出来说明。
Keyword Planner接口里有两个核心方法:GenerateKeywordIdeas和GenerateForecastMetrics。前者是根据种子词生成相关词创意,后者是给一组词预估搜索量和点击数据。
一个比较实用的做法,是先用GenerateKeywordIdeas拉词,拿到词条后,再把这些词批量发给GenerateForecastMetrics补上搜索量。注意,Keyword Planner返回的搜索量是范围值,比如“1K–10K”,这是Google为了模糊化真实数据。我们做策略排序够用,但别拿它当精确统计去汇报。
results = service.generate_keyword_ideas( customer_id=config["customer_id"], keywords=["dog harness"], language="en", geo="US" ) for row in results: print(row.text, row.keyword_idea_metrics.avg_monthly_searches)Google Trends的数据补充,我用的是pytrends库。它的用法非常简单:
from pytrends.request import TrendReq pytrends = TrendReq(hl='en-US', tz=360) pytrends.build_payload(['dog harness'], timeframe='today 12-m') interest = pytrends.interest_over_time()Trends数据不是绝对搜索量,而是相对热度指数,所以我的用法是把它作为辅助指标。比如某个词热度指数近半年从80掉到30,即使Keyword Planner显示搜索量有几千,我也建议降低优先级。
这里特别说一下地理参数。如果你做的是跨境独立站,不建议把geo固定成美国。我的做法是把美国、英国、澳大利亚、加拿大分成四个独立市场分别拉数据,这样能看出不同英语区域的搜索差异。很多词的优先级在美欧之间差异非常大,比如“dog lead”在英国搜索量很高,在美国则主要说“dog leash”。
3.3 用Claude进行关键词分组与搜索意图识别
这一步是整个自动化的灵魂。Claude的分组能力直接决定最终表格的质量。很多人用大模型做分类效果不好,问题大多出在Prompt写得太随意。
我总结了一个比较稳定的“两步式”Prompt写法。第一步是让Claude理解任务背景和输出格式,第二步再给数据。
你是一位资深英文SEO专家,擅长关键词语义分析和搜索意图分类。 请将以下关键词按搜索意图分成四类: 1. Informational:用户想了解知识或答案 2. Commercial:用户在做购买前比较 3. Transactional:用户有明确购买意图 4. Navigational:用户想找特定网站或品牌 每个关键词只能归入一个类别,并给出理由。 输出格式为JSON数组,字段包括:keyword, intent, reason, group。 这是待分类的关键词列表: [keyword1, keyword2, keyword3...]这里有个关键技巧,就是“每个关键词只能归入一个类别”。如果不加这个约束,Claude会倾向于给很多词标成“同时包含多种意图”,看起来很有道理,但落到策略上等于没说。我们的目的是做决策,所以必须二选一。
调用Claude API用官方SDK很简单:
from anthropic import Anthropic client = Anthropic() resp = client.messages.create( model="claude-sonnet-4-5", max_tokens=4096, messages=[{"role": "user", "content": full_prompt}] )我自己实际用的是Sonnet系列模型,在分组任务上已经表现得很稳。如果你处理的词量特别大,比如一次超过五百个词,建议分批发送,不然输出容易被截断。每批两三百个词比较安全,后面我会专门讲分批策略。
3.4 基于SERP的竞争难易度评估
光有搜索量和意图还不够,还得知道这个词值不值得做。我的判断方式是这样的:调用搜索引擎的SERP接口,获取排名前10的结果页面标题和域名信息,然后用一个逻辑来判断竞争度。
如果前10条结果里,有5条以上是电商平台(Amazon、Walmart这类)或者大型品牌官网,说明这个关键词的搜索结果场已经饱和,新站想挤进去难度很高。如果前10条大多是中小博客或知乎类内容页,说明还有空间,用一个高质量的长文可能就能打进去。
具体到代码层面,用requests直接抓SERP页面,然后解析结果链接,再统计域名类型。开源的googlesearch-python也能做类似的事,但注意控制频率,别一下发太多请求,否则容易被反爬。更稳的做法是接正规SERP API,但成本更高,根据自己的预算来。
SERP结果里还有个重要信息是“是否有广告”“是否有精选摘要框”。如果某个词结果是满屏广告加一个大聚合页面,这种词就算搜索量大,也不建议作为主攻方向,适合放到中后期再挑战。
我把竞争度分成三档:低、中、高,规则是:
- 低:前10里品牌主站/电商平台不超过2个,且没有大型内容农场。
- 中:前10里品牌站3到5个,但还有零散博客空间。
- 高:前10里5个以上大站,基本没有个人站点机会。
这三档再配合搜索量和商业意图,就构成了最终的决策矩阵。代码层面,这个判断逻辑用简单的计数就能实现,不涉及复杂算法。
3.5 输出内容大纲与结构化建议
关键词研究不是做一张表就结束,落到执行还得有内容方向。所以我让Claude在分组后,再生成一个“关键词到内容”的映射建议。
这块Prompt的设计比分组复杂。我的做法是先给Claude看分组结果,然后让它按要求输出一篇文章大纲,字段包括:
- target_keyword:主关键词 - page_title:文章标题建议 - article_type:内容形式(列表文章/教程/对比/买家指南) - sections:章节结构,包含H2和H3标题 - primary_keyword_placement:主关键词在页面中的放置建议这个Prompt的价值在于,把内容和关键词绑在一起,后面写文章的同事拿到表格就能直接开干,不用再重复思考“这个词我该写成什么形式”。
如果你用Claude Code操作,还可以把这一步串成Agent流程,让Claude直接读取表格文件、生成大纲、按目录批量输出。这个自动化程度更高,但对你的工程能力要求也更高,建议先把基础管线跑通,再考虑升级。
4. 实测运行效果:数据、收益与人工复核
4.1 跑了一周的真实数据
这套管线跑了一周之后,我统计了一下实际数据。我给了它大约20个种子词,覆盖宠物用品、家居收纳、户外装备三个品类。平均每个种子词能拉出约150到350个相关词,一周下来,累计产出了超过5000条带搜索量做标记的关键词记录。
时间上的变化很直观。以前人工做20个种子词,按照每个词半小时算,大概需要10个小时。用这套管线跑,前期搭脚本花了约两天,但后续跑批量任务,20个词大约只要40分钟,而且基本可以无人值守。第二周开始,我的时间主要是花在审核Claude的分组结果和调整种子词方向,而不是重复拉数据了。
成本方面,一周的API开销大约是30美元左右,主要花在Claude的调用上。Keyword Planner的API是有免费额度的,Trends接口基本零成本。如果大量使用Anthropic Claude API,成本会明显增加,后面前面专门说怎么省钱。
4.2 落地页和文章的实际转化情况
数据跑出来不算完,关键是能不能帮助内容落地。我选了三组词做了测试。
第一组是高意图词,比如“best dog harness for small dogs”。系统标注是Commercial意图、搜索量中等、竞争度中等。我让文案组按大纲写了一篇对比评测文章,上线第六周排进了Google前20名。这个速度不算惊艳,但如果当初没有这套词表去精准卡词,我连内容方向都不一定选得对。
第二组是长尾信息词,比如“how to measure dog chest size for harness”。这种词商业价值一般,但搜索精准度高,整篇教程文章围绕测量方法展开,抢到一个精选摘要的位置,带来了一波稳定的自然流量。对独立站来说,这类词像是一条条毛细血管,虽然单条流量小,但汇总起来很可观。
第三组是错杀词,系统判为高竞争度,建议不做。我拿其中两个词做了人工复核,发现虽然SERP前10都被大站占据,但内容质量很差,全是三年前的老文章,这说明“大站多”只是表象,并不代表内容质量就高。后来我把这条规则调低了一档,加入了“SERP页面更新时间”作为额外判断因子。
4.3 人工复核环节真的不能省
我必须强调:自动化不等于全自动信服。Claude分组再准,也会遇到边界情况,比如有些长尾词放在两个类别之间,它的选择標準可能和你预期的策略不一致。这时候人工复核就特别必要。
我的做法是,每条记录生成后都会标记一个“置信度”。如果Claude在reason字段里写了模棱两可的词,比如“also useful for...”或者“may also...”,脚本会自动把这条标记为“需人工复核”。每天看一遍复核列表,确认或修正一下,时间大约需要二十分钟,但能显著提高整张表的质量。
另外,人工在复核时也能反向修正Prompt。比如我发现Claude经常把“X vs Y”类型的对比词归为Commercial,但实际展开SERP后发现这类词的搜索结果全是信息型博客,于是我就在Prompt里加了一条规则:“如果关键词包含vs或compare,先检查SERP再分类”。Prompt优化是持续迭代的过程,不是写一次就万事大吉。
5. 常见问题与排查技巧实录
5.1 Claude返回格式不稳定怎么办
用大模型做批量分类,最常遇到的坑就是输出格式不稳定。你让它输出JSON,它偶尔给你多包一层markdown代码块标记,或者干脆在JSON后面加一句总结。脚本解析JSON时直接报错,整个流程就卡住了。
我的解决办法是在脚本层面做一个“宽容解析器”。先把返回内容去掉首尾的代码块标记,再想办法提取完整JSON。如果提取失败,就把这段文本重新发给Claude,让它仅输出JSON,不加任何解释。我还在Prompt末尾写了一句:“不要输出任何JSON以外的内容”,这能大幅提升格式稳定性。
如果以上还搞不定,就把失败那一批写入error_log.csv,等下一轮再重试。分类任务有一定概率出现截断或格式错乱,多试几次基本能恢复。
5.2 Claude API成本控制与Token用量优化
成本是个绕不开的问题。5000多条关键词分组,如果直接把所有词一次性发给Claude,Token数量会非常爆炸,成本就失控了。我的做法是尽量精简Prompt,去掉无关上下文。
具体有三个优化点。第一,Prompt里只保留“分类规则+关键词列表”,不要附上整个SERP原文,用摘要替代,比如“前3条域名是amazon.com, walmart.com, petmd.com”。第二,用更短的reason输出,让每个词的理由不超过15个英文单词。第三,选择性价比更高的模型,关键词分类这类中等复杂度任务,不需要最强模型,用Sonnet系列就足够,成本能降一半以上。
实际跑下来,平均一个关键词的Token消耗控制在300到400之间,一组250个词的耗时大约30秒,成本在0.05到0.1美元之间。如果跑大量批次,成本就按比例堆,可以接受但要做好预算。
5.3 Keyword Planner数据源报错与限流
调用Google API时,最常见的报错是配额超限和权限不足。Keyword Planner返回的RATE_LIMIT_EXCEEDED有三种可能:单天配额用完了,并发请求太高,或者是账号的API权限等级不够。建议在脚本里加上指数退避的重试机制,比如第一次等两秒,第二次等四秒,第三次等八秒,最多重试五次。
另外Google API的OAuth刷新Token有效期只持续大概7天,如果你的调度任务每周跑一次,Token恰好过期会报invalid_grant。解决办法是在代码里加一个新的Token刷新逻辑,或者用Google的默认实现,让它自动处理刷新流程。
5.4 重复关键词与搜索意图冲突的处理
拉数据的过程里,经常遇到同一个词出现在多个种子词的结果中。比如“dog harness size chart”,可能在“dog harness”和“harness size”两个列表里都会出现。直接去重没问题,但更推荐的做法是保留两个来源路径,作为判断这个词关联性的线索。如果一个词同时被多个种子词触发,说明它是这个类目的核心中间词,优先级应该上调。
搜索意图冲突的处理更微妙,同一批关键词里,“dog harness for large dogs”明显交易意图,但“large dog harness”可能既有人搜索购买,也有人搜索尺寸建议。这类词我建议拆成两个长尾变体,分别规划成产品页和指南页,而不是只选一个意图。
5.5 SERP接口的反爬与数据校验
自己抓SERP最怕封IP。我的经验是,同一个IP每秒最多两个请求,超过就容易被校验机制盯上。夜间或者半夜跑批量任务更安全。另外,如果发现返回的HTML结构与平时不同,比如没有排名结果列表,大概率是触发了验证码,这时候要么换用正规的搜索结果API,要么降低抓取频率。
数据校验方面,我加入了基本的一致性检查。比如Keyword Planner说某个词搜索量有1万,但Trends里热度指数长期是0,那就值得怀疑,可能是词义被Google合并到其他主题了。这时候我会拿这个词去Google实际搜一下,人工确认它是否真的是一个有实质搜索量的词。
6. 这个项目后续还能怎么扩展
这套自动化管线最让我满意的地方,是它可以当成一个底层能力来复用。把数据源换一下,把Prompt调整一下,同一个框架就能做很多事。
我计划做的第一个扩展是竞品词监控。把主要竞品的品牌名作为种子词,定时跑一遍管线,观察他们在哪个关键词上新增了页面,然后反向推导他们的内容策略。这个活以前靠人工每周查一次,现在完全可以自动化。
第二个扩展是做多语言市场。英语关键词研究跑通之后,可以复制到德语、日语和西班牙语市场。关键是把Prompt里的分类说明翻译成对应语言,再让Claude直接用目标语言做语义判断,分词效果会更贴合本土用户的习惯。
最后想说的是,工具永远只是杠杆。Claude和开源脚本帮你免去了大量重复操作,但真正的SEO判断力,比如哪些词值得投入、哪些内容形态能转化,还是得靠你自己的行业理解去沉淀。自动化的意义,是把你的精力从“拉数据”中释放出来,放回到“做决策”上。祝你早日跑通自己的管线,享受这个过程的乐趣。