
写一篇高质量SEO文章前期调研最耗时。我搭了一套自动化流程用SerpBase采集SERP数据丢给LLM分析竞争格局自动生成内容简报content brief。原来2小时的调研现在5分钟搞定。一、内容简报为什么重要内容简报Content Brief是写作者的生产指南通常包含目标关键词和搜索意图文章应该覆盖哪些子话题目标字数和结构建议竞品内容分析必须回答的问题PAA建议的标题和H2/H3大纲传统做法是人工做这些调研一篇brief要1-2小时。问题是调研质量取决于执行者的经验容易遗漏关键信息。二、自动化简报生成流程输入关键词 → SerpBase采集SERP → 数据清洗 → LLM分析 → 生成Brief2.1 SERP数据采集importrequestsfromtypingimportDict,List API_KEYYOUR_KEYBASE_URLhttps://api.serpbase.dev/google/searchdefcollect_serp_data(keyword:str)-Dict:采集关键词的完整SERP数据headers{X-API-Key:API_KEY,Content-Type:application/json}body{q:keyword,hl:en,gl:us,page:1}rrequests.post(BASE_URL,headersheaders,jsonbody,timeout30)datar.json()return{keyword:keyword,organic:data.get(organic,[]),people_also_ask:data.get(people_also_ask,[]),related_searches:data.get(related_searches,[]),knowledge_graph:data.get(knowledge_graph),top_stories:data.get(top_stories,[])}2.2 数据清洗和特征提取defextract_brief_features(serp_data:Dict)-Dict:从SERP数据中提取简报所需的特征organicserp_data[organic]paaserp_data[people_also_ask]relatedserp_data[related_searches]features{keyword:serp_data[keyword],# 竞品内容特征top_results:[{rank:item[rank],title:item.get(title,),domain:item.get(display_link,),snippet:item.get(snippet,)[:200]}foriteminorganic[:5]],# 内容类型分析content_types:analyze_content_types(organic[:5]),# PAA问题questions:[item.get(question,)foriteminpaa],# 相关搜索扩展话题related_topics:related[:10],# SERP特征has_featured_snippet:len(paa)0,has_knowledge_graph:serp_data.get(knowledge_graph)isnotNone,has_news:len(serp_data.get(top_stories,[]))0,# 预估内容规格suggested_word_count:estimate_word_count(organic[:5]),avg_top_result_length:estimate_content_length(organic[:3])}returnfeaturesdefanalyze_content_types(organic:List[Dict])-Dict:分析前5结果的内容类型types{listicle:0,how_to:0,guide:0,review:0,comparison:0}foriteminorganic:titleitem.get(title,).lower()ifany(wintitleforwin[best,top,vs]):types[listicle]1elifany(wintitleforwin[how to,step,guide]):types[how_to]1elifany(wintitleforwin[review,reviews]):types[review]1elifany(wintitleforwin[comparison,vs,versus]):types[comparison]1else:types[guide]1returntypesdefestimate_word_count(organic:List[Dict])-int:根据竞品内容长度建议字数# 简化估算如果都是长文建议2000如果都是短文建议1000-1500long_countsum(1foriteminorganiciflen(item.get(snippet,))150)iflong_count3:return2500eliflong_count2:return1800else:return12002.3 LLM Prompt设计defbuild_brief_prompt(features:Dict)-str:构建生成Content Brief的LLM Prompttop_results_text\n.join([f{i1}.{r[title]}({r[domain]})\n{r[snippet]}fori,rinenumerate(features[top_results])])questions_text\n.join([f-{q}forqinfeatures[questions][:8]])related_text\n.join([f-{r}forrinfeatures[related_topics][:8]])promptf你是一个资深SEO内容策略师。请基于以下SERP分析数据为关键词{features[keyword]}生成一份详细的内容简报Content Brief。 ## SERP数据 ### 前5名搜索结果{top_results_text}### People Also Ask 问题{questions_text}### Related Searches相关搜索{related_text}### SERP特征 - 有Featured Snippet/PAA:{是iffeatures[has_featured_snippet]else否}- 有Knowledge Graph:{是iffeatures[has_knowledge_graph]else否}- 有新闻结果:{是iffeatures[has_news]else否}## 请输出以下内容 ### 1. 搜索意图分析 - 主要意图Informational/Commercial/Transactional - 用户真正想解决的问题 ### 2. 内容类型建议 - 推荐的文章类型 - 目标字数{features[suggested_word_count]}字左右 ### 3. 文章大纲H2/H3结构 请给出详细的标题大纲至少包含5个H2每个H2下建议2-3个H3。 ### 4. 必须覆盖的子话题 基于PAA和Related Searches列出文章必须回答的问题和覆盖的话题。 ### 5. 差异化建议 分析前5名内容的不足建议我们如何做出更好的内容。 ### 6. 标题建议 给出3个标题选项包含目标关键词有吸引力。 ### 7. CTA建议 文章结尾应该引导用户做什么。 请用中文输出。returnprompt2.4 调用LLM生成简报importopenaidefgenerate_brief_with_llm(features:Dict,api_key:str)-str:用LLM生成内容简报promptbuild_brief_prompt(features)clientopenai.OpenAI(api_keyapi_key)responseclient.chat.completions.create(modelgpt-4,messages[{role:system,content:你是一个专业的SEO内容策略师擅长分析搜索意图和规划内容结构。},{role:user,content:prompt}],temperature0.7,max_tokens2500)returnresponse.choices[0].message.content三、完整流水线defauto_generate_content_brief(keyword:str,serp_key:str,llm_key:str)-Dict:一键生成内容简报print(f正在采集 {keyword} 的SERP数据...)serp_datacollect_serp_data(keyword)print(正在提取特征...)featuresextract_brief_features(serp_data)print(正在生成简报...)brief_textgenerate_brief_with_llm(features,llm_key)return{keyword:keyword,features:features,brief:brief_text,generated_at:datetime.now().isoformat()}# 使用briefauto_generate_content_brief(docker compose tutorial,SERPBSE_KEY,OPENAI_KEY)print(brief[brief])四、简报质量验证生成brief后需要验证LLM的建议是否靠谱defvalidate_brief(brief:Dict,serp_key:str)-Dict:验证brief的质量keywordbrief[keyword]# 1. 检查建议的子话题是否覆盖了PAAheaders{X-API-Key:serp_key,Content-Type:application/json}body{q:keyword,hl:en,gl:us,page:1}rrequests.post(https://api.serpbase.dev/google/search,headersheaders,jsonbody,timeout30)datar.json()paa_questions[item.get(question,).lower()foritemindata.get(people_also_ask,[])]brief_textbrief[brief].lower()coveredsum(1forqinpaa_questionsifany(wordinbrief_textforwordinq.split()[:3]))coveragecovered/len(paa_questions)ifpaa_questionselse0return{paa_coverage:f{coverage:.0%},total_paa:len(paa_questions),covered_paa:covered,quality_score:goodifcoverage0.7elseneeds_improvement}五、实战效果我们团队用这个流程后的变化Before调研时间1.5-2小时/篇Brief质量取决于写作者经验参差不齐遗漏PAA问题约30%的brief漏了关键问题After调研时间5-8分钟/篇Brief质量稳定覆盖全面PAA覆盖率92%写作者满意度4.5/5“知道该写什么了”六、进阶批量生成defbatch_generate_briefs(keywords:List[str],serp_key:str,llm_key:str)-List[Dict]:批量生成简报briefs[]forkeywordinkeywords:try:briefauto_generate_content_brief(keyword,serp_key,llm_key)briefs.append(brief)print(f✓{keyword})time.sleep(2)# 避免LLM限流exceptExceptionase:print(f✗{keyword}:{e})returnbriefs# 生成10篇内容的briefkeywords[docker tutorial,kubernetes basics,ci/cd pipeline,devops tools]briefsbatch_generate_briefs(keywords,SERP_KEY,LLM_KEY)七、总结LLM SERP数据的组合让内容调研从体力活变成了自动化流水线。核心价值速度2小时 → 5分钟一致性不再依赖个人经验全面性PAA、Related Searches自动覆盖可扩展批量生成一次搞定一周的内容排期成本SerpBase$0.30/千次LLM APIGPT-4大概$0.03/次一篇brief成本约$0.05LLM生成的brief需要人工review。特别是差异化建议部分LLM有时候会提一些不切实际的建议比如做一个交互式工具。建议把brief当作初稿人类编辑做最终把关。