Chef Gabriele Franco — Sicilian Chef, Sydney

Squarespace → Next.js: 100/100 site health, 0 errors on 118 URLs

Next.jsSupabaseSEO MigrationSchema Markup

Project overview

The personal-brand site for the chef-patron of La Botte d'Oro — recipes, events, articles and enquiries all edited from an admin panel he owns. Migrated off Squarespace onto Next.js and Supabase with every old URL 301-redirected, plus booking-intent pages for cooking classes and private dining and a full JSON-LD entity graph.

The challenge

Gabriele Franco is the Sicilian chef-patron behind La Botte d'Oro in Leichhardt, but his personal brand — cooking classes, private dining, recipes, consulting for other food businesses — was stuck on a Squarespace site he could not extend and did not control. Two risks framed the build: a migration that could not afford to drop URLs or email, and a search strategy that had to choose between recipe traffic (large, national, low intent) and Sydney booking traffic (small, local, high intent).

What we did

  • Rebuilt on Next.js and Supabase, with recipes, events, gallery, articles, leads and enquiries all editable from an admin panel the chef owns — the content he produces weekly no longer needs a developer
  • Migration executed with the URLs intact: DNS moved off Squarespace to Vercel, apex and deployment domains 308-redirected to www, every old Squarespace URL 301-redirected, and every page including each recipe and event detail verified as a 200
  • Booking-intent pages built as their own destinations — a dedicated pasta-making class page (500 searches/month at KD 3, where every page-one result is a single-class page rather than a hub), and a private-dining page retitled to lead with the term a chef who comes to your house actually competes for
  • Recipes converted from dead ends into a funnel: each one now carries a call to action routed by recipe category to the matching class, taking internal links to the classes section from 6 to 10
  • A single JSON-LD entity graph — Organization, WebSite, Course, FAQPage and BreadcrumbList behind one @id structure — with a correction that mattered: the schema had been claiming this site was the restaurant
  • A B2B consulting section with three service lines, a Supabase-backed insights archive and a free food-cost calculator, built to be judged on enquiries rather than sessions

The results

100/100
Site audit health — 0 errors across 118 URLs
15 → 0
Server errors on detail pages after launch
301s
Every legacy Squarespace URL preserved
KD 3
Primary local booking target, 500 searches/month

Services delivered

Web DevelopmentPlatform MigrationTechnical SEOSchema MarkupContent Strategy

Interested in similar services? View all services →

Summary

A chef's personal brand and his restaurant are two different entities, and search engines only understand that if the markup says so. Beyond the migration, the decision that shaped this project was choosing the smaller keyword: the recipe cluster carries thousands of searches a month, but roughly a fifth of it is in Sydney and its intent is dinner tonight, not a booking. A class page at 500 searches a month with 100% local, 100% booking intent is worth more to a working chef than a recipe page that ranks nationally — so recipes stayed, demoted from the goal to the mechanism that feeds the classes.

Want results like these?

Let's talk about your project. Free 30-minute consultation, no commitment.

Start a project