Agent skill
technical-seo-audit
Deep technical SEO audit covering Core Web Vitals, crawlability, indexation, structured data, canonical/hreflang, redirect chains, and site architecture.
Filed under Content and SEO.
From ekatasingh1107/b2b-gtm-skills · 99 skills · 2 · pushed 2026-04-11
What it does when it runs
Deep technical SEO audit covering Core Web Vitals, crawlability, indexation, structured data, canonical/hreflang, redirect chains, and site architecture. Complements seo-auditor which focuses on on-page/off-page factors.
Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It does act, so it runs under whatever permissions your session already grants. - Actions present in the files
- network
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/ekatasingh1107/b2b-gtm-skills.git /tmp/b2b-gtm-skills git -C /tmp/b2b-gtm-skills sparse-checkout set "skills/capabilities/technical-seo-audit" mkdir -p ~/.claude/skills/technical-seo-audit cp -R "/tmp/b2b-gtm-skills/skills/capabilities/technical-seo-audit/." ~/.claude/skills/technical-seo-audit/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from ekatasingh1107/b2b-gtm-skills/blob/eae8dd0bb98da1c8e84abd297066a87015dd860f/skills/capabilities/technical-seo-audit/SKILL.md, which is licensed MIT (repository). 1,387 words, 29 headings.
Technical SEO Audit
Performs a deep technical SEO audit of a website, focusing on infrastructure-level issues that affect search engine crawling, indexing, and ranking. Complements seo-auditor (which covers on-page content and off-page signals) by going deeper into the technical foundation.
Prerequisites
- Target website URL
agency.config.jsonpopulated (for reporting context)- WebSearch and WebFetch tools available
- Optional: Google Search Console access for indexation data
Phase 0: Intake
Read agency.config.json:
agency.name-- for report brandingservices[]-- to flag relevant service recommendations
Accept parameters:
url-- (required) target website root URLdepth-- (optional)quick(homepage + 5 pages),standard(up to 25 pages),deep(up to 100 pages). Default:standardfocus_areas-- (optional) array to limit scope:core-web-vitals,crawlability,indexation,structured-data,redirects,security,mobile,international. Default: allcompetitor_urls-- (optional) array of competitor URLs for comparisongsc_data-- (optional) Google Search Console export data
Phase 1: Core Web Vitals Analysis
Use WebFetch to check PageSpeed Insights API or Chrome UX Report signals:
Metrics to Assess
| Metric | Good | Needs Improvement | Poor |
|---|---|---|---|
| LCP (Largest Contentful Paint) | < 2.5s | 2.5-4.0s | > 4.0s |
| INP (Interaction to Next Paint) | < 200ms | 200-500ms | > 500ms |
| CLS (Cumulative Layout Shift) | < 0.1 | 0.1-0.25 | > 0.25 |
| FCP (First Contentful Paint) | < 1.8s | 1.8-3.0s | > 3.0s |
| TTFB (Time to First Byte) | < 800ms | 800-1800ms | > 1800ms |
Page Types to Test
- Homepage
- Category/collection page
- Product/detail page
- Blog/content page
- Search results page (if applicable)
Analysis
For each failing metric:
ISSUE: [metric] is [value] on [page type]
IMPACT: [how this affects rankings and UX]
CAUSE: [likely technical cause based on page analysis]
FIX: [specific technical recommendation]
PRIORITY: [HIGH/MEDIUM/LOW]
EFFORT: [quick-win / medium / major-refactor]
Phase 2: Crawlability Audit
Robots.txt Analysis
- Fetch and parse
robots.txt - Check for overly restrictive rules blocking important content
- Check for missing rules allowing crawl of admin/private pages
- Verify sitemap reference is present
- Check for user-agent specific rules
XML Sitemap Analysis
- Fetch sitemap(s) from robots.txt or common locations (
/sitemap.xml,/sitemap_index.xml) - Count total URLs
- Check for:
- URLs returning non-200 status codes
- Orphaned URLs (in sitemap but not linked from site)
- Missing URLs (important pages not in sitemap)
- Last modified dates (are they accurate or all the same?)
- Sitemap file size (under 50MB, under 50,000 URLs per file)
- Proper XML formatting
Crawl Depth Analysis
- Map internal link structure from homepage
- Flag pages requiring 4+ clicks to reach from homepage
- Identify orphan pages (no internal links pointing to them)
- Check for crawl traps (infinite pagination, faceted navigation creating duplicate URLs)
Internal Linking
- Check for broken internal links (404s)
- Check for redirect chains in internal links
- Identify pages with very few internal links (low PageRank flow)
- Check for excessive internal links on single pages (>100)
Phase 3: Indexation Audit
Index Status Checks
site:domain.comsearch to estimate indexed pages- Compare indexed count vs sitemap count vs actual page count
- Flag significant discrepancies (indexed >> actual = duplicates; indexed << actual = indexation issues)
Common Indexation Issues
Check for:
noindexmeta tags on pages that should be indexednoindexin HTTP headers (X-Robots-Tag)- Pages blocked by robots.txt that have inbound links
- Thin content pages (under 300 words) that may be filtered
- Duplicate title tags across multiple pages
- Duplicate meta descriptions
- Missing or duplicate H1 tags
Canonical Tag Audit
- Every page has a canonical tag
- Self-referencing canonicals on unique pages
- Canonical points to correct URL (not HTTP when HTTPS, not non-www when www)
- No canonical chains (A canonicals to B, B canonicals to C)
- Canonical matches the version in the sitemap
Phase 4: Structured Data Validation
Check for Existing Schema
Inspect pages for JSON-LD, Microdata, or RDFa markup:
| Page Type | Expected Schema | Priority |
|---|---|---|
| Homepage | Organization, WebSite, SearchAction | HIGH |
| Product | Product, Offer, AggregateRating, Review | HIGH |
| Collection | CollectionPage, ItemList | MEDIUM |
| Blog post | Article, BlogPosting, BreadcrumbList | MEDIUM |
| FAQ page | FAQPage | HIGH |
| About page | Organization, Person | LOW |
| Contact | LocalBusiness, ContactPoint | MEDIUM |
Validation
For each schema found:
- Valid JSON-LD syntax
- Required properties present (per schema.org spec)
- No deprecated properties
- Proper nesting
- Consistent with page content (no schema spam)
Missing Schema Opportunities
Flag pages where adding schema would provide rich result eligibility:
- Product pages without Product schema
- FAQ content without FAQPage schema
- Review content without Review schema
- Events without Event schema
- Breadcrumbs without BreadcrumbList schema
Phase 5: Redirect Audit
Redirect Chain Analysis
- Identify redirect chains (A -> B -> C) -- all should be A -> C
- Identify redirect loops
- Check for mixed HTTP/HTTPS redirects
- Check for mixed www/non-www redirects
- Verify 301 (permanent) vs 302 (temporary) usage is correct
Common Redirect Issues
- Old URLs redirecting through multiple hops
- Trailing slash inconsistency (some URLs with, some without)
- Case sensitivity issues (uppercase URLs not redirecting to lowercase)
- Parameter-based redirects missing
- Deleted page 404s that should 301 to relevant alternatives
Phase 6: Security & HTTPS
- Full HTTPS: no mixed content warnings
- HSTS header present and correctly configured
- SSL certificate valid and not expiring within 30 days
- No insecure resources loaded (images, scripts, stylesheets over HTTP)
- Security headers check: CSP, X-Frame-Options, X-Content-Type-Options
- Cookie security: Secure flag, HttpOnly, SameSite
Phase 7: Mobile Friendliness
- Viewport meta tag present and correct
- No horizontal scroll on mobile viewports
- Touch targets adequately sized (min 48x48px)
- Font sizes readable without zooming (min 16px body text)
- No intrusive interstitials blocking content
- Mobile page speed (separate from desktop CWV)
Phase 8: International SEO (if applicable)
- Hreflang tags present and correct
- Return tags (each hreflang pair must be bidirectional)
- x-default tag present
- Language/region targeting consistent across pages
- No conflicting canonical and hreflang signals
Phase 9: Output
Return structured JSON:
{
"url": "https://example.com",
"audit_date": "2026-03-13",
"audit_depth": "standard",
"pages_analyzed": 25,
"overall_health_score": 72,
"score_breakdown": {
"core_web_vitals": 65,
"crawlability": 80,
"indexation": 75,
"structured_data": 60,
"redirects": 85,
"security": 90,
"mobile": 70
},
"critical_issues": [
{
"category": "core-web-vitals",
"issue": "LCP 4.2s on product pages",
"impact": "Ranking penalty, 53% bounce rate increase above 3s",
"fix": "Optimize hero image: compress, add srcset, preload LCP image",
"priority": "HIGH",
"effort": "quick-win",
"pages_affected": 45
}
],
"warnings": [
{
"category": "structured-data",
"issue": "Product pages missing AggregateRating schema",
"impact": "Missing star ratings in search results",
"fix": "Add AggregateRating to Product JSON-LD",
"priority": "MEDIUM",
"effort": "medium"
}
],
"opportunities": [
{
"category": "indexation",
"opportunity": "45 blog posts with thin content could be consolidated",
"impact": "Reduce index bloat, concentrate PageRank",
"effort": "major-refactor"
}
],
"competitor_comparison": {
"our_score": 72,
"competitor_scores": [
{"url": "competitor1.com", "score": 68},
{"url": "competitor2.com", "score": 81}
]
},
"recommendations_summary": [
{"priority": 1, "action": "Fix LCP on product pages", "impact": "HIGH", "effort": "quick-win"},
{"priority": 2, "action": "Add Product schema to all product pages", "impact": "HIGH", "effort": "medium"},
{"priority": 3, "action": "Resolve 12 redirect chains", "impact": "MEDIUM", "effort": "quick-win"}
],
"generated_at": "2026-03-13T10:00:00Z"
}
Phase 10: Report & Handoff
Present findings as a prioritized action plan:
- Critical (fix immediately): Issues causing ranking loss or indexation failures
- High priority (fix this week): Significant performance or schema issues
- Medium priority (fix this month): Optimization opportunities
- Low priority (backlog): Nice-to-haves and future improvements
If write_to_crm context exists, log the audit as a prospect touchpoint.
Example Usage
Trigger phrases:
- "Run a technical SEO audit on [url]"
- "Check Core Web Vitals for [url]"
- "Audit the structured data on [url]"
- "Check [url] for crawlability issues"
- "Run a redirect chain analysis on [url]"
- "Full technical SEO check on this prospect's site"
- "Compare our client's technical SEO against competitors"
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- technical-seo-audit by thatrebeccarae · 130
- seo-audit by coreyhaines31 · 46,928
- seo-audit by OpenClaudia · 677
- seo-technical by shawnpang · 317
- seo-audit by realjaymes · 56
- seo-content-audit by edupegoretti · 0
- ai-seo by coreyhaines31 · 46,928
- programmatic-seo by coreyhaines31 · 46,928
Need help setting it up?
This page tells you what technical-seo-audit does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.