← All work

// Case study

Wine Sellars Bistro

A ground-up rebuild for a family-run, chef-driven restaurant and wine cellar in Lexington, NC — out of a de-indexed WordPress site and into a fast one the Hyatts can run themselves.

Wine Sellars Bistro
Location
Lexington, NC
Engagement
Full rebuild + SEO + self-service CMS
Services
Websites · SEO
Stack
Astro · Cloudflare Pages · Sveltia CMS
Timeline
July 2026
Status
Live
Visit the site →

Where they started

Wine Sellars Bistro is the real thing: Chef Gerald Hyatt, CIA-trained and cooking for more than forty years, running a short seasonal menu alongside a wine cellar deep enough to chase down a specific vineyard or vintage on request. Victoria Hyatt runs the front of house and the cellar with him. Dinner, Wednesday through Saturday, reservations by phone.

None of that came through online. The old WordPress site shipped with noindex, nofollow set site-wide — invisible to Google by mistake, not by choice. The footer’s “Instagram” link pointed at the site itself. The phone link pointed at a stray IP address instead of a phone number. The menu existed only as a PDF, unreadable to search engines and clunky on a phone. A family restaurant built on four decades of real craft had a site actively working against it.

How we approached it

A destination dinner restaurant is found two ways: someone already knows the name, or someone searches “Lexington NC fine dining” and has to trust a result enough to pick up the phone. We built for both, and fixed what was actively broken first.

  • Fix what’s actively losing them customers. Site-wide noindex, nofollow was the single biggest problem — a restaurant that Google was told not to show. That came off on day one.
  • Make the facts crawlable, not just visible. The whole menu — fifteen dishes across starters, salads, and entrées — went from a PDF-only link to real HTML, each dish and price wired into schema.org/Menu structured data so it’s rich-result eligible and can never drift from what’s on the page.
  • Give them a tool, not a ticket queue. Gerald and Victoria update seasonal dishes constantly. Rather than making that a request to us, we built a CMS so the menu, photos, and wine list are theirs to edit — publish, and the site (and the printable PDF, generated from the same data) update together.
  • Protect what the business actually is. No online ordering, no delivery, no walk-in guarantee — the identity work made sure copy and structure never implied a capability they don’t offer. Reservations stay a phone call, on purpose.

What we built

  • A full Astro rebuild on Cloudflare Pages — fast, static, and cheap to run, replacing the old WordPress install.
  • Restaurant structured data: schema.org/Restaurant with address, geo, hours, cuisine, price range, and a full nested Menu → MenuSection → MenuItem graph — plus unique meta and Open Graph tags, a generated sitemap, and an llms.txt for generative search.
  • One source of truth for business facts — name, phone, address, hours — read by every page and every structured-data block, so nothing can quietly disagree with itself.
  • A Sveltia CMS, committing straight to the production branch, that lets the Hyatts edit the menu, photos, and wine list themselves — no code, no waiting on us.
  • The broken stuff, fixed: real tel: links, a working Instagram field (left blank rather than guessed, until confirmed), and an indexable site by default.
  • A design system built from their actual palette — black, warm amber, wine red, cream — carrying the same mood as the dining room itself onto the screen.

Where it stands

Live at winesellarsbistro.com. The site shipped indexable, the full menu is crawlable and schema-linked, and the Hyatts have been publishing their own updates through the CMS since launch — new dishes, new photos, without opening a ticket. Next up once the family’s ready: claiming and updating their Google Business Profile with the new site, and confirming a real Instagram handle to complete the picture.

The finished site

Got something like this to build?

Start a project