A homeowner in a 1998 brick ranch googles “replace vinyl windows before winter” after a draft hits the hallway at 6am. That search is not a brochure request. It is a quote job with a measured opening, a lead time, and a crew calendar. If your ads, maps listing, and landing page treat it like a catalog browse, you pay for curiosity and your estimators still start the week empty.
Digital marketing for windows and doors companies is not “more traffic.” It is a system that separates replacement and new-build intent from DIY glass clips, then hands a named job (measure, install, commercial storefront, storm replacement) to a form or call your team can actually schedule. Search CPCs have climbed (as of Q4 2024, home-services CPCs averaged $6.77, WordStream), Google Ads ROAS still clusters around 4.2x when the funnel is honest, and Meta sits closer to 2.8x. These are directional averages from managed accounts in home-services categories - your number depends on ticket size, close rate, and how you define the conversion event. Those averages hide the real leak: 20-30% of paid search spend still dies on irrelevant queries, thin homepages, and broken conversion signals.
This piece walks the mix that actually fills measure calendars: search and Performance Max for high-intent jobs, organic pages that survive zero-click SERPs, creative that names the product not a lifestyle montage, and post-click proof that survives a 30-40% mobile conversion gap versus desktop.
Where window and door spend leaks before a measure is booked
Most programs fail at intent, not at “not enough ads.” Replacement vinyl, energy-rated casements, sliding patio doors, commercial aluminum storefront, and hurricane-rated units do not share the same buyer, ticket, or sales cycle. One branded Search campaign plus a homepage still treats them as one SKU. You then wonder why CPC pressure pushes the team back to manual bidding on a fresh account, while smart bidding starves because 20%+ of conversion events never make it past ad blockers and privacy cuts.
Mobile already takes 63%+ of paid search clicks, yet window configurators, 12-field “get a quote” forms, and 8MB gallery heroes punish phones. As of the 2024 Web Almanac, 43% of origins pass all three Core Web Vitals. INP stalls on “upload a photo of the opening” widgets. The estimator never sees the lead. Last-click then double-counts the same booked measure across Search, PMax, and a remarketing view, so finance argues the dashboard while the diary stays thin.
Creative fatigue shows up in CPM before lead volume drops. A 15-second patio-door reel that looked strong on day two is dead by day six. Teams still stack 2020 lookalikes instead of treating creative as targeting. On the organic side, 68% of US Google searches ended without a click in early 2026, AI Overviews sit on more than 20% of queries and can cut CTR by nearly 60%. Post count alone does not move organic share. Information gain - actual U-factor tables, permit notes, install sequencing - is what earns citations and clicks. Information gain (clear U-factor tables, install sequencing, permit notes, warranty language a human wrote) is what still earns the click and the citation.
If a partner’s first move is “we’ll send everything to the homepage,” that is the leak. Dedicated measure pages, matched to the ad, beat another platform. Tighter positioning and cleaner tracking outperform a sixth channel. If you need a second pair of eyes on the post-click path, HeyLead’s web design and landing page work is built for this handoff, not a pretty brochure rebuild.
A channel mix that books measures, not catalog clicks
Lead with Google Search and Performance Max for “replace windows [city],” “impact windows install,” “commercial storefront doors,” and brand-plus-competitor terms. PMax often carries the bulk once conversion signals are clean; well-run accounts still see 4x-8x ROAS when you feed it real booked-measure events, not “form submit.” Keep a small exact/phrase layer for the jobs you cannot afford to miss. Broad match paired with Target CPA bidding has shown 12-18% CPC reductions in Google’s own case studies - verify this holds in your category before scaling, but they amplify garbage if negatives and landing pages are lazy.
Use Meta for proof and remarketing, not as your only cold engine. Average Meta ROAS near 2.8x is fine when the creative names the unit, the energy rating, the install crew, and the service radius. Broad targeting plus a systematic creative engine beats stacked interests. Short video has to stop the scroll with a failed seal, a bowed frame, or a before/after opening, not a sunset living room. Ads die in days even when early results look solid. Plan replacements, do not wait for the weekly report.
Organic still matters because zero-click and AI Overviews steal the easy queries. Rank for comparison and “should I replace or repair” jobs with pages that a sales engineer would sign off. Schema for LocalBusiness, FAQ, and product where it is honest. Local pack and Google Business Profile photos of real installs beat stock. If you publish at scale, keep a human editor on specs; HeyLead Auto Blogger can hold cadence across service areas without turning every city page into the same AI paragraph.
Measurement is the spine. Enhanced Conversions and a Conversions API (or equivalent server events) protect bidding when browsers drop 20% of pixels. Fire a primary conversion on “measure booked” or “qualified call over 90 seconds,” not on newsletter signups. UTMs on every creative. Weekly, not monthly, reads: search terms, negative harvest, creative CPM, landing conversion by device. Last-click is a tactic, not the CFO answer. Directional incrementality (geo holdouts, brand vs non-brand, call-only vs form) beats arguing which dashboard is “right.”
Audit scorecard
-
Intent map by job typeSplit replacement windows, patio/sliding doors, en
Intent map by job typeSplit replacement windows, patio/sliding doors, entry doors, storm/impact, and commercial storefront. Each cluster gets its own search themes, negatives (DIY, parts only, used, jobs, training), and a landing page that names the install, not the catalog.
-
Account shapeFewer campaigns, broader targeting, clean conversion setup
Account shapeFewer campaigns, broader targeting, clean conversion setup. One PMax for proven jobs once you have 30+ weekly qualified events. Brand Search isolated. Do not reset learning with daily structure edits.
-
Landing proofShow U-factor or SHGC ranges you actually sell, crew photos
Landing proofShow U-factor or SHGC ranges you actually sell, crew photos, typical lead time, financing if you offer it, and a short form (name, ZIP, opening count, phone). Match the ad headline. Send paid traffic here, never the homepage.
-
Signal qualityGTM plus Enhanced Conversions, call tracking tied to the s
Signal qualityGTM plus Enhanced Conversions, call tracking tied to the same job ID, and a server event for booked measures. If in-platform CPA and the diary disagree, trust the diary and fix the event, not the bid strategy first.
-
Creative engineRotate 5-8 short videos and statics per job type
Creative engineRotate 5-8 short videos and statics per job type. Kill on rising CPM, not on a feeling. UGC-style install clips peak in 5-6 days. “Creative is your targeting” only works if the offer and page are equally tight.
-
Organic information gainPublish pages that add numbers a homeowner or GC
Organic information gainPublish pages that add numbers a homeowner or GC cannot get from an AI Overview: permit notes for your cities, typical install duration, what a measure visit includes. Thin city pages do not move citation share.
Get a free marketing audit - we review your search, ads, and landing pages and send back what to fix first.
Get a free audit

How a replacement-window team rebuilt the path from click to diary
A regional replacement firm was buying “windows near me” into the homepage. Form volume looked healthy. Estimators said half the calls were glass-repair and hobbyists. Search terms were never harvested. PMax was optimizing to a thank-you page that fired on every submit, including junk.
They cut the conversion event to “calendar booked” only, added ZIP and opening-count fields, and built three landers: vinyl replacement, sliding patio, impact. Negatives killed “how to replace a pane,” “window film,” and “career.” Search CPC did not magically drop, but cost per booked measure did, because 20-30% of the old budget had been paying for the wrong query class. Mobile CVR still lagged until they killed the 12-field form and compressed hero video. Optimizing to quote forms had hidden glass-repair junk; switching the conversion to booked measures made PMax look worse for two weeks, then the diary actually filled.
On Meta they stopped selling “beautiful homes.” The winning 11-second clip was a thermal camera on a failed seal, then a crew setting a unit in a brick opening, then a ZIP-based CTA. Broad targeting, weekly creative swaps. CPM rose on day four of a winner; they swapped before lead volume collapsed. They used HeyLead Insights on the landers and found rage clicks on a non-working financing calculator. Fixing that one control moved more qualified forms than another ad set. CPM on the patio-door reel climbed on day five while leads still looked fine; waiting created a hole in week two, so they now kill on CPM, not on volume.
Organic was slower and more honest: one comparison page on replace vs repair, one on energy ratings in plain numbers, GBP photos of actual jobs. They did not promise rankings in a week. Pipeline contribution from non-brand organic showed up in months, not days, which is the only timeline that survives a CMO review.
Action checklist
- Export 90 days of search terms and mark every query as booked-measure, parts/DIY, job-seeker, or competitor-research. Build negatives from the last three buckets before you raise budget.
- Rebuild one dedicated lander per job type with a matching H1, proof, and a three-to-five field form. Check titles, H1, meta, Core Web Vitals, and Open Graph before you spend.
- Change the primary conversion to a qualified event (booked measure or qualified call). Turn on Enhanced Conversions. Stop bidding on newsletter and “download brochure.”
- Stand up PMax only after you have stable events. Feed asset groups with real install photos, not stock. Keep brand Search separate so you can see incremental non-brand.
- Script four Meta or YouTube clips that show failure, product, crew, and radius. Replace on CPM, not on a calendar ritual.
- Add FAQ schema only for questions you actually answer (lead times, who pulls permits, what the measure visit includes). Validate markup before you chase AI Overview inclusion.
- Tag every URL with UTMs. Reconcile in-platform CPA to the job diary once a week. If they diverge, fix tracking before you rewrite the media plan.
Free tools - try these yourself
What still breaks after you “turn on PMax”
Automated bidding will spend into junk if the event is junk. That is the real objection, not “AI is evil.” High CPC pressure tempts a return to manual on new accounts; that can be a short diagnostic, not a religion. Broad targeting wastes money only when the creative and lander are vague. Google still needs keywords and negatives even as delivery leans on signals. Constant campaign surgery resets learning and is how teams talk themselves into “the algorithm is broken.”
AI Overviews can raise impression share while starving clicks. Optimize for being the cited, useful answer and for the queries that still click (local replace, commercial bid, storm replacement). Do not celebrate impression charts. Agency pricing in this category is noisy: PPC fees often sit at 10-20% of spend, retainers vary wildly, and nobody can guarantee a CPL before they see your close rate, ticket, and landers. Realistic lift takes 3-6 months of creative, negatives, and page tests, not a viral reel.
Mobile gaps hide in blended reports. Slice device. If desktop CVR looks fine and mobile is 30-40% worse, you do not have a “channel problem.” You have a tap, form, or INP problem. Attribution across tools will disagree. Pick the diary as source of truth, then make platforms report the same event. That is unglamorous plumbing, and it is why full-stack work costs more than a media-only retainer.

FAQs
Should window and door companies start with Google Ads or Meta?
Start with Search and a tight measure lander if you already get branded and “replace windows” demand. Use Meta to prove the install and to remarket people who bounced. Meta as the only cold channel is how you buy lifestyle clicks at 2.8x average ROAS while estimators wait. Pair Search with job-type landers first so cold Meta spend has a conversion path that can actually book a measure.
Why does in-platform CPA disagree with booked jobs?
Pixels drop, thank-you pages fire too early, last-click double-counts, and call leads never hit the tag. Fix the event definition and Enhanced Conversions before you change bids. Cross-reference in-platform conversions against your CRM or scheduling tool - that count is the ground truth for bid decisions.
Do we still need SEO if AI Overviews steal clicks?
Yes, for local pack, comparison queries, and citation share. Thin AI pages do not help. Pages with real ratings, install process, and city-specific constraints still earn the click that becomes a measure. Rank for “replace vs repair” and permit questions a sales engineer would sign off, not for generic city clones.
How many landing pages do we actually need?
One per job type you will spend against: replacement windows, patio doors, entry doors, impact/storm, commercial. Do not clone 40 city pages with the same paragraph. Match the ad, then add proof. Each lander should name the install, lead time, and form fields an estimator can schedule from.
Can anyone guarantee a ROAS before seeing the account?
No. Close rate, average ticket, service radius, and page speed change the math. Anyone quoting a fixed CPL on a sales call has not looked at your diary. Ask for a diagnostic on events and landers before you accept a media-only ROAS promise.
Putting it to work
Execution sprint
This week
- Pull 30-90 days of performance for windows and doors (Search Console, ads, CRM, or call logs - whatever you have).
- Flag the top leak: wrong intent, weak page, slow response, or dirty conversion tracking.
- Ship one fix on the highest-traffic money path (page, campaign split, or response rule).
- Run the free tools below on that same URL or account and log the findings.
Free tools for this sprint
Next 30 days
- Expand the fix to the next one or two money paths only after the first one shows cleaner bookings.
- Align creative, keywords, or content with the same offer the page now states.
- Review booked outcomes weekly; cut anything that still only produces unqualified volume.
This week
-
Pull 90 days of search terms and negative out DIY, parts, and job queries.
-
Point the highest-spend ad group at one dedicated measure lander, not the homepage.
-
Change the primary conversion to booked measure or qualified call.
-
Run the Core Web Vitals, H1, title, and meta checkers on that lander.
-
Tag every live URL with the UTM builder so diary and ads can reconcile.
Next 30 days
-
Stand up or clean PMax only after events are stable.
-
Ship a four-clip creative set and replace on rising CPM.
-
Add FAQ schema for measure-visit and permit questions you truly answer.
-
Slice mobile vs desktop CVR and fix the form, not the bid cap, if mobile lags.
If the gap is the path from ad copy to a booked measure (wrong events, homepage dumps, creative that dies in five days), HeyLead can own that loop: search structure, landers, tracking, and creative rotation so your estimators see jobs, not form spam. Start with a free audit or chat with us on WhatsApp.
Free marketing audit, or reach Martin directly:
Get a free audit Connect on WhatsApp · [email protected]