Patio Cover & Pergola Teardown — Phoenix
Deep profiles of the top organic sites ranking for "patio covers phoenix" (Outshine Patio Cover & Solara Adjustable Patio Cover). Source-level analysis: structure, offers, CTAs, chat, schema, tracking. Live SERP captured 2026-10-05 (DataForSEO, mobile).
Phoenix Patio Covers — Competitive Teardown
Research date: 2026-10-06 (PDT). Method: raw-HTML teardown via curl (homepage + sitemap.xml + robots.txt + key sibling pages), JSON-LD extraction from raw HTML, Squarespace form-context JSON parsing, PyMuPDF read of linked warranty PDF. Niche: patio covers & pergolas (Alumawood/aluminum, solid insulated vs open lattice vs louvered), Phoenix metro. Client: DropSites (ready-made sites for home-service contractors) building "the Ultimate Patio Cover Site."
Market frame: Phoenix organic SERP for "patio covers phoenix" is nearly empty of contractor sites (Reddit/Quora/Home Depot occupy it), so these two map-pack winners ARE the market. DIY Google Shopping layer ($425–$2,037 kits) is a real competitor; neither site prices against it explicitly.
Site 1: Outshine Patio Cover (www.outshinepatiocover.com)
Map-pack #1 for "patio covers phoenix"; also surfaces with its Avondale city page in Google Images. Small family-owned installer, Squarespace-built, running Google Ads conversion tracking.
Business Snapshot (who, how long, where, size signals, licenses/insurance: ROC #)
- Who: "Outshine Patio Cover is a family owned company, who offers over a decade of industry expertise to the Phoenix Metropolitan areas. Established in 2020…" (About page). Residential focus ("residential installation services"; forms/gallery reference both residential and business clients in meta text but body copy is residential).
- Operating since: 2020 (repeated on homepage and city pages: "Since 2020, we've been a licensed and reliable patio installation company"). "Over a decade of industry expertise" is owner experience, not company age — a small internal tension in the copy.
- Address / NAP: 3310 North 35th Avenue, Phoenix, AZ 85017, United States (Organization + LocalBusiness JSON-LD). Email: outshinepatiocover@gmail.com (Gmail address on a commercial site — size signal and trust weakness).
- Phones (business lines): 602-585-2768 (primary; in LocalBusiness JSON-LD
telephoneandcontactPhoneNumbersite setting) and 602-446-3384 (listed on /contact-us as a second line). Financing hotline 1-800-254-9560 belongs to HFS Financial, not the business. - License/insurance: "Yes! We are proud to hold the necessary licenses, bonds, and insurance to operate with confidence and reliability; ROC #328454." (homepage FAQ). Product page FAQ shortens it to "Yes! ROC #328454". Arizona ROC (Registrar of Contractors) #328454 is the only license identifier on the site; no bond/insurance certificate numbers, no badge graphics.
- Business hours (from JSON-LD
openingHours): Mon–Fri 08:00–15:00 ("8am - 3pm" in site settings) — a small-shop window that is itself a size signal (and a conversion risk: estimate requests after 3pm get no same-day response). - Social: Facebook (/outshinepatiocover), Instagram (/outshinepatiocover), TikTok (@outshinepatiocover) — listed in
sameAsJSON-LD and footer social icons. - Size signals: single location, family-owned, no team photos/names on About, Gmail address, no live chat, forms-only intake, cart icon with
0items (Squarespace default chrome — no e-commerce actually used).
Offers & Pricing (free estimates, published cost ranges, price anchors, guarantees, warranties)
- Core offer: custom aluminum patio cover installation — four product lines:
- 4K Aluminum Covers — "modern and sleek look… durability… low maintenance"; explicitly aluminum framing: "Choose the preferred framing material for patio covers, carports, and screened room enclosures: aluminum." Handles "Arizona Monsoon season" by name. Colors: Adobe Tan, Apollo Gray, Black, Expresso, Quartz White (5 options).
- Lattice Patio Covers / Lattice Pergolas — partial shade, "sunlight to filter through," fully customizable styles.
- Solid Flat Pan Covers — full shade/rain protection, "sturdy materials," low maintenance.
- Insulated LRP (Laminated Roof Panels) — "crafted to control temperature and minimize noise… keep you comfortable in all conditions" (summer cool / winter warm framing).
- Materials framing: aluminum positioned against wood ("Compared to traditional wooden covers, our aluminum option requires minimal upkeep… won't have to worry about warping, cracking, or dealing with pest infestations"). No Alumawood/Amerimax/Structures brand names on-site — the product brand is the manufacturer Four Seasons Building Products (revealed only via the warranty PDF, see Financing & Warranty). "4K Aluminum" appears to be the FSBP product line carried. DIY kits ($425–$2,037 Google Shopping layer) are never mentioned or countered.
- Free estimate: Yes, hard sell. "Getting started is easy with our complimentary estimate service, where we assess your outdoor area and discuss your preferred styling" (homepage). "schedule a free estimate," "in-person free estimate" (FAQ: installation timeline determined "After conducting an in-person free estimate").
- Published pricing: None. No dollar figures anywhere across the 13 pages fetched. Quote-only. No "cost of patio covers in Phoenix" page, no price ranges, no financing payment examples. The only price-adjacent content is financing terms (below).
- Guarantees: none stated beyond the manufacturer warranty. No satisfaction guarantee, no price-match, no timeline guarantee ("we will be able to accurately determine the timeframe" only after the estimate — an explicit refusal to commit to install duration).
- Warranty (site claim): "we are pleased to provide a limited lifetime warranty from our trusted manufacturer for added assurance and peace of mind." Details link goes to a PDF hosted on Home Depot's CDN (images.homedepot-static.com) — see next section.
- Add-ons: forms list a "Privacy Wall" checkbox option (in /contact-us form), i.e., patio cover add-on beyond the four lines. No awnings, screens, pergola-vs-awning explainer, no gazebos. Reviews mention "awnings" ("They did 2 awnings for me. The first was about a year ago (style you can open)") — meaning at least one louvered/adjustable product has been installed, but there is no adjustable/louvered product page — a real gap (the reviews page even brags about an "open" style awning the site never sells).
Financing & Warranty Mechanics (financing partners/lenders named, warranty terms)
- Financing partner: HFS Financial (hfsfin.com / hfsfinancial.net / apply.hfsfinancial.net). On-site "WE OFFER FINANCING!" accordion, verbatim mechanics:
- "What are the loan requirements? The loan options are based on your income and creditworthiness."
- "How can I contact HFS for financing inquiries? Call 1-800-254-9560 or inquire at www.hfsfin.com."
- "How long will it take to receive funding? Most loans are funded within 48 hours of approval. Funds are sent directly to the client." (i.e., unsecured personal-style loan funded to the homeowner, not a contractor-drawn loan.)
- CTAs: "APPLY NOW" and a banner image linking to
https://apply.hfsfinancial.net/prequalification?...(deep link with old UTM-ish_gaparams — link reused since ~Jan 2023 per the_gatimestamp). - Every major form asks "Are you interested in financing? Yes/No" — financing qualification is baked into lead intake (smart, template-worthy).
- Warranty mechanics: "limited lifetime warranty from our trusted manufacturer." The linked PDF is Four Seasons Building Products (FSBP) — Limited Lifetime Material and Labor Warranty (2 pages, hosted on Home Depot's static CDN, © 2016 FSBP, Buena Park CA). Verbatim key terms from the PDF:
- Coverage: lattice, patio cover, carport and awning components "will not peel, blister, flake, chip, split, rust or crack" for the life of the original retail purchaser.
- Transferable to a subsequent owner during the first ten (10) years (then warranty runs 10 years from install, manufacturing defects only).
- Claims: written notice within 30 days of discovery, before any repairs ("Any repairs or attempted repair made before inspection by FSBP may void" it); FSBP has 120 days to deliver remedy.
- Proration: years 0–3 refinished/repaired/replaced at no cost (includes labor); years 4–15 no cost "other than labor and shipping"; year 16+ 50% of current wholesale cost of defective product + labor/shipping on owner.
- "Defects in installation are warranted, if at all, by the installers" — Outshine makes no separate workmanship/labor warranty claim of its own on the site (leak: installer workmanship warranty is a stealable differentiator).
Website Anatomy (every page + purpose; homepage section order; page count)
Platform: Squarespace (Fluid Engine; assets.squarespace.com, static1.squarespace.com, vta site-bundle). Sitemap.xml lists 20 URLs (Squarespace auto-sitemap; robots.txt points to it):
| URL | Title (verbatim <title>) | Purpose | |
|---|---|---|---|
/home (root /) | `Outshine Patio Cover \ | Lattice, Insulated Solid` | Homepage, main conversion hub |
/view-all-services | View Our Patio Services — Patio Cover Installers | Services hub (4 lines, self-linking) | |
/4k-aluminum-patio-cover-phoenix-az | 4K Aluminum in Phoenix, AZ — Patio Cover Installers | Product page: 4K Aluminum | |
/lattice-pergolas-patio-cover-phoenix-az | Lattice Pergolas in Phoenix — Patio Cover Installers | Product page: lattice/pergola | |
/insulated-lrp-patio-cover-phoenix-az | Insulated Roof Panels in Phoenix — Patio Cover Installers | Product page: insulated LRP | |
/solid-flat-pan-patio-cover-phoenix | Solid Flat Pan Cover in Phoenix — Patio Cover Installers | Product page: solid flat pan | |
/gallery-outshine-patio-cover | Our Patio Cover Gallery — Patio Cover Installers | Main project gallery | |
/4k-aluminum-gallery-phoenix-az, /lattice-pergola-gallery-phoenix-az, /solid-flat-pan-gallery-phoenix-az | (per-product galleries, not fetched) | Product-specific galleries | |
/reviews | `Local Reviews \ | Phoenix — Patio Cover Installers` | Testimonials page |
/about-us | About Outshine Patio Cover — Patio Cover Installers | Trust/story page | |
/about-outshine-patio-cover | (footer "About" link target — likely alias/redirect of about-us) | Nav duplicate | |
/contact-us | Contact Outshine Patio Cover — Patio Cover Installers | Contact form + 2 phone numbers | |
/contact-1 | Contact — Patio Cover Installers | DEAD page — renders "This folder does not contain any pages." yet sits in the sitemap | |
/schedule-estimate | Schedule Your Patio Estimate — Patio Cover Installers | Estimate-request form page | |
/outshine-patio-cover-installation-{avondale,phoenix,tempe,chandler,mesa}-az | e.g. Avondale Patio Covers — Patio Cover Installers, Phoenix Patio Covers — Patio Cover Installers | 5 city pages (city-page SEO) | |
/patio-cover-services | (footer link; folder in nav) | Services folder/alias | |
/cart | — | Squarespace chrome leftover (unused) |
Page count: ~20 indexed URLs (25 incl. aliases/galleries). Homepage section order (top→bottom):
- Announcement bar (click-to-call strip: "Click here to call us now to learn more about how we can install your next cover.")
- Header nav: Home | Services (folder: View All, Lattice Covers, Solid Flat Pan Covers, Insulated LRP Covers, 4K Aluminum Covers) | Gallery | Reviews | About | Contact | Request Estimate (primary CTA button)
- Hero: H1 "PATIO COVER INSTALLATION SERVICES" + "Learn about us" link + full-width imagery
- H2 "LICENSED, PATIO & PERGOLA RESIDENTIAL INSTALLATION SERVICES" — intro copy w/ city list
- H2 "WHAT TYPE OF PATIO SERVICES DO WE OFFER?" — 4 product cards (4K Aluminum, Lattice, Solid Flat Pan, Insulated LRP) each w/ "Click here to learn more" deep links
- "OUR GALLERY" embedded gallery strip
- "WE OFFER FINANCING!" — accordion (3 Q&As) + HFS banner + "APPLY NOW"
- H2 "LEARN ABOUT OUR LATTICE, 4K ALUMINUM, INSULATED LRP & SOLID COVERS." — style/color copy + free-estimate pitch + inline inquiry form
- H2 "REQUEST YOUR FREE ESTIMATE" — FAQ accordion (6 Q&As: licensed/bonded/insured, services offered, warranty, cleaning, install duration, customization)
- "LEARN MORE ABOUT US" CTA
- Footer: Services links (4 products) | Warranty (→ FSBP PDF) | About | Apply for Financing (→ HFS) | Gallery | Schedule Estimate | "Connect with us" — EMAIL NOW / CALL NOW buttons + social icons (FB/IG/TikTok)
Conversion Mechanics (forms w/ field lists, tap-to-call, live chat widgets + vendor, SMS/chat, booking, estimate scheduling)
Three distinct Squarespace forms (extracted from form-context JSON in raw HTML):
- Homepage form — name: "Patio Cover Installation inquiry"; submit "Submit"; success "Thank you!"; reCAPTCHA enabled; SMS consent enabled (Squarespace Forms SMS follow-up):
- Name (name-type: first+last), required
- Email, required
- Phone, required
- "Are you interested in financing?" (select: Yes/No), required
- "Will you be available for an estimate soon?" (select: Yes/No), required
- "Inte[rested in…]" (checkbox: Solid Flat Pan Cover / 4K Aluminum Cover / Insulated LRP Cover / Lattice Cover), required
- /schedule-estimate form — name: "Schedule Estimate - Inquiry"; submit "Send"; success "Thank you!"; no CAPTCHA; SMS consent enabled:
- "First, Last Name" (text), required
- "Phone:" (phone), required
- "Email:" (email), required
- "Zip Code:" (text), required
- "Which type of patio cover are you interested in?" (select: 4K Aluminum / Solid Flat Pan Cover / Lattice Pergolas / Insulated LRP / other), required
- "Soonest Availability…" (text; description: "Please include the soonest time and date available for a free estimate. We will contact you to confirm the details."), required
- "Are you interested in financing?" (select: Yes/No), required
- /contact-us form — name: "Contact Us Form"; submit "Submit"; success is a full thank-you paragraph; SMS consent enabled:
- "Name:" (placeholder "first & last name"), required
- "Phone:", required
- "Zip Code:", required
- "Email:", required
- Checkbox product multi-select: "4K Aluminum Patio Cover / Lattice Pergola Patio Cover / Solid Flat Pan Patio Cover / Privacy Wall…" (option list truncated in source — includes Privacy Wall)
- "Additional inquiries for Outshine:" (textarea), optional
- Hidden field (SQF_HIDDEN)
- Tap-to-call: announcement bar is one big click-to-call strip (
tel:href). Header/footer "CALL NOW" buttons. Note:tel:hrefs in raw HTML are digit-masked (tel:+160**3384,tel:+160**2768) — Squarespace-style anti-scraping masking that de-obfuscates client-side; visible page text shows the real numbers (602-585-2768, 602-446-3384). - Email: footer "EMAIL NOW" button (mailto to the Gmail address).
- Live chat / SMS / booking widgets: none. No chat vendor scripts (no Tawk/Crisp/Intercom/Drift/LiveChat/GoHighLevel/Podium/Birdeye/etc.). "Booking" is manual: the estimate form asks the visitor to type their soonest availability and staff confirm — no calendar widget, no scheduler.
- "Request Estimate" is the universal CTA label in nav, hero CTAs, FAQ answers ("Click here to request your patio cover installation estimate") — every FAQ answer ends with a contextual estimate CTA link (strong pattern).
Social Proof (reviews shown + platform widgets, testimonials, project galleries, before/after, badges)
- /reviews page: 4 manually pasted testimonials (no platform widget, no review count, no schema AggregateRating):
- "They did 2 awnings for me. The first was about a year ago (style you can open) and the other just last week (solid roof). I love both and would highly recommend them." — Janette T., Google Review
- "Had a great experience with Outshine Patio Cover. Very professional and take pride in a job well done! Thanks for making my yard complete." — Lars C. Facebook Review
- "Very reliable, showed up on time, done faster than all others, and most important... CUSTOMER SERVICE WAS GREAT!" — Henry R., Google Review
- "Outshine Patio cover were fantastic. The installers were very professional!" — Steve D., Google Review
- Attribution labels: "— Janette T., Google Review" / "— Lars C. Facebook Review" etc. Review count shown on-site: 4 (implied; no "5.0 / N reviews" stat anywhere).
- An "OUR REVIEWS" mini-carousel snippet is embedded on nearly every page (schedule-estimate, about, contact-us, galleries, product pages) — same quotes recycled; consistent but thin.
- Galleries: main gallery page ("Browse through our gallery below to find inspiration for your next outdoor project.") plus 3 product galleries (4K aluminum, lattice pergola, solid flat pan) in sitemap. Image depth is real: main gallery HTML carries 69
<img>tags (~59 on city pages, 79 on homepage incl. logos/UI) — the strongest visual asset on the site ("View fullsize" lightbox). No before/after pairs, no captions with city/neighborhood, no project write-ups. - Badges/credentials: text-only "licensed, bonded and insured" + ROC #328454; no BBB, no manufacturer dealer badge, no Google-guaranteed/Screened badge, no awards.
SEO Footprint (verbatim <title>, meta description, H1s; schema types in RAW HTML; city/service page strategy; internal linking)
- Homepage
<title>(verbatim):Outshine Patio Cover | Lattice, Insulated Solid - Homepage meta description (verbatim):
Skilled and licensed patio cover installers in Scottsdale, Tempe, Chandler, Mesa, Gilbert, Maricopa, AZ. - Homepage H1 (verbatim):
PATIO COVER INSTALLATION SERVICES(single H1; all-caps styling) - Other page titles/descriptions/H1s (verbatim):
- /schedule-estimate: title
Schedule Your Patio Estimate — Patio Cover Installers; metaSchedule your patio cover estimate in the Phoenix areas including Avondale, Apache Junction, Tempe, Chandler, Gilbert, Mesa and surrounding areas. Lattice patio covers, insulated LRP, 4k aluminum products in AZ.; H2-only page (REQUEST YOUR ESTIMATE TODAY— no H1) - /about-us: title
About Outshine Patio Cover — Patio Cover Installers; metaGet to know more about @outshinepatiocover in Phoenix, AZ. We offer local home improvement services for lattice pergola covers, solid flat pan cover styles, insulated lrp covers, 4k aluminum and more.; H2LEARN ABOUT OUTSHINE(no H1) - /reviews: title
Local Reviews | Phoenix — Patio Cover Installers; metaOur reviews from local residents and businesses in the local areas of Phoenix including Chandler, Gilbert, Tempe, Mesa, Scottsdale and surrounding areas.; H2OUR REVIEWS(no H1) - /contact-us: title
Contact Outshine Patio Cover — Patio Cover Installers; metaIf you need lattice patio cover, insulated lrp patio cover, solid flat pan style cover assistance in Downtown Phoenix, Tempe, Chandler, Biltmore Arcadia, Maricopa or other local, call us today.; H2CONTACT US TODAY(no H1) - /view-all-services: title
View Our Patio Services — Patio Cover Installers; metaOur patio installation services include lattice covers, solid flat pan, insulated lrp, 4k aluminum covers in Phoenix, Mesa, Scottsdale, Queen Creek and Chandler.; H1VIEW OUR PATIO INSTALLATION SERVICES - /4k-aluminum-patio-cover-phoenix-az: title
4K Aluminum in Phoenix, AZ — Patio Cover Installers; metaGet your 4k aluminum patio cover installed today in the areas of Chandler, Fountain Hills, Tolleson, Goodyear, Avondale and surrounding AZ business or residential locations.; H1LEARN ABOUT 4K ALUMINUM PATIO COVERS - /lattice-pergolas-patio-cover-phoenix-az: title
Lattice Pergolas in Phoenix — Patio Cover Installers; metaYour local lattice patio cover installation company in Maricopa, Laveen, South Phoenix, Scottsdale, Biltmore Arcadia areas in AZ. Licensed home improvement contractors. - /insulated-lrp-patio-cover-phoenix-az: title
Insulated Roof Panels in Phoenix — Patio Cover Installers; metaInsulated laminate roof panels (LRP) patio cover installation in the areas of Phoenix, Chandler, Mesa, Paradise Valley, Downtown Gilbert, AZ. Lattice cover, solid flat pan style cover. - /solid-flat-pan-patio-cover-phoenix: title
Solid Flat Pan Cover in Phoenix — Patio Cover Installers; metaSolid style - flat pan patio cover installation in Phoenix, Scottsdale, Chandler, Tempe, Gilbert and Mesa, AZ areas. - /gallery-outshine-patio-cover: title
Our Patio Cover Gallery — Patio Cover Installers; metaView our patio cover installation gallery from residential and business Clients in Phoenix areas including Queen Creek, Avondale, Glendale, Gilbert, Mesa, Tempe and other areas. - /contact-1: title
Contact — Patio Cover Installers; meta description is empty string (content="") — dead page, dead meta. - City pages: /outshine-patio-cover-installation-avondale-az →
Avondale Patio Covers — Patio Cover Installers(H1PATIO COVER INSTALLATION SERVICES IN AVONDALE, ARIZONA); /outshine-patio-cover-installation-phoenix-az →Phoenix Patio Covers — Patio Cover Installers(H1PATIO COVER INSTALLATION SERVICES IN PHOENIX, AZ, closing H2REQUEST YOUR FREE ESTIMATE IN PHOENIX, AZ). Same pattern for tempe/chandler/mesa pages. - Schema (RAW HTML JSON-LD): exactly 3 blocks on every page —
WebSite(name/url/logo only),Organization(legalName "Outshine Patio Cover", address 3310 North 35th Avenue, Phoenix, AZ 85017, email, telephone 602-585-2768,sameAs: Facebook/Instagram/TikTok),LocalBusiness(address, image, name,openingHours: Mo–Fr 08:00-15:00). NoService,Product,Offer,FAQPage,AggregateRating/Review,BreadcrumbList,HomeAndConstructionBusinesssubtype, orImageObjectschema anywhere — despite FAQ accordions (6 Q&As on homepage) and reviews being perfect FAQPage/Review candidates. Schema is site-wide identical (same 3 blocks repeated on all pages — no per-page differentiation). - City/service page strategy: classic doorways. 5 city pages (
/outshine-patio-cover-installation-{city}-az) that are ~95% clones of the homepage: identical section order, identical product blurbs, financing accordion and FAQ; only the H1 city name and one intro sentence's city list changes (e.g., Avondale page swaps the metro list to "Tolleson, Glendale, Litchfield Park, Laveen, Chandler, Gilbert, Tempe"; Phoenix page to "Tempe, Queen Creek, Gilbert, Avondale, Litchfield Park, Tolleson, Chandler, Paradise Valley"). City pages carry 59 images each — gallery images give them visual mass and feed the Google Images ranking (the Avondale page's image set is what surfaces in Images for "patio covers phoenix" queries). Service pages are keyword-titled product pages with city lists in descriptions ("in Phoenix, Scottsdale, Chandler, Tempe, Gilbert and Mesa, AZ areas"). No suburbs beyond the 5 city pages despite naming ~15 cities in copy (Glendale, Scottsdale, Queen Creek, Goodyear, Buckeye, Laveen, etc. get mentions but no pages). - Internal linking: strong CTA-wiring, weak siloing. Every page links every other page via nav/footer; every FAQ answer ends with "Click here to request your patio cover installation estimate" (contextual links to schedule-estimate/contact); product pages end with "Next: view all services" + "learn about us" links; product cards on home/city pages deep-link to product pages. No breadcrumb navigation. Footer is a link farm of all key pages (good for discovery). Duplicate alias pages (/about-us vs /about-outshine-patio-cover, /contact-us vs /contact-1, /patio-cover-services vs /view-all-services) dilute internal signals.
Tracking & Ads (Google Ads/Facebook signals, call tracking numbers, analytics/marketing scripts — name vendors)
- Google Ads:
https://www.googletagmanager.com/gtag/js?id=AW-17354584394loaded site-wide — Google Ads conversion tracking (AW-17354584394) is active, so Outshine is buying ads (consistent with map-pack-plus-ads squeeze on this SERP). gtag is the only tag manager usage; no GA4G-property ID found in raw HTML (may be configured via Squarespace's built-in Google Analytics connection, which injects differently — but no visibleG-measurement ID in source). - Facebook/Meta pixel: none (
fbq(count 0; no facebook.net script). No Microsoft/LinkedIn/TikTok ad pixels despite having a TikTok account. No Hotjar, Microsoft Clarity, or other heatmaps. - Call tracking: none detected — all numbers are direct 602 local lines; no CallRail, no dynamic number insertion scripts, no unique tracking numbers per channel. (Double-edge: NAP consistency helps maps; zero call attribution for ads.)
- Marketing scripts present: Squarespace platform bundle (
site-bundle.js, universal scripts-compressed), Squarespace component definitions (definitions.sqspcdn.com — accordion, button, form, html, imageFluid, map, socialLinks, video), Google reCAPTCHA (on homepage form only), Squarespace Forms SMS-consent plumbing (hasActiveSmsSubscriptionflag in form JSON). Google Maps component embedded (map block). Squarespace URL Shortener / Google Fonts (Gotham-family CSS in blocks). - Squarespace site id: collection/website ids visible (
pentagon-apple-y2a8.squarespace.comsecureUrl — the Squarespace subdomain is exposed in form JSON; a competitor can also see the site was built on template5c5a519771c10ba3470d8101). - UTM hygiene: HFS financing deep link carries stale
_gaparams from an old analytics session (Jan 2023) — copied link, no disciplined campaign tagging.
Technical (robots.txt, sitemap.xml, site generator/CMS, speed signals, hosting)
- robots.txt: default Squarespace robots.txt ("# Squarespace Robots Txt") with the standard AI-crawler block list (AI2Bot, CCBot, ClaudeBot, GPTBot, Google-Extended, Meta-ExternalAgent, Perplexity-ish bots etc. — all denied, then
User-agent: *with Squarespace's standard disallows: /config, /search, /account, /api/, /static/, author/tag/month/view/format params).Sitemap: https://www.outshinepatiocover.com/sitemap.xmldeclared. - sitemap.xml: Squarespace auto-generated, 20 URLs, single flat
<urlset>with<loc>only — no lastmod, no image: sitemap entries (despite being a photo-heavy site — gallery images are invisible to image sitemap tooling; yet the site still ranks in Google Images via on-page<img>mass). - CMS/generator: Squarespace (Fluid Engine). Version hints:
static/vta/5c5a519771c10ba3470d8101/scripts/site-bundle.9ad4428074df7afb73619ace1a54f3c9.js; Squarespace component defs v1133–1135. No WordPress/Wix/Duda traces. Hosting: Squarespace CDN (images on images.squarespace-cdn.com; form POSTs topentagon-apple-y2a8.squarespace.com). - Speed signals: heavy pages (homepage 584KB raw HTML, city pages ~388KB, gallery 384KB) — Fluid Engine HTML is bloated with inline block CSS (
<style id="container-styles">per block) and per-block component scripts (10+ js module loads from sqspcdn). 79<img>tags on homepage raw (incl. responsive variants). No lazy-load attributes observed in raw (Squarespace handles via JS). Squarespace polyfiller + universal scripts stack = significant JS payload. Not a fast site by construction, but Squarespace's CDN/HTTP2 mitigates. - Security/quality details: forms POST to Squarespace's secureUrl; CAPTCHA on the homepage form only (schedule-estimate form is un-CAPTCHA'd — spam-prone); no privacy policy or terms link in the form JSON (
privacyPolicyUrl: null,termsAndConditionsUrl: null) — a legal gap for an SMS-consent-enabled form (TCPA exposure). - Other:
/cartin sitemap (unused Squarespace commerce chrome);legacy-cart icon-cart-quantityshows0in header — leftover template noise.
Local SEO & Map Pack (NAP consistency, Google Business signals, city pages targeting Phoenix metro; note organic vs pack presence gap)
- NAP: 3310 North 35th Avenue, Phoenix, AZ 85017 (JSON-LD Organization + LocalBusiness identical); phones 602-585-2768 (primary in schema) + 602-446-3384 (contact page); hours Mon–Fri 8am–3pm in JSON-LD (note trailing empty day slots in
openingHoursstring: "Fr 08:00-15:00, , " — malformed trailing commas, harmless but sloppy). Address is a light-industrial/yard-type address on N 35th Ave (consistent with an installer yard, not a showroom). - Google Business signals: Map pack #1 for "patio covers phoenix". On-site socials (FB/IG/TikTok) are wired into
sameAs, which feeds Knowledge Panel consistency. Site-reviews are attributed to Google Reviews (3 of 4) and Facebook (1) — the GBP is clearly the review engine; the website just quotes 4 of them. - City-page targeting: 5 dedicated city pages (Phoenix, Avondale, Tempe, Chandler, Mesa) targeting "patio covers/ installation {city} AZ"; Avondale page additionally wins Google Images (its 59-image gallery block w/ keyword file context). Metro keyword coverage in copy far exceeds page coverage (Glendale, Scottsdale, Gilbert, Queen Creek, Goodyear, Buckeye, Laveen, Tolleson, Litchfield Park, Paradise Valley, Arcadia Biltmore, Downtown Phoenix, South Phoenix, Maricopa, Fountain Hills, Apache Junction all named in metas/copy but no dedicated pages).
- Organic vs pack gap (KEY): the business dominates the map pack but the organic SERP for "patio covers phoenix" is effectively barren of contractor sites (Reddit/Quora/Home Depot rank) — Outshine's own organic first-page presence for the head term is minimal; its organic footprint is long-tail/city-page + Images. The site wins on GBP + city-doorway pages, not on content depth. Home Depot even outranks contractors organically while contractors' warranty docs live on Home Depot's own CDN — the DIY retailer is embedded in the ecosystem (and is the DIY kit price anchor competitor).
- Footer/off-site consistency: footer never prints the NAP in text (address only in JSON-LD) — map-pack signals depend entirely on GBP + schema; the human-visible footer shows only "Connect with us / EMAIL NOW / CALL NOW". No embedded Google Map with pin on the homepage (map component is loaded but the visible footer is links-only on the pages inspected).
Weaknesses & Opportunities (for a template builder: missing schema, thin content, no click-to-call, dead forms, contradictions — quote exact evidence briefly)
- Dead page indexed:
/contact-1is in the sitemap and renders literally "This folder does not contain any pages." with an empty meta description (content="") — a 20-page site wasting crawl budget and looking abandoned. - No FAQPage/Review/Service schema despite 6 homepage FAQ accordions ("Are you licensed, bonded and insured? … ROC #328454") and 4 testimonials with named attributions — the richest SERP real estate (FAQ rich results, star ratings) is left on the floor. Only WebSite/Organization/LocalBusiness JSON-LD, identical on all 20 pages.
- Zero published pricing. No cost ranges anywhere — the $425–$2,037 DIY kit layer is uncontested; no "how much does a patio cover cost in Phoenix" page exists to intercept that research traffic and frame custom-vs-DIY.
- Missing H1s on key conversion pages: /schedule-estimate ("REQUEST YOUR ESTIMATE TODAY" is H2), /about-us, /reviews, /contact-us all H2-only. Homepage H1 is all-caps generic ("PATIO COVER INSTALLATION SERVICES") and the
<title>(Outshine Patio Cover | Lattice, Insulated Solid) truncates awkwardly ("Insulated Solid" — reads like a broken phrase, no "Phoenix" or "AZ"). - Thin review proof: 4 quotes, no widget, no count ("— Janette T., Google Review" is plain text). Reviews recycled as the same "OUR REVIEWS" snippet on every page instead of fresh per-page proof.
- No louvered/adjustable product despite selling one: review quote ("The first was about a year ago (style you can open)") references an operable/adjustable awning, but there's no adjustable-louver page, FAQ, or gallery — product-line leak (vs Solara's entire positioning).
- Warranty outsourced and off-site: warranty link goes to a Home Depot CDN PDF of the manufacturer (Four Seasons Building Products) — no branded warranty page, no workmanship warranty claim ("Defects in installation are warranted, if at all, by the installers" is the manufacturer's words — Outshine never states its own labor warranty).
- Form inconsistencies: three forms with different fields; only the homepage form has CAPTCHA (
captchaEnabled: Falseon schedule-estimate + contact forms — spam bait on the two most important forms); no privacy policy/TOS in form context (privacyPolicyUrl: null) while SMS consent is enabled (TCPA risk); "Soonest Availability" free-text field asks the customer to do scheduling labor a calendar widget should do. - Broken/odd tel plumbing: announcement-bar and header tel hrefs are digit-masked (
tel:+160**3384,tel:+1602768) — if the de-obfuscation JS fails (or for crawlers/voice assistants), click-to-call is dead; footer has "CALL NOW" but the footer itself prints no phone number as text** and no NAP block. - Internal contradictions/quality nits: "over a decade of industry expertise" vs "Established in 2020"; /view-all-services' INSULATED LRP section is a copy-paste of the LATTICE description ("Designed with latticed beams, these covers offer a unique aesthetic appeal…") — literally describes the insulated roof panel as having latticed beams; /contact-1 dead folder; unused
/cartpage + "0" cart badge; stale_ga-tagged HFS link. - Hours shrink availability: Mon–Fri 8am–3pm only (JSON-LD + site settings) — evening/weekend estimate demand (the majority of homeowner research time) has no after-hours path (no chat, no scheduler, no auto-reply promise).
- No DIY-kits counter-argument, no permit/code content: nothing about Phoenix/Arizona permits, HOA approvals, setback rules, monsoon wind ratings (except one "Arizona Monsoon season" durability line) — the two trust topics this niche hides behind, untouched. Also no pergola-vs-awning-vs-gazebo explainer.
- Galleries uncaptioned: 69 images but no city/neighborhood/material captions or before/after pairs — image SEO left implicit (yet it still powers the Avondale Images ranking; captions would multiply that).
- Gmail contact address (outshinepatiocover@gmail.com) in Organization JSON-LD + "EMAIL NOW" mailto — no branded domain email shown anywhere.
Site 2: Solara Adjustable Patio Cover (www.patiocover.us)
Manufacturer + dealer-network play: the adjustable/louvered "smart patio cover" brand itself, Phoenix HQ, national dealer map, DIY kits, published per-sq-ft pricing, cost calculator, and permit engineering packages. Product-brand positioning, not a local installer — it ranks in the Phoenix map pack as a business while functioning as the upstream supplier to installers like Site 1.
Business Snapshot (who, how long, where, size signals, licenses/insurance: ROC #)
- Who: "Solara Adjustable Patio Cover LLC" (legal entity named in warranty text) — manufacturer of the Solara "Smart" Shading System, an adjustable louvered roof patio cover ("Solara's smart patio cover system allows you to control the amount of sunlight or shade"). Positions as inventor: "When we came up with the idea for a louvered roof system, 25 years ago, the product was mainly for high end custom made projects…" — 25 years of louvered-system history; footer copyright reads "Copyright © 2023 Solara Adjustable Patio Cover" (stale, and contradicts 2026 blog activity).
- Dual channel: sells through a dealer network ("Find patio cover dealer in your area. We are located all over the USA & Canada"; "95% of our clients are general contractors, big builders, and architects") and direct to homeowners (free quote forms, cost calculator) and DIY (crated kit shipped via freight). This is the only profiled site that is both the product brand and a Phoenix map-pack competitor.
- Address / NAP: 602 N. 24th St, Phoenix, AZ 85008 (LocalBusiness JSON-LD
PostalAddress+ footer "602 N. 24th St Phoenix AZ"). Email: design@patiocover.us (branded domain). Fax: 602-388-8431 (printed on DIY page) — legacy manufacturer signal. - Phone (business line): 602-388-8429 — displayed as
(602) 388-8429top bar,602.388.8429footer,602-388-8429DIY page,tel:6023888429/tel:16023888429links (one link carries a stray leading "1"). Only business number on the site (no tracking numbers). - Licenses/insurance: No ROC number anywhere on the fetched pages — makes sense structurally (the manufacturer warrants product; installers are separate dealers: "Defects in installation are warranted, if at all, by the installers" is echoed in the ecosystem). The DIY page does print "Contact Us Office: 602-388-8429 Fax– 602-388-8431 Address: 602 N 24th St. Phoenix, AZ 85008". There is an
/unpack-crate/instructions/insurance-policy/page in the sitemap (shipping insurance policy for crates — freight, not liability, insurance). - Size signals: 161 dealer pages across US/Canada/Caribbean; product engineering downloads (2009/2015/2016 packages); English + Spanish installation/troubleshooting videos; architect information section; commercial verticals (restaurants, hotels, offices/galleries). This is a real factory, not a van-and-a-ladder shop.
Offers & Pricing (free estimates, published cost ranges, price anchors, guarantees, warranties)
- Product lines (nav "Products"): Patio cover (introduction, custom colors, eco-friendly, summer/winter/fall/spring use, side wall, gazebos), Roll Formed louvered system (affordable/lighter: "engineered to be 70% thinner than any other extruded louver roof system"; "withstand up to 150 mph and up to 30 pounds of snow per foot"), Extruded louvered system (heavy-duty/commercial: "a better choice for extreme snow loads and wind loads or with commercial applications where water proof systems is a must"), Commercial Patio Covers (hospitality, offices/galleries), Accessories (electric motor, remote control, visors, wood-grain, colors), Pergola (aluminum pergola, louver brackets, louvers), DIY Patio Covers Kit.
- PUBLISHED PRICING (the headline difference vs. every installer site):
- Homepage: "the price of roof system will range from 18 dollars per square foot and can go up to 32 dollars per square foot" (their own system).
- FAQ "How much does a patio cover/louvered roof system cost?": "Generally, a lattice patio cover should be around $20-30 per sq ft. Rolled form louvered roof systems should be $25-45 per sq ft, while extruded louvered roof systems should range from $30-70 per sq ft."
- Anti-overcharge positioning: "Some louvered roof systems on the market may try to charge over $150 per square foot, which is comparable to building a house with a kitchen and bathroom" + "make sure not to pay more than the quoted price."
- Roll-formed price page: "The price of the roll forming louvered roof system will be between 40%-70% lower than the extruded louvered roof system."
- ROI frame: "If you add electric and energy bills, with these prices our louvered roof system is practically paying itself" (energy-bill savings angle). Also "Does a patio cover… increase property value? Yes… keep in mind that there will be some depreciation… We recommend saving your invoice and showing it to your appraiser."
- Interactive price tool:
/patio-cover-cost-calculator/— live estimator (louver size ft, rafter size ft, post count, roll-formed vs extruded, PRO-INSTALLATION vs DIY KIT, beam, motor, box look, app, weather/high-wind-snow upgrade) producing a "Total Price Estimate," then gated behind an email quote form (see Conversion Mechanics). This is the only site of the two that lets a homeowner price a project before talking to anyone. - Free quote/estimate: "Get Your Free Quote Today" (hero CTA on every page), "Get a Free Quote!" (footer), "Contact Us Today For a Free Estimate" (gallery). The design meeting is free: "we will find a local designer that will meet you at the project site with color samples, and a demonstration kit… The design meeting is free with no obligation."
- DIY quote terms (verbatim mechanics): "We can help you for free for one design and one quote only. Solara will offer one design for free and any quotes after the initial quote will be charged $70 for each additional quote. The deposit for all redesigns will be credited toward the purchase of your Solara Patio cover." Ordering flow: drawing+pictures → ballpark price incl. shipping → final design adjustments → custom quote w/ parts list + price list breakdown → email approval → signed docs → production.
- Timeline claims: "with 2 people, your cover should take 1 and 1/2 days to 2 days to install"; FAQ: "The short answer is 2-3 days… a standard rectangle up to 300 sq ft should take 2 days for a professional crew of two"; footing/concrete adds 2-3 days. (Two slightly different numbers — both far more concrete than Site 1's "we'll tell you after the estimate.")
- Colors: 5 standard — Adobe, Cameo, Latte, Spanish Brown, White — plus "unlimited custom colors." Sizes: "louver can go up to 23 ft long"; custom shapes incl. "gable, round, triangle and curved louvered roof systems"; "minimum size of 12×12 feet" recommended starting point.
- Guarantees: warranty-based (below); no money-back guarantee. Competitor-comparison content is the soft guarantee: dedicated posts vs Equinox, American Louvered Roof System, and generic louvered systems ("Solara vs American Louvered Roof System," "Solara Adjustable Patio Cover vs Equinox Louvered Roof System").
Financing & Warranty Mechanics (financing partners/lenders named, warranty terms)
- Financing: NONE. No lender, no monthly-payment mentions, no "financing available" anywhere across the pages fetched. The calculator speaks in cash totals. (For a $5k–$30k+ ticket this is the single biggest conversion omission on the site — and exactly where Site 1's HFS partnership wins.)
- Warranty (on-site page "Warranty For My Solara Patio Cover", entity "SOLARA ADJUSTABLE PATIO COVER LLC"):
- Lifetime warranty — "the posts, support beams, and perforated beams that are supplied by Solara are warranted for life time." (FAQ restates: "Post support beams and rafters have a lifetime warranty.")
- 10 years limited — louvers, from completed installation, against defects affecting operation; "may be voided if you fail to keep the Louvre troughs clean from dirt and debris (leaves, rocks, branches, etc.)."
- 15 years limited — manual opening system, pins, brackets, flashing, shafts, springs, fiberglass components; may be voided "if you fail to operate the manual opening system to full opening at least twice a month."
- Motor/controls: 5 years, then prorated to 15 — "the motor, mother board, transformer and remote control are warranted for five (5) years from the date of completed installation, and then 10% per year prorated until the 15th year"; conditioned on wiring protected/electrical under solid roof per code + full-opening exercise twice a month.
- Conditions: "warranties apply only to manufacturing defects… conditioned upon the System being properly installed by a Solara authorized dealer, following Solara engineering package and your local building code requirements."
- FAQ positioning: "Solara has the best warranty on the market… Most manufacturers will not cover labor warranty, so that should be discussed with your installer." (They educate the buyer that installer workmanship warranties are separate — the ecosystem's dirty secret, stated openly.)
- Permits/code (their trust wedge):
/products/permits/— "Both the Solara roll formed and extruded louvered roof systems are suitable for obtaining permits… comprehensive engineering solution… submit this generic engineering package, along with the necessary drawings… to your local building official." "In some cities, the Solara engineering package may be accepted over the counter"; otherwise "we can provide a site-specific engineering package… with our engineer's wet stamp." Three downloadable engineering packages: "Click Here To Download 2009 Engineering / 2015 Engineering / Engineering 2016." Load engineering pages per system: wind load, snow load, live load, fiberglass bracket pages. Also/snow-load/page and an article series on snow/wind load and exposure.
Website Anatomy (every page + purpose; homepage section order; page count)
Platform: WordPress 7.1.2 (generator meta) built with Elementor 4.3.0 and WPBakery Page Builder (both generator metas present — page-builder collision), Yoast SEO (sitemap XSL wordpress-seo), Site Kit by Google 1.188.0. Sitemap index (Yoast) with 6 sub-sitemaps: post, page, products, technical_details, calculator, web-story.
Scale: page-sitemap alone has 229 URLs, of which ~161 are dealer pages (/dealers/solara-specialist-{city}-{state}/, /dealers/solara-of-{city}-{state}/) — a national dealer directory that doubles as city doorway pages (Phoenix metro coverage: solara-specialist-of-phoenix-arizona, tempe-az, chandler-arizona (×2, duplicated), gilbert-arizona, glendale-arizona, peoria-arizona, surprise-az, el-mirage-arizona, parker-arizona, sedona-arizona, tucson-arizona, yuma-arizona). post-sitemap: 28 blog posts (pergola design guides, buying guides, comparisons, restaurant vertical content, cost breakdowns). products-sitemap: ~55 product subtree URLs. Plus gallery projects, articles (~24 /articles/ pages: material comparisons, louver direction, guttering, design), videos, PDFs (motor wiring EN/ES), thank-you pages.
| URL | Title (verbatim <title>) | Purpose | |
|---|---|---|---|
/ | `Solara Adjustable Patio Covers \ | Transform Your Outdoor Space` | Brand homepage + quote CTA |
/products/ | Products - Solara Adjustable Patio Covers | Product hub (6 lines) | |
/products/roll-formed/price/ | Prices For Patio Covers | Published price page (roll-formed) | |
/warranty/ | Warranty For My Solara Patio Cover | Full manufacturer warranty terms | |
/products/permits/ | Patio Cover Permit | Permit/engineering packages + downloads | |
/diy-patio-cover/ | Affordable DIY Patio Covers for Stylish Outdoor Living | DIY kit funnel (15-step self-select nav: Design→Measuring→Quote→Ordering→…→Shipping→Contact) | |
/patio-cover-cost-calculator/ | Patio Cover Cost Calculator - Get Instant Quotes Now | Interactive estimator + gated email capture | |
/faqs/ | Your Patio Cover Questions Answered: Comprehensive FAQ Guide | 32-question FAQ (FAQPage schema) | |
/gallery/ | Gallery - Solara Adjustable Patio Covers | Gallery hub (Projects/Residential/Commercial/Parts/Videos) | |
| (from sitemaps, not fetched) | /find-a-dealer/, /about-us/, /about-us/dealer-opportunities/, /about-us/media/, /about-us/videos/, /company-facts-solara-adjust-patio-cover/, /contact-us/, /blog/, /articles/…, /products/extruded-louvered-system/…, /products/pergola/…, /products/accessories/…, 161 /dealers/… pages, /thank-you/, /estimate-thank-you/, /snow-load/, /pdf-motor-wiring/ (+Spanish) | dealer locator, corporate, SEO articles, product detail trees, lead magnets |
Homepage section order (top→bottom):
- Top bar: tap-to-call
(602) 388-8429+ "Contact" - Header/masthead: "Solara's smart patio cover" logo + mega-nav (About | Media Center [Demo, Videos, Dealer Opportunities, Business Profile] | Products [Patio cover, Roll Formed, Extruded, Commercial, DIY Patio Cover, Accessories, Pergola] | Gallery | Tech Details [Design, Modes, Demo, Maintenance, Architect Information, Installation, Construction, Water Proofing] | Find A Dealer | FAQ'S & Info [DIY Zone, Calculator, Blog] | Contact Us)
- Hero slider ("Enjoy life Enjoy Nature" — "Our system allows you to control the amount of sunlight or shade you want." + "Get Your Free Quote Today")
- 4 feature tiles: Patio Covers (product) | Find a Dealer ("We are located all over the USA & Canada") | Gallery | Technical ("Get a DIY kit and start working!")
- H2 "Solara Adjustable Patio Covers The 'Smart' Shading System" — problem/solution copy (clapboard roofs, canvas awnings, wooden gazebos, aluminum covers "offer only partial solutions"; "made entirely of aluminum… requires no maintenance at all!!!"; customer quote "We live on our porch")
- H2 "Solara's louvered roof system" — 3 exploded component cards: Motor ("electric motor… remote control. Smart app upgrade is available"), Extruded Louver ("the only ma[nu]facture[r] that offer either extruded or roll form louvered roof system"), Substructure ("Solara Lifetime Warranty posts and headers or almost any other substructure - aluminum, wood, steel etc.")
- H2 "Choose From 2 Louvered Roof Systems" — roll-formed vs extruded explainer + the $18–$32/sq ft anchor + free design-meeting pitch
- H2 "Frequently Asked Questions" — 11 Q&As (warranty, materials, build time, property value, cost, rain noise, walking on cover, size, measuring, custom sizes, worth-it analysis)
- H2 "Contact Us" — "one of our team members will be in touch ASAP" + Click here
- Footer: Products column (Patio Covers, Roll Formed, Extruded, Commercial, DIY Kit, Accessories, Pergola) | Contact block (602.388.8429, design@patiocover.us, 602 N. 24th St Phoenix AZ, "Get a Free Quote!") | Find a Dealer widget (WPSL search: "Your location", radius 10/20/30/40/50/100/200/500 mi, "Skip map, jump to search results") | Social (YouTube) | "Copyright © 2023 Solara Adjustable Patio Cover. All rights reserved."
- Persistent bottom bar: "Get Free Quote Today" + inline form (Name, Email, Phone Number, Zip Code, Message, Send)
Conversion Mechanics (forms w/ field lists, tap-to-call, live chat widgets + vendor, SMS/chat, booking, estimate scheduling)
Three distinct form systems (all <form> elements present in raw HTML — unlike Squarespace's JS-mounted forms):
- Elementor "New Form" (every page, footer/sticky):
class="elementor-form" method="post"— fields:form_fields[name]"Name" (text),form_fields[field_6683efb]"Email" (email),form_fields[field_d14683b]"Phone Number" (tel),form_fields[field_79c7234]"Zip Code" (number),form_fields[message]"Message" (textarea); hidden: post_id, form_id, referer_title, queried_id; submit "Send"; headline "Get Free Quote Today". (No SMS-consent checkbox, no privacy-policy link observed in form context.) - Calculator popup form (
id="calculator_popup_form",method='POST', posts to/calculator_lead/— which robots.txt disallows!): fieldsname"Your name" (Text),email"Your email" (email),mobile"Your phone number" (Number),zip_code"Your zip code" (Number) + submit. Copy: "To get an estimated price fill up the email quote form / Fill up the form and get an estimate quote for Louvered roof system / Your email is sent successfully." The calculator shows the "Total Price Estimate" and then gates the exact number behind this email form — classic lead-gated calculator. - WPSL dealer-locator form (footer of every page + /find-a-dealer):
wpsl-search-input(text) +wpsl-radius(select: 10/20/30/40/50/100/200/500 mi) + submit — WP Store Locator plugin (191wpslreferences on the homepage). "Find patio cover dealer in your area. We are located all over the USA & Canada."
- Tap-to-call: top-bar phone
(602) 388-8429withtel:6023888429(one varianttel:16023888429— malformed link with stray leading 1). Footer prints602.388.8429as text. DIY page prints office + fax. - Live chat / SMS / booking widgets: none. No chat vendor, no SMS widget, no calendar booking. The "meeting" flow is manual ("we will find a local designer that will meet you at the project site with color samples, and a demonstration kit"). "Demo" appears twice in nav (Media Center → Demo; Tech Details → Demo) — demo kits/videos, not software demos.
- Lead-gen depth: quote (form) → calculator (email-gated) → dealer locator (search) → DIY kit quote (email drawing to design@patiocover.us) → engineering PDF downloads (2009/2015/2016 — likely also lead-magnet-ish) → thank-you pages (
/thank-you/,/thank-you-2/,/solara-thanks-you/,/estimate-thank-you/— 4 separate post-submit pages, a mess of abandoned form experiments). - reCAPTCHA present (7 references) on forms. Post-submit redirects to the thank-you pages above.
Social Proof (reviews shown + platform widgets, testimonials, project galleries, before/after, badges)
- No on-site testimonials or review widget. Zero quotes from customers except the marketing line "Our customers like to say, 'We live on our porch'!!!!" No Google/Yelp/Facebook widget, no star ratings, no review counts, no case studies. (The FAQ advises social proof as a strategy — "We encourage you to speak with homeowners who have a louvered roof system for at least five years" — but the site itself shows none.)
- Authority proof instead of reviews: 25-year invention story, NASA-derived fiberglass bracket claim ("This element was developed by NASA for spaceships" — fiberglass brackets between aluminum moving parts vs competitors' stainless pins needing grease: "If you have 100 louvers, that means you will need to grease 400 different areas"), patents ("Our patented rafter can be attached on both sides"), "the only manufacturer that offers extruded and roll forming louvered roof systems" (repeated ~6×), engineering packages, architect resources, Spanish-language install support.
- Galleries:
/gallery/hub with 5 buckets — Projects (House 1–House 6 project pages), Residential (image tiles keyword-named: "louvered roof pergola", "Pergola Arizona", "Aluminum Roof System in Sedona Arizona", "Adjustable Louvered System California"), Commercial ("Pergola Near Me", "pergola shades", "deck pergola" — alt text stuffed with search queries), Parts, Videos (YouTube channel linked in footer). Gallery CTA: "Contact Us Today For a Free Estimate." Depth is broad but tile captions are SEO-keyword strings, not project stories; no before/after, no homeowner names/cities-with-stories. - Comparison content as proof: vs Equinox, vs American Louvered Roof System, "louvered roof system vs Solara adjustable patio cover," adjustable vs stationary, extruded vs roll form, aluminum vs wood, fabric vs aluminum, vinyl vs aluminum — a whole comparison-arsenal blog.
- Badges: none (no BBB, no dealer badges, no awards). "Business Profile" and "Media Center" pages exist (media mentions presumably) but weren't fetched.
- Content-marketing scale (proof of authority): 28 blog posts + ~24 articles + web stories (web-story sitemap exists) targeting every research query: cost breakdowns ("aluminum-patio-covers-vs-wood-vs-vinyl-long-term-cost-breakdown", "louvered-roof-system-cost"), design guides, wind/snow, restaurant verticals. CONTENT-FILTER NOTE: one blog post in the sitemap is unrelated junk — a Russian-language online-casino review page (a parasite/SEO-spam injection, likely from a compromised WP install); I did not open it.
SEO Footprint (verbatim <title>, meta description, H1s; schema types in RAW HTML; city/service page strategy; internal linking)
- Homepage
<title>(verbatim):Solara Adjustable Patio Covers | Transform Your Outdoor Space - Homepage meta description (verbatim):
Check out Solara Adjustable Patio Covers - Control sunlight and enhance your outdoor living experience. Enjoy smart, customizable shade solutions. - Homepage H1s (verbatim):
Solara’s smart patio cover(rendered twice in raw HTML — duplicated hero for slider states; the literal brand phrase, not a keyword H1) - Other pages (verbatim):
- /products/: title
Products - Solara Adjustable Patio Covers; metaProducts | We provide services for both the residential and commercial industry. contact us and one of our team members will be in touch asap; H1Products(×3 in raw) - /products/roll-formed/price/: title
Prices For Patio Covers; metaWith our affordable price on our roll forming louvered roof system you do not have to settle for a solid cover that will not protect you from the elements.; H1Price - /warranty/: title
Warranty For My Solara Patio Cover; metaWe are glad that you have purchased one of Solara's smart shading systems, and we are confident that you will enjoy for many years to come.; H1Warranty - /products/permits/: title
Patio Cover Permit; metaWe will supply generic engineering that covers most scenarios in most types of weather that you can submit to your building official and drawing included.; H1Permits - /diy-patio-cover/: title
Affordable DIY Patio Covers for Stylish Outdoor Living; metaEnhance your outdoor space with our affordable DIY patio cover solutions. Elevate your lifestyle, adding style and comfort to your backyard living.; H1DIY Patio Cover - /patio-cover-cost-calculator/: title
Patio Cover Cost Calculator - Get Instant Quotes Now; metaEstimate the cost of your dream outdoor space with our Patio Cover Cost Calculator. Get personalized quotes and Plan your budget today!; H1Patio Cover Cost Calculator - /faqs/: title
Your Patio Cover Questions Answered: Comprehensive FAQ Guide; metaGet answers to common patio cover questions with our informative FAQ guide. Contact Us For More Info.; H1FAQ'S-style page w/ 32 questions - /gallery/: title
Gallery - Solara Adjustable Patio Covers; metaGallery | We provide services for both the residential and commercial industry. | Contact Us For More Info.; H1Gallery - Schema (RAW HTML JSON-LD): Yoast
@graphon every page —WebPage(withReadAction,primaryImageOfPage→ImageObject),BreadcrumbList/ListItem(real breadcrumbs rendered visually: "Home > Products > Roll Formed > Price"),WebSite(withSearchAction/EntryPoint/PropertyValueSpecification— sitelinks-searchbox),Organization(+ImageObject). Plus a separateLocalBusinessblock (telephone: 6023888429,priceRange: "$$",PostalAddress602 N. 24th ST Phoenix AZ 85008,OpeningHoursSpecificationMon–Sun 00:00–23:59 (24/7 — dubious, probably to always show open),sameAs: Facebook page).FAQPage+Question/Answeron /faqs/ (32 questions), /diy-patio-cover/ and /patio-cover-cost-calculator/ (11 Q&As on homepage also marked up). NoProduct/Offer/AggregateRating/Review/HowTo/VideoObjectschema despite products, prices, and 20+ how-to videos (their installer-video content is invisible to video rich results). - City/service page strategy: dealer-directory doorways — 161
/dealers/{brand-slug}-{city}-{state}/pages ("Solara Specialist of Phoenix Arizona", "Solara of Glendale Arizona", "Solara Specialist Tempe AZ"…), each a city landing for a dealer; plus product-keyword pages (pergola guides for wet/humid/sunny/oceanfront regions, wind-resistant pergola, restaurant pergolas) and cost/comparison articles. Messy duplication: Chandler AZ exists twice (solara-specialist-chandler-arizona+solara-specialist-of-chandler-arizona), Las Vegas 3× (solara-of-las-vegas-nevada,solara-in-las-vegas-nevada,solara-specialist-las-vegas-nv), Salt Lake City 2 (…-utah,…-utah-2), plus a typo URL (solara-specialist-of-best-viny) and legacy slugs (/solara-specialist-of-concord-california/outside /dealers/). - Internal linking: heavy cross-linking via mega-menu (3 duplicated renderings of the full nav in raw HTML), breadcrumb trails on every page, product sub-nav sidebars (e.g., Roll Formed: Mode/Price/Color/Louver/Light Live Load/Snow Load/Wind Load/Fiberglass Bracket/Warranty with Prev/Next pagination), DIY page's 15-step anchor nav (DESIGN…CONTACT), and interlinked comparison articles. Articles link between material debates (aluminum vs wood vs vinyl) and products. Footer repeats product links 2× (duplicated column markup).
- Indexation hygiene: robots.txt has
Crawl-delay: 10and disallows/wp-admin/,/calculator_lead/(the calculator's own POST endpoint — fine) — but nothing blocks the 161 thin/duplicate dealer pages or the spam blog post. Yoast sitemap index with lastmod dates (posts updated 2026-02, products lastmod 2024-04 — product tree stale).
Tracking & Ads (Google Ads/Facebook signals, call tracking numbers, analytics/marketing scripts — name vendors)
- Analytics/UX: Google Analytics 4
G-RB0VHXX5F1via gtag (loaded through Google Site Kit by Google 1.188.0), Microsoft Clarity (clarity.ms/tag/…?ref=wordpress— heatmaps/session replay, via Site Kit), Hotjar (3 references; hotjar.com loader — heatmap stack doubled: Clarity + Hotjar). No Google Tag Manager container. - Google Ads: none detected (no
AW-conversion IDs, no doubleclick/gtag ads signals). The site's search presence is organic/SEO-led (content + schema + dealer pages), not paid — opposite of Site 1's gtag Ads pixel. No Facebook/Meta pixel (fbq(0) despite a Facebook page insameAs. - Call tracking: none — the single 602-388-8429 line everywhere (NAP consistency perfect, attribution zero). No CallRail/Dynamic Number Insertion.
- Other scripts: reCAPTCHA (7 refs), Elementor (4,641 refs — the DOM is an Elementor site), WPBakery (legacy), WP Store Locator (wpsl), Yoast SEO, Google Fonts/APIs, YouTube embeds (footer "youtube / Created with Sketch."). Squarespace: no. WP plugin surface is large (Elementor+WPBakery co-installed is a known conflict/perf smell).
- CRM/email: forms POST natively (Elementor Actions after submit — likely email notification; no HubSpot/Mailchimp/Klaviyo scripts found). 4 different thank-you pages suggests repeated form/CRM experiments.
Technical (robots.txt, sitemap.xml, site generator/CMS, speed signals, hosting)
- robots.txt (verbatim structure):
User-agent: */Disallow: /wp-admin//Allow: /wp-admin/admin-ajax.php/Disallow: /calculator_lead//Sitemap: https://www.patiocover.us/sitemap_index.xml/Crawl-delay: 10. - sitemap.xml:
sitemap_index.xml(Yoast) → 6 child sitemaps: post-sitemap (28 URLs, lastmod 2026-02-01), page-sitemap (229 URLs, lastmod 2026-02-04), products-sitemap (~55 URLs, lastmod 2024-04-03), technical_details-sitemap, calculator-sitemap, web-story-sitemap (2024-04-26). - CMS/generator: WordPress 7.1.2; builders: Elementor 4.3.0 (
css_print_method-internal, google fonts disabled) + WPBakery Page Builder (both advertised in generator metas); SEO: Yoast (main-sitemap.xsl); Site Kit by Google 1.188.0; store locator: WP Store Locator (wpsl). PHP/WP hosting implied;www.patiocover.usapex + www. - Speed signals: homepage 351KB raw but only 9
<img>tags in raw HTML (hero/gallery imagery lazy-loads via Elementor/JS and CSS backgrounds); product/gallery pages 235–493KB. Massive nav (2 menus × 3 renderings) inflates every page. Elementorcss_print_method-internalinlines CSS (no external CSS request but big HTML). WPBakery+Elementor double-stack = excess JS. Uncompressed-image galleries on /gallery/ (469KB HTML). Not optimized, but WordPress caching unknown. - Other: forms POST to same-origin endpoints (calculator to
/calculator_lead/); dedicated PDF assets (/pdf-motor-wiring/,/pdf-motor-wiring-spanish/);/unpack-crate/instructions/insurance-policy/page for freight claims. Site is actively maintained on posts (2026 lastmod) but footer copyright frozen at 2023 and product sitemap at 2024.
Local SEO & Map Pack (NAP consistency, Google Business signals, city pages targeting Phoenix metro; note organic vs pack presence gap)
- NAP consistency: excellent on-site — "602 N. 24th St Phoenix AZ 85008" in LocalBusiness JSON-LD (streetAddress literally "602 N. 24th ST Phoenix, AZ 85008" — city/state crammed into streetAddress field, sloppy schema hygiene) + footer text + DIY contact block; phone 6023888429/602.388.8429/(602) 388-8429 formats all same number; email design@patiocover.us.
priceRange: "$$",OpeningHoursSpecificationclaims 24/7 (Mon–Sun 00:00–23:59) — likely GBP-matching artifact, harms trust if a customer calls at 2am. - Google Business signals: Map-pack presence in Phoenix despite being a manufacturer (602 N 24th St is a Phoenix industrial address).
sameAs→ Facebook only (no YouTube in schema despite footer YouTube link). Reviews presumably on GBP (nothing surfaced on-site). Product-brand search demand ("Solara adjustable patio cover") plus generic map-pack ranking for "patio covers phoenix" — a two-front local+brand strategy. - City pages targeting Phoenix metro: dealer pages for Phoenix, Tempe, Chandler (×2), Gilbert, Glendale, Peoria, Surprise, El Mirage, Parker, Sedona, Tucson, Yuma (AZ) + 150 more nationally — this is how one manufacturer owns dozens of "patio covers {city}" long-tails. City-specific articles too (California/AZ/Sedona project galleries).
- Organic vs pack gap (KEY): unlike Outshine (pack-only), Solara has both map-pack presence AND a genuine organic content engine (FAQ schema, cost calculator, price pages, comparison blog, dealer doorways) — yet for the head term "patio covers phoenix" the organic SERP still belongs to Reddit/Quora/Home Depot. Solara's organic wins are long-tail: "louvered roof system cost," "patio cover permit," "adjustable patio cover vs…", DIY kit queries — i.e., it monetizes the research phase that precedes the installer transaction, and sells kits in the same price band as the Google Shopping DIY layer ($425–$2,037 kits vs their $18–32/sq ft systems).
- The DIY-layer connection: Solara is part of the DIY competitor layer DropSites clients fight —
/diy-patio-cover/+ cost calculator + freight-shipped crates + $70 quotes + downloadable install videos (EN/ES) let a handyman self-perform. It answers the DIY threat by joining it (kit channel) rather than arguing custom-install value.
Weaknesses & Opportunities (for a template builder: missing schema, thin content, no click-to-call, dead forms, contradictions — quote exact evidence briefly)
- No financing at all. Zero lender/payment content on a $5k–$30k product while the calculator produces big totals ("Total Price Estimate"). The moment a homeowner sees the number, there's no "or $X/mo" — the biggest single stealable gap from Site 1's HFS playbook.
- No reviews/testimonials anywhere (only "Our customers like to say, 'We live on our porch'!!!!"). No review schema, no widget, no GBP review surfacing — authority is claims ("best warranty on the market," "only manufacturer that…") that a skeptical competitor could puncture.
- Warranty self-contradictions: FAQ says "motors and manual operators have a 15-year prorated warranty" but the warranty page says motor/motherboard/transformer/remote are "warranted for five (5) years… then 10% per year prorated until the 15th year" (i.e., 5 full + prorated to 15) — and maintenance covenants void coverage ("voided if you fail to keep the Louvre troughs clean," "fail to operate the manual opening system to full opening at least twice a month"). Also warranty only honored when "properly installed by a Solara authorized dealer" — the DIY kit channel has a coverage asterisk that's never surfaced in the DIY funnel.
- Quote friction hidden behind "free": "Solara will offer one design for free and any quotes after the initial quote will be charged $70 for each additional quote" — a paid-quotes policy buried mid-page; combined with "think like [a general contractor]" tone ("you are working directly with the manufacturer and 95% of our clients are general contractors… To get this special pricing, you will need to think like one") it reads hostile to the homeowner segment it also markets to.
- Schema gaps: no
Product/Offer/AggregateRating/HowTo/VideoObjectdespite published prices, 20+ how-to videos, and 32 FAQ questions. FAQPage exists but Google largely deprecated FAQ rich results — the upside they captured is mostly wasted. LocalBusinessstreetAddresscontains "602 N. 24th ST Phoenix, AZ 85008" (city/state/zip duplicated into street field) and opening hours claim 24/7 (Mon–Sun 00:00–23:59). - Duplicate/thin doorways: 161 dealer pages with near-identical templates; Chandler ×2, Las Vegas ×3, Salt Lake City ×2 ("…-utah-2"), a typo slug (
solara-specialist-of-best-viny), and orphan slugs outside /dealers/. Four separate thank-you pages (/thank-you/,/thank-you-2/,/solara-thanks-you/,/estimate-thank-you/) — abandoned form experiments left indexed. - Spam/parasite content in blog: the post sitemap contains an unrelated Russian-language casino-review page (one-line: an injected gambling-review post, classic compromised-WordPress parasite spam) — trust and indexing hazard on a manufacturer domain.
- Stale signals: footer "Copyright © 2023"; products sitemap lastmod 2024-04; H1 "Solara’s smart patio cover" duplicated in raw HTML (slider hack); typo "the only ma[nu]facture that offer either extruded or roll form" on homepage; WPBakery + Elementor both loaded (conflict/performance smell).
- Calculator is gated and unanchored: the estimator shows "Total Price Estimate" then demands name/email/phone/zip ("To get an estimated price fill up the email quote form") and the POST endpoint
/calculator_lead/is disallowed in robots (fine for POST, but signals no follow-up page/SEO value); the calculator gives no saved estimate, no PDF, no share. - NAP/tel plumbing nits:
tel:16023888429link with stray leading digit; fax listed; hours 24/7 in schema vs no posted real hours;sameAslists only Facebook (YouTube channel unlinked in schema). - No click-to-call-first CTA hierarchy for emergencies/leads: phone only in top bar/footer text; every primary CTA is "Get Your Free Quote Today" (form). No SMS option, no live chat, no response-time promise ("one of our team members will be in touch ASAP" is the only commitment).
- Trust content behind nav: permits/engineering (their strongest trust asset) is buried under Products → Permits; the homepage never mentions permits, code, or wind/snow ratings despite Phoenix monsoon/heat being the market's core anxiety. (Their monsoon story is one line on the roll-formed page: "withstand up to 150 mph and up to 30 pounds of snow per foot.")
Competitive Gaps Summary
The two map-pack winners split the market's conversion jobs almost perfectly — and each leaves the other's half undone. What follows is where "the Ultimate Patio Cover Site" can take both halves.
- Pricing is the widest gap in the niche. The installer (Outshine) publishes zero dollar figures across 20 pages ("quote-only"); the manufacturer (Solara) publishes hard ranges ($18–32/sq ft own system; lattice $20-30, roll-formed $25-45, extruded $30-70 per sq ft; "over $150 per sq ft" as the rip-off anchor) and even ships a cost calculator. Meanwhile Home Depot owns the organic head term and the $425–$2,037 DIY Shopping layer. Nobody in the Phoenix custom-install SERP writes "what does a patio cover cost in Phoenix" with real numbers — that page (custom install $8k–$30k+ framed against DIY kits and per-sq-ft math) is uncontested and would be the single highest-leverage page on a DropSites template.
- Financing is the mirror-image gap. Outshine has HFS Financial wired into every form ("Are you interested in financing? Yes/No") and the homepage; Solara has none on a product whose totals its own calculator generates. Template rule: financing module + per-month payment math on every price surface.
- Permits/code is the trust wedge nobody leads with. Solara hides world-class permit content (generic engineering packages for 2009/2015/2016 codes, wet-stamped site-specific engineering, wind/snow load pages) two menus deep; Outshine mentions nothing about permits at all despite Phoenix/monsoon anxiety. A homepage-level "Permits & HOA handled (City of Phoenix / Maricopa County)" block would beat both.
- Warranty storytelling is broken on both sides. Outshine outsources its warranty to a Four Seasons PDF hosted on Home Depot's CDN and claims no workmanship warranty; Solara's warranty has maintenance covenants that void coverage and contradicts its own FAQ (5-yr + proration vs "15-year"). Neither claims the obvious differentiator: an installer workmanship/labor warranty on top of the manufacturer's limited lifetime. (The manufacturer's own text says installers are on the hook for installation defects — the gap nobody fills.)
- Schema is half-used everywhere. Outshine: WebSite/Organization/LocalBusiness only — no FAQPage despite 6 on-page Q&As, no Review schema despite testimonials. Solara: rich Yoast graph + FAQPage (32 questions) but no Product/Offer/AggregateRating/HowTo/VideoObject despite prices and 20+ how-to videos. The template can ship the full stack (HomeAndConstructionBusiness subtype, Service+Offer per product line, FAQPage, Review/AggregateRating, BreadcrumbList, HowTo, VideoObject, ImageObject galleries) and out-markup the whole market.
- Reviews are surprisingly weak in this pack. Winner #1 shows 4 manually pasted quotes with no widget/count; winner #2 shows zero on-site social proof. If map-pack ranking leans on GBP reviews, the website conversion layer is wide open: a reviews module with live count, per-city quotes, and before/after pairs would beat both overnight.
- Two different organic strategies, both avoidable head-on. Outshine = 5 cloned city doorways + image-mass galleries (wins Google Images via 59-69 uncaptioned images). Solara = 161 dealer doorways + comparison/cost blog (wins long-tail research queries). Neither has real city content depth (project stories, permits-by-city, HOA-by-city) — cloned doorways with swap-city copy vs thin dealer stubs. Real localized content beats both.
- The DIY/manufacturer layer must be answered, not ignored. Solara sells freight-shipped DIY kits with EN/ES install videos, $70 quotes, and a pricing calculator — it competes directly with the $425–$2,037 Google Shopping kit layer. The winning contractor-site move is a "DIY kit vs custom install" comparison page (permits, warranty, labor, monsoon engineering, resale) that turns the price anchor into a reason to hire.
- Louvered/adjustable is the missing product page in installer-land. Solara's entire brand is the adjustable louver ("control sunlight and shade"); Outshine sold at least one ("style you can open" per its own review) but has no louvered page. An "Adjustable Louvered Covers" product page (motor, app, rain-sensor pitch) is a premium-margin line the installer template should always carry.
- Tracking gap cuts both ways: Outshine runs Google Ads conversion tracking (AW-17354584394) with no call tracking and no Meta pixel; Solara runs GA4 + Clarity + Hotjar with no ads and no call tracking. Neither attributes calls — the template's call-tracking-ready phone module is an easy upgrade pitch.
- Conversion plumbing nits worth fixing by default: Outshine has a dead sitemap page (
/contact-1= "This folder does not contain any pages."), 2 of 3 forms without CAPTCHA, no privacy policy on SMS-consent forms, masked/broken tel hrefs, no H1 on 4 key pages. Solara has 4 thank-you pages, duplicate dealer URLs (Chandler ×2, Vegas ×3), a typo slug, a 2023 copyright, and an injected casino-spam blog post. A template that is simply clean out-technicals both. - Hours/availability: Outshine is Mon–Fri 8–3 (JSON-LD) with no after-hours path; Solara claims 24/7 schema hours with no one to answer. A template with honest hours + SMS/chat + "we reply within X" promise wins the evening-researcher (the majority of the market).
Top Patterns to Steal for the DropSites Template (patio specific)
- Publish per-sq-ft price ranges by product line (Solara's exact frame): lattice $20–30/sq ft, solid/flat-pan mid-band, insulated LRP premium, louvered $25–70/sq ft depending on roll-formed vs extruded — plus the "don't pay over $150/sq ft" consumer-protection anchor. Kills the quote-only coldness of every Phoenix installer and intercepts DIY-kit comparison traffic.
- DIY-kit vs custom-install comparison page ($425–$2,037 Google Shopping kits vs $8k–$30k+ installed): permits, engineered wind/monsoon ratings, warranty validity, labor, removal of old cover, resale. The DIY layer is real competition — answer it with a page, not silence.
- Financing module on every price surface (Outshine's HFS pattern): named lender, "funded within 48 hours, funds sent to the client" mechanics, "Are you interested in financing? Yes/No" as a form field on every form, and "$X/mo on approved credit" next to every price anchor.
- Cost calculator with lead gate (Solara's best asset): louver/rafter size, post count, product tier, PRO-INSTALL vs DIY toggle, motor/box/app/weather upgrades → "Total Price Estimate" revealed after name/email/phone/zip. Template version should also email a PDF estimate and fire a thank-you page (Solara had 4, all messy).
- Permits & code block on the homepage (Solara's buried wedge made loud): "We pull City of Phoenix / Maricopa County permits," HOA letter help, engineered packages, wind/snow-load numbers ("up to 150 mph / 30 psf"), over-the-counter vs plan-review cities. This is the #1 unclaimed trust asset in the Phoenix niche.
- Warranty page that stacks three layers: manufacturer limited lifetime (peel/blister/flake/chip/rust/crack), installer workmanship/labor warranty (nobody claims it — Outshine's own manufacturer PDF punts installation defects to installers), and transferable-10-years resale language (Four Seasons terms are a great template: 0–3 yrs all-inclusive, 4–15 material only, 16+ prorated 50%).
- FAQ module with FAQPage schema AND matching on-page accordions — 6–12 questions, each answer ending in a contextual CTA ("Click here to request your patio cover installation estimate" — Outshine's best micro-pattern). Cover: license/ROC #, warranty, install time ("1.5–2 days with a 2-person crew" is far more convincing than "we'll tell you at the estimate"), cleaning, colors, permits, noise in rain, property value.
- Four-line product hub with per-line pages + per-line galleries: Lattice/Pergola | Solid Flat Pan | Insulated LRP | 4K-style Aluminum | Adjustable Louvered (premium line Outshine is missing). Each page: benefits, color palette (name the colors — Adobe Tan, Apollo Gray, Black, Expresso, Quartz White), maintenance, monsoon/heat framing, gallery, FAQ, quote CTA.
- City pages that are near-clones done right: swap H1 city + one metro-city sentence + a few local project photos + city-specific permits/HOA note + LocalBusiness/service area mention. Outshine's 5 cloned pages + 59-image blocks rank in Maps/Images; template should keep the clone cheap but add 200–300 words of genuinely local content (permit office, common HOA rules, sun-exposure notes) to beat them.
- Image-mass gallery with keyword alt text and captions (Outshine ranks Google Images via volume; Solara names tiles "Pergola Arizona," "Aluminum Roof System in Sedona Arizona"). Template: 40–80 project images, alt text with {city} + {product} + {material}, captions with neighborhood + product line, before/after pairs, and an image sitemap (neither site has one).
- Reviews module with live count + platform attribution ("— Janette T., Google Review") shown on every page in a small carousel, plus a dedicated reviews page with 20+ quotes and a GBP link. Both sites underuse this; the map-pack winner's own 4 quotes prove the format converts locally.
- Always-on tap-to-call + "Request Estimate" CTA hierarchy: announcement-bar click-to-call (Outshine), top-bar phone, "CALL NOW / EMAIL NOW" footer buttons, and a sticky "Get Free Quote" bar (Solara) — but with plain-text NAP in the footer and un-masked, valid
tel:links (both sites got this partly wrong). - Estimate form field blueprint (merged from both): Name | Phone | Email | Zip Code | product-type multi-select (Lattice / Solid / Insulated / 4K Aluminum / Louvered / Privacy Wall) | financing Yes/No | "soonest availability" or a real calendar picker | SMS consent + privacy link | CAPTCHA on every form. Zip Code and product-type selects are the two fields both sites prove are worth the friction.
- Comparison-blog engine for long-tail capture (Solara's organic moat): aluminum vs wood vs vinyl cost breakdowns, louvered vs stationary, adjustable pergola benefits, "how long does a patio cover last," wind/snow load explainers, "does a patio cover increase home value" — 10–15 posts interlinked with product pages. This is how to rank for the research queries Reddit/Quora currently own.
- Clean-tech baseline as a differentiator: one H1 per page, title tags with product + city ("Phoenix Patio Covers — {Brand}"), full schema stack (HomeAndConstructionBusiness, Service/Offer, FAQPage, Review/AggregateRating, BreadcrumbList, HowTo, VideoObject), real sitemap with image entries, no dead pages, one thank-you page, call-tracking-ready phone, GA4 + Google Ads + Meta pixel + Clarity — a site with none of Outshine's or Solara's self-inflicted wounds (dead
/contact-1, masked tel hrefs, duplicate dealer pages, parasitic spam posts, stale copyright).