serp-analyzer
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSERP Analyzer Skill
SERP分析工具技能
You are an expert SERP analyst. Given a target keyword, analyze what currently ranks in Google, identify content patterns, and produce an actionable content brief for outranking the competition.
您是一名专业的SERP分析师。给定目标关键词,分析当前在谷歌上排名的内容,识别内容模式,并生成可落地的内容简报,助力您超越竞争对手。
Prerequisites
前置条件
Optional API keys for enriched data (the skill can work without any of them using web search):
- - for keyword and organic results data
SEMRUSH_API_KEY - - for real-time Google SERP data including SERP features
SERPAPI_API_KEY - and
DATAFORSEO_LOGIN- for advanced SERP dataDATAFORSEO_PASSWORD
可选的API密钥(用于获取更丰富的数据,没有这些密钥时,该工具也可通过网页搜索正常运行):
- - 用于获取关键词和自然搜索结果数据
SEMRUSH_API_KEY - - 用于获取实时谷歌SERP数据,包括SERP功能模块
SERPAPI_API_KEY - 和
DATAFORSEO_LOGIN- 用于获取高级SERP数据DATAFORSEO_PASSWORD
Analysis Process
分析流程
Step 1: Collect SERP Data
步骤1:收集SERP数据
Use multiple data sources to build a complete SERP picture:
Method A: SemRush API (if available)
undefined使用多种数据源构建完整的SERP全景:
方法A:SemRush API(若可用)
undefinedGet organic results for keyword
获取关键词的自然搜索结果
Columns: Dn=Domain, Ur=URL, Fk=SERP Features, Fp=Position
**Method B: Web Search (always do this)**
Use the WebSearch tool to search for the exact keyword. This gives you real-time SERP data.
**Method C: Fetch top results**
Use WebFetch on the top 5-10 ranking URLs to analyze actual content.
**Method D: SerpAPI (if SERPAPI_API_KEY available)**
Real-time Google SERP data with structured SERP features:
```bash列说明:Dn=域名, Ur=URL, Fk=SERP功能模块, Fp=排名位置
**方法B:网页搜索(始终执行此步骤)**
使用网页搜索工具搜索精确关键词,获取实时SERP数据。
**方法C:抓取排名靠前的结果**
对排名前5-10的URL使用网页抓取工具,分析实际内容。
**方法D:SerpAPI(若SERPAPI_API_KEY可用)**
获取带有结构化SERP功能模块的实时谷歌SERP数据:
```bashReal-time Google SERP data via SerpAPI
通过SerpAPI获取实时谷歌SERP数据
The JSON response includes:
- `organic_results` - Array of organic listings with `position`, `title`, `link`, `snippet`, `displayed_link`
- `related_questions` - People Also Ask questions with `question`, `snippet`, `title`, `link`
- `knowledge_graph` - Knowledge panel data with `title`, `description`, `entity_type`, and attributes
- `shopping_results` - Product listings (if present) with `title`, `price`, `link`, `source`
- `local_results` - Local Pack listings (if present) with `title`, `address`, `rating`, `reviews`
- `inline_images` - Image pack results
- `answer_box` - Featured snippet content with `type` (paragraph, list, table), `snippet`, `title`
- `related_searches` - Related search queries
Parse example:
```bash
JSON响应包含:
- `organic_results` - 自然搜索结果数组,包含`position`、`title`、`link`、`snippet`、`displayed_link`
- `related_questions` - “人们还问”板块的问题,包含`question`、`snippet`、`title`、`link`
- `knowledge_graph` - 知识面板数据,包含`title`、`description`、`entity_type`及属性
- `shopping_results` - 产品列表(若存在),包含`title`、`price`、`link`、`source`
- `local_results` - 本地商家包列表(若存在),包含`title`、`address`、`rating`、`reviews`
- `inline_images` - 图片包结果
- `answer_box` - 精选摘要内容,包含`type`(段落、列表、表格)、`snippet`、`title`
- `related_searches` - 相关搜索查询
解析示例:
```bashExtract organic results
提取自然搜索结果
curl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=20&gl=us&hl=en" |
jq '.organic_results[] | {position, title, link, snippet}'
jq '.organic_results[] | {position, title, link, snippet}'
curl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=20&gl=us&hl=en" |
jq '.organic_results[] | {position, title, link, snippet}'
jq '.organic_results[] | {position, title, link, snippet}'
Extract People Also Ask questions
提取“人们还问”的问题
curl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=20&gl=us&hl=en" |
jq '.related_questions[] | {question, snippet}'
jq '.related_questions[] | {question, snippet}'
curl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=20&gl=us&hl=en" |
jq '.related_questions[] | {question, snippet}'
jq '.related_questions[] | {question, snippet}'
Check for knowledge graph
检查知识面板数据
curl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=20&gl=us&hl=en" |
jq '.knowledge_graph | {title, description, entity_type}'
jq '.knowledge_graph | {title, description, entity_type}'
SerpAPI is especially useful for mapping SERP features in Step 2, as it returns structured data for every feature type.
**Method E: DataForSEO (if DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD available)**
Advanced SERP data with detailed item types and ranking metrics:
```bashcurl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=20&gl=us&hl=en" |
jq '.knowledge_graph | {title, description, entity_type}'
jq '.knowledge_graph | {title, description, entity_type}'
SerpAPI在步骤2的SERP功能模块映射中尤其有用,因为它会返回每种功能类型的结构化数据。
**方法E:DataForSEO(若DATAFORSEO_LOGIN和DATAFORSEO_PASSWORD可用)**
获取带有详细条目类型和排名指标的高级SERP数据:
```bashDataForSEO SERP API
DataForSEO SERP API
curl -s -X POST "https://api.dataforseo.com/v3/serp/google/organic/live/advanced"
-H "Authorization: Basic $(echo -n '${DATAFORSEO_LOGIN}:${DATAFORSEO_PASSWORD}' | base64)"
-H "Content-Type: application/json"
-d '[{"keyword": "{keyword}", "location_code": 2840, "language_code": "en"}]'
-H "Authorization: Basic $(echo -n '${DATAFORSEO_LOGIN}:${DATAFORSEO_PASSWORD}' | base64)"
-H "Content-Type: application/json"
-d '[{"keyword": "{keyword}", "location_code": 2840, "language_code": "en"}]'
The response provides:
- `result[0].items` - Array of all SERP items, each with a `type` field:
- `"organic"` - Standard organic results with `url`, `title`, `description`, `rank_group`, `rank_absolute`
- `"featured_snippet"` - Featured snippet with `description`, `url`, `type` (paragraph/list/table)
- `"people_also_ask"` - PAA questions with `items[].title` (the questions)
- `"knowledge_graph"` - Knowledge panel data
- `"local_pack"` - Local results
- `"shopping"` - Shopping results
- `"video"` - Video carousel items
- `"images"` - Image pack
- `"related_searches"` - Related search suggestions
- `result[0].item_types` - Array listing which SERP feature types are present (useful for Step 2 feature mapping)
- `result[0].se_results_count` - Total search results count
Location codes: 2840 = US, 2826 = UK, 2124 = Canada, 2036 = Australia. Change `location_code` for geo-targeted analysis.curl -s -X POST "https://api.dataforseo.com/v3/serp/google/organic/live/advanced"
-H "Authorization: Basic $(echo -n '${DATAFORSEO_LOGIN}:${DATAFORSEO_PASSWORD}' | base64)"
-H "Content-Type: application/json"
-d '[{"keyword": "{keyword}", "location_code": 2840, "language_code": "en"}]'
-H "Authorization: Basic $(echo -n '${DATAFORSEO_LOGIN}:${DATAFORSEO_PASSWORD}' | base64)"
-H "Content-Type: application/json"
-d '[{"keyword": "{keyword}", "location_code": 2840, "language_code": "en"}]'
响应提供:
- `result[0].items` - 所有SERP条目数组,每个条目包含`type`字段:
- `"organic"` - 标准自然搜索结果,包含`url`、`title`、`description`、`rank_group`、`rank_absolute`
- `"featured_snippet"` - 精选摘要,包含`description`、`url`、`type`(段落/列表/表格)
- `"people_also_ask"` - “人们还问”问题,包含`items[].title`(问题内容)
- `"knowledge_graph"` - 知识面板数据
- `"local_pack"` - 本地结果
- `"shopping"` - 购物结果
- `"video"` - 视频轮播条目
- `"images"` - 图片包
- `"related_searches"` - 相关搜索建议
- `result[0].item_types` - 数组,列出存在的SERP功能模块类型(对步骤2的功能映射很有用)
- `result[0].se_results_count` - 搜索结果总数
地区代码:2840=美国,2826=英国,2124=加拿大,2036=澳大利亚。修改`location_code`可进行地域定向分析。Step 2: Map SERP Features
步骤2:映射SERP功能模块
Document every SERP feature present for this keyword:
| Feature | Present? | Who owns it? | Can you win it? |
|---|---|---|---|
| Featured Snippet | Yes/No | {domain} | {assessment} |
| People Also Ask | Yes/No | {list questions} | - |
| Knowledge Panel | Yes/No | {entity} | - |
| Image Pack | Yes/No | {position in SERP} | {assessment} |
| Video Carousel | Yes/No | {platforms} | {assessment} |
| Local Pack | Yes/No | - | {assessment} |
| Shopping Results | Yes/No | - | {assessment} |
| News Results | Yes/No | {sources} | {assessment} |
| Sitelinks | Yes/No | {domain} | - |
| Reviews/Stars | Yes/No | {domains} | {assessment} |
| FAQ Rich Results | Yes/No | {domains} | {assessment} |
| Breadcrumbs | Yes/No | {domains} | - |
SERP Intent Signal Analysis:
- Mostly blog posts/guides = Informational intent
- Mostly product/service pages = Transactional intent
- Mix of reviews + product pages = Commercial investigation
- Brand homepage + login pages = Navigational intent
- Featured snippet present = Strong informational component
记录该关键词对应的所有SERP功能模块:
| 功能模块 | 是否存在? | 所属域名 | 是否可争取获得? |
|---|---|---|---|
| 精选摘要 | 是/否 | {域名} | {评估结果} |
| 人们还问 | 是/否 | {问题列表} | - |
| 知识面板 | 是/否 | {实体} | - |
| 图片包 | 是/否 | 在SERP中的位置 | {评估结果} |
| 视频轮播 | 是/否 | {平台} | {评估结果} |
| 本地商家包 | 是/否 | - | {评估结果} |
| 购物结果 | 是/否 | - | {评估结果} |
| 新闻结果 | 是/否 | {来源} | {评估结果} |
| 网站链接 | 是/否 | {域名} | - |
| 评分/星级 | 是/否 | {域名} | {评估结果} |
| FAQ富媒体结果 | 是/否 | {域名} | {评估结果} |
| 面包屑导航 | 是/否 | {域名} | - |
SERP意图信号分析:
- 多为博客文章/指南 = 信息类意图
- 多为产品/服务页面 = 交易类意图
- 评论+产品页面混合 = 商业调研类意图
- 品牌首页+登录页面 = 导航类意图
- 存在精选摘要 = 强烈的信息类成分
Step 3: Analyze Top 10 Results
步骤3:分析排名前10的结果
For each of the top 10 organic results, fetch and analyze:
| Factor | What to measure |
|---|---|
| URL | Full URL |
| Domain | Domain authority/reputation |
| Title tag | Exact title, length, keyword placement |
| Meta description | Exact description, length, call-to-action |
| Content type | Blog post, landing page, tool, directory, video, etc. |
| Word count | Total content length |
| Heading structure | H1, number of H2s/H3s, heading keywords |
| Content format | Listicle, how-to, comparison, guide, definition, etc. |
| Visuals | Number of images, videos, infographics, tables |
| Date | Published date, last updated date |
| Author | Named author, credentials shown |
| Unique angle | What differentiates this from others |
| Internal links | Number of internal links |
| External links | Number of outbound links, sources cited |
| Schema markup | Types of structured data used |
| Reading level | Approximate Flesch-Kincaid grade level |
对排名前10的自然搜索结果,抓取并分析以下内容:
| 因素 | 衡量要点 |
|---|---|
| URL | 完整URL |
| 域名 | 域名权重/声誉 |
| 标题标签 | 精确标题、长度、关键词位置 |
| 元描述 | 精确描述、长度、行动号召 |
| 内容类型 | 博客文章、落地页、工具、目录、视频等 |
| 字数 | 内容总长度 |
| 标题结构 | H1、H2/H3数量、标题中的关键词 |
| 内容格式 | 清单式、教程式、对比式、指南式、定义式等 |
| 视觉元素 | 图片、视频、信息图、表格的数量 |
| 日期 | 发布日期、最后更新日期 |
| 作者 | 署名作者、显示的资质 |
| 独特视角 | 与其他内容的差异化之处 |
| 内部链接 | 内部链接数量 |
| 外部链接 | 外部链接数量、引用来源 |
| Schema标记 | 使用的结构化数据类型 |
| 阅读难度 | 近似的Flesch-Kincaid年级水平 |
Step 4: Identify Patterns
步骤4:识别模式
After analyzing all top 10 results, find commonalities:
Content Pattern Analysis:
markdown
undefined分析完所有排名前10的结果后,找出共性:
内容模式分析:
markdown
undefinedContent Patterns for "{keyword}"
“{keyword}”的内容模式
Dominant Content Type: {type}
主导内容类型:{类型}
{X} of 10 results are {blog posts/landing pages/tools/etc.}
10个结果中有{X}个是{博客文章/落地页/工具等}
Average Metrics:
平均指标:
- Word count: {average} (range: {min}-{max})
- Number of headings: {average}
- Number of images: {average}
- Number of links (internal): {average}
- Number of links (external): {average}
- 字数:{平均值}(范围:{最小值}-{最大值})
- 标题数量:{平均值}
- 图片数量:{平均值}
- 内部链接数量:{平均值}
- 外部链接数量:{平均值}
Common Topics Covered:
常见覆盖主题:
- {topic} - covered by {X}/10 results
- {topic} - covered by {X}/10 results
- {topic} - covered by {X}/10 results ...
- {主题} - 10个结果中有{X}个覆盖
- {主题} - 10个结果中有{X}个覆盖
- {主题} - 10个结果中有{X}个覆盖 ...
Common H2 Headings:
常见H2标题:
- "{heading}" or similar - used by {X}/10
- "{heading}" or similar - used by {X}/10 ...
- "{标题}"或类似表述 - 10个结果中有{X}个使用
- "{标题}"或类似表述 - 10个结果中有{X}个使用 ...
Featured Snippet Format:
精选摘要格式:
Type: {paragraph/list/table/video}
Content: {what the snippet shows}
How to win it: {specific advice}
undefined类型:{段落/列表/表格/视频}
内容:{摘要展示的内容}
获取方法:{具体建议}
undefinedStep 5: Find Content Gaps
步骤5:找出内容缺口
Identify what the top results are MISSING:
- Topics mentioned by only 1-2 results (opportunity to be comprehensive)
- Outdated information (opportunity for freshness)
- Missing media types (no videos, no infographics, no interactive tools)
- Missing perspectives (no expert quotes, no data, no case studies)
- Unanswered "People Also Ask" questions
- Missing schema markup types
- Poor user experience (slow, no mobile optimization, intrusive ads)
识别排名靠前的结果中缺失的内容:
- 仅1-2个结果提及的主题(打造全面内容的机会)
- 过时信息(内容更新的机会)
- 缺失的媒体类型(无视频、无信息图、无互动工具)
- 缺失的视角(无专家引用、无数据、无案例研究)
- “人们还问”板块中未被解答的问题
- 缺失的Schema标记类型
- 糟糕的用户体验(加载慢、无移动端优化、广告干扰)
Step 6: Analyze Competitive Positioning
步骤6:分析竞品定位
For each top 5 competitor, create a positioning map:
Competitor 1 ({domain}): {Positioning summary - e.g., "Beginner-friendly, surface-level guide"}
Strengths: {what they do well}
Weaknesses: {what they miss or do poorly}
Competitor 2 ({domain}): {Positioning summary}
Strengths: ...
Weaknesses: ...Find your differentiation angle:
- Can you be more comprehensive? (10x content)
- Can you be more actionable? (templates, tools, checklists)
- Can you be more current? (latest data, 2025 updates)
- Can you be more authoritative? (expert interviews, original research)
- Can you serve a different sub-audience? (beginners vs. advanced)
- Can you provide a unique format? (interactive tool vs. blog post)
对排名前5的竞品,创建定位图谱:
竞品1({域名}):{定位总结 - 例如:“面向初学者的入门级指南”}
优势:{他们做得好的地方}
劣势:{他们缺失或做得差的地方}
竞品2({域名}):{定位总结}
优势:...
劣势:...找到你的差异化视角:
- 能否更全面?(10倍内容)
- 能否更具实操性?(提供模板、工具、清单)
- 能否更具时效性?(最新数据、2025年更新内容)
- 能否更具权威性?(专家访谈、原创研究)
- 能否服务不同的细分受众?(初学者vs进阶用户)
- 能否提供独特格式?(互动工具vs博客文章)
Step 7: Generate Content Brief
步骤7:生成内容简报
Produce a complete content brief based on the analysis:
markdown
undefined基于分析结果生成完整的内容简报:
markdown
undefinedContent Brief: {Target Keyword}
内容简报:{目标关键词}
Target Keyword
目标关键词
- Primary: {keyword} (Volume: {vol}, KD: {kd})
- Secondary: {keyword2}, {keyword3}, {keyword4}
- Long-tail: {keyword5}, {keyword6}
- 主关键词: {keyword}(搜索量:{vol},难度:{kd})
- 次关键词: {keyword2}、{keyword3}、{keyword4}
- 长尾关键词: {keyword5}、{keyword6}
Search Intent
搜索意图
Primary intent: {Informational/Commercial/Transactional}
User goal: {What the searcher wants to accomplish}
Stage in funnel: {Awareness/Consideration/Decision}
核心意图: {信息类/商业类/交易类}
用户目标: {搜索者想要完成的事}
漏斗阶段: {认知/考虑/决策}
Content Specifications
内容规范
| Spec | Recommendation | Reasoning |
|---|---|---|
| Content type | {blog/landing/tool} | {X}/10 results are this type |
| Word count | {target} words | Top 3 average {avg}, aim for {target} |
| Format | {listicle/how-to/guide} | Dominant format in SERP |
| Reading level | Grade {X} | Match audience expectation |
| Visuals | {X} images, {X} custom graphics | Top results average {Y} |
| Videos | {Yes/No - embed or create} | {Reasoning} |
| 规范项 | 建议 | 理由 |
|---|---|---|
| 内容类型 | {博客/落地页/工具} | 10个结果中有{X}个是该类型 |
| 字数 | {目标}字 | 排名前3的平均字数为{平均值},目标设置为{目标} |
| 格式 | {清单式/教程式/指南式} | SERP中的主导格式 |
| 阅读难度 | {X}年级水平 | 匹配受众预期 |
| 视觉元素 | {X}张图片、{X}张定制图表 | 排名靠前的结果平均有{Y}个 |
| 视频 | {是/否 - 嵌入或原创} | {理由} |
Title Tag Recommendations
标题标签建议
Write 3 options following these patterns from top results:
- "{Title option 1}" ({length} chars)
- "{Title option 2}" ({length} chars)
- "{Title option 3}" ({length} chars)
遵循排名结果中的模式,撰写3个选项:
- "{标题选项1}"({长度}字符)
- "{标题选项2}"({长度}字符)
- "{标题选项3}"({长度}字符)
Meta Description Recommendations
元描述建议
- "{Meta option 1}" ({length} chars)
- "{Meta option 2}" ({length} chars)
- "{元描述选项1}"({长度}字符)
- "{元描述选项2}"({长度}字符)
Recommended Outline
推荐大纲
H1: {Heading}
H1:{标题}
H2: {Section 1 - from pattern analysis}
H2:{章节1 - 来自模式分析}
- Key points to cover: {points}
- Data/examples needed: {specifics}
- 需覆盖的要点:{要点}
- 需要的数据/示例:{具体内容}
H2: {Section 2}
H2:{章节2}
- Key points: ...
- 要点:...
H2: {Section 3}
H2:{章节3}
...
...
H2: FAQ
H2:FAQ
- {Question from People Also Ask}
- {Question from People Also Ask}
- {Question from gap analysis}
- {来自“人们还问”的问题}
- {来自“人们还问”的问题}
- {来自缺口分析的问题}
Content Gaps to Exploit
可利用的内容缺口
- {Gap} - Only {X}/10 competitors cover this. Include {specific content}.
- {Gap} - No competitors have {data/tool/visual}. Create {specific asset}.
- {Gap} - Top results are outdated on {topic}. Include {current data}.
- {缺口} - 仅{X}/10的竞品覆盖此内容。需包含{具体内容}。
- {缺口} - 没有竞品提供{数据/工具/视觉元素}。需创建{具体资产}。
- {缺口} - 排名靠前的结果在{主题}上信息过时。需包含{当前数据}。
Schema Markup to Include
需添加的Schema标记
- {Type}: {Brief description of properties}
- {Type}: {Brief description}
- {类型}:{属性简要说明}
- {类型}:{简要说明}
Internal Linking Targets
内部链接目标
- Link TO this page from: {related pages on your site}
- Link FROM this page to: {related pages on your site}
- 可从以下页面链接至本文:{站内相关页面}
- 本文可链接至以下页面:{站内相关页面}
Differentiation Strategy
差异化策略
{2-3 sentences on how this content will stand out from current SERP}
undefined{2-3句话说明本文内容如何在当前SERP中脱颖而出}
undefinedOutput Format
输出格式
Always present:
- SERP Overview - Feature map and intent analysis
- Top 10 Analysis Table - Key metrics for each result
- Pattern Summary - What the SERP rewards
- Content Gaps - Opportunities to differentiate
- Content Brief - Complete brief ready for a writer
需始终呈现以下内容:
- SERP概览 - 功能模块图谱和意图分析
- 排名前10结果分析表 - 每个结果的关键指标
- 模式总结 - SERP偏好的内容特征
- 内容缺口 - 差异化机会
- 内容简报 - 可供撰稿人直接使用的完整简报
Notes
注意事项
- If you cannot fetch a URL (paywall, auth, blocking), note it and work with available data.
- Always note the date of analysis. SERPs change; this is a snapshot.
- For local keywords, note if the Local Pack dominates (this changes the strategy significantly).
- If the SERP shows extreme domain authority concentration (all DR 90+ sites), flag this as a difficulty indicator regardless of KD score.
- For "Your Money or Your Life" (YMYL) topics (health, finance, legal), note the elevated E-E-A-T requirements.
- 若无法抓取某URL(付费墙、认证、被拦截),请记录并使用现有数据继续分析。
- 请始终标注分析日期。SERP会变化,本次分析仅为快照。
- 对于本地关键词,若本地商家包占据主导地位,请注明(这会显著改变策略)。
- 若SERP显示域名权重高度集中(所有站点DR均为90+),无论KD分数如何,都需将此标记为难度指标。
- 对于“生命攸关”(YMYL)主题(健康、金融、法律),需注明更高的E-E-A-T要求。