Case study: multi-brand concessions and catering, Dallas-Fort Worth
The client
A full-service concession and catering company operating across the Dallas-Fort Worth metroplex, holding contracts at city-owned and privately operated venues:
- Municipal sports complexes and field houses
- University athletics centers
- Convention centers, as a subcontractor to the prime concessionaire
- Public pools and lakefront facilities
This is a multi-million-dollar hospitality operation. The company runs multiple brands under one operator:
- A flagship concession brand operating at five or more venues
- Specialty kiosks built on national franchise licenses, covering frozen dessert, smoothie, and gourmet popcorn
- On-site catering brands, from grill service to full-service events
- A premium catering brand for weddings and corporate work
Concessions is the primary revenue driver, with catering and special events as a smaller supporting line, and the company pursues new venue partnerships year round.
The problem
Multiple brands. Multiple websites. All of them competing against each other.
Every brand had its own domain, and every domain was chasing overlapping search terms. Authority that should have accumulated in one place was being split across them all. A venue manager looking for a concessions operator and an event host looking for a caterer were being served by sites that were bidding against their own siblings.
Underneath that, the technical foundation was leaking:
- Pages were not self-canonicalizing, so search engines could not tell which version of a page was the real one
- The sites were built as single-page applications, which meant a crawler that does not run JavaScript saw close to nothing
- Search Console was not verified, so there was no visibility into what was indexed and what was not
- Brand pages were thin enough that crawlers flagged them
- No analytics tag was installed on the umbrella site
And there was a commercial gap that had nothing to do with software. A catering enquiry arrived, 50 guests, two hours, and there was no documented price anywhere in the business. The pricing existed on a website. It did not exist anywhere the team could actually reach for it.
What I built
A territory map, so the brands stop competing with each other
Every search intent in the portfolio was assigned to exactly one domain. The umbrella site owns operator and buyer intent: concessions operator, venue food service, RFPs, revenue share, subcontract cart programs. Each brand domain owns the single service its customers actually search for, and nothing else. Brand pages on the umbrella site target branded queries only and link out, so they work as doorways rather than as competitors.
One question governs every new page: who is searching? A venue manager or a prime concessionaire goes to the umbrella site. An event host who wants one service goes to that brand's domain.
A technical foundation that machines can actually read
- Canonical tags corrected so every page self-canonicalizes and matches the sitemap
- Pre-rendered content served to crawlers, so a bot that does not execute JavaScript sees the full page
- Search Console verified across the portfolio, with index recovery tracked
- Page titles corrected to length
- Analytics installed and reporting
AI answer visibility, monitored daily
Buying-intent prompts run every day across the major assistants, tracking whether this operator gets named when someone asks an AI for a concessions company in Dallas-Fort Worth, and which sources those assistants cite when they answer. A single day's reading is noise. A trend is something you can decide on.
Content written for buyers, not for traffic
A brand explainer series, one article per brand, each naming the venue problem and showing the brand as the operator's answer. Every article is built on a buying-intent query, cross-links the sibling brands that complete the picture, and carries a fixed heritage line tying the new brand identity to a twenty-year operating history. The repetition is deliberate. Exact repeated phrasing is what links two entities together for search engines and AI answer engines alike.
Lead capture built per brand, not one form for everything
A specialty cart booking and a full-service wedding are not the same conversation, and they do not need the same information. Every brand got its own enquiry form, built from a shared template so the data still lands in one place, plus SMS registration so the business can legally text a lead back.
An agent layer over live operating data
Custom agents wired into the company's point-of-sale, so questions about sales, catalog, inventory, and labor get answered from live data instead of from a spreadsheet somebody exports on Monday.
Procurement intelligence, running year round
This company wins revenue through venue contracts, not only through marketing. So the system also monitors public bid postings and contract expirations across DFW municipalities and maintains a ranked target list of venues by fit. The output is a bid package, ready to submit.
Where it stands
The infrastructure is live. The measurement is not finished.
Baselines were captured before any of it went in: index status, search impressions, AI visibility by assistant, map position, review profile. The read that matters is the ninety-day one, and it is not in yet.
I would rather show you a case study with a hole in it than a number I cannot defend. This section gets filled in when the data arrives, and the numbers will be whatever they turn out to be.
Ready to get found, booked, and back to your evenings?
What's your visibility with AI? Get your AI Visibility Check for $97 and see where customers can't find you, and what to fix first.
$97, one time, delivered in a day or two. You keep what I find either way.