deanwhitex/aiw2.0stack/seo
Claude Code and agent skill by deanwhitex/aiw2.0stack
- community
Checking that the SKILL.md file is still in the repository.
Use during Stage 3 (SEO audit), Stage 5 (strategy), and Stage 10.2 (build personalisation) of the website factory pipeline to ensure every page is built to rank for local '[service/offering] in [city]' queries, Google Map Pack, and service-area domination. Defines keyword architecture for homepage, service/offering pages, and location pages plus schema markup, internal linking, citation strategy, and on-page SEO. Every page must be built to rank, not just look good.
Install
npx vskill@latest install deanwhitex/aiw2.0stack/seoSKILL.md
Local SEO Skill
How this skill is customised
This skill defines the universal local-SEO architecture: keyword scaffolding, on-page tags, schema patterns, location-page rules, internal linking, sitemap/robots.
The niche-specific keyword themes, schema subtype, and average-job-value math come from the niche playbook:
seo-patterns.md defines per niche:
- Primary keyword templates (e.g.
"[main service] [city]"for contractor; `"boutique
hotel [city]"` for hospitality)
- LSI keyword themes (materials/categories/sub-services that read as expertise)
- Schema subtype (
RoofingContractor,LodgingBusiness,ProfessionalService,
LocalBusiness, etc.)
- Average job/booking value for revenue-impact math in audits
- Conversion-rate baseline for the niche
- Common pitfalls or doorway-page risks specific to the niche
If seo-patterns.md is missing, the agent halts with a Module-2D pointer.
Purpose
Ensure every website built by the factory is fully optimised for local search, targeting "[service/offering] in [city]" queries, Google Map Pack rankings, and service-area domination. Every page must be built to rank, not just look good.
1. Keyword architecture
Homepage
- Primary keyword: from
niche-playbook/seo-patterns.mdtemplate (e.g.
"[main service] [primary city]")
- Secondary keywords: niche-specific variations
- Long-tail in hero bullets: niche-specific benefit + location
Service / offering pages
Each service from the strategy gets a dedicated page targeting:
[service] [primary city]as H1[service] near mein body copy (1-2 natural mentions)[service] [adjacent city]in body copy- LSI keywords from the niche playbook's theme list
Location pages
Each area in serviceAreas[] gets a dedicated page targeting:
[main service] [city name]as H1[city name] [service variation]as H2s- Unique content per page, never duplicated with city name swapped (Google penalises
thin/duplicate)
2. On-page SEO requirements
Every page must have
Title tag formula
| Page Type | Formula | Example pattern | |||
|---|---|---|---|---|---|
| Homepage | [Service] [City], [Trust Signal] \ | [Business] | "[Service] [City], [Trust] \ | [Brand]" | |
| Service / offering | [Service] in [City], [Benefit] \ | [Business] | "[Service] in [City], [Benefit] \ | [Brand]" | |
| Location | [Service] [City, State], [Differentiator] \ | [Business] | "[Service] [City, State], [Diff] \ | [Brand]" | |
| Blog | [Topic], [Helpful Angle] \ | [Business] | "[Topic], [Angle] \ | [Brand]" |
Meta description formula
120-155 characters. Include: primary keyword + benefit + CTA + phone.
Heading hierarchy (every page)
- One H1 per page, contains primary keyword + location
- H2s for section headings with secondary keywords
- H3s for sub-sections, never skip levels
Image SEO
- File names: kebab-case with keywords (e.g.
[service]-[primary-city].webp) - Alt text: descriptive, includes location naturally, NOT keyword-stuffed
- All images WebP format, compressed under 150KB
loading="lazy"on everything below the fold- Explicit
widthandheightattributes to prevent CLS
3. Location pages (critical for service-area SEO)
Generate one page per service area
For each city in serviceAreas[], create build/src/pages/locations/[city-slug].jsx.
Location page structure
Location page content rules
- Minimum 400 words of unique content per page
- Mention city name 3-5 times naturally (not stuffed)
- Reference at least one local landmark, neighbourhood, or geographic feature
- Include "near [adjacent cities]" for geo-relevance
- Link back to homepage and relevant service/offering pages
- Each page has its own unique meta title and description
- NEVER find-and-replace city names in a template, Google detects this instantly
Internal linking from location pages
- Homepage (logo + breadcrumb)
- All relevant service/offering pages
- 3-5 adjacent location pages
4. Service / offering pages
Structure
Content rules
- Minimum 600 words
- Include cost/pricing transparency (range, not exact)
- Include warranty / guarantee specifics if relevant
- FAQ section with FAQPage schema mandatory
- Internal links to relevant location pages
5. Schema markup
Inject into each page's <head> via React Helmet Async.
Homepage
- Niche-appropriate
LocalBusinesssubtype (fromseo-patterns.md) with all NAP details AggregateRatingfrom Google review count + ratingareaServedlisting all service areassameAslinking to GBP, Facebook, BBB/TripAdvisor/Houzz/etc. as the niche playbook prescribes
Service / offering pages
Serviceschema withserviceType+providerlinking back to the homepage subtypeFAQPageschema for the FAQ section
Location pages
LocalBusiness(or niche subtype) withGeoCoordinatesfor the specific cityareaServedfor this single city
Blog posts
Articleschema with author, datePublished, imageBreadcrumbListfor navigation context
All pages
BreadcrumbListfor nav hierarchyOrganizationschema in footer
6. Sitemap & robots
sitemap.xml
Generated at build time. Lists every page with:
lastmoddatepriority: homepage = 1.0, service/offering = 0.9, location = 0.8, blog = 0.6changefreq: homepage = weekly, services = monthly, blog = weekly
robots.txt
Disallow only build artifacts and admin paths.
7. Internal linking architecture
Link patterns (mandatory)
- Every service/offering page links to all relevant location pages
- Every location page links to all service/offering pages
- Footer links to all top-level pages
- Nav has dropdown menus for Services/Offerings and Locations
Link anchor text
- Varied anchor text, never "click here" or "learn more"
- Include keywords naturally
- Never link multiple times to the same URL with the same anchor on one page
8. Audit framework (Stage 3, auditing the client's CURRENT site)
Score across these 7 dimensions:
Section 1: Domain authority & trust signals
Domain rank/authority, organic keywords ranked for, estimated monthly organic traffic, traffic trend. Plain-language 2-3 sentence summary.
Section 2: Local keyword gaps
Identify the most valuable niche keywords they are NOT ranking for, per the niche playbook's keyword templates. Estimate leads/bookings per month each keyword represents.
Section 3: Competitor landscape
From research's competitor list: who is ranking above, what they have that the prospect doesn't (reviews, backlinks, content), specific keywords where prospect is outranked.
Section 4: Website technical audit
Title tag quality, H1 optimisation, content depth (under 300 words = thin), blog active/stale, mobile-friendly, page speed, schema markup, internal linking structure.
Section 5: Google Business Profile assessment
Review count vs competitors, review velocity, star rating, GBP photo count, local pack ranking potential.
Section 6: Content strategy gaps
Service/offering pages, location landing pages, FAQ content, before/after/portfolio galleries, blog content.
Section 7: Revenue impact summary
Translate everything into currency:
- Current organic leads/bookings per month
- Potential with proper SEO
- Average job/booking value (from `niche-playbook/seo-patterns.md`, never invent)
- Monthly revenue left on the table
- Annual revenue left on the table
Format: "You currently rank for X keywords and get approximately Y visitors/month. With proper local SEO, businesses in your niche typically reach Z visitors/month. At a {niche- specific conversion rate}% conversion rate, that's [N] additional leads/bookings per month. At your average value of {currency amount}, that's {monthly amount}/month in additional revenue."
Keep math conservative and explainable. Show the work.
9. Output formats per stage
Stage 3 (Audit)
clients/[Client Name]/Pipeline Data/seo/audit-report.md, 400-600 word professional reportclients/[Client Name]/Pipeline Data/seo/audit-data.json, structured for proposal injection:
Stage 5 (Strategy)
clients/[Client Name]/Pipeline Data/strategy/sitemap.json, full sitemap with target
keywords per page
Stage 10 (Build)
- All meta tags, schema markup, location pages, service/offering pages, sitemap.xml,
robots.txt rendered into the build
10. Forbidden patterns
- Keyword stuffing, natural language always
- Doorway pages, every page must offer real value, not just rank
- Cloaking, Google sees what users see
- Duplicate content across location pages, must be unique
- Hidden text for keywords
- Buying backlinks or PBN tactics
- Schema on pages it doesn't apply to, the niche subtype schema goes on the homepage,
not on a blog post
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingwebsite-factory/.claude/skills/seo/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/deanwhitex/aiw2.0stack/seo)