Skip to main content

Eleven of the best food photography tips



Taking picture of food dishes with camera phone

Ever since Instagram came onto the scene, people have become obsessed with food photography. We all have to eat, but gorgeous photos of food transform an everyday activity into an enviable experience—and a feast for the eyes. 

Food photos create memories for the people taking them and aspiration for the rest of us. It’s also becoming an important way for restaurants to attract customers. A beautiful photo of a mouth-watering dish showcases what the restaurant is about and appeals to our appetites and our emotions (as evidenced by the 1+ million Instagram posts tagged #foodislove). 

Understandably, not all restaurant owners have the budget to spend on professional photography to market their menus, and you can’t depend solely on the social photos posted by your diners, since quality varies. Luckily, most restaurateurs already have a good quality camera right in their mobile phone. With camera phone in hand and these eleven tips for taking quality food photos, you’ll be well on your way to capturing delicious photos of your food.

Use natural light

One of the biggest culprits of unappetizing food photos is bad lighting. Most social media food photos are taken at night in a dimly lit restaurant using artificial light. Wes Rowe, a professional photographer and owner of WesBurger ‘N’ More in San Francisco, says the best thing you can do to take great photos of food is to use natural daylight. “Window light is ideal. Move your food toward the window and shoot using side light from the window (not into the window). Position yourself so you’re perpendicular to the light source.”  

If you have light on one side and harsh shadows on the other, Rowe suggests picking up something like a white menu or piece of paper and holding it with your other hand right out of frame to act as a fill and soften the shadows. “Let the light bounce back on the food to fill some of the shadows on the other side. That’s optional, but it’s a really easy thing anyone can do.” 

Another lighting tip from Rowe is to watch out for mixed light sources. “If I’m using window light and it’s dusk, and right above me is a big, yellow light, I’m going to have two different-colored light sources. The camera can’t correct for that, so I’m going to end up with a photo where the color of the food doesn’t look right.” In that case, he suggests taking that same white piece of paper or menu and holding it over the top of the food to shade it from the artificial light source. Or turn off that artificial light source, so you can concentrate fully on making the most of the natural light.

While daylight is the most flattering type of light for food photography, there is an exception to this rule: bright sunlight, which can cast harsh shadows and cause exposure problems. Soft, diffused light works best. Here’s a great photo Rowe took of his deluxe tater tots, shot inside using natural light from the window. (Warning: It may also make you hungry.) 

Tator tots photographed with natural light
Photo from WesBurger ‘N’ More

Choose the best angle

There’s nothing wrong with the 45-degree angle shot: basically a shot taken from the diner’s perspective and the most common type of amateur food photography. But precisely because it’s so common, it’s a good idea to mix it up a bit. 

As Rowe points out, the best angle is going to depend on the food. “If you shoot at a 45-degree angle you can get a lot of good texture. For something like a salad you’d want to shoot top down, whereas a burger looks better straight on or maybe a little lower so that it looks larger than life.”

Stacked burger photographed straight on
Photo from WesBurger ‘N’ More

If you’re unsure which viewpoint would be best, shoot from multiple angles to capture a bunch of perspectives and then decide later what works best.

Add props (sparingly)

While the arrangement of the food on the plate is important, so is the context in which that plate is presented. Depending on what kind of shot you’re going for, you’ll want to use secondary elements—like cutlery, linens, glasses, ingredients, plants, or flowers—in the foreground or background of your shot to add some additional visual interest and dimension.

David Cruz, owner of Little Gem restaurant in San Francisco, suggests using contrast to make a dish really stand out. “Sometimes I look for opposing colors or shapes to create a good aesthetic. Then, hopefully the contrast can lead the eye to the subject.” So, if the dish you’re photographing lacks color, consider adding an accessory that will brighten things up. The chili peppers on the cutting board in this photo of curry dishes from Zen Yai Noodle Bar in Brooklyn, are a great example. On the other hand, if your dish is full of color, you’ll want to use muted props that don’t take away from the star of the photograph. 

Bird's eye view of bowls with chili peppers on cutting board as contrast
Photo from Zen Yai Pho Noodle Bar

In general, it’s a good idea to stay away from too much clutter. However, aerial viewpoints of tablescapes crowded with a myriad of gorgeous dishes, like this one of a table full of dishes at Chama Mama in New York, are incredibly popular for good reason. They invoke communal feelings of gathering with friends and family over a delicious meal, while also showing a variety of shapes, colors, and textures. In those photos, it tends to look more natural if there are serving utensils, glassware, and other items that would naturally be on a dining room table. 

Aerial view of crowded table top with an assortment of dish sizes, shapes and colors at Chama Mama
Photo from Chama Mama

Follow the rule of thirds

The rule of thirds is one of the most important rules of photography composition because it helps to draw the viewer’s eye to the subject matter in a visually pleasing way. How does it work? Break the image into thirds, both horizontally and vertically, so that you have nine frames, and then place the main subject at the intersection of these frames rather than right in the center. It’s not as complicated as it sounds, and the Digital Photography School has a clear and simple explanation of the rule of thirds with examples.

Close-up of a bee on a flower with superimposed grid lines
Photo from Digital Photography School

Most smartphone cameras have a grid lines setting that will superimpose a grid across your screen to help guide you in following the rule of thirds when you’re taking a photo (don’t worry: the grid won’t show up in the photo you take). To turn on the grid feature on your phone, go into your camera settings, look for “grid” or “grid lines,” and choose “3×3” if there are multiple options.

If you want to take your composition techniques a step further, Cruz recommends using a leading line to place emphasis on the subject. This is where the viewer’s attention is drawn to a line that leads to the main subject, usually starting at the bottom of the frame and guiding the eye inward and upward. For example, Cruz composed a photo of wine bottles so that the edges of the long bar they are sitting on draw your eye to the bottles.

Bottles of wine lined up on ledge to draw your eye along the leading line
Photo from Little Gem

Vary the background

A neutral background—like a wooden table, tea cloth, or tablecloth—can help to emphasize the food in a photo. However, if a restaurant has interesting interior design elements—like unique wallpaper, a mural, a neon sign, or a colorfully tiled bar, those features can serve to add visual interest to your food photos and give viewers a sense of the restaurant’s vibe, not just the food and drink that it serves. Keep in mind that a dark background will emphasize the darkness, while a light background will make things look brighter. No matter what background you choose, be sure to mix it up, so that every photo doesn’t look the same. 

Experiment with presentation

When you first start taking photos of food, the placement of plates and props probably won’t come naturally. Use this opportunity to play around with the positions of the subjects and props. For example, place a dish in the center and then to the side—so that you can look at the photos later with a fresh eye to figure out which composition best emphasizes the food. 

Don’t feel obligated to show everything in its entirety: Here’s a photo of a few dishes at Claw Daddy’s, a Cajun spot in Brooklyn, where the photographer wasn’t afraid to crop out parts that an amateur photographer might otherwise leave in.

Cropped shot of seafood dishes to show unique food presentation
Photo from Claw Daddy’s

Get really close up… or leave some breathing space

If you really want the food to be the hero in the shot, get very close up. This ensures the focus is on the food and only the food and helps show textures and details that might otherwise be missed. In Rowe’s photo of the fried chicken sandwich at WesBurger ‘N’ More, you can really see the crispy texture of the buttermilk batter and the pillowy softness of the bun, and you even get a hint of what the spicy aioli will add. Similarly, in this photo of the salted caramel slices at The Thirsty Koala in Queens, you get an intimate sense of the texture of the shortbread in contrast with the creamy and chocolatey toppings.

Detailed close up of fried chicken sandwich
Photo from WesBurger ‘N’ More

Of course, while some food looks gorgeous when it’s shot close up, other dishes may be more aesthetically pleasing with negative space around them. Try taking a few photos where the dish fills the entire frame, and then pull back to leave some breathing space around the dish for another few photos, then see which works better.

Keep plating in mind

Presentation is an important part of the food experience, whether you’re plating a dish to be presented to an individual diner or to be photographed for dozens—or thousands—to see online. Arrange the food in a unique and visually pleasing way, and don’t forget the garnishes. And be sure to use a damp washcloth to remove any food marks or imperfections from plates and glasses before taking your photos.

Adjust the exposure

The goal when taking food photos is to get a well-composed and perfectly-lit photo so you don’t have to go in later and do a lot of editing. To help accomplish this, adjust the camera’s exposure level before you take the picture. 

To do this in the iPhone camera app, set up the photo and then tap the area that you want to appear sharp and in focus. A yellow line with a sun will appear; just slide your finger up on the screen to increase exposure and make the image brighter, or slide it down to decrease exposure and make the image darker. On Android phones, a similar exposure adjustment slider appears on the bottom of the screen after tapping on your subject.

Use a good editing tool

No matter how hard you try to capture the perfect shot, there will be times when you want to edit your photo a little more. Maybe you want to adjust the lighting, enhance the colors, or remove a smudge on the plate that you missed when taking the shot. In these instances, Snapseed is a good, free photo editing app that has lots of tools and is very easy to use. The Foodie app is another simple (and free) tool that offers filters that can enhance your photo and make the food look more appetizing.

Play with your food

Forget what your parents told you when you were little: When taking food photos, one of the best ways to keep things visually interesting is to have fun and play with your food. Morlene Chin, Brooklyn community manager at Yelp, has a few tried-and-true techniques.

Stack your food 

Four dessert baos stacked together look better than one solo bao, just as pancakes look more appetizing when placed atop each other. When using the stacking technique, shoot straight on from the side.

Cut your food in half

Of course, this isn’t true for something like a slice of pizza, but if you’re photographing food with an interesting center, like the scotch egg below or pork katsu onigiri, then cut it in half to showcase what’s inside.

Scotch egg cut in half and stacked open
Photo from Morlene Chin at Highlands NYC

Lift noodles and pull melted cheese

One of the best ways to showcase noodles, which are often covered in a sauce or broth, is to pull them into the air using a fork or chopsticks. And the only way to show how ooey gooey the melted cheese is? Stretch it out into mouthwatering ribbons of cheesy goodness


The best way to learn how to take amazing food photos is to just start doing it. Play around with techniques, composition, colors, and angles, and eventually, you’ll have an eye for what works. 

Want to contribute your own business tips? Interested in another topic? 
Let us know! Tweet us at @yelpforbusiness.

Did you find this post valuable?

Click on a star to rate it.

Since you found this post valuable...

Follow us on social media for more great business resources!

We're sorry you didn't find this post valuable.

How could we improve it?

The information above is provided for educational and informational purposes only. It is not intended to be a substitute for professional advice and may not be suitable for your circumstances. Unless stated otherwise, references to third-party links, services, or products do not constitute endorsement by Yelp.

Business resources, delivered to your inbox

Get the latest blog content, info on virtual events, and the occasional freebie.

  • This field is for validation purposes and should be left unchanged.

By continuing, you agree to Yelp’s Terms of Service and acknowledge Yelp’s Privacy Policy.

[gravityform id="4" title="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_4' ><div id='gf_4' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <span class='gform_description'></span> </div><form data-form-name='Newsletter Signup Popup' method='post' enctype='multipart/form-data' target='gform_ajax_frame_4' id='gform_4' action='/businesses/best-food-photography-tips/#gf_4' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below'><li id="field_4_1" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible gf-email" data-field-class="gf-email" data-js-reload="field_4_1"><label class='gfield_label screen-reader-text' for='input_4_1' >youremail@address.com</label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_4_1' type='email' value='' class='large' placeholder='youremail@address.com' aria-invalid="false" /> </div></li><li id="field_4_2" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_4_2"><label class='gfield_label' for='input_4_2' >Phone</label><div class='ginput_container'><input name='input_2' id='input_4_2' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_2'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_4' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} jQuery("#gform_4").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=4&amp;title=&amp;description=1&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='4' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_4' value='WyJbXSIsImE0YjFiMmUxY2IxMWVhYTljM2FhNzdkODk4NDUzZmY0Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_4' id='gform_ajax_frame_4' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script> gform.initializeOnLoaded( function() {gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_4').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_4');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_4').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_4').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_4').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_4').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_4').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_4').val();gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [4, current_page]);window['gf_submitting_4'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_4').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_4').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [4]);window['gf_submitting_4'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_4').text());}, 50);}else{jQuery('#gform_4').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [4, current_page]);} );} ); </script>
[gravityform id="4" title="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_4' ><div id='gf_4' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <span class='gform_description'></span> </div><form data-form-name='Newsletter Signup Popup' method='post' enctype='multipart/form-data' target='gform_ajax_frame_4' id='gform_4' action='/businesses/best-food-photography-tips/#gf_4' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below'><li id="field_4_1" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible gf-email" data-field-class="gf-email" data-js-reload="field_4_1"><label class='gfield_label screen-reader-text' for='input_4_1' >youremail@address.com</label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_4_1' type='email' value='' class='large' placeholder='youremail@address.com' aria-invalid="false" /> </div></li><li id="field_4_2" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_4_2"><label class='gfield_label' for='input_4_2' >Name</label><div class='ginput_container'><input name='input_2' id='input_4_2' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_2'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_4' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} jQuery("#gform_4").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=4&amp;title=&amp;description=1&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='4' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_4' value='WyJbXSIsImE0YjFiMmUxY2IxMWVhYTljM2FhNzdkODk4NDUzZmY0Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_4' id='gform_ajax_frame_4' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script> gform.initializeOnLoaded( function() {gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_4').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_4');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_4').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_4').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_4').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_4').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_4').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_4').val();gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [4, current_page]);window['gf_submitting_4'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_4').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_4').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [4]);window['gf_submitting_4'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_4').text());}, 50);}else{jQuery('#gform_4').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [4, current_page]);} );} ); </script>