Lead Gen Website Builder (SEO PUR)
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,
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,
Real data. Real impact.
Growing
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
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.
Use this skill when the user requests a website for:
Follow these phases sequentially. Do NOT skip phases or combine them without clear reason.
references/google-spam-guardrails-2024.mdThen continue with Phases 1→7.
Gather project requirements from the user or specifications document.
Required information:
Output: Clear understanding of project scope, target audience, and conversion goals.
Create
ideas.md in the project root with THREE distinct design approaches.
Use
templates/design-ideas-template.md as structure. Each approach must define:
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.
Generate 3-5 high-quality images using
generate tool. These images MUST:
/home/ubuntu/webdev-static-assets/Plan strategic usage:
Do NOT generate images on-the-fly during development. Generate all at once for efficiency.
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:
python /home/ubuntu/skills/lead-gen-website/scripts/generate_content_structure.py specs.json content-structure.md
Content requirements:
Initialize project and build all pages.
webdev_init_project <project-name>
Edit
client/src/index.css with chosen design philosophy:
Add Google Fonts in
client/index.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" />
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):
{{DOMAIN}} with actual domainOther components: Breadcrumbs, ContactForm, CookieBanner (copy as-is, minimal customization needed)
For similar pages (services, blog articles):
service-template.tsx) using templates/page-service-template.tsxservices-data.json) with array of page datapython /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.
Add all routes to
client/src/App.tsx:
<Route path="/service-page" component={ServicePage} />
Integrate Header, Footer, and CookieBanner in App layout.
Create
pages.json with all URLs and priorities:
[ {"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:
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/.
Add JSON-LD structured data to key pages using SEOHead component's
jsonLd prop:
Homepage (LocalBusiness):
const jsonLd = { "@context": "https://schema.org", "@type": "LocalBusiness", "name": "Business Name", "telephone": "+33123456789", "email": "contact@example.com", "address": { "@type": "PostalAddress", "addressLocality": "City", "addressCountry": "FR" }, "areaServed": ["City1", "City2"], "openingHours": "Mo-Fr 08:00-18:00" };
Service pages (Service):
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.
Verify:
Consult
references/rgpd-compliance.md for detailed requirements.
Read and apply:
references/gbp-local-seo-playbook.mdDeliverables to produce:
Read and apply:
references/ads-micro-budget-4eur-playbook.mdDeliverables to produce:
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.
Open dev server URL and verify:
Verify against
references/seo-checklist.md:
webdev_save_checkpoint "Complete lead-gen website - [X] pages, SEO optimized, RGPD compliant"
Send checkpoint attachment via
message tool with:
Generate multiple similar pages from template and data file.
Usage: scripts/generate_pages_batch.py
python generate_pages_batch.py <template> <data_json> <output_dir>
Generate robots.txt and sitemap.xml automatically.
Usage: scripts/create_seo_files.py
python create_seo_files.py <domain> <pages_json> <output_dir>
Create content structure markdown from specifications JSON.
Usage: scripts/generate_content_structure.py
python generate_content_structure.py <specs_json> <output_md>
Components:
component-Header.tsx - Sticky header with logo, nav, CTAcomponent-Footer.tsx - Footer with links and contact infocomponent-SEOHead.tsx - SEO meta tags and structured datacomponent-Breadcrumbs.tsx - Navigation breadcrumbscomponent-ContactForm.tsx - Form with UTM trackingcomponent-CookieBanner.tsx - RGPD cookie consent bannerPages:
page-service-template.tsx - Service page templatepage-legal-template.tsx - Legal page templatedesign-ideas-template.md - Design brainstorming structure
Complete SEO checklist covering meta tags, structured data, technical SEO, on-page SEO, local SEO, and content quality. Read this before Phase 6 to ensure nothing is missed.references/seo-checklist.md
Best practices for maximizing conversions: CTA strategy, contact options, trust signals, form optimization, mobile optimization. Consult during Phase 5 when building pages.references/conversion-best-practices.md
Complete RGPD compliance guide covering cookie banner, privacy policy, cookie policy, legal mentions, forms, consent, data security, and user rights. Essential for Phase 6.references/rgpd-compliance.md
Five example design philosophies (Neo-Artisanat Digital, Brutalist Confidence, Soft Modernism, Vibrant Energy, Luxury Minimalism) with selection criteria. Use as inspiration during Phase 2.references/design-philosophies.md
Design consistency: Document chosen design philosophy at the top of each CSS/component file as a reminder.
Image optimization: All images should be stored in
/home/ubuntu/webdev-static-assets/ and referenced via CDN URLs to avoid deployment timeouts.
Content quality over quantity: Better to have 10 excellent pages than 20 mediocre ones. Focus on answering user intent.
Mobile-first: Design and test mobile experience first. Most local service searches happen on mobile.
Conversion priority: Every page should have clear CTAs. Phone and WhatsApp buttons should be always visible on mobile.
Local SEO: Mention city/region name in titles, H1, and content. Create separate pages for each service area if covering multiple cities.
Fast iteration: Use batch generation scripts for similar pages to save time. Focus manual effort on unique, high-value pages.
Testing: Always test in browser before creating checkpoint. Check mobile responsive, form submission, and navigation.
Skipping design brainstorming: Leads to generic, forgettable designs. Always create ideas.md with 3 distinct approaches.
Generating images during development: Inefficient. Generate all images upfront in Phase 3.
Weak content: Thin content (<300 words) won't rank. Invest time in Phase 4 to create substantial, helpful content.
Missing RGPD elements: Cookie banner, privacy policy, and legal mentions are REQUIRED in EU. Don't skip Phase 6.3.
No UTM tracking: Without UTM parameters, you can't measure campaign effectiveness. Ensure ContactForm captures them.
Forgetting mobile CTAs: Desktop-only CTAs lose mobile conversions. Always add sticky mobile buttons.
Creating checkpoint during development: Only create ONE checkpoint at the end (Phase 7). Multiple checkpoints confuse users during initial delivery.
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.