Type “best HVAC Hicksville NY” into ChatGPT. Or “kitchen remodeler Suffolk County under $80K” into Perplexity. Or ask Claude who installs heat pumps in Nassau. The model gives you a confident answer with three or four named businesses and a few citation links underneath.
If you are a Long Island contractor reading this, your business is almost certainly not one of those names. Not because your work is worse. Because the model has no structured way to find you, no on-platform proof you exist, and no third-party signal telling it you are credible.
That is the contractor invisibility problem in AI search. Google has been steadily replacing the ten blue links with AI Overviews. Buyers under 40 are starting their renovation research in ChatGPT or Claude before they ever open a search engine. The shortlist forms inside the model. By the time the prospect lands on your site, the decision has been narrowed to two or three names. If you are not on that shortlist, you do not get the call.
Most marketing agencies are still selling you a 2018 product. Faster site. More backlinks. A blog post a month. None of that gets you cited by a generative model. What gets you cited is structured proof — schema the model can parse, citations on platforms it already trusts, and topical authority dense enough that “kitchen remodeler in Suffolk County” resolves to your name without the model having to guess.
The Citation Stack is the five-layer framework I run every Silvo client through. The layers are ordered. Each one is the soil for the next. Skip Position and you build the rest on sand. Build a Foundation without Authority and you become a perfectly indexable nobody. Below — what each layer is, what most agencies miss, and what the work actually looks like.
One note before the layers: this is a Long Island contractor framework specifically. The general principles apply to any local service business, but the examples — Suffolk County kitchen remodelers, Hicksville HVAC installers, Huntington electrical rewiring — are calibrated to the queries Silvo clients actually compete on. If you run a contracting business between Montauk and Queens, the worked examples are yours. If you are reading from outside Long Island, the structure transfers; only the geographic Position decision changes.
Layer 01
Position — Pick the niche you can actually win
Most agencies skip this and optimize whatever framing the client walks in with. That is why those clients do not rank.
Position is the layer almost every agency skips, and it is the one that quietly decides whether the next four layers compound or waste budget. Position is the answer to one question: what is the smallest, most specific query universe where you can plausibly be the most credible source?
A typical owner walks in framing themselves as “a contractor on Long Island.” That is not a Position. That is a category. There are roughly 4,500 licensed home-improvement contractors on Long Island. The query “contractor Long Island” cannot resolve to your name without you having spent a decade and seven figures earning it. So when an agency optimizes for that framing, the work fails — quietly, expensively, for twelve months — before anyone admits why.
A real Position narrows the query universe until the math works. “Kitchen remodeler Suffolk County” is a Position. “Heat pump installer Nassau County” is a Position. “Historic-home electrical rewiring Huntington” is a Position. The pattern is service + sub-region + (optional) qualifier. Each piece narrows the field until the number of plausible competitors drops from thousands to dozens.
The three Position tests
Before you commit to a Position, run it through three checks:
- Volume. Pull search volume for the head term and three close variants. If combined monthly volume is under 200, the niche is too narrow to feed a business. If it is over 50,000, you cannot win it as a small operator.
- Competition density. Search the term in ChatGPT, Claude, and Google AI Overviews. Count the names cited in the answer. If the same five names show up across all three engines, the niche is locked. Pick a tighter geography or a sub-service.
- Conviction. Can you, the owner, defend in one sentence why you are the best at this exact thing in this exact area? If you have to qualify the answer, the Position is too broad. Tighten it.
What a finished Position looks like
A finished Position is a single sentence the owner, the writer, the GBP manager, and the citation tracker all share. Example: “Smith Brothers is the kitchen remodeler for Suffolk County homeowners with $50K–$150K budgets, specializing in cabinet replacement and quartz countertops.” Every layer above this — every blog post, every schema field, every press pitch, every citation — pulls from that one sentence.
That is why Position has to come first. The alternative is what most contractor websites currently are: a generic homepage trying to rank for “kitchen remodeling,” “bathroom remodeling,” “basement finishing,” “decks,” and “additions” all at once. To a model, that page reads as “a generalist with mild interest in five categories.” A model citing one source per query will never pick the generalist over the specialist.
Position is also where most agencies lose money. They take whatever framing the client walks in with — “we do everything in Long Island” — and start optimizing. Six months in, citation rate is still zero, the client churns, and the agency blames Google. The actual cause is upstream. The Position was never winnable.
Done right, Position takes a discovery call, a competitor scan, and one writing session — maybe four hours total. Done wrong, it costs a year.
A Long Island worked example
A real client walked in framed as “a general contractor on Long Island.” Their site listed nine services across both counties. Their citation rate across 20 baseline queries was 0%. Position rewrite collapsed the framing into “kitchen and bath remodels for $60K–$200K homeowners in Suffolk County.” Bath got dropped within 60 days because volume on “bath remodel Suffolk County” was 40% of kitchen volume and the same competitor set was already locked. Final Position: “kitchen remodels, Suffolk County, $60K–$200K.” Three months later, citation rate on the niche-specific queries hit 45%. Same business, same craftsmanship, same address. Different Position.
That is the Position layer in one paragraph. It is not a slogan. It is the single decision that decides whether the next four layers compound or evaporate.
Layer 02
Foundation — Make the page legible to machines
Schema, llms.txt, robots.txt, Core Web Vitals, GBP completeness. Same-day audit lift.
Foundation is where the work becomes mechanical. With Position locked, every Foundation decision has a clear answer. The five Foundation pieces — schema, llms.txt, robots.txt, Core Web Vitals, and Google Business Profile — are non-negotiable for any contractor who wants to be cited.
Schema (the highest-leverage piece)
Schema is structured data that tells a machine what your page is about. Without it, the model has to infer everything from prose. With it, the model gets a clean map: business name, address, service area, phone, hours, services offered, FAQ, founder. Three schemas matter most for contractors:
- LocalBusiness on the homepage. Full NAP (name, address, phone), areaServed for every county and town you cover, openingHoursSpecification, priceRange, and a knowsAbout array of 8–15 topical authority terms drawn from your Position.
- Service on every service page. One Service schema per service. Each one references the parent LocalBusiness via @id. Each one names the area served and the price range.
- FAQPage on the homepage and every service page. Real prospect questions with 50–100 word answers. Models pull entire FAQ blocks into citations more often than any other content type.
A real LocalBusiness block looks like this:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"@id": "https://example-contractor.com/#localbusiness",
"name": "Smith Brothers Kitchen Remodeling",
"image": "https://example-contractor.com/logo.png",
"telephone": "+1-516-555-0123",
"priceRange": "$$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Jericho Tpke",
"addressLocality": "Huntington",
"addressRegion": "NY",
"postalCode": "11743",
"addressCountry": "US"
},
"areaServed": [
{ "@type": "AdministrativeArea", "name": "Suffolk County, NY" },
{ "@type": "AdministrativeArea", "name": "Nassau County, NY" }
],
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "08:00",
"closes": "17:00"
}],
"knowsAbout": [
"Kitchen remodeling",
"Custom cabinetry",
"Quartz countertops",
"Suffolk County permits",
"Long Island home renovation"
]
}
</script>And here is the kind of FAQPage block a Suffolk-County kitchen remodeler should have on the homepage:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How much does a kitchen remodel cost in Suffolk County?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most full kitchen remodels in Suffolk County run $45,000 to $95,000 in 2026. Cabinets and countertops drive 55–65% of the budget. Permits average $400–$900 depending on town. Expect 8–12 weeks from demo to final inspection."
}
}]
}
</script>llms.txt and llms-full.txt
/llms.txt is the AI-era robots.txt. An H1 with your business name, a one-paragraph blockquote summary, then H2 sections listing your key pages with one-line descriptions. /llms-full.txt concatenates the full text of every important page on one URL — the one-shot ingestion file. The convention is at llmstxt.org. Five-minute job. Real audit lift.
robots.txt with an explicit AI bot allowlist
Replace any wildcard rules with explicit User-agent allows for GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended, Applebot-Extended, and CCBot. One block per bot, each with Allow: /. Decide consciously whether to permit training bots (GPTBot, ClaudeBot) or only retrieval bots (OAI-SearchBot, Claude-SearchBot, Perplexity-User). Most contractors want both.
Core Web Vitals
LCP under 2.5 seconds. CLS under 0.1. INP under 200 ms. Slow sites get cited less because they get retrieved less. The fix for most contractor sites is removing the hero video, compressing images, and dropping unused JS. A weekend of work for a real developer.
Google Business Profile completeness
Google AI Overviews pulls heavily from GBP for local-intent queries. Claim and verify the listing. Set the primary category to match your business type exactly. Add 5–10 secondary categories. Fill every service field. Set service area to your real coverage radius. Add 20+ photos including team and work-in-progress. Post weekly updates. Respond to every review within 48 hours. Skipping GBP completeness is leaving the cheapest citation channel on the table.
Foundation is where audit scores jump 15+ points in a day. It is also where most agencies stop, sell you a six-month retainer, and call it done. It is not done. Foundation is the floor.
One subtle point: do not put aggregateRating on the parent Organization or LocalBusiness schema. Self-serving review schema is a Google manual-action risk and the model engines have started discounting it as well. Reviews live on Google Business Profile, on Yelp, on Houzz. Your schema points at the platforms that hold those reviews. Do not invent your own.
Layer 04
Citations — Show up where LLMs already trust the source
On-site (FAQ blocks, lists, tables, BreadcrumbList) and off-site (Yelp, Google reviews, listicle inclusion).
Citations is the layer where Authority becomes external. Authority on your own site is necessary but not sufficient. A model trusts your homepage less than it trusts a third-party platform vouching for you. The Citations layer splits into two — on-site citation density and off-site citation density.
On-site citation surfaces
Models pull from specific HTML structures faster than from prose. Build for the structures:
- FAQ blocks with FAQPage schema. Every service page. Real questions, 50–100 word answers, cited statistics where relevant.
- Numbered lists for any “steps,” “tips,” or “phases” content. Models pull list items into bullet-point answers.
- Comparison tables — material A vs material B, option 1 vs option 2, price range A vs price range B. Models love structured comparison and will reproduce table rows nearly verbatim.
- BreadcrumbList schema on every page. Helps the model understand site hierarchy and surface deeper pages in citations.
Off-site citation density
Off-site citations are the leverage move. They are why a competitor with a worse website still outranks you in ChatGPT. Three buckets, in priority order:
- Vertical directories. For contractors: Houzz, Yelp, Angi, BBB, HomeAdvisor, BuildZoom, Porch, plus your trade-specific lists. NAP consistency across every listing matters more than the count. Aim for 30–50 strong listings, not 300 scrappy ones.
- Google reviews and Yelp reviews. Volume and recency. A business with 80 reviews in the last 12 months gets cited more than a business with 400 reviews from 2017. Set a system to ask every closed-out customer for a review within 7 days. Respond to every review within 48 hours.
- Listicle inclusion. “Best 10 kitchen remodelers on Long Island” type articles on local publications. These are gold. Models pull listicle content into “best” queries directly. Pitch local press (Newsday, LIBN, Long Island Press, Patch, niche trade publications) with a real story angle, not a press release. Press releases are 0.04% of LLM citations, per ALM Corp's 2025 analysis. Earned editorial appears in LLM training and retrieval data at a meaningfully higher rate.
Citations is the slowest-moving layer and the highest-leverage. A single Newsday listicle inclusion can outweigh six months of on-site optimization. Plan for one earned editorial mention per quarter, minimum.
Layer 05
Tracking — Measure citation rate, not vanity rank
Citation dashboard, monthly report, iteration loop.
Tracking is what turns the Citation Stack from a one-time deploy into a compounding program. Without it, you cannot tell whether the work is working. With it, every layer becomes a feedback loop.
The citation dashboard
Pick 10–20 queries a real prospect would type. Mix branded (“Smith Brothers reviews,” “Smith Brothers Suffolk County”) with discovery (“best kitchen remodeler Suffolk County,” “kitchen contractor Hicksville,” “quartz countertop installer Long Island”). Run each one daily against ChatGPT, Claude, Perplexity, and (when accessible) Google AI Overviews. Parse responses for your business name and source URL. Store results in a database. Render a dashboard showing share-of-voice over time.
The metric that matters is citation rate: of N queries, how many returned your business name? Day 0 citation rate for most contractors is 0–10%. Target after 90 days is 40%+. Target after a year is 60–70% on the niche-specific queries Position locked you into.
The monthly report
One report per month. Three numbers: citation rate change, number of new vertical citations live, and number of source-grounded posts published. Plus three screenshots — one query that started citing you this month, one query that lost a competitor (good signal), and one query you are still losing (the work to do next). The report is a one-pager. Anything longer is for the agency, not the client.
The iteration loop
The dashboard is a feedback signal, not a scoreboard. Every time citation rate jumps for a query, ask why. Was it a new blog post? A press placement? A schema update? Pattern-match the signal back to the work and double down. Every time citation rate stalls, ask why too. Stalls usually mean you have hit a content gap or a competitor put up a better resource page. Fix the gap.
Iteration is what separates a one-time AEO deploy from a compounding program. The Stack is not a checklist you finish. It is a flywheel you keep turning. Position locks the niche. Foundation makes you legible. Authority earns the citation. Citations distribute it. Tracking turns the whole thing into a feedback loop.
Why citation rate beats keyword rank
Most contractor SEO reports still lead with keyword rankings. Where do you sit on Google for “kitchen remodeler Long Island”? That number is becoming a vanity metric. Google AI Overviews already answers a growing share of those queries inside the SERP, and ChatGPT and Perplexity answer the rest off-platform entirely. The user never sees the ten blue links. They see the generated answer with three names in it. If you are not one of the names, the rank does not matter.
Citation rate is the metric for the new surface. It maps directly to revenue: of the prospects who ask an AI engine for someone in your category, how many get your name? Track that number, move it, report it. Every layer of the Stack exists to push it up. Everything else — domain authority scores, keyword positions, technical-SEO checklists — is a leading indicator at best.
Common questions
Does the order matter?
Yes. Skipping Position and starting at Foundation is the most common failure mode in this industry. You will deploy schema and llms.txt for the wrong query universe, then wonder why citation rate stays at zero. Position first. Always.
How is the Citation Stack different from regular SEO?
Regular SEO ranks pages on a search results list. The Citation Stack gets your business named as a source inside a generated answer. The on-page work overlaps about 80%. The 20% delta is structured Q&A content, llms.txt, AI-bot allowlists, vertical citation density, and brand mentions on platforms LLMs trust.
Can a small contractor really run this?
Yes — any owner can run Position, claim a Google Business Profile, and submit to vertical directories on a weekend. Foundation work (schema, llms.txt, robots.txt) takes a developer half a day. The compounding work — content, press, citation tracking — is what most owners outsource because it never gets done if it's not someone's job.
How fast does this work?
Audit-score lift is same-day for Foundation. Citation rate — the metric that actually moves revenue — moves on a 60- to 90-day curve. That is how long press, vertical directories, and content compounding need to register in LLM training and retrieval indexes.
What if my site is on Wix or Squarespace?
Fine for Foundation. All major builders support custom JSON-LD injection, llms.txt at the root, and robots.txt edits. If your platform caps you at 80 on the audit because of bloat or limited schema support, then a rebuild becomes the bottleneck — but you do not need a custom site to start.
The next move
The Stack is the work. The audit is the door.
The fastest way to know where your business sits on the Citation Stack is to run the free audit. It scores all five layers — Position fit, Foundation depth, Authority signals, Citation density, and Tracking readiness — and pulls a live citation snapshot from Anthropic and OpenAI so you can see exactly which queries already cite you and which ones do not.
No email gate. No demo call required. The full report renders in your browser in about 30 seconds.