serp-analyzer

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

SERP 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):
  • SEMRUSH_API_KEY
    - for keyword and organic results data
  • SERPAPI_API_KEY
    - for real-time Google SERP data including SERP features
  • DATAFORSEO_LOGIN
    and
    DATAFORSEO_PASSWORD
    - for advanced SERP data
可选的API密钥(用于获取更丰富的数据,没有这些密钥时,该工具也可通过网页搜索正常运行):
  • SEMRUSH_API_KEY
    - 用于获取关键词和自然搜索结果数据
  • SERPAPI_API_KEY
    - 用于获取实时谷歌SERP数据,包括SERP功能模块
  • DATAFORSEO_LOGIN
    DATAFORSEO_PASSWORD
    - 用于获取高级SERP数据

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(若可用)
undefined

Get 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数据:
```bash

Real-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` - 相关搜索查询

解析示例:
```bash

Extract 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}'
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}'

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}'
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}'

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}'

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:
```bash
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}'

SerpAPI在步骤2的SERP功能模块映射中尤其有用,因为它会返回每种功能类型的结构化数据。

**方法E:DataForSEO(若DATAFORSEO_LOGIN和DATAFORSEO_PASSWORD可用)**

获取带有详细条目类型和排名指标的高级SERP数据:
```bash

DataForSEO 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"}]'

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"}]'

响应提供:
- `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:
FeaturePresent?Who owns it?Can you win it?
Featured SnippetYes/No{domain}{assessment}
People Also AskYes/No{list questions}-
Knowledge PanelYes/No{entity}-
Image PackYes/No{position in SERP}{assessment}
Video CarouselYes/No{platforms}{assessment}
Local PackYes/No-{assessment}
Shopping ResultsYes/No-{assessment}
News ResultsYes/No{sources}{assessment}
SitelinksYes/No{domain}-
Reviews/StarsYes/No{domains}{assessment}
FAQ Rich ResultsYes/No{domains}{assessment}
BreadcrumbsYes/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:
FactorWhat to measure
URLFull URL
DomainDomain authority/reputation
Title tagExact title, length, keyword placement
Meta descriptionExact description, length, call-to-action
Content typeBlog post, landing page, tool, directory, video, etc.
Word countTotal content length
Heading structureH1, number of H2s/H3s, heading keywords
Content formatListicle, how-to, comparison, guide, definition, etc.
VisualsNumber of images, videos, infographics, tables
DatePublished date, last updated date
AuthorNamed author, credentials shown
Unique angleWhat differentiates this from others
Internal linksNumber of internal links
External linksNumber of outbound links, sources cited
Schema markupTypes of structured data used
Reading levelApproximate 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
undefined

Content 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:

常见覆盖主题:

  1. {topic} - covered by {X}/10 results
  2. {topic} - covered by {X}/10 results
  3. {topic} - covered by {X}/10 results ...
  1. {主题} - 10个结果中有{X}个覆盖
  2. {主题} - 10个结果中有{X}个覆盖
  3. {主题} - 10个结果中有{X}个覆盖 ...

Common H2 Headings:

常见H2标题:

  1. "{heading}" or similar - used by {X}/10
  2. "{heading}" or similar - used by {X}/10 ...
  1. "{标题}"或类似表述 - 10个结果中有{X}个使用
  2. "{标题}"或类似表述 - 10个结果中有{X}个使用 ...

Featured Snippet Format:

精选摘要格式:

Type: {paragraph/list/table/video} Content: {what the snippet shows} How to win it: {specific advice}
undefined
类型:{段落/列表/表格/视频} 内容:{摘要展示的内容} 获取方法:{具体建议}
undefined

Step 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
undefined

Content 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

内容规范

SpecRecommendationReasoning
Content type{blog/landing/tool}{X}/10 results are this type
Word count{target} wordsTop 3 average {avg}, aim for {target}
Format{listicle/how-to/guide}Dominant format in SERP
Reading levelGrade {X}Match audience expectation
Visuals{X} images, {X} custom graphicsTop 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:
  1. "{Title option 1}" ({length} chars)
  2. "{Title option 2}" ({length} chars)
  3. "{Title option 3}" ({length} chars)
遵循排名结果中的模式,撰写3个选项:
  1. "{标题选项1}"({长度}字符)
  2. "{标题选项2}"({长度}字符)
  3. "{标题选项3}"({长度}字符)

Meta Description Recommendations

元描述建议

  1. "{Meta option 1}" ({length} chars)
  2. "{Meta option 2}" ({length} chars)
  1. "{元描述选项1}"({长度}字符)
  2. "{元描述选项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

可利用的内容缺口

  1. {Gap} - Only {X}/10 competitors cover this. Include {specific content}.
  2. {Gap} - No competitors have {data/tool/visual}. Create {specific asset}.
  3. {Gap} - Top results are outdated on {topic}. Include {current data}.
  1. {缺口} - 仅{X}/10的竞品覆盖此内容。需包含{具体内容}。
  2. {缺口} - 没有竞品提供{数据/工具/视觉元素}。需创建{具体资产}。
  3. {缺口} - 排名靠前的结果在{主题}上信息过时。需包含{当前数据}。

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中脱颖而出}
undefined

Output Format

输出格式

Always present:
  1. SERP Overview - Feature map and intent analysis
  2. Top 10 Analysis Table - Key metrics for each result
  3. Pattern Summary - What the SERP rewards
  4. Content Gaps - Opportunities to differentiate
  5. Content Brief - Complete brief ready for a writer
需始终呈现以下内容:
  1. SERP概览 - 功能模块图谱和意图分析
  2. 排名前10结果分析表 - 每个结果的关键指标
  3. 模式总结 - SERP偏好的内容特征
  4. 内容缺口 - 差异化机会
  5. 内容简报 - 可供撰稿人直接使用的完整简报

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要求。