run-seo-analysis
SEO Analysis — MCP Marketers
Use this skill to run disciplined, multi-tool SEO analysis workflows using the MCP Marketers server's 32 tools. Do not call tools in isolation. Most analysis calls hit paid DataForSEO APIs, while setup/report/read helpers are free or cached — cost awareness and correct chaining are still critical.
Activation boundaries
Use this skill when
- Running a technical SEO audit on a website
- Discovering and analyzing keywords for a domain or topic
- Analyzing or comparing backlink profiles
- Investigating competitors and domain overlaps
- Analyzing SERP features and ranking landscapes
- Tracking keyword ranking positions over time
- Planning content strategy based on keyword gaps and trends
- Monitoring brand visibility in AI/LLM responses
- Analyzing local business presence and reviews
- Optimizing app store listings or e-commerce product SEO
Do not use this skill when
- Writing application code or building MCP servers — use
build-mcp-use-serverinstead - Reviewing a pull request — use
review-prinstead - Researching a coding bug or library choice — use
run-researchinstead - Planning work without running SEO tools — use
plan-workinstead - Auditing a local HTML snapshot,
file://page, or private localhost preview with no public ingress. This skill requires a publicly reachable HTTP/HTTPS target or a different local audit workflow.
Runtime assumptions and preflight
This skill assumes the MCP Marketers tool surface is already connected, authenticated, and billable in the current runtime. Before Step 0, confirm the checks that apply to the selected workflow:
| Check | What must be true before the first analysis call |
|---|---|
| Tool surface | The runtime exposes the workflow's starting tool and any mandatory follow-up helpers named in the first reference file. If the user wants a compiled deliverable, also confirm start-report-workflow and compile-report. If you choose an async mode such as mode: "task", also confirm manage-tasks. |
| Input type | Site crawl workflows need a publicly reachable HTTP/HTTPS target. Domain/business/app/product workflows need a valid identifier for that tool family (domain, place ID/query, appId, ASIN/product ID). Keyword/SERP/trends/AI-query workflows can run with keywords or queries only and do not require a public site unless later steps add one. |
| Billing | The current environment is allowed to make paid DataForSEO-backed calls for the workflow you plan to run. |
Hard blockers: missing starting tool, unsupported input type, local-only crawl target, or no billing authority. Stop before the first paid analysis call when any hard blocker is present. If a later helper tool is missing, continue only when the workflow reference explicitly gives a fallback; otherwise stop and report the missing tool instead of improvising with unrelated tools.
Core operating rules
- Resolve geography first. If the user mentions a non-US location, run
resolve-geobefore any analysis tool. Most tools silently default to US/English — wrong geo wastes paid API calls.resolve-geoitself is a free setup step. - Start report workflows for deliverables. Run
start-report-workflowbefore analysis if the user wants a compiled report. All tool outputs auto-capture. Compile at the end withcompile-report. These report helpers are free orchestration steps. - Follow nextSteps without abandoning the base workflow. Tool
nextStepsrefine the current workflow; they do not replace the Workflow Selector. Finish the core sequence first, then take high-prioritynextStepsthat stay inside the same workflow branch. - Batch keywords. One call with 500 keywords is far cheaper than 500 calls with 1 keyword. Use
analyze-keywordsandresearch-keywordswith arrays. - Use task mode for SERP.
analyze-serp(mode: "task")saves 50-80% overmode: "live". Usemanage-tasksto poll results. - Set explicit limits. Defaults are generous (100-1000). Lower
limitwhen you only need top results. - Handle large result sets. When a tool returns >50 rows and creates a dataset handle, use
read-result-setto paginate/filter/aggregate. Useexport-result-setfor downloads. - Never orphan a tool call. A single
audit-siteorresearch-keywordswithout follow-up tools is incomplete analysis. Chain to the next step. - Confirm before expensive operations. Ask the user before running
audit-sitewithmaxPages > 200orenableJs: true,analyze-serpin live mode on >5 keywords, oranalyze-ai-presence(dataType: "llm_response"). - Track costs. Analysis responses include cost data. Report estimated spend after multi-tool workflows and distinguish free orchestration calls from paid analysis calls.
Workflow selector
Before starting, identify the user's goal in this table. Read the first reference file listed, then follow the tool sequence.
These tool sequences omit start-report-workflow and manage-tasks for brevity. Insert start-report-workflow before the first analysis call whenever the user wants a compiled deliverable. Insert manage-tasks whenever you deliberately choose an async/task mode and need to wait for the result before continuing.
| User goal | Start with | Tool sequence | Key references (read first before starting) |
|---|---|---|---|
| Site health / technical audit | audit-site |
resolve-geo -> audit-site(instant) -> audit-site(lighthouse) -> audit-site(redirect_chains, duplicate_tags) -> analyze-domain(overview) -> compile-report |
references/workflows/site-audit.md |
| Find keyword opportunities | research-keywords |
resolve-geo -> research-keywords(related) -> analyze-keywords(difficulty) -> analyze-keywords(intent) -> analyze-serp(organic) -> find-keyword-gaps -> compile-report |
references/workflows/keyword-research.md |
| Competitor intelligence | analyze-competitors |
resolve-geo -> analyze-competitors(domain) -> compare-domains(overview) -> find-keyword-gaps -> compare-backlinks -> find-link-opportunities -> compile-report |
references/workflows/competitor-analysis.md |
| Backlink profile / link building | analyze-backlinks |
resolve-geo -> analyze-backlinks(backlinks) -> analyze-backlinks(spam_scores, referring_domains, anchors) -> track-backlinks(growth_summary) -> find-link-opportunities -> compile-report |
references/workflows/backlink-analysis.md |
| SERP features / ranking landscape | analyze-serp |
resolve-geo -> analyze-serp(organic) -> analyze-serp(people_also_ask, related_searches) -> analyze-keywords(difficulty) -> compile-report |
references/workflows/serp-analysis.md |
| Track ranking positions | track-rankings |
resolve-geo -> track-rankings(current) -> track-rankings(changes) -> analyze-serp(organic, for movers) -> compile-report |
references/workflows/rank-tracking.md |
| Content strategy / gaps | analyze-content |
resolve-geo -> analyze-content(search) -> research-keywords(related) -> analyze-keywords(intent) -> find-keyword-gaps -> generate-content(subtopics) -> compile-report |
references/workflows/content-optimization.md |
| AI/LLM brand visibility | analyze-ai-presence |
analyze-ai-presence(mentions) -> analyze-ai-presence(top_domains) -> analyze-ai-presence(keyword_data) -> analyze-serp(ai_overviews) -> compile-report |
references/workflows/ai-presence.md |
| Local business SEO | analyze-business |
resolve-geo -> analyze-business(profile) -> analyze-business(reviews) -> analyze-serp(local_pack) -> research-keywords(related) -> compile-report |
references/workflows/local-seo.md |
| App store optimization | analyze-app |
resolve-geo -> analyze-app(info) -> analyze-app(keyword_rankings) -> analyze-app(competitors) -> analyze-app(reviews) -> compile-report |
references/workflows/aso.md |
| E-commerce product SEO | analyze-products |
resolve-geo -> analyze-products(search) -> analyze-products(product_info, reviews) -> platform-specific follow-ups -> research-keywords(related) -> compile-report |
references/workflows/ecommerce-seo.md |
| Market trends / rising topics | analyze-market-trends |
resolve-geo -> analyze-market-trends(rising_searches) -> research-trends(explore) -> research-keywords(related) -> analyze-keywords(difficulty) -> compile-report |
references/workflows/trends-analysis.md |
| Full comprehensive report | Combine workflows | start-report-workflow -> site-audit sequence -> keyword sequence -> backlink sequence -> competitor sequence -> compile-report |
Read all relevant workflow refs |
Execution sequence
0) Route and orient
- Confirm the MCP Marketers tool surface is available for the chosen workflow. Minimum surface: the starting tool, any mandatory helpers in the first workflow reference,
compile-reportplusstart-report-workflowif the user wants a compiled deliverable, andmanage-tasksif you plan to use async/task modes. - Confirm the chosen workflow's input is supported. Crawl-based site audits need a publicly reachable HTTP/HTTPS target. Domain/business/app/product workflows need the correct identifier format. Keyword/SERP/trends/AI-query workflows do not need a public site unless later steps introduce one.
- Find the user's goal in the Workflow Selector table.
- Read the first reference file listed for that workflow.
- If the user specifies a non-US location, run
resolve-geofirst. - If the user wants a deliverable, run
start-report-workflowfirst.
1) Run the primary tool
Call the starting tool from the Workflow Selector with appropriate parameters. Consult references/guides/parameter-guide.md for non-obvious parameter choices.
2) Chain to follow-up tools
Follow the tool sequence from the Workflow Selector. At each step:
- Check the tool response's
nextStepsfor additional relevant tools - Use
read-result-setif the response created a dataset handle - Adjust parameters based on results (e.g., narrow
limitafter initial broad scan)
Use this prioritization rule:
- First: complete the static tool sequence for the chosen workflow
- Second: take
nextStepsmarked or described as direct continuations of the current phase - Third: defer optional branch suggestions until the core workflow is complete
Example nextSteps shape:
{
"nextSteps": [
{
"tool": "audit-site",
"params": { "dataType": "lighthouse", "pageUrl": "https://example.com/" },
"reason": "Validate performance and CWV after the instant crawl found critical issues",
"priority": "high"
},
{
"tool": "audit-site",
"params": { "dataType": "duplicate_tags", "taskId": "task_123" },
"reason": "Inspect duplicate metadata from the same crawl",
"priority": "medium"
}
]
}
In that example, run the high-priority lighthouse step if it matches the current site-audit branch, then continue with other site-audit follow-ups. Do not jump to unrelated workflows just because they appear in nextSteps.
3) Interpret results with domain knowledge
Do not return raw tool output. Interpret findings using SEO domain expertise from references/guides/seo-domain-knowledge.md. Flag severity levels: critical issues that need immediate action vs. medium-priority optimizations vs. nice-to-haves.
4) Compile and deliver
Run compile-report to gather all tool outputs into a unified report. Summarize key findings, prioritized actions, and estimated API cost.
Tool quick-reference
When unsure which tool to use, consult references/guides/tool-selection-matrix.md for the full mapping of user questions to tools and follow-ups.
When optimizing for API cost, consult references/guides/cost-optimization.md for tier-based cost strategy and specific savings patterns.
Pitfalls
| Pitfall | Fix |
|---|---|
| Forgetting geo resolution | Run resolve-geo before any location-sensitive tool |
Using mode: live for bulk SERP |
Use mode: task — saves 50-80% |
| Unbounded keyword lists | Set limit, minVolume, maxDifficulty |
| Running audit-site with default maxPages on huge sites | Set maxPages: 50 for quick, maxPages: 200 for standard |
| Comparing >5 domains at once | compare-domains and compare-backlinks cap at 5 |
| Ignoring nextSteps | Use high-priority nextSteps that continue the current workflow branch after the base sequence is underway |
| Not starting a report workflow | Call start-report-workflow first if user wants a deliverable |
| Keyword research without intent check | Always follow with analyze-keywords(dataType: intent) |
| Confusing the two trends tools | analyze-market-trends = "what's trending?" (discovery); research-trends = "how is this keyword trending?" (tracking) |
| Running expensive tools without confirmation | Ask before audit-site(enableJs: true), analyze-serp(mode: live, bulk), or analyze-ai-presence(llm_response) |
Reference routing
Workflows
| File | Read when |
|---|---|
references/workflows/site-audit.md |
Technical SEO audit, site health, page speed, crawl issues |
references/workflows/keyword-research.md |
Keyword ideas, search volume, difficulty, intent analysis |
references/workflows/competitor-analysis.md |
Competitive intelligence, domain comparison, keyword gaps |
references/workflows/backlink-analysis.md |
Link profile analysis, link building, disavow preparation |
references/workflows/serp-analysis.md |
SERP features, ranking landscape, search results analysis |
references/workflows/rank-tracking.md |
Ranking position monitoring, change detection |
references/workflows/content-optimization.md |
Content strategy, content gaps, topic clusters |
references/workflows/ai-presence.md |
AI/LLM brand visibility, mentions, citations |
references/workflows/local-seo.md |
Local business SEO, reviews, Google Business |
references/workflows/aso.md |
App store optimization, mobile app analytics |
references/workflows/ecommerce-seo.md |
Product SEO, Amazon/Google Shopping optimization |
references/workflows/trends-analysis.md |
Trend discovery, rising searches, seasonal patterns |
Guides
| File | Read when |
|---|---|
references/guides/tool-selection-matrix.md |
Unsure which tool fits the task |
references/guides/cost-optimization.md |
Planning workflows with many API calls |
references/guides/seo-domain-knowledge.md |
Interpreting results, advising users, understanding SEO metrics |
references/guides/parameter-guide.md |
Setting non-obvious parameters, understanding defaults and limits |
More from yigitkonur/skills-by-yigitkonur
run-research
>-
37run-agent-browser
Use skill if you are driving the agent-browser CLI for browser navigation, DOM-grounded interaction, session/tab management, screenshots, data extraction, or repeatable web app workflows.
33build-skills
Use skill if you are creating or substantially revising a Claude skill and need workspace-first evidence, remote comparison, and repo-fit synthesis before writing SKILL.md.
32publish-npm-package
Use skill if you are automating npm publishing via GitHub Actions and need auth, versioning, provenance, or workflow-template choices.
30build-mcp-use-server
Use skill if you are building or extending TypeScript MCP servers with the mcp-use library — tools, Zod schemas, resources, prompts, transports, OAuth, sessions, testing, and deployment.
29develop-typescript
>-
29