I spent a while going through restaurant websites, expecting to write something about photography and typography.

That is not what separates them.

The dividing line is boring and it is the same one every time: is the menu a web page, or is it a file you have to download? Every restaurant site I would call good puts the dishes and the prices in the page as text. Every one I would call weak makes you open a PDF or squint at a photograph of a printed menu.

That is it. That is the whole finding. Everything else is decoration on top of it.

Here are ten that get it right, what each one specifically does, and where even the good ones slip.

The ten

Zingerman’s Roadhouse, Ann Arbor

The menu is not one page, it is about ten. Dinner, breakfast, happy hour, and the rest each live at their own address. That means a regular can text a friend a link to the happy hour menu instead of saying “scroll down.” Prices are right there in the text: Roadhouse Burger $23.

They also list the drive-thru hours separately from the dining room hours, because those are different times. Almost nobody bothers with that.

The one gap: ordering hands you off to a Toast address, so their name disappears at checkout.

Franklin Barbecue, Austin

Per-pound pricing in plain text. Brisket $42 a pound. For a barbecue joint that is unusual, most post a photo of a chalkboard.

The hours are the best line on any site I looked at: “Tuesday to Sunday: 11AM to Sold Out (2 or 3pm).” That is the actual business, written down honestly, instead of a template field filled in with a fake closing time.

Advance orders run on their own subdomain rather than a marketplace.

Chai Pani, Asheville

The best ordering setup in the whole group. “Order Online” goes to chaipani.com/order. It is running on Toast underneath, but the customer never leaves their name. That is a settings decision, not a rebuild, and almost nobody makes it.

Three locations, each with its own address, phone, and full hours on one page.

Kachka, Portland

Menu split across six or more pages with prices in text. Rabbit in a Clay Pot $38. Both reservations and takeout sit in the nav, so either action is one tap from anywhere on the site.

Via Carota, New York

This one is worth studying for a reason most people would miss. The designed menus are images, which is normally a mistake. But they publish a plain text version at viacarota.com/text with every price on it.

That means a screen reader can read it, Google can index it, and someone on a slow phone can still find out what things cost. Almost nobody bothers with a text fallback. If you are attached to your designed menu, this is how you keep it without paying for it.

Rolf and Daughters, Nashville

Prices in text. Address, phone, hours, and a real email address in the footer of every page. Reservations one tap away.

Small smell: two menu URLs in circulation, /menu and /menu-1. That is what happens when nobody owns the site after launch.

The Publican, Chicago

Full dish descriptions with prices as text, oysters priced individually. Ordering goes to a platform their restaurant group owns rather than a delivery app.

The gap: hours are not on the homepage. You have to click through to a location page to find out when they are open.

Miller Union, Atlanta

Six separate menu pages, prices in text, hours and phone on the homepage. Good site.

Then the URLs: /new-page-1-2-1 and /new-page-1-2-1-5-4. Squarespace defaults nobody renamed. The content is right and the address is unshareable, which is a five minute fix that has been sitting there for who knows how long.

Elske, Chicago

Clean human URLs, /food and /drinks, prices in text, reservations in the nav. Nearly perfect.

And then no hours anywhere on the homepage. For a tasting menu restaurant, “when are you open” is the most-asked question on earth, and it is the one thing missing.

Frasca, Boulder

Tasting menu prices stated up front. Address, phone, hours, reservations all present.

The wine list is the one holdout, still a PDF, with spaces in the filename. Good example of how this creeps back in: you fix the food menu and the wine list quietly stays a download.

Four good restaurants with one bad decision

I am not picking on anyone here. These are all places I would happily eat. Each site just makes one specific choice that costs it.

Monteverde in Chicago has an excellent homepage, reservations and ordering both wired up, everything you would want. The menu page is five PDF links.

Bestia in Los Angeles has address, hours, phone, and OpenTable on the homepage. The menu is images with no prices in text at all.

Turkey and the Wolf in New Orleans has real voice, real information, and a menu PDF with 2025 in the filename.

Lilia in Brooklyn does something genuinely clever, embedding the reservation widget directly into the menu page so you can book while you are reading. The homepage “Reservations” link is broken. Its href is literally https://www.lilianewyork.com/class=. Someone will fix that in about thirty seconds once they notice, which is exactly the point: nobody is checking.

What the good ones have in common

The menu is many small pages, not one big one. Zingerman’s has ten. Kachka has eight. Miller Union has six. Each one is separately linkable, separately indexable, and separately textable to a friend.

Two taps, maximum, for both actions. Reservations and ordering both live in the persistent nav on every strong site here. The weak ones add a step, either a splash screen or an interstitial page that exists only to forward you somewhere else.

Hours are the most commonly missing fact, and it is unrelated to how good the site is. Elske, The Publican, and several others omit them from the homepage. The best ones treat hours as a selling point instead of a form field.

Almost nobody keeps ordering on their own domain. Two out of the whole set. If you take one thing from this, take that one. It is usually a settings change and it is worth more than a redesign.

What to do with this

If your menu is a PDF, that is the fix. Not a redesign, not new photography. Move the dishes and prices into the page as text and you have closed most of the gap between your site and every site above.

If your ordering link sends people to a platform’s address, ask your provider whether it can serve on your domain instead. Many will.

And go look at whether your hours are on your homepage. Right now, on your phone. It takes ten seconds and it is wrong more often than anyone expects.

If you want the longer version of how I approach this, that is on the restaurant website design page, and the pricing is published so you can see what it costs before you talk to me. If you just want a straight opinion on your current site, the free website check is free and I will tell you if the answer is “leave it alone.”