{"slug":"multi-brand-wordpress-deployment","title":"Multi-Brand WordPress Site Deployment Pipeline","tags":["deployment","local-seo","multi-site","brand-kit","performance"],"agent_summary":"13-phase pipeline for deploying production-ready local business WordPress sites with unique brand kits, 50+ pages of SEO content, schema, and Lighthouse 90+ performance targets.","trigger_phrases":["deploy wordpress site","multi-brand wordpress","local business wordpress build","wordpress brand kit","full site wordpress deployment"],"runnable":false,"markdown":"\n13-phase pipeline for deploying a production local business WordPress site. Each phase has a hard gate — do not proceed if the gate fails.\n\n## Inputs Required\n\n| Input | Required |\n|-------|---------|\n| Brand name | Yes |\n| Business type | Yes |\n| Primary location | Yes |\n| Domain | Yes |\n| GMB profile URL | Recommended |\n\n## Phase Overview\n\n| Phase | Name | Key Output |\n|-------|------|-----------|\n| 1 | Audit and Strategy | Keyword research, competitor benchmark |\n| 2 | Brand Kit | Unique colors, fonts, imagery DNA |\n| 3 | Architecture | Theme/builder selection, plugin stack |\n| 4 | Core Pages | Homepage, 10 service pages, essential pages |\n| 5 | Location Pages | 1 per location + 5 supporting subpages each |\n| 6 | Blog Content | 30 posts (20 general + 10 location-specific) |\n| 7 | Supporting Pages | 4 per service + 4 per location |\n| 8 | Image Optimization | WebP, geotagged EXIF, unique per brand |\n| 9 | SEO Implementation | Meta, schema, canonical, robots, sitemap |\n| 10 | Performance | LCP <2.5s, CLS <0.1, Lighthouse >=90 |\n| 11 | Form Testing | Submission, validation, rate limiting |\n| 12 | QA Audit | Cross-brand dedup, schema validation |\n| 13 | Deployment | GSC submit, GA4, monitoring |\n\n## Page Specifications\n\n| Page Type | Word Count | Schema |\n|-----------|-----------|--------|\n| Homepage | — | Organization + LocalBusiness |\n| Service pages | 1,200–1,600 | Service + FAQPage |\n| Location pages | 500–750 | LocalBusiness + AggregateRating + FAQPage |\n| Blog (general) | 2,000–2,500 | BlogPosting |\n| Blog (location) | 1,500–1,800 | BlogPosting |\n| About | 600–800 | — |\n\n## QA Hard Stops\n\nStop deployment if any of these are true:\n\n- Design colors/fonts match another brand in the portfolio\n- LCP > 2.5s or CLS > 0.1 on any page\n- Schema errors in Google's Rich Results Test\n- Meta title > 66 chars or description outside 155–160 chars\n- Form submissions do not deliver email notifications\n- Missing canonical tags or incorrect canonical URLs\n- < 70% of blog posts link to at least one service page\n- Any missing geotagged images or duplicate image hashes across brands\n\n## Plugin Stack for WordPress Builds\n\n| Function | Plugin |\n|---------|--------|\n| SEO | Rank Math Pro |\n| Caching | WP Rocket |\n| Images | Optimole (WebP, lazy load) |\n| Security | Wordfence |\n| Backups | WPvivid |\n| Schema | Rank Math schema module |\n| Forms | WPForms or Gravity Forms |\n| Analytics | Site Kit (GA4) |\n\n## Image Standards\n\n- Format: WebP only\n- EXIF geotag: within 5 miles of GMB address\n- Naming: `[location]-[service]-[descriptor]-[date].webp`\n- Alt text: 55–75 chars — `[Service] in [Location] - [Brand] | [descriptor]`\n- Zero reuse across brands (maintain SHA256 hash manifest)\n","html":"<p>13-phase pipeline for deploying a production local business WordPress site. Each phase has a hard gate — do not proceed if the gate fails.</p>\n<h2>Inputs Required</h2>\n<p>| Input | Required |\n|-------|---------|\n| Brand name | Yes |\n| Business type | Yes |\n| Primary location | Yes |\n| Domain | Yes |\n| GMB profile URL | Recommended |</p>\n<h2>Phase Overview</h2>\n<p>| Phase | Name | Key Output |\n|-------|------|-----------|\n| 1 | Audit and Strategy | Keyword research, competitor benchmark |\n| 2 | Brand Kit | Unique colors, fonts, imagery DNA |\n| 3 | Architecture | Theme/builder selection, plugin stack |\n| 4 | Core Pages | Homepage, 10 service pages, essential pages |\n| 5 | Location Pages | 1 per location + 5 supporting subpages each |\n| 6 | Blog Content | 30 posts (20 general + 10 location-specific) |\n| 7 | Supporting Pages | 4 per service + 4 per location |\n| 8 | Image Optimization | WebP, geotagged EXIF, unique per brand |\n| 9 | SEO Implementation | Meta, schema, canonical, robots, sitemap |\n| 10 | Performance | LCP &#x3C;2.5s, CLS &#x3C;0.1, Lighthouse >=90 |\n| 11 | Form Testing | Submission, validation, rate limiting |\n| 12 | QA Audit | Cross-brand dedup, schema validation |\n| 13 | Deployment | GSC submit, GA4, monitoring |</p>\n<h2>Page Specifications</h2>\n<p>| Page Type | Word Count | Schema |\n|-----------|-----------|--------|\n| Homepage | — | Organization + LocalBusiness |\n| Service pages | 1,200–1,600 | Service + FAQPage |\n| Location pages | 500–750 | LocalBusiness + AggregateRating + FAQPage |\n| Blog (general) | 2,000–2,500 | BlogPosting |\n| Blog (location) | 1,500–1,800 | BlogPosting |\n| About | 600–800 | — |</p>\n<h2>QA Hard Stops</h2>\n<p>Stop deployment if any of these are true:</p>\n<ul>\n<li>Design colors/fonts match another brand in the portfolio</li>\n<li>LCP > 2.5s or CLS > 0.1 on any page</li>\n<li>Schema errors in Google's Rich Results Test</li>\n<li>Meta title > 66 chars or description outside 155–160 chars</li>\n<li>Form submissions do not deliver email notifications</li>\n<li>Missing canonical tags or incorrect canonical URLs</li>\n<li>&#x3C; 70% of blog posts link to at least one service page</li>\n<li>Any missing geotagged images or duplicate image hashes across brands</li>\n</ul>\n<h2>Plugin Stack for WordPress Builds</h2>\n<p>| Function | Plugin |\n|---------|--------|\n| SEO | Rank Math Pro |\n| Caching | WP Rocket |\n| Images | Optimole (WebP, lazy load) |\n| Security | Wordfence |\n| Backups | WPvivid |\n| Schema | Rank Math schema module |\n| Forms | WPForms or Gravity Forms |\n| Analytics | Site Kit (GA4) |</p>\n<h2>Image Standards</h2>\n<ul>\n<li>Format: WebP only</li>\n<li>EXIF geotag: within 5 miles of GMB address</li>\n<li>Naming: <code>[location]-[service]-[descriptor]-[date].webp</code></li>\n<li>Alt text: 55–75 chars — <code>[Service] in [Location] - [Brand] | [descriptor]</code></li>\n<li>Zero reuse across brands (maintain SHA256 hash manifest)</li>\n</ul>\n"}