Skip to main content

Top 100 places to eat in the Bay Area



Written in collaboration by: Paolo Barrios, Katie Rose, Dominic Beechman, Alicia Flores, Kyle Morrison, and Mary Vobecky.

Photo of and by Slice of Homage Pizza

Yelp’s Top 100 Places to Eat in the Bay Area is a list unlike any other “best of” out there. Sure, you’ll see your obvious local favorites on the list, but it’s also chock full of hidden gems and off-the-beaten-path joints like Brisbane Lunch Truck tucked away off the 101 freeway, with views of the San Francisco Bay. From fine dining to shawarma food trucks — find them all in Yelp’s Top 100 Places to Eat in the Bay Area.

Did your favorite restaurant make it into the top 100? Let us know on @yelpbayarea on Instagram. Remember, we only know how good a spot is if you take the time to review it. So share your thoughts on Yelp, and maybe your favorites will be on next year’s list! 

Topping this year’s best places to eat list is Vinoma, a family-owned eatery that specializes in handmade Argentine empanadas in Sonoma County! 

Pro tip: You’re going to want to make a note of these spots, so we made it easy for you. For great businesses at your fingertips, get the Top 100 to-go. Follow this Collection on Yelp.

  1. Vinoma (Rohnert Park)
Photo by Yelper Hoyan L

Cuisine:  Empanadas, Argentine, American

What they’re known for: Empanadas

Yelpers say: “These are the best empanadas hands down in the Bay Area…It’s located near a gas station, but don’t be fooled! This is definitely a not so hidden gem anymore. I’ve tried all the flavors, but my favorite is the plum and bacon while my brother enjoys the al pastor…I highly suggest that you order some cooked to go and frozen to bake at home. The owner really cares about his quality of food and service.” –Yelp Elite Rebecca L

  1. Big H Deli (Fairfield) 
Photo by Yelper Ang R

Cuisine:  Sandwiches, Mediterranean

What they’re known for: spicy chicken shawarma, roast beef sandwich, pastrami sandwich

Yelpers say: “I ordered a chicken shawarma plate, hummus/bread & cucumber salad and my husband had the pastrami sandwich. EVERYTHING. WAS. SO. GOOD. The portion was also big!” -Yelp Elite Sheryl H

  1. Ocean Indian Cuisine (San Francisco)
Photo by Yelp Elite Ricky K

Cuisine: Indian, Himalayan/Nepalese

What they’re known for: Tandoori, curries

Yelpers say: “This is probably some of the best Indian cuisine I have ever had. We ordered things like the Salmon Pakora, Everest Chicken Momo, Biryani, Butter Chicken Masala, Tandoori Combination, and their Garlic Naan. Everything was perfect and delicious. All the salmon dishes were so tender. The chicken was seasoned so well and it was tender and flavorful. Their naan is huge! The food was amazing, service was high up there for me, and I am definitely making my way back here again.” –Yelp Elite Ricky K

  1. Àzalo (Rohnert Park) 
Photo by Yelper Ryota J

Cuisine: American, Mexican, Middle Eastern

What they’re known for: a fusion of cultures and flavors from the grill: grilled plates, burgers, kabobs, sandwiches

Yelpers say: “I never would’ve thought to put Latin food with Persian food but Azalo did it and did it well! The kabobs are amazing! I saw a plate with tacos and a giant quesadilla come out that looks so good I’m going back for lunch this week! The staff is very friendly and seem very happy which I like. This is my new work week lunch spot!” –Yelp Elite Molly C

  1. Limoncello (San Francisco)
Photo by Yelp Elite Joy W

Cuisine: Italian sandwiches, deli, wine & spirits

What they’re known for: Siciliano sandwich, Mafioso sandwich, Milanese sandwich

Yelpers say: “Love this place. They have an excellent selection of Italian products and snacks like Mulino Bianco and Perugina. Pastas, coffee, olive oils, balsamic vinegars, taralli and more. But my favorite thing about Limoncello is their sandwiches. I have tried most – the mafioso is very good but my absolute favorite, probably favorite sandwich in San Francisco is the parmigiana sub. If you like eggplant parmigiana, do yourself a favor and go give it a try!” – Yelp Elite Stephanie D

  1. Bagel Cafe (Pleasanton) 
  2. MQ Healthy Fast Food (Millbrae) 
  3. Sonoma Wine Shop & La Bodega Kitchen (Sebastopol) 
  4. Falafelle (Belmont) 
  5. Shewhat (Oakland) 
  6. Lou’s Takeaway (San Rafael) 
  7. Gigi’s Cafe (Burlingame) 
  8. Mazra (San Bruno) 
  9. Chic n’ Time (San Francisco)
  10. Zadna Bowl (Palo Alto) 
  11. KoKoLo Donburi (Livermore) 
  12. Craft Roots (Morgan Hill) 
  13. The Mill At Glen Ellen (Glen Ellen) 
  14. Mangal Turkish Grill (Sunnyvale) 
  15. The Corner Kitchen (Concord) 
  16. Hopulent (Vallejo) 
  17. Tacos El Muchacho Alegre (Napa) 
  18. theCafe9ine (El Cerrito) 
  19. Twins Halal House & Bakery (Oakland) 
  20. Guiso Latin Fusion (Healdsburg) 
  21. The Saint Sandwich Shop (Oakland) 
  22. Cup Cafe (San Francisco) 
  23. The Good Salad (Santa Clara) 
  24. RāwASF Plant-Based Café (Fremont) 
  25. Pana Food Truck (Santa Cruz) 
  26. UpForDayz Coffee, Tea & Juice (San Francisco) 
  27. Salty’s (San Francisco) 
  28. The Shota (San Francisco) 
  29. Afghan Awasana Kabob (Fremont) 
  30. Las Delicias De Tonita (San Jose) 
  31. Modigliani Cafe (Oakland) 
  32. LASO (American Canyon) 
  33. Yarsa Nepalese Cuisine (San Francisco) 
  34. ACHILLES (Santa Clara) 
  35. Tang’s Haus (Union City) 
  36. Pikul Thai Bistro (Fairfield) 
  37. El Califas Tacos (Sunnyvale) 
  38. Puranpoli (Santa Clara) 
  39. BrewVino, SF (San Francisco) 
  40. Southside Station (Berkeley) 
  41. Dimond Slice Pizza (Oakland) 
  42. Petra Middle Eastern Cuisine (Livermore) 
  43. Calabria Bros (San Francisco) 
  44. Gusto Pinsa Romana (San Francisco) 
  45. La Dolce Vita (Oakland) 
  46. It’s Lunch Time (Santa Clara) 
  47. Sam and Curry (San Jose) 
  48. Sumac (San Francisco) 
  49. Breakfast Little (San Francisco) 
  50. La Guerrera’s Kitchen (Oakland) 
  51. Crostini & Java (San Francisco) 
  52. Curry Hyuga (Burlingame) 
  53. East Bay Cafe Depot (Fremont) 
  54. The Fifth Quarter Charcuterie (Oakland) 
  55. The Twins Restaurant (Cotati) 
  56. Burmatown (Corte Madera) 
  57. Ken (San Francisco) 
  58. Kumako Ramen Den (San Jose) 
  59. Cuisine of Nepal (San Francisco) 
  60. HOT JOHNNIE’S (San Francisco) 
  61. Slice of Homage Pizza (San Jose) 
  62. Truva Mediterranean Grill (Pleasanton) 
  63. Seabright Deli (Santa Cruz) 
  64. Bento & Bowls (Oakland) 
  65. Porque no? Tacos (San Leandro) 
  66. Falafel Flame Hayward (Hayward) 
  67. Taza Deli & Cafe (Redwood City)
  68. Rice Junky (Fremont) 
  69. Got2go Pizza (San Jose) 
  70. Margaritas Taqueria (Sunnyvale) 
  71. Trattoria 360 (Campbell) 
  72. Sam’s Mediterranean Deli & Cafe (Rohnert Park) 
  73. Cariblue Restaurant (Redwood City) 
  74. Garden Variety (Berkeley) 
  75. Hidden Spot – South San Francisco (South San Francisco) 
  76. Mediterranean Food Center (Fairfield) 
  77. Fresh Brew Coffee (San Francisco)
  78. Don Julio’s Rincon Latin Grill and Pupusas (Rohnert Park)
  79. Falafio Mediterranean Cuisine (Millbrae) 
  80. Alams Taqueria (San Jose)
  81. Shwe Myanmar Burmese Cuisine (Livermore)
  82. Three Restaurant (Fairfield) 
  83. Mela Bistro (Oakland) 
  84. Dino’s Sandwich Shop (Brentwood) 
  85. Rosniyom Thai Street Food (Livermore) 
  86. Oaklandia cafe (Oakland) 
  87. Roya Afghan Cuisine (Livermore) 
  88. Sky Cafe (South San Francisco) 
  89. Brisbane Lunch Truck (Brisbane) 
  90. Craft Eatery (Hayward) 
  91. Tuna Kahuna (Burlingame) 
  92. Haleluya Ethiopian Gourmet (Fremont) 
  93. Bear Bitez (Newark) 
  94. Eats Meets West Bowls (Belmont) 
  95. Gourmet Gyros & Kebabs (Redwood City) 

Methodology: This is an all-time list of the Top Places to Eat in the Bay Area according to Yelp. We identified businesses in the restaurant category on Yelp, then ranked those spots using a number of factors, including the total volume and ratings of reviews. This list looked at businesses in and around the Bay Area. All businesses were marked open on Yelp as of June 27, 2022. When available, all businesses on this list have a passing health score as of May 13, 2022.

[gravityform id="4" title="false" ajax="true"]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_chrome 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='/community/top-100-places-to-eat-in-the-bay-area/#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>
[gravityform id="4" title="false" ajax="true"]
<div class='gf_browser_chrome 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='/community/top-100-places-to-eat-in-the-bay-area/#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>