Skip to content

/ BLOG12 min

How I use Claude Code to audit client SEO (with real prompts)

How I leverage Claude Code in real SEO audits: skill orchestration, concrete prompts, integration with DataForSEO and Search Console, what I automate and what stays manual.

  • ia-aplicada-al-seo
  • claude-code
  • automatizacion-seo
  • workflow

I've been using Claude Code — Anthropic's CLI — as a central layer in my day-to-day SEO auditing for months. It's not the only tool and it doesn't replace human judgment. But there's a specific set of tasks where it has changed the pace.

This post is what I actually do, with the real prompts I use, what I automate, and where I still keep my hands in.

What this isn't

  • It isn't «AI will replace SEO». It won't. Strategy and judgment decisions remain that no model solves.
  • It isn't a Claude vs GPT vs Gemini sales pitch. I use Claude because I've built a stable workflow around it, not because it's the best at everything.
  • It isn't an install tutorial. I assume you know what Claude Code is (CLI with MCP, skills, agents, hooks) and have access.

If the «what» and «how» interests you, keep going. If you want a comparative review, this isn't the place.

The stack I actually use

  • Claude Code CLI (Anthropic, Opus 4.7 for serious reasoning; Haiku for cheap tasks).
  • Active MCPs: Context7 (fresh docs), Playwright (browsing), DataForSEO (real SERP, KW, backlinks, LLM mentions), GitHub.
  • In-house skills organised by verticals: seo-audit-tools, seo-completo, nap-schema-rules, consent-banners-rules, etc.
  • Subagents for parallel independent tasks (dependency audit + bug audit + on-page SEO audit on the same project at once).
  • In-house Python DataForSEO helpers for batches that don't fit through MCP.

Real case 1: express SEO audit for a new client

A firm arrives wanting to know how bad their site is before hiring anything. I charge small setup (€200-400 range by size) and deliver diagnosis in 1-2 days.

Real workflow:

Step 1 — Client discovery (manual, 15 min)

URL, sector, city, what they think is wrong, what they want to achieve. Not automatable because it depends on conversational nuance.

Step 2 — Automated technical audit (Claude + subagents, 20 min)

Approximate prompt I use:

Audit https://myfirm.es with a technical SEO focus for a Spanish local SMB
(legal sector). Run 3 subagents in parallel:

1. ce-repo-research-analyst → identify stack, CMS, critical plugins
2. seo-onpage-reviewer → titles, meta, H1, headings, internal links of top 10 pages
3. dep-auditor → CVEs in dependencies if stack is identifiable

Synthesise in docs/audits/AUDIT_INICIAL.md with prioritised P0/P1/P2/P3 table.

Claude launches the 3 agents, receives the 3 reports, consolidates them in a single doc. I spend more time writing the prompt than executing it.

Step 3 — Real SERP data (DataForSEO MCP, 10 min)

Use DataForSEO to:
- Current organic KWs of myfirm.es (top 30 by impressions)
- Top 10 local SERP for "divorce lawyer terrassa" (location_name: "Terrassa,Catalonia,Spain")
- KW suggestions for "divorce lawyer" with KD<30 and volume>50
- LLM mentions volume for "divorce lawyer" and "how to divorce"

Consolidate in data/research/seo-audit-client.md

DataForSEO MCP returns raw data. Claude formats into a table, identifies opportunity KWs (low KD, interesting volume, current position >20 for the client).

Step 4 — Schema markup audit (Playwright + Claude, 5 min)

With Playwright:
1. Visit myfirm.es and top 5 pages
2. Extract all <script type="application/ld+json">
3. Validate each against schema.org (not Rich Results Test)
4. Identify which Schemas are missing per page type
5. Report in docs/audits/AUDIT_SCHEMA.md

Playwright + Claude detect the site uses generic LocalBusiness instead of LegalService (typical firm issue), missing FAQPage on contact page that does have visible FAQ, and no hasOfferCatalog with broken-down services.

Step 5 — Human synthesis (manual, 30 min)

Here I come in. I read the 3 generated docs, cross-check with step 1 client conversation, and write the final deliverable in professional PDF format. Priority decisions, what to do first by client budget, what to avoid.

Total time: ~90 min of my time (vs 6-8h doing it all by hand before). API cost: ~€3-5 per audit (Claude + DataForSEO combined). Output: same quality or higher — parallel subagents cover more surface than me alone.

Real case 2: generating Schema markup from scratch for a new site

Client with new Next.js site, no Schema, needs LegalService + FAQPage + Article for blog + Service per listed service.

Read the entire site https://theclient.es with Playwright.
For each identified page type (home, services, blog posts, contact):
1. Determine correct Schema (consulting schema.org)
2. Generate JSON-LD adapted to REAL content of that page
3. Validate JSON parseable
4. Save each in app/[locale]/<route>/schema.json
5. Generate a commit with all JSON-LD and a note in docs/schema/CHANGELOG.md

Claude takes ~15 min on the whole site. Then I review each Schema in 30 min, adjust some fields manually. Total 45 min vs 4-6h.

Real case 3: mass review responses

Client with 80+ unresponded Google reviews from the last 6 months.

Read unresponded reviews from https://www.google.com/maps/place/myfirm/.
For each, generate personalised response:
- Professional + warm tone
- Mention specific detail the client mentioned (service, moment, satisfaction)
- If negative: apologise first, propose private resolution
- No copy-paste between reviews
- Maximum 4 lines
- Output in CSV: review_id, author, date, score, original_text, proposed_response

I review each response before publishing (no auto-publish). About 85% I leave as-is, 15% I adjust details. Time: 30 min to review and publish 80 vs 4-5h writing them myself.

What I do automate

  • Initial technical audits (parallel subagents).
  • Schema markup extraction and validation (Playwright + validation).
  • Mass keyword research (DataForSEO MCP + filters).
  • Schema draft generation for new pages.
  • Mass review responses (always with human review).
  • NAP consistency validation cross-checking web vs GBP vs directories.
  • Cannibalisation detection between URLs (Search Console queries + cluster analysis).
  • AI citation monitoring (disciplined monthly search in ChatGPT, Perplexity, AI Overviews).

What I still do by hand

  • Initial client discovery. Nuance, what's intuited, doesn't transcribe to prompt.
  • Strategy decision. What to prioritise, what to discard — depends on client context, budget, sector.
  • Final report synthesis. AI generates the data, I put the narrative.
  • Negotiation and proposal. Zero AI in commercial conversation.
  • Legally sensitive cases (firms with clients in delicate processes): zero AI in final copy.

Prompts I do save and reuse

I've packaged the most stable prompts as my own skills. Each skill has:

  1. Description of when to invoke (CSO format: conditions + symptoms + ES+EN triggers).
  2. Expected inputs.
  3. Expected output (path + format).
  4. Numbered steps.

Public examples on my GitHub (link at end). Some:

  • seo-audit-tools/ — technical audit with parallel subagents.
  • nap-schema-rules/ — MUST-level constraint for local Schema and consistent NAP.
  • consent-banners-rules/ — GA4 Consent Mode v2 + Spain cookies.
  • copywriting-web-espana/ — copy generation adapted to ES SMB tone.
  • humanizer-es/ — removes AI tone from generated copy.

The trick isn't the prompt, it's the workflow

Many believe AI's value in SEO is in writing good prompts. It isn't. Value is in:

  1. Designing the workflow (what tasks + in what order + with what tools).
  2. Packaging the workflow as skill or executable script, not as ad-hoc prompt each time.
  3. Deciding where AI adds (data, batch, validation, initial draft) and where it DOESN'T (strategic synthesis, human decision, negotiation).
  4. Measuring real cost (time saved vs API cost vs output quality) and discarding what doesn't compensate.

An audit with good workflow can be delivered to the client in 1/4 the time it took 18 months ago, with the same or more quality. But that requires building and maintaining the workflow, not plug-and-play.

Real cost

Data from my last month (audits + client maintenance):

  • Claude API: ~€80/month (Opus 4.7 + Haiku combined).
  • DataForSEO API: ~€120/month (variable by queries).
  • Playwright (Bright Data backend): ~€30/month.
  • Total AI infra: ~€230/month.

For context, that's roughly equivalent to a junior's hourly cost. With Claude Code the output I produce equals a junior working 60h/week extra.

How to start tomorrow

If you want to replicate part of this:

  1. Install Claude Code CLI. Official docs: https://docs.claude.com/en/docs/claude-code.
  2. Activate core MCPs: DataForSEO (essential for SEO), Playwright (for audits), Context7 (fresh docs).
  3. Build 1 own skill that solves a repetitive task of yours. Start with the most boring and mechanical of your day.
  4. Measure: time before vs time after. If it doesn't save at least 50%, the skill is badly designed.
  5. Iterate: first skills are always rough. Version 3 is usually the useful one.

If you're interested in how I apply this on real client projects, it's covered in my SEO audit service and in monthly technical SEO. The Workshop with in-house AI tools is in development (Q3 2026).

[[ ¿TE RESULTA ÚTIL? ]]

Hablemos de tu proyecto.

Diagnóstico inicial de 30 min sin compromiso. Te digo qué veo y si tiene sentido que trabajemos juntos. Sin packs cerrados.

Contactar →

[ SEGUIR LEYENDO ]

How I use Claude Code to audit client SEO (with real prompts) — Jesús Porres · Jesús Porres