The Pipeline
From WordPress to Production
Five phases, eleven steps, and dozens of automated sub-tasks. Every phase builds on the last. Every sub-step has a dedicated skill.
Capture
Discover, download, and clean the existing WordPress site
Step 1
Recon & Discovery
Crawls the sitemap, discovers every URL, and profiles the entire tech stack — CMS version, theme, plugins, hosting, CDN, and third-party integrations.
Sitemap crawl
Fetch and parse XML sitemap index + child sitemaps
site-crawlerTech stack detection
Identify WordPress version, theme (Divi, Elementor, etc.), active plugins
technical-scannerInfrastructure scan
DNS, hosting provider, CDN (Cloudflare, Fastly), SSL certificate
technical-scannerPage classification
Categorize URLs by type: blog, procedure, gallery, legal, utility
198 pages discovered across 6 page types
Step 2
Download & Clean
A headless Chrome browser visits every page, waits for all JavaScript to execute, saves the fully-rendered HTML and every asset, then strips all the bloat.
Playwright capture
Open each URL in headless Chrome, wait for WP Rocket deferred scripts, save rendered DOM
wp-downloadAsset collection
Download all images, fonts, CSS, JS files referenced by each page
wp-downloadScreenshot capture
Full-page screenshot of every page for visual comparison later
wp-downloadTracker removal
Strip Google Analytics, Facebook Pixel, Hotjar, Segment, and all tracking scripts
postprocessDead widget removal
Remove GoHighLevel chat, Podium, CookieYes, LeadConnector, Instagram Feed shells
postprocessCarousel repair
Reset frozen Swiper/Slick inline transforms, inject reinitializer script
postprocessURL rewriting
Convert all absolute URLs to relative paths for portability
postprocess198 pages • 2,187 assets • 6,752 bloat elements stripped
Transform
Extract content and rebuild with clean code
Step 3
Extract Content
Parses each cleaned HTML page into structured data. The WordPress markup is discarded entirely — only clean content survives.
Content parsing
Extract headings, paragraphs, lists, images, and embedded media from each page
wp-extractNavigation extraction
Parse the site's menu structure: top-level items, dropdowns, CTAs
wp-extractMetadata extraction
Pull title tags, meta descriptions, Open Graph, canonical URLs, schema markup
wp-extractPage type classification
Auto-detect: home, procedure, blog, gallery, legal, pricing, about
wp-extract101 blog posts • 69 procedures • 22 galleries • 6 utility pages
Step 4
Rebuild from Scratch
Every page is regenerated from clean templates using the client's brand. No jQuery, no framework, no WordPress infrastructure. Just fast HTML and CSS.
Brand configuration
Read colors, fonts, logo, phone, social links from project.json
shared-layoutLayout generation
Generate header, navigation, footer, CTA banners, and all CSS from brand config
shared-layoutPage templating
Apply type-specific templates: procedure (2-col + sidebar), blog (reading layout), gallery (image grid)
generate-pageCSS inlining
All styles inlined per page — zero external stylesheets, zero render-blocking resources
wp-rebuildAccessibility baked in
WCAG AA contrast ratios, semantic landmarks, focus indicators, link underlines
shared-layout198 pages • 4.2 MB total HTML (was 47 MB with Divi)
Optimize
Compress images, strip bloat, maximize performance
Step 5
Image Optimization
Every image is converted, resized, and properly loaded for maximum speed without visible quality loss.
WebP conversion
Convert all JPG/PNG to WebP at quality 80 — visually identical, 30-50% smaller
optimize-imagesHTML reference updates
Update every img src, srcset, CSS background-image, and gallery link to WebP
optimize-imagesLazy loading
Add loading="lazy" to below-fold images, keep first 2 per page eager for LCP
optimize-imagesPriority hints
Prune fetchpriority="high" to exactly one per page (the LCP candidate)
optimize-images1,442 images converted • 1,908 lazy-load attributes added
Step 6
Performance Tuning
Strips any remaining WordPress infrastructure that slipped through, defers non-critical resources, and ensures zero render-blocking.
Unused JS removal
Strip mediaelement, wp-embed, divi-filter, jquery.cookie — scripts the static site doesn't need
optimize-performanceCSS deferral
Convert non-critical CSS to print media with onload swap (blog styles, tooltips, animations)
optimize-performanceVideo optimization
Comment out hero videos for performance, keep poster images as static backgrounds
optimize-performanceFont optimization
Preconnect to font CDN, subset fonts to used characters, use font-display: swap
On clean rebuild: nothing to strip (zero WP bloat in output)
Quality & Security
SEO audit, security hardening, accessibility, and QA testing
Step 7
SEO Audit & Auto-Fix
A 10-point SEO audit scans every page and auto-fixes everything it finds. Not a report — the skill modifies the HTML directly.
Canonical URLs
Ensure every page has absolute canonical pointing to production domain
seo-fixMeta optimization
Validate title length, meta description content and length
seo-fixSchema markup
Fix empty/relative URLs in JSON-LD structured data, remove broken SearchActions
seo-fixHeading structure
Ensure exactly one H1 per page, proper heading hierarchy
seo-fixOpen Graph tags
Fix og:url, og:image, og:site_name for social sharing
seo-fixSitemap generation
Generate sitemap.xml with lastmod dates for all pages
seo-fixDead page detection
Detect error pages (502s, 404s) that were captured instead of real content
seo-fix53 issues found • 53 auto-fixed • Final score: 100
Step 8
Security Hardening
Comprehensive security setup — not just headers, but the full Cloudflare security stack protecting the site from attacks.
Security headers
HSTS with preload, Content Security Policy, X-Frame-Options, Referrer-Policy
cf-security-headersBot protection
Cloudflare Bot Management + Turnstile on forms (invisible CAPTCHA alternative)
DDoS mitigation
Cloudflare's automatic DDoS protection at the edge — no server to overwhelm
SSL/TLS
Full (strict) SSL with automatic certificate management, minimum TLS 1.2
WAF rules
Web Application Firewall rules blocking SQL injection, XSS, and common attack patterns
Staging isolation
X-Robots-Tag: noindex on .pages.dev URLs — Google never indexes the test site
cf-security-headersStep 9
Forms & Interactive Features
WordPress form plugins and third-party widgets are replaced with native alternatives powered by Cloudflare's edge infrastructure.
Form detection
Identify all forms on the site: Gravity Forms, CF7, GoHighLevel iframes
formsWorkers function
Generate a Cloudflare Pages Function (/api/submit) to handle form POST requests at the edge
formsD1 database
Create a serverless SQLite database (Cloudflare D1) to store every submission
formsTurnstile protection
Add Cloudflare Turnstile (invisible CAPTCHA) to block bot submissions
formsEmail notifications
SendGrid integration sends formatted HTML emails to staff on each submission
formsNative HTML form
Replace iframe widgets with clean HTML forms matching the site's brand
formsWorkers + D1 + Turnstile + SendGrid — zero third-party iframes
Step 10
Quality Assurance
Multi-layered testing ensures nothing ships broken. Every page is validated against Lighthouse, crawled for broken links, and visually compared to the original.
Lighthouse audit
Run performance, SEO, accessibility, and best practices audits against every page
pagespeedBroken link check
Crawl every internal and external link, flag 404s and redirects
site-crawlerVisual regression
Compare before/after screenshots to catch missing images, layout shifts, content changes
browser-ui-testingMobile testing
Verify responsive layouts at 375px, 768px, and 1024px breakpoints
browser-ui-testingForm testing
Submit test data through every form, verify D1 storage and email delivery
Accessibility testing
WCAG AA compliance: contrast ratios, keyboard navigation, screen reader landmarks
Static fidelity gate
Automated check for frozen carousels, dead widgets, unsized iframes — blocks deploy if found
static-fidelity0 failures across 198 pages
Deploy
Ship to production on Cloudflare's global network
Step 11
Cloudflare Setup & Deploy
The finished site is deployed to Cloudflare Pages with full infrastructure configuration — DNS, caching, redirects, and monitoring.
Pages project creation
Create Cloudflare Pages project, configure build output directory
cf-deployAsset upload
Upload all HTML, images, fonts, and static assets to Cloudflare's CDN (300+ edge locations)
cf-deployCustom domain
Configure DNS records (CNAME) to point the client's domain to Cloudflare Pages
SSL certificate
Automatic SSL certificate provisioning and renewal via Cloudflare
Redirect rules
Configure 301 redirects for old WordPress URLs that changed during rebuild
Cache rules
Set cache-control headers: immutable for hashed assets, short TTL for HTML
Analytics
Enable Cloudflare Web Analytics (privacy-first, no cookie consent needed)
Monitoring
Set up uptime monitoring and alerting for the production domain
3,619 files • 300+ CDN locations • Zero-downtime deploys