Communication
lead-gen-website
Build complete local lead generation websites with SEO
---
name: lead-gen-website
description: Build complete local lead generation websites with SEO optimization, conversion tracking, and RGPD compliance. Use for creating service-based websites targeting local markets (plumbers, electricians, home services, etc.) with 10-20 pages, structured data, analytics, and legal compliance.
---
# Lead Generation Website Builder
Build conversion-optimized local service websites with complete SEO, tracking, and RGPD compliance — **avec garde-fous anti-spam (Google Spam Policies + March 2024)**, local SEO (GBP) et micro-budget ads.
## When to Use This Skill
Use this skill when the user requests a website for:
- Local service businesses (home services, repairs, professional services)
- Lead generation focused on specific geographic areas
- Sites requiring 10-20+ pages with service pages, blog, and legal pages
- SEO-optimized content targeting local keywords
- Conversion tracking (phone, WhatsApp, forms with UTM parameters)
- RGPD/GDPR compliance (cookie banner, privacy policy, legal pages)
## Workflow Overview
Follow these phases sequentially. Do NOT skip phases or combine them without clear reason.
0) **Policy / Risk Check (mandatory)**
- Read `references/google-spam-guardrails-2024.md`
- Explicitly verify: no doorway pages, no scaled generic content, no fake address/avis, no misleading claims.
- If the project is **mise en relation** (leadgen): require clear disclosure on all key pages.
Then continue with Phases 1→7.
### Phase 1: Analysis and Planning
Gather project requirements from the user or specifications document.
**Required information:**
- Business niche and services offered
- Geographic target area (city + radius)
- Target keywords for SEO
- Contact information (phone, WhatsApp, email)
- Number and types of pages needed
- Competitor websites (for differentiation)
**Output:** Clear understanding of project scope, target audience, and conversion goals.
### Phase 2: Design Brainstorming
Create `ideas.md` in the project root with THREE distinct design approaches.
Use `templates/design-ideas-template.md` as structure. Each approach must define:
- Design movement and aesthetic philosophy
- Color palette with hex codes and emotional intent
- Typography system (headings + body fonts)
- Layout paradigm (avoid generic centered layouts)
- Signature visual elements
- Animation guidelines
- Interaction philosophy
Consult `references/design-philosophies.md` for inspiration, but create original combinations.
**Selection:** Choose ONE approach and document the rationale. This design philosophy will guide ALL subsequent design decisions.
### Phase 3: Visual Assets Generation
Generate 3-5 high-quality images using `generate` tool. These images MUST:
- Align with the chosen design philosophy (colors, mood, style)
- Be stored in `/home/ubuntu/webdev-static-assets/`
- Cover key visual needs: hero background, service illustrations, local landmarks, team/artisan photos
Plan strategic usage:
- Hero section: Most impactful image
- Service pages: Relevant illustrations
- About/Trust sections: Team or local landmark photos
Do NOT generate images on-the-fly during development. Generate all at once for efficiency.
### Phase 4: Content Structure
Create detailed content structure for all pages.
**Option A (Manual):** Write `content-structure.md` directly with sections for each page including title, meta description, H1, and main content outline.
**Option B (Script):** Create `specs.json` with page data, then run:
```bash
python /home/ubuntu/skills/lead-gen-website/scripts/generate_content_structure.py specs.json content-structure.md
```
**Content requirements:**
- Minimum 500 words per main page (homepage, main services)
- Minimum 1000 words per blog article
- Include target keywords naturally (no stuffing)
- Answer user intent (what, why, how, cost, area)
- Local focus (mention city/region frequently)
### Phase 5: Development
Initialize project and build all pages.
#### 5.1 Initialize Project
```bash
webdev_init_project <project-name>
```
#### 5.2 Configure Design Tokens
Edit `client/src/index.css` with chosen design philosophy:
- Update CSS variables for colors (primary, secondary, accent, background, foreground)
- Configure typography (font-family for sans, serif)
- Adjust shadows, radius, animations
Add Google Fonts in `client/index.html`:
```html
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=YourFont:wght@400;600;700&display=swap" rel="stylesheet" />
```
#### 5.3 Create Reusable Components
Use templates from `templates/` directory. Replace placeholders with project-specific values:
**Header** (`templates/component-Header.tsx`):
- `{{SITE_NAME}}`, `{{SITE_TAGLINE}}`, `{{SITE_INITIALS}}`
- `{{PHONE_NUMBER}}`, `{{WHATSAPP_NUMBER}}`
- `{{NAV_ITEMS}}` (JSON array of `{label, href}`)
**Footer** (`templates/component-Footer.tsx`):
- `{{SITE_NAME}}`, `{{SITE_DESCRIPTION}}`
- `{{SERVICE_LINKS}}`, `{{UTILITY_LINKS}}`
- `{{PHONE_NUMBER}}`, `{{EMAIL}}`, `{{LOCATION}}`
**SEOHead** (`templates/component-SEOHead.tsx`):
- Replace `{{DOMAIN}}` with actual domain
**Other components:** Breadcrumbs, ContactForm, CookieBanner (copy as-is, minimal customization needed)
#### 5.4 Build Pages
**For similar pages (services, blog articles):**
1. Create template file (e.g., `service-template.tsx`) using `templates/page-service-template.tsx`
2. Create data file (e.g., `services-data.json`) with array of page data
3. Run batch generation:
```bash
python /home/ubuntu/skills/lead-gen-website/scripts/generate_pages_batch.py service-template.tsx services-data.json client/src/pages/
```
**For unique pages (homepage, tarifs, FAQ, contact):**
Build manually with rich, custom content. Use components for consistency.
**For legal pages:**
Use `templates/page-legal-template.tsx` with standard legal content.
#### 5.5 Update App.tsx
Add all routes to `client/src/App.tsx`:
```tsx
<Route path="/service-page" component={ServicePage} />
```
Integrate Header, Footer, and CookieBanner in App layout.
### Phase 6: SEO, Tracking, GBP, Ads
#### 6.1 Generate SEO Files
Create `pages.json` with all URLs and priorities:
```json
[
{"url": "/", "priority": "1.0"},
{"url": "/service", "priority": "0.9"},
{"url": "/contact", "priority": "0.9"},
{"url": "/blog", "priority": "0.6"},
{"url": "/mentions-legales", "priority": "0.3"}
]
```
Run script:
```bash
python /home/ubuntu/skills/lead-gen-website/scripts/create_seo_files.py yourdomain.com pages.json client/public/
```
This creates `robots.txt` and `sitemap.xml` in `client/public/`.
#### 6.2 Add Structured Data
Add JSON-LD structured data to key pages using SEOHead component's `jsonLd` prop:
**Homepage (LocalBusiness):**
```tsx
const jsonLd = {
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Business Name",
"telephone": "+33123456789",
"email": "[email protected]",
"address": {
"@type": "PostalAddress",
"addressLocality": "City",
"addressCountry": "FR"
},
"areaServed": ["City1", "City2"],
"openingHours": "Mo-Fr 08:00-18:00"
};
```
**Service pages (Service):**
```tsx
const jsonLd = {
"@context": "https://schema.org",
"@type": "Service",
"name": "Service Name",
"description": "Service description",
"provider": {
"@type": "LocalBusiness",
"name": "Business Name"
},
"areaServed": "City"
};
```
Consult `references/seo-checklist.md` for complete SEO requirements.
#### 6.3 RGPD Compliance
Verify:
- CookieBanner component is integrated in App.tsx
- Privacy policy page exists with complete RGPD information
- Cookie policy page exists
- Legal mentions page exists
- ContactForm includes link to privacy policy
Consult `references/rgpd-compliance.md` for detailed requirements.
#### 6.4 GBP / Local SEO (Prominence)
Read and apply:
- `references/gbp-local-seo-playbook.md`
Deliverables to produce:
- GBP setup checklist (catégories/services/Q&R)
- 30-day photo/post/avis plan
- NAP citations list (quality-first, no spam)
#### 6.5 Micro-budget Ads (4€/jour)
Read and apply:
- `references/ads-micro-budget-4eur-playbook.md`
Deliverables to produce:
- 1 campagne ultra-serrée (keywords exact/phrase, zone, horaires, négatifs)
- 1 landing dédiée + tracking
#### 6.6 Conversion Tracking
ContactForm component automatically captures UTM parameters from URL:
- `utm_source` (e.g., google, facebook)
- `utm_campaign` (campaign name)
- `utm_adset` (ad set name)
- `utm_ad` (specific ad)
These are stored in form state and can be sent to backend/CRM for attribution tracking.
### Phase 7: Validation and Delivery
#### 7.1 Test in Browser
Open dev server URL and verify:
- All pages load without errors
- Navigation works (header menu, breadcrumbs)
- Forms submit correctly
- Mobile responsive (test sticky CTA buttons)
- Cookie banner appears on first visit
- Images load correctly
#### 7.2 SEO Validation
Verify against `references/seo-checklist.md`:
- Unique title and description on each page
- H1 hierarchy correct
- Images have alt attributes
- robots.txt and sitemap.xml accessible
- Structured data present on key pages
#### 7.3 Create Checkpoint
```bash
webdev_save_checkpoint "Complete lead-gen website - [X] pages, SEO optimized, RGPD compliant"
```
#### 7.4 Deliver to User
Send checkpoint attachment via `message` tool with:
- Summary of what was built
- Page count and key features
- SEO optimizations implemented
- Next steps (publish, custom domain, Google Search Console)
## Bundled Resources
### Scripts
**`scripts/generate_pages_batch.py`**
Generate multiple similar pages from template and data file.
Usage: `python generate_pages_batch.py <template> <data_json> <output_dir>`
**`scripts/create_seo_files.py`**
Generate robots.txt and sitemap.xml automatically.
Usage: `python create_seo_files.py <domain> <pages_json> <output_dir>`
**`scripts/g
... (truncated)
communication
By
Comments
Sign in to leave a comment