长尾关键词自动化扩展:从1个种子词到1000个长尾词
长尾关键词是SEO的蓝海。我开发了一套系统,能从1个种子词自动扩展到1000个长尾词,并且评估每个词的竞争度和价值。这篇文章分享完整方案。
一、长尾词扩展的方法
1.1 搜索建议扩展
defexpand_keywords_from_suggestions(seed:str,api_key:str,depth:int=2)->List[str]:"""从搜索建议扩展关键词"""all_keywords=set([seed])current=[seed]for_inrange(depth):next_level=set()forkeywordincurrent:headers={"X-API-Key":api_key,"Content-Type":"application/json"}body={"q":keyword,"hl":"en","gl":"us","page":1}r=requests.post("https://api.serpbase.dev/google/search",headers=headers,json=body,timeout=30)data=r.json()# 从相关搜索扩展related=data.get("related_searches",[])forqinrelated:ifqnotinall_keywords:next_level.add(q)all_keywords.add(q)# 从PAA扩展paa=data.get("people_also_ask",[])foriteminpaa:q=item.get("question","")ifqandqnotinall_keywords:next_level.add(q)all_keywords.add(q)current=list(next_level)returnlist(all_keywords)1.2 修饰词扩展
MODIFIERS={"question":["how to","what is","why does","how does","can you"],"comparison":["vs","versus","or","alternative","compared to"],"location":["near me","in [city]","local","best in"],"price":["cheap","affordable","expensive","price","cost"],"time":["2026","this year","now","today","recent"],"quality":["best","top","good","bad","review"],"action":["buy","get","find","download","use"]}defexpand_with_modifiers(seed:str)->List[str]:"""用修饰词扩展关键词"""expanded=[]forcategory,modifiersinMODIFIERS.items():formodinmodifiers:ifcategory=="location"and"[city]"inmod:# 跳过需要替换的continueexpanded.append(f"{mod}{seed}")expanded.append(f"{seed}{mod}")returnexpanded1.3 组合扩展
defcombine_keywords(keywords:List[str])->List[str]:"""组合关键词生成长尾词"""combined=[]fori,kw1inenumerate(keywords):forkw2inkeywords[i+1:]:combined.append(f"{kw1}{kw2}")combined.append(f"{kw1}for{kw2}")combined.append(f"{kw1}vs{kw2}")returncombined二、长尾词评估
2.1 竞争度评估
defevaluate_long_tail_competition(keyword:str,api_key:str)->Dict:"""评估长尾词竞争度"""headers={"X-API-Key":api_key,"Content-Type":"application/json"}body={"q":keyword,"hl":"en","gl":"us","page":1}r=requests.post("https://api.serpbase.dev/google/search",headers=headers,json=body,timeout=30)data=r.json()organic=data.get("organic",[])# 计算竞争指标indicators={"result_count":len(organic),"has_ads":False,# SerpBase可能不返回广告"has_snippet":len(data.get("people_also_ask",[]))>0,"has_knowledge":data.get("knowledge_graph")isnotNone,"big_sites_in_top5":sum(1foriteminorganic[:5]ifany(dinitem.get("display_link","")fordin["amazon.com","wikipedia.org","youtube.com"])),"avg_title_length":sum(len(item.get("title",""))foriteminorganic[:5])/5iforganicelse0}# 竞争分数score=0score+=indicators["big_sites_in_top5"]*10score+=20ifindicators["has_knowledge"]else0score+=15ifindicators["has_snippet"]else0score+=max(0,10-indicators["result_count"]/10)return{"keyword":keyword,"competition_score":min(score,100),"difficulty":("high"ifscore>60else"medium"ifscore>30else"low"),"indicators":indicators}2.2 价值评估
defevaluate_keyword_value(keyword:str)->Dict:"""评估关键词商业价值"""value_signals={"buying_intent":0,"informational_intent":0,"local_intent":0}keyword_lower=keyword.lower()# 购买意图buying_words=["buy","purchase","price","discount","deal","coupon","best"]value_signals["buying_intent"]=sum(1forwinbuying_wordsifwinkeyword_lower)# 信息意图info_words=["how to","what is","guide","tutorial","learn"]value_signals["informational_intent"]=sum(1forwininfo_wordsifwinkeyword_lower)# 本地意图local_words=["near me","local","in ","nearby"]value_signals["local_intent"]=sum(1forwinlocal_wordsifwinkeyword_lower)# 商业价值分数commercial_score=value_signals["buying_intent"]*10+value_signals["local_intent"]*5return{"keyword":keyword,"commercial_score":commercial_score,"intent_type":("transactional"ifvalue_signals["buying_intent"]>0else"local"ifvalue_signals["local_intent"]>0else"informational"),"value_signals":value_signals}三、完整扩展流水线
deffull_long_tail_pipeline(seed:str,api_key:str,max_keywords:int=1000)->List[Dict]:"""完整的长尾词扩展流水线"""print(f"Starting expansion from seed:{seed}")# 1. 扩展expanded=expand_keywords_from_suggestions(seed,api_key,depth=2)expanded.extend(expand_with_modifiers(seed))iflen(expanded)>max_keywords:expanded=expanded[:max_keywords]print(f"Expanded to{len(expanded)}keywords")# 2. 去重和过滤expanded=list(set(expanded))expanded=[kforkinexpandedif3<=len(k.split())<=8]# 3-8个词print(f"After filtering:{len(expanded)}keywords")# 3. 评估results=[]forkeywordinexpanded:comp=evaluate_long_tail_competition(keyword,api_key)value=evaluate_keyword_value(keyword)# 综合评分overall_score=(100-comp["competition_score"])*0.6+value["commercial_score"]*0.4results.append({"keyword":keyword,"competition":comp["difficulty"],"competition_score":comp["competition_score"],"commercial_score":value["commercial_score"],"intent":value["intent_type"],"overall_score":overall_score,"recommendation":("prioritize"ifoverall_score>60else"consider"ifoverall_score>40else"deprioritize")})# 4. 排序results.sort(key=lambdax:x["overall_score"],reverse=True)returnresults四、实战数据
从"project management software"扩展到1000个长尾词:
| 类别 | 数量 | 平均竞争度 | 平均商业价值 |
|---|---|---|---|
| How-to | 234 | 低 | 中 |
| Best/Top | 189 | 中 | 高 |
| Comparison | 156 | 中 | 高 |
| Price/Cost | 123 | 低 | 高 |
| For [industry] | 198 | 低 | 中 |
| Alternative | 100 | 中 | 中 |
五、总结
长尾词扩展的核心:
- 多维度扩展:搜索建议+修饰词+组合
- 竞争评估:SERP特征判断难度
- 价值评估:意图判断商业潜力
- 优先级排序:低竞争+高价值优先
- 持续扩展:每月扩展新词
长尾词扩展是SEO中最有技术含量的工作之一。它不需要创意,但需要系统性的方法。这套流水线可以从1个种子词扩展到1000个长尾词,并且自动评估每个词的价值。SerpBase的成本大约$3/千次,扩展1000个词评估成本$3,产出是一份优先级明确的关键词清单。
