Pull up the photo most operators upload as their hero: the dim phone shot of the dining room, taken at 7 PM under tungsten cans, portrait orientation because that’s how a phone sits in the hand. Now read it against the surface it landed on. The Google panel wanted 16:9 and cropped a grey-barred sliver out of the middle; the menu page wanted one consistent shape and got a portrait that broke the grid; the file was 1200 px on the long edge, so the hero looks soft and the thumbnail looks fine. Nothing is wrong with the room. Everything is wrong with the fit. This is a teardown of that photo — what the spec actually demands of it, row by row, and the one fix each row triggers.
Every restaurant ends up needing the same dozen image sizes, but almost no one shoots them at once. The result: a Google Business Profile cover that's the wrong aspect ratio and got cropped weirdly, a Yelp photo that's portrait when Yelp wants landscape, a menu page where every dish photo is a different shape and the layout breaks.
The spec sheet below is the document that closes that gap — the one I hand a photographer the morning of a shoot, or run myself off a phone. One shoot, the right specs decided in advance, and the result drops cleanly into every surface instead of getting cropped into one.
The 10 image sizes you actually need
Shoot once, at 30% above max
You can always crop down. You can never crop up.
Site surfaces
Hero, interior banners, menu thumbnails, OG/Twitter card.
GBP surfaces
Cover photo, profile, gallery — three different aspects.
Social + Yelp
Yelp cover, Instagram square, Instagram portrait.
Total surfaces from one shoot
| Surface | Aspect | Min resolution | What it does |
|---|---|---|---|
| GBP cover photo | 16:9 | 2120 × 1192 | The hero in the Google panel; gets cropped to ~16:9 even from a square upload. |
| GBP profile photo | 1:1 | 720 × 720 | The circular badge; usually the logo or a tight food shot. |
| GBP gallery | 4:3 | 1024 × 768 | 30+ of these in the first 90 days (per the GBP setup post). |
| Site hero | 21:9 or 16:9 | 2400 × 1024 | Above-the-fold visual; defines the feel of the entire site. |
| Site interior banners | 3:2 | 1800 × 1200 | One per major section: menu intro, story, location. |
| Menu item thumbnails | 4:3 or 1:1 | 800 × 600 | One spec, used consistently across every dish — never mix. |
| OG / Twitter cards | 1.91:1 | 1200 × 630 | Social previews for shared links; auto-generated by Photo Brief. |
| Yelp cover | 3:1 | 1500 × 500 | Lives at the top of your Yelp listing. |
| Instagram square | 1:1 | 1080 × 1080 | The default feed shape; second-most-shared. |
| Instagram portrait | 4:5 | 1080 × 1350 | The format that actually gets seen. |
That table is the artifact. Here is how to read it the way it gets used — not top to bottom as a reference, but as four lines the dim phone photo above failed, each one naming the single fix it triggers.
- Aspect ratio — the line that crops you. The cover wants 16:9, the gallery 4:3, the menu thumbnail one shape held consistent, Instagram portrait at 4:5. The phone photo was portrait, so every landscape surface clipped it to a center sliver and every square one padded grey bars top and bottom. The fix this row triggers: tap the phone’s aspect picker before the shot, or frame the subject inside the centre 60% so the wings can be cropped without losing it.
- Resolution — the line you can’t walk back. The largest surface on the list is the 2400 px site hero; the smallest floor is the 720 px GBP profile. The phone file was 1200 px, so it was already too small for the hero the day it was shot. The fix this row triggers: shoot at the top-of-list width plus 30%, because you can always crop down and you can never crop up.
- File weight — the line nobody reads until the page is slow. The same hero ships to a phone over cell data and to a desktop on fibre, and the JPG straight off the camera is heavier than either needs. The fix this row triggers: export site images as WebP at 80% quality before they ever touch the page.
- Lighting — the line the camera can’t fix in post. The phone photo was shot at 7 PM under tungsten, which reads orange and dingy on a phone sensor no matter how good the phone is. The fix this row triggers: shoot 11 AM to 2 PM near a window; daylight is the one variable a better camera can’t buy back.
Resolution rules
Always shoot at the resolution recommended above PLUS roughly 30% extra. You can always crop down; you can never crop up. A hero shot at 2400×1024 lets you also produce the 1200×630 OG card from the same file; a hero shot at 1200×630 leaves you stuck.
For images that ship to your site, export as CDN-friendly WebP at 80% quality — it's typically 60-70% smaller than JPG without visible loss.
Alt text — the most-skipped part of the spec sheet
Every image needs alt text. Not "IMG_4521.jpg," not the menu name, not "delicious food." A specific descriptive sentence: "Plate of carnitas with cilantro, white onion, and lime on a wood board." Costs 5 seconds per photo and earns you SEO + accessibility + AI-search citation.
For a 30-photo restaurant shoot, that's 150 seconds — or two minutes — of writing. Skip it and you've left every photo's SEO value on the floor.
The number to anchor on
5 seconds per photo. That is the entire cost of the highest-leverage row on the spec sheet — 150 seconds across a full 30-photo shoot. The teardown below is the cleanest one in the whole article, because the broken version and the fixed version are the same image; the only thing that changed is one attribute Google reads first. Skip the 5 seconds and the photo ranks for nothing. Spend them and the same file earns its SEO, its accessibility, and its AI-search citation.
So this is the artifact to put under the glass. Two versions of the same carnitas photo’s alt attribute — what a parser throws away on the left, what it keeps on the right:
alt="IMG_4521.jpg"
alt="delicious food at our restaurant"
The filename names nothing; the marketing line is stripped entirely. The photo ranks for nothing and a screen-reader user hears noise.
alt="Plate of carnitas with cilantro, white onion, and lime on a wood board"
Specific subject (name the dish) · context noun (where it sits) · no filename, no marketing (describe, don’t sell). Five seconds of writing earns the SEO, the accessibility, and the AI-search citation.
Alt text is the part of the spec sheet nobody reads. It's also the part Google reads first.
The shot list to hand a photographer
Run Photo Brief. It generates a per-surface shot list with the spec sheet attached — exactly the document you'd hand a photographer the morning of the shoot. Save the brief to your Workshop so you can re-run it for the next seasonal shoot.
The shoot itself is usually 2-3 hours for a 30-photo deliverable: the hero, 10-15 dishes, 4-6 room shots, 2-3 detail shots (a hand pouring wine, smoke off a grill, the chef plating). Done in one go, you have material for every surface for the next 12 months.
The 6-second pre-publish gut check
Before any photo lands on the site, run it through this check. Six questions, one click each, takes about as long as it sounds. If you can't answer "yes" to all six, the photo isn't ready — not because the photo is bad, but because something around the photo is.
-
1Is the dish the sharpest thing in the frame?
The eye should land on the food before anything else in the photo. Garnish, props, table linens — all of it should be at least one stop softer than the dish.
Pass The plate is in tack-sharp focus; the wineglass behind it is gently soft.
Fail The whole table is in focus; the eye doesn’t know where to land.
-
2Was it shot in daylight (or daylight-balanced)?
Restaurant overhead lighting reads orange and dingy on phone sensors. Natural daylight from a window between 11 AM and 2 PM is the easiest path to a clean shot.
Pass Window light from camera-left, no overhead competing with it.
Fail Mixed light at 7 PM under tungsten cans — the photo will need 20 minutes of color work to feel right.
-
3Are the edges clean?
At thumbnail size every distracting edge gets amplified. A thumb in the corner, a garnish bleeding off the plate, a stack of menus behind the dish — all of it telegraphs at 200 pixels wide.
Pass Every edge intentional. Negative space around the plate.
Crop it A bottle cap clipping the frame on the right? Crop tighter. Don’t reshoot.
-
4Does the alt text name the dish?
Alt text is the most-skipped 5 seconds per photo. It’s also the highest-leverage 5 seconds for SEO and AI search. Name the dish, name the plate type, optional one detail.
Pass “Carnitas plate with pickled onion and lime, on a stoneware platter.”
Fail “Delicious food at our restaurant.” That sentence helps no one and ranks for nothing.
-
5Is it 3000 px+ on the long edge?
You’ll crop down for menu thumbnails (600 px), GBP gallery (2048 px), and the hero (3000 px). You can’t crop up. Always shoot at the largest reasonable size and downsize on export.
Pass Source file is 4096 × 3072 or larger.
Fail 1200 × 800. Fine for a thumbnail, useless for a hero.
-
6Is it less than 6 months old (or matches current plating)?
Photos drift. The plating shifts, the garnish swaps, the linens change. A photo of a dish as it was last spring sets an expectation guests will price the current plate against — and write reviews against.
Pass Shot in the past 6 months, or the dish hasn’t changed.
Reshoot soon 18 months old and the new plate has different garnish? It’s costing you.
The "shoot it yourself with a phone" version
If hiring a photographer isn't in budget, the phone version still works. Modern phones in good light routinely beat low-effort DSLR work — the variable that matters most isn't the sensor, it's the time of day and the angle to the window. Three rules:
- Daylight only. Shoot 11 AM to 2 PM near a window. Restaurant overhead lighting reads orange and dingy on the phone sensor.
- One angle per dish, repeated. Pick top-down OR 3/4 front, and use the same angle for every dish so the menu page reads as one set.
- Edit lightly. Increase exposure +0.3, boost shadows. Skip filters.
Pre-summer shoot
Memorial Day prep — patio, lighter dishes, daylight cocktails.
Pre-holiday shoot
Mid-October prep — fall menu, warm tones, room shots.
Menu pivot shoot
Any major menu change — new dishes, removed dishes, season swaps.
How often to re-shoot
Twice a year. Once before peak season (Memorial Day for summer, mid-October for the holidays); once when the menu changes substantially. If you re-shoot less than once a year, the photos start looking dated to regulars even if they're still technically accurate.
Save the dates in your Workshop alongside your Margin Math and Restaurant Audit scenarios. The compounding argument: photo cadence is one of the few maintenance loops that visibly affects average review rating, because the GBP cover and the menu thumbnails set the expectation guests bring through the door — and reviews are written against that expectation, not against the food alone.
Bad photos don't just fail to help. They actively drag the average down by setting the wrong expectation before anyone walks in the door.
Tell us
Be the first field note on this piece.
Tried this in your own restaurant? 100–400 words, your name on it. Don reads every one. Your note shows up here once approved.
Sources & further reading
Google Business Profile — image specifications
Google Business Profile — GBP's public help documentation specifies cover photo aspect ratio, recommended pixel dimensions, and the cropping behavior that crops uploaded squares to ~16:9 for the panel display. The spec sheet's GBP rows reflect Google's published values.
Yelp + Apple Maps — image specifications
Yelp + Apple Maps — Yelp's and Apple Business Connect's help center pages publish their own cover and gallery image specs. The 3:1 cover ratio for Yelp and the 4:5 portrait recommendation for Instagram come from each platform's own published guidance.
WebP vs. JPG — file size comparisons
WebP vs. JPG — Google's WebP project page documents the typical 25-35% smaller file size for lossy WebP at equivalent visual quality. The 60-70% smaller figure in the resolution-rules section reflects restaurant-photography use cases (often higher because hero shots compress better than text-heavy images).