§ 00 / Meta Data
SEO Meta Values
Page-Level · City01
Meta Title, Description, Keywords, plus shared logo image and canonical URL.
| Element · Label | Spec / Word Count | Custom Value Name | Key |
|---|---|---|---|
| Meta Data Values (SEO) | |||
| Meta Title | ≤ 70 chars | #014-A [City01] Meta Title | {{custom_values.014a}} |
| Meta Description | ≤ 165 chars | #014-B [City01] Meta Description | {{custom_values.014b}} |
| Meta Keywords | 5–15 keywords | #014-C [City01] Meta Keywords | {{custom_values.014c}} |
| Meta Image | logo URL | [Business] 07: Logo URL01 (Footer) {ref:01L} | {{custom_values.logo_url_4_dark_bg}} |
| Canonical URL | URL | Site URL + #014-J [City01] URL Path | {{custom_values.url}}{{custom_values.014j}} |
§ 01 / Global Header
Top Bar & Navigation
Global · Sitewide
Fixed header displayed sitewide — logo, primary nav, CTA button, and contact strip.
Global · Sitewide Header
Business Logo
Alt Text: Business Name
HomeServices ▾Service Areas ▾AboutContactBlog
✉ business email
custom html / javascript
☎ phone number
| Element · Label | Spec / Word Count | Custom Value Name | Key |
|---|---|---|---|
| Logo & Branding | |||
| Logo ImageTop-left brand mark · light-background variant | URL · image | [Business] 08: Logo URL02 (Header) {ref:02L} | {{custom_values.logo_image_url__4_light_bg}} |
| Logo Image Alt TextAccessibility / SEO alt text on the logo image | Business Name | [Business] 01: Name | {{custom_values.business_name}} |
| Logo Image Action LinkClicking the logo returns to home | Website URL | [Website] 01: Website URL | {{custom_values.url}} |
| Primary Navigation | |||
| Primary NavigationHome / Services / Service Areas / About / Contact / Blog · dropdowns populated from service + city lists | hard coded | Structural | — |
| Header CTA ButtonOpens Pop-Up on click | 2–4 words | 20I [Global] Global Header Button CTA | {{custom_values.020i}} |
| Contact Strip (red bar) | |||
| Business EmailLeft of contact strip | email address | [Business] 03: Email (display) | {{custom_values.business_email}} |
| Display Phone NumberRight of contact strip | phone | [Website] 02: Business Phone (display) | {{custom_values.client_business_phone_display}} |
| Custom HTML · Social Profile URLsLinks to Google / Facebook / Yelp / Instagram | Social Profile URLs | [Website] 15a / 15b / 15c · Profile URL — Google / Facebook / Yelp [Website] 13: Profile URL — Instagram |
{{custom_values.url_google}}{{custom_values.url_facebook}}{{custom_values.url_yelp}}{{custom_values.ig_url}} |
§ 02 / Hero
Above-the-Fold Hero
#014-D · #014-F · Mobile-Only CTA01
Background image, composed eyebrow ('service1 in cityXX'), H1, plus a mobile-only stacked CTA01 button.
Hero · Full-Width Background desktop + mobile
Background Image · 1920×1080 · {custom_values.014f}
H2 Sub-Headline · {service1} in {city01}
H1 Header · 5–9 words
Mobile Only
| Element · Label | Spec / Word Count | Custom Value Name | Key |
|---|---|---|---|
| Hero Background | |||
| Background Image | 1920×1080 | #014-F [City01] Background01 | {{custom_values.014f}} |
| Hero Headlines | |||
| H2 Sub-HeadlineComposed eyebrow: service1 in cityXX | composed | {{service1}} in {{cityXX}} | {{custom_values.service1}}{{custom_values.city01}} |
| H1 Header | 5–9 words | #014-D [City01] H1 Header | {{custom_values.014d}} |
| Image Alt Text | alt text | #014-E [City01] Image Alt Text | {{custom_values.014e}} |
| Mobile-Only CTA Button | |||
| CTA01 · Top Line | button label | 20J [Global] Service/City/Article CTA01 (Top) | {{custom_values.020j}} |
| CTA01 · Bottom Line | button label | 20K [Global] Service/City/Article CTA01 (Bottom) | {{custom_values.020k}} |
§ 03 / Services Quick Tabs
Global Services Quick Tabs
Global · Desktop Only
Three icon tabs (Service01–03) sit beneath the hero on desktop. Identical block across all internal pages.
Global Services Quick Tabs desktop only
⚙️
Service 01
🔧
Service 02
🛠️
Service 03
| Element · Label | Spec / Word Count | Custom Value Name | Key |
|---|---|---|---|
| Service Tab 01 | |||
| Service Icon 01 | icon image | #020-A [Global] Service Icon01 | {{custom_values.020a}} |
| Service Name (H3) | service name | [Website] 04: Service01 | {{custom_values.service1}} |
| Tab Link | URL | Site URL + Service01 slug | {{custom_values.url}}{{custom_values.002j}} |
| Service Tab 02 | |||
| Service Icon 02 | icon image | #020-B [Global] Service Icon02 | {{custom_values.020b}} |
| Service Name (H3) | service name | [Website] 05: Service02 | {{custom_values.service2}} |
| Tab Link | URL | Site URL + Service02 slug | {{custom_values.url}}{{custom_values.003j}} |
| Service Tab 03 | |||
| Service Icon 03 | icon image | #020-C [Global] Service Icon03 | {{custom_values.020c}} |
| Service Name (H3) | service name | [Website] 06: Service03 | {{custom_values.service3}} |
| Tab Link | URL | Site URL + Service03 slug | {{custom_values.url}}{{custom_values.004j}} |
§ 04 / Content Section 01
Lead Content + Stacked CTA02
14K → 14Q · #014-G/-H
First long-form content block. Lead H2 + paragraph + image, then stacked CTA02 inserted before H3 + body paragraphs continue.
Content Section 01 · Lead + Image + CTA02
H2 Header · 5–9 words
2 paragraphs · ~140 words
#014-G Content01
{{ref:09}}
{{ref:09}}
H3 Headline 02 · 5–9 words
3 paragraphs · 175 words
H3 Headline 03 · 5–9 words
3 paragraphs · 140 words
#014-H Content02
2 paragraphs · 150 words · {{014q}}
| Element · Label | Spec / Word Count | Custom Value Name | Key |
|---|---|---|---|
| Lead Headline + Paragraph | |||
| H2 Content Headline 01 | 5–9 words | 14K [City01] H2 Content Headline01 | {{custom_values.014k}} |
| Content Paragraph 01 | 2 paragraphs · 140 words | 14L [City01] Content Paragraph01 | {{custom_values.014l}} |
| Content Image 01 | 450×450 / 350×350 | #014-G [City01] Content01 | {{custom_values.014g}} |
| Stacked CTA02 (between image and Headline 02) | |||
| CTA02 · Top Line | button label | 20L [Global] Service/City/Article CTA02 (Top) | {{custom_values.020l}} |
| CTA02 · Bottom Line | button label | 20M [Global] Service/City/Article CTA02 (Bottom) | {{custom_values.020m}} |
| Long-Form Continuation | |||
| H3 Content Headline 02 | 5–9 words | 14M [City01] H3 Content Headline02 | {{custom_values.014m}} |
| Content Paragraph 02 | 3 paragraphs · 175 words | 14N [City01] Content Paragraph02 | {{custom_values.014n}} |
| H3 Content Headline 03 | 5–9 words | 14O [City01] H3 Content Headline03 | {{custom_values.014o}} |
| Content Paragraph 03 | 3 paragraphs · 140 words | 14P [City01] Content Paragraph03 | {{custom_values.014p}} |
| Content Image 02 | 450×450 / 350×350 | #014-H [City01] Content02 | {{custom_values.014h}} |
| Content Paragraph 04 | 2 paragraphs · 150 words | 14Q [City01] Content Paragraph04 | {{custom_values.014q}} |
§ 05 / Neighborhoods
Neighborhoods in this City
#014-z.C1N1–3 · v6.0 NEW
Three image cards with neighborhood names. Each image links + sub-headline links to the same neighborhood URL. Image alt text composes 'service1 Services in cityXX'.
Neighborhoods Section NEW · v6.0
Neighborhoods in {{city01}}
175×127 · N1
Neighborhood 01 →
175×127 · N2
Neighborhood 02 →
175×127 · N3
Neighborhood 03 →
| Element · Label | Spec / Word Count | Custom Value Name | Key |
|---|---|---|---|
| Neighborhoods · 3 Cards · prefix C1 | |||
| Section H3 Header | composed | "Neighborhoods in {{city01}}" | {{custom_values.city01}} |
| Card 01 · Neighborhood 1 | |||
| Image | 175×127 | #014-z.C1N1 [City01] Neighborhood01 Image | {{custom_values.014c1n1image}} |
| Image Alt Text | composed | "{{service1}} Services in {{city01}}" | {{custom_values.service1}}{{custom_values.city01}} |
| Image Action Link | URL | #014-z.C1N1 [City01] Neighborhood01 Link | {{custom_values.014c1n1link}} |
| H6 Sub-Headline | neighborhood name | #014-z.C1N1 [City01] Neighborhood01 | {{custom_values.014c1n1}} |
| Sub-Headline Link | URL | Same as Image Action Link | {{custom_values.014c1n1link}} |
| Card 02 · Neighborhood 2 | |||
| Image | 175×127 | #014-z.C1N2 [City01] Neighborhood02 Image | {{custom_values.014c1n2image}} |
| Image Alt Text | composed | "{{service1}} Services in {{city01}}" | {{custom_values.service1}}{{custom_values.city01}} |
| Image Action Link | URL | #014-z.C1N2 [City01] Neighborhood02 Link | {{custom_values.014c1n2link}} |
| H6 Sub-Headline | neighborhood name | #014-z.C1N2 [City01] Neighborhood02 | {{custom_values.014c1n2}} |
| Sub-Headline Link | URL | Same as Image Action Link | {{custom_values.014c1n2link}} |
| Card 03 · Neighborhood 3 | |||
| Image | 175×127 | #014-z.C1N3 [City01] Neighborhood03 Image | {{custom_values.014c1n3image}} |
| Image Alt Text | composed | "{{service1}} Services in {{city01}}" | {{custom_values.service1}}{{custom_values.city01}} |
| Image Action Link | URL | #014-z.C1N3 [City01] Neighborhood03 Link | {{custom_values.014c1n3link}} |
| H6 Sub-Headline | neighborhood name | #014-z.C1N3 [City01] Neighborhood03 | {{custom_values.014c1n3}} |
| Sub-Headline Link | URL | Same as Image Action Link | {{custom_values.014c1n3link}} |
§ 06 / Things to Do
Things to Do in this City
#014-z.TTD1–3 · v6.0 NEW
Three image cards with local activities. Same card pattern as Neighborhoods: image + alt + link + sub-headline + sub-headline link.
Things to Do Section NEW · v6.0
Things to Do in {{city01}}
175×127 · TTD1
Activity 01 →
175×127 · TTD2
Activity 02 →
175×127 · TTD3
Activity 03 →
| Element · Label | Spec / Word Count | Custom Value Name | Key |
|---|---|---|---|
| Things to Do · 3 Cards | |||
| Section H3 Header | composed | "Things to Do in {{city01}}" | {{custom_values.city01}} |
| Card 01 · Activity 1 | |||
| Image | 175×127 | #014-z.TTD1 [City01] Things to Do01 Image | {{custom_values.014ttd1image}} |
| Image Alt Text | composed | "{{service1}} Services in {{city01}}" | {{custom_values.service1}}{{custom_values.city01}} |
| Image Action Link | URL | #014-z.TTD1 [City01] Things to Do01 Link | {{custom_values.014ttd1link}} |
| H6 Sub-Headline | activity name | #014-z.TTD1 [City01] Things to Do01 | {{custom_values.014ttd1}} |
| Sub-Headline Link | URL | Same as Image Action Link | {{custom_values.014ttd1link}} |
| Card 02 · Activity 2 | |||
| Image | 175×127 | #014-z.TTD2 [City01] Things to Do02 Image | {{custom_values.014ttd2image}} |
| Image Alt Text | composed | "{{service1}} Services in {{city01}}" | {{custom_values.service1}}{{custom_values.city01}} |
| Image Action Link | URL | #014-z.TTD2 [City01] Things to Do02 Link | {{custom_values.014ttd2link}} |
| H6 Sub-Headline | activity name | #014-z.TTD2 [City01] Things to Do02 | {{custom_values.014ttd2}} |
| Sub-Headline Link | URL | Same as Image Action Link | {{custom_values.014ttd2link}} |
| Card 03 · Activity 3 | |||
| Image | 175×127 | #014-z.TTD3 [City01] Things to Do03 Image | {{custom_values.014ttd3image}} |
| Image Alt Text | composed | "{{service1}} Services in {{city01}}" | {{custom_values.service1}}{{custom_values.city01}} |
| Image Action Link | URL | #014-z.TTD3 [City01] Things to Do03 Link | {{custom_values.014ttd3link}} |
| H6 Sub-Headline | activity name | #014-z.TTD3 [City01] Things to Do03 | {{custom_values.014ttd3}} |
| Sub-Headline Link | URL | Same as Image Action Link | {{custom_values.014ttd3link}} |
§ 07 / Top Sites
Top Sites · H5 Header
#014-zz.TS1–3 · v6.0 NEW · H5 (not H3)
Three image cards with notable local sites. Header level is H5, intentionally smaller than the Neighborhoods/Things to Do H3 — flag this when populating.
Top Sites Section NEW · v6.0 · H5
Top Sites in {{city01}} H5 (not H3)
175×127 · TS1
Top Site 01 →
175×127 · TS2
Top Site 02 →
175×127 · TS3
Top Site 03 →
| Element · Label | Spec / Word Count | Custom Value Name | Key |
|---|---|---|---|
| Top Sites · 3 Cards · H5 Heading (not H3) | |||
| Section H5 Header | composed | "Top Sites in {{city01}}" | {{custom_values.city01}} |
| Card 01 · Top Site 1 | |||
| Image | 175×127 | #014-zz.TS1 [City01] Top Sites01 Image | {{custom_values.014ts1image}} |
| Image Alt Text | composed | "{{service1}} Services in {{city01}}" | {{custom_values.service1}}{{custom_values.city01}} |
| Image Action Link | URL | #014-zz.TS1 [City01] Top Sites01 Link | {{custom_values.014ts1link}} |
| H6 Sub-Headline | site name | #014-zz.TS1 [City01] Top Sites01 | {{custom_values.014ts1}} |
| Sub-Headline Link | URL | Same as Image Action Link | {{custom_values.014ts1link}} |
| Card 02 · Top Site 2 | |||
| Image | 175×127 | #014-zz.TS2 [City01] Top Sites02 Image | {{custom_values.014ts2image}} |
| Image Alt Text | composed | "{{service1}} Services in {{city01}}" | {{custom_values.service1}}{{custom_values.city01}} |
| Image Action Link | URL | #014-zz.TS2 [City01] Top Sites02 Link | {{custom_values.014ts2link}} |
| H6 Sub-Headline | site name | #014-zz.TS2 [City01] Top Sites02 | {{custom_values.014ts2}} |
| Sub-Headline Link | URL | Same as Image Action Link | {{custom_values.014ts2link}} |
| Card 03 · Top Site 3 | |||
| Image | 175×127 | #014-zz.TS3 [City01] Top Sites03 Image | {{custom_values.014ts3image}} |
| Image Alt Text | composed | "{{service1}} Services in {{city01}}" | {{custom_values.service1}}{{custom_values.city01}} |
| Image Action Link | URL | #014-zz.TS3 [City01] Top Sites03 Link | {{custom_values.014ts3link}} |
| H6 Sub-Headline | site name | #014-zz.TS3 [City01] Top Sites03 | {{custom_values.014ts3}} |
| Sub-Headline Link | URL | Same as Image Action Link | {{custom_values.014ts3link}} |
§ 08 / City Map Embed
Custom HTML Map
#014-zzz.Map · v6.0 NEW
Custom HTML element holding an iframe. The CV stores only the URL; the iframe wrapper (height=225, keyword string) is hard-coded.
City Map Embed NEW · v6.0
iframe · width 100% · height 225 · src={{custom_values.014c1map}}
Iframe wraps with hard-coded keyword string covering service1/2/3 in/near city01
| Element · Label | Spec / Word Count | Custom Value Name | Key |
|---|---|---|---|
| City Map Embed · iframe URL Only | |||
| Map Embed URLUsed inside an iframe with width=100%, height=225, plus hard-coded keyword string | URL | #014-zzz.Map [City01] Map Embed (URL Only) | {{custom_values.014c1map}} |
| Iframe keyword stringService01/02/03 + city combinations · hard coded inside iframe | composed | service1/2/3 in/near city · keyword set | {{custom_values.service1}}{{custom_values.service2}}{{custom_values.service3}}{{custom_values.city01}} |
§ 09 / Content Section 02
Wrap-Up + Stacked CTA03
14R → 14V · final headline H5
Second long-form content block. Last headline (Content Headline 05) is H5 in v6.0 (was H4 in v5).
Content Section 02 · Wrap-Up + CTA03 final headline = H5
H4 Headline 04 · 5–9 words
3 paragraphs · 140 words
#014-I Content03
2 paragraphs · 150 words
H5 Headline 05 · 5–9 words H5 not H4
3 paragraphs · 175 words
| Element · Label | Spec / Word Count | Custom Value Name | Key |
|---|---|---|---|
| Wrap-Up Content · ends with H5 (not H4) | |||
| H4 Content Headline 04 | 5–9 words | 14R [City01] H4 Content Headline04 | {{custom_values.014r}} |
| Content Paragraph 05 | 3 paragraphs · 140 words | 14S [City01] Content Paragraph05 | {{custom_values.014s}} |
| Content Image 03 | 450×450 / 350×350 | #014-I [City01] Content03 | {{custom_values.014i}} |
| Content Paragraph 06 | 2 paragraphs · 150 words | 14T [City01] Content Paragraph06 | {{custom_values.014t}} |
| H5 Content Headline 05Heading level changed from H4 → H5 in v6.0 spec | 5–9 words | 14U [City01] H5 Content Headline05 | {{custom_values.014u}} |
| Content Paragraph 07 | 3 paragraphs · 175 words | 14V [City01] Content Paragraph07 | {{custom_values.014v}} |
| Stacked CTA03 Wrap-Up | |||
| CTA03 · Top Line | button label | 20N [Global] Service/City/Article CTA03 (Top) | {{custom_values.020n}} |
| CTA03 · Bottom Line | button label | 20O [Global] Service/City/Article CTA03 (Bottom) | {{custom_values.020o}} |