seo-audit
When the user wants to audit, review, or diagnose SEO issues on their site. Uses live web data via the Bright Data CLI for accurate detection of JS-injected schema, hreflang, canonicals, and live SERP-based ranking checks. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "site isn't ranking," "Google update hit me," "page speed," "core web vitals," "crawl errors," or "indexing issues." Use this even if the user just says something vague like "my SEO is bad" or "help with SEO" — start with an audit. For building pages at scale to target keywords, see programmatic-seo. For implementing structured data, see schema-markup. For AI search optimization, see ai-seo.
NPX Install
npx skill4agent add brightdata/skills seo-auditTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →SEO Audit (Bright Data)
bdatabdatabdataOut-of-Scope NotesWhy Bright Data
web_fetchcurlbdata scrape -f html<script type="application/ld+json">bdata searchPrerequisites
curl -fsSL https://cli.brightdata.com/install.sh | bash
bdata loginbdataInitial Assessment
.agents/product-marketing-context.md.claude/product-marketing-context.md- Site context — What type of site? Primary business goal for SEO? Priority keywords/topics?
- Current state — Known issues? Current organic traffic level? Recent changes or migrations?
- Scope — Full site audit or specific pages? Search Console / analytics access?
Mode Selection
- Mode A — Single-page deep audit. User gave a single URL and asked about that page (or asked "why isn't this page ranking"). Audit covers the page, its , its
robots.txt, and the homepage if different. ~5–10sitemap.xmlcalls.bdata - Mode B — Site-wide audit. User gave a domain or said "audit my site". Sitemap-stratified sampling, default 10–15 pages, budget configurable. ~20–40 calls.
bdata
SERP Triggers (mode-independent)
bdata search- User mentions a target keyword.
- User asks "why am I not ranking for X" / "traffic dropped" / similar.
- User asks about a specific page's performance.
bdata search "site:<domain>" --jsonWorkflow
1. Gather (always)
- Mode B: fetch (R-01) +
robots.txt(R-02) → URL list → stratified sample 10–15 URLs (R-03) → parallel-fetch sample (R-04). Always parallelize: single Bash message, multiplesitemap.xmltool calls.bdata scrape - Mode A: fetch the target URL + homepage + +
robots.txt.sitemap.xml - Always: indexation proxy (R-12).
2. Detect site type (R-15)
references/site-type-playbooks.md3. Run framework checks
references/audit-framework.md- Crawlability & Indexation
- Technical Foundations
- On-Page Optimization
- Content Quality
- Authority & Links (HTML-only)
Disallow: /4. Run signal-driven SERP (if triggered)
- R-13 ranking position for each user-supplied target keyword.
- R-14 cannibalization for each user-supplied target keyword.
5. Format report
references/output-templates.mdbdataHard Rules
- Never claim "no schema found" without running R-07. already renders JavaScript — there is no detection-limitation excuse here. The inspiration skill's biggest pain point doesn't apply to us.
bdata scrape -f html - Every finding has Evidence. Command + output excerpt. No exceptions. No fabricated findings.
- Things can't measure go to
bdatawith a pointer to the right tool. CWV field data → PageSpeed Insights. Coverage detail → Google Search Console. Backlinks → Ahrefs/Semrush. We provide HTML-level CWV proxies but always caveat them.Out-of-Scope Notes - Parallelize page fetches — single Bash message, multiple tool calls. Never loop sequentially over the sampled URLs.
bdata scrape - Default budget 10–15 pages for Mode B. The user can request a larger budget in natural language ("audit 30 pages") — there is no CLI flag for this; it's an audit-level parameter the skill applies when sampling URLs in R-03.
bdata - No SERP fishing — keyword SERP queries (R-13/R-14) only fire on a user-supplied keyword or diagnostic-prompt signal. The indexation proxy (R-12) is the only always-on SERP call.
site: - Cite Out-of-Scope Notes for everything we don't measure — being honest about limits is the skill's contract with the user.
References
- audit-framework.md — Five-tier priority order, every check.
- bdata-recipes.md — 25 concrete recipes (R-01..R-25).
bdata - site-type-playbooks.md — SaaS / e-commerce / blog / local / multilingual extras.
- output-templates.md — Report structure, finding shape, exec-summary rubric.
Related Skills
- brightdata-cli — for installation/login walkthrough and full command reference.
bdata - scrape — for ad-hoc scraping outside an audit context.
- search — for ad-hoc SERP queries outside an audit context.
- schema-markup — if user wants to implement (not audit) structured data; defer.
- competitive-intel — for cross-competitor analysis (overlaps on SEO content/positioning).
- programmatic-seo — for building pages at scale to target keywords.
- ai-seo — for AEO / GEO / LLMO / AI Overview optimization.