TenworksRochester, NY Case study Built & sent ← Overview
Case study · Web design, local SEO & bilingual build Walk through the build →

El Pilón Criollo

A family-run Puerto Rican steam-table kitchen on La Avenida with no website at all — and a lapsed domain that now serves an offshore gambling site under their own name. Built on spec: four bilingual pages, a full schema layer, and a domain plan the owner actually holds.

Client
El Pilón Criollo · 973 N Clinton Ave, Rochester, NY
Scope
Research · Design direction · Full build · Local SEO · Bilingual EN/ES
Stack
Hand-built HTML / CSS / JS · Netlify · Git
Studio
Tenworks · Tenzin
How to read this

This one wasn't commissioned. I found the restaurant, researched it, and built the site on spec before asking for the work — so what follows describes a build and a set of findings, not a result.

Every business fact here was verified against the restaurant's own managed ordering page and confirmed with the owner. Nothing on this page is a performance claim. There is no traffic data, because it isn't live on their own domain yet.

01 · The starting point

No website. And their name pointing at a casino.

El Pilón Criollo has fed North Clinton Avenue for years — 4.5 stars across more than a thousand Google reviews, 4.7 on Facebook. What they didn't have was anywhere online that they controlled.

02 · What the research turned up

The competition barely exists online.

Rochester has the second-largest Puerto Rican community outside New York City, and North Clinton Avenue — La Avenida — is its historic main street. The Puerto Rican Festival runs down it.

~8
Puerto Rican restaurants in Rochester
1
that has a website of any kind
0
competitors with a menu a search engine can read

The one competitor with a site runs on a page builder with PDF menus and no meta description. A real HTML menu with structured data outranks that without trying.

The positioning nobody can copy

The competitor is on Culver Road. El Pilón is on La Avenida. Heritage can be claimed by anyone. That address can't.

03 · The design direction

Don't design a restaurant website. Design the counter.

The first direction came back as the median restaurant template — hero with overlay, a row of four cards, testimonial strip. Paste a sushi bar into that skeleton and nothing breaks, which is the problem.

It also carried a real bug

The “flag ribbon” running across every page was red, marigold and green. The Puerto Rican flag has no green in it. Red, gold and green is the Mexican palette — the wrong country's flag, on every page of a Puerto Rican restaurant.

The second direction came from how the place actually works. El Pilón is cafeteria-style: the food sits hot in stainless pans and you point at what you want, then pick your size. So the site is the counter.

The test it had to pass: the layout should look broken if you pasted another restaurant into it.

BuiltThe El Pilón Criollo homepage — the address as the headline, the mural as the hero image
The home page — the address is the headline, the mural is the hero, and the size decision sits one scroll down.
04 · The build

Four pages, two languages, built to be read.

4
pages — home, menu, about, contact, each with its own title, description and canonical
132
matched EN/ES string pairs — every line of copy exists in both languages
23
menu items in structured data across 5 sections
0
dependencies — no framework, no build step, no monthly platform

A persistent EN/ES toggle switches the entire site and persists across pages. Both languages live in the served HTML, so there's nothing to fetch and nothing to translate on the fly — and with JavaScript disabled the site still works and every page is still reachable.

Restaurant schemaMenu schemaConfirmed hoursGeo coordinatesareaServedhasMenuOrderActionBilingual og:localeSitemapSecurity headers
BuiltThe El Pilón Criollo menu page — Every plate, your size, with pequeño, mediano and grande pricing
The menu page opens with the size decision, then runs down the steam table pan by pan.
A deliberate omission — aggregateRating

The 4.5 stars across 1,007+ reviews are real, and marking them up would be easy. It's left out on purpose: Google doesn't allow self-serving review markup — a business rating itself — for LocalBusiness rich results, and misusing it risks a manual action.

The visible rating cards link out to the real Google, Facebook and Yelp listings instead. Same social proof, compliant pattern, no stars that were never going to show.

05 · Getting the facts right

The details that decide whether someone finds a locked door.

A restaurant site is mostly a promise about where to go and when. Every fact was verified against the restaurant's own managed ordering page and confirmed with the owner before it shipped.

Three places that have to agree

Hours now live in the visible table, the home page fact card, and openingHoursSpecification in the schema — and the schema block was left deliberately empty until the owner confirmed. Publishing wrong hours to Google is worse than publishing none.

06 · What changed

Before → after, line by line.

Web presence
None — platforms only→four owned pages

An address of their own, rather than five accounts on other people's platforms.

Their domain
Offshore gambling site→a domain the owner holds

Registered in her name, on her card, with her email.

Language
English-only listings→fully bilingual EN/ES

132 matched pairs, both languages in the served HTML.

Structured data
None→Restaurant + Menu

Hours, geo, cuisine, price range and service area, all machine-readable.

The menu
A photo of a printed sheet→23 readable items

Real HTML with prices, in structured data across five sections.

Catering
Invisible→its own section

With the review that sells it, and the seven-day availability spelled out.

Daily specials
Instagram only→on the menu page

Photos only, no prices — so nothing goes stale that the kitchen has to maintain.

Mobile navigation
Comp hid the links below 640px→drawer

The phone visitor gets the whole site, not a truncated one.

The mural
On a wall, nowhere else→the hero image

The single most distinctive thing they own, finally doing work online.

Phone number
339 in captions, 338 elsewhere→one number, everywhere

Every call routed to a phone that rings.

07 · Found in AI search

A business with no site is a business with nothing to quote.

People ask ChatGPT, Gemini and Google's AI overviews “where's good Puerto Rican food in Rochester?” Those systems answer from sources they can parse. A restaurant that exists only as a Yelp entry and an Instagram grid gives them almost nothing — and a domain that resolves to a casino page gives them something actively wrong.

What the build puts in its place

A Restaurant entity with a verified address, geo coordinates, confirmed hours, cuisine, price range and service area; a Menu graph with five sections and every item and price; and an OrderAction pointing at the real delivery platforms.

The result is a business an answer engine can identify, quote and attribute — instead of an unlabelled page, or worse, the wrong page.

08 · The ownership piece

The website is the easy half.

The reason this became a conversation at all is that the owner said she was looking for a site she owns. The hijacked domain is exactly why that instinct is right.

09 · Where it stands

Built, verified, and honest about what's unproven.

0
performance claims — it isn't live on their own domain
4
pages built, verified and ready to deploy
3
things still needed from the owner

What's done: the site is built, every business fact is verified, both schema blocks validate, and the whole thing is in version control.

What isn't here

No traffic numbers, no ranking claims, no before-and-after graph. Those get written when Search Console has something real in it.

Your site could be next

Want to see yours next to what you're running now?

That's how I work: a free SEO audit, then I build the fix and set it beside what you have. You decide with your own eyes.