Skip to main content

Yelp’s 2017 Top 100 Places to Eat in Charlotte



Before we say farewell to 2017, we’re celebrating Yelpers’ must-try eats across the Queen City.

It’s a list unlike any other “best of” out there. Sure, you’ll see your fancy-schmancy spots and James Beard nominees, but it’s also chock full of hidden gems and off the beaten path joints. From elegant to international, strip mall surprises to gas station tacos — find them all in Yelp’s 2017 Top 100 Places To Eat In Charlotte.

Methodology:  This is a list of the best places to eat in the Charlotte area according to Yelp. All the businesses on this list are in the Food or Restaurant category on Yelp and are places where one can eat a full meal. “Best” is measured using an algorithm that looks at the number of reviews and overall star rating. We defined the Charlotte area as Charlotte, Cornelius, Davidson, Waxhaw, Matthews, Huntersville, Belmont, Concord, Rock Hill (SC), and Fort Mill (SC).

Check out the full list below! Get social with us on Twitter, Facebook, and Instagram using #YelpCLTTop100 when visiting these local eateries and be sure to write a review to add your feedback about any of these spots.

Yelp’s 2017 Top 100 Places to Eat in Charlotte

1. Chili Man (Uptown)

2. The Dixie Pig (Rock Hill)

3. Kabab-Je Rotisserie & Grille (Matthews)

4. The Tasty Bowl Subs N Such (Steele Creek)

5. Little Village Grill (Uptown)

6. Abugida Ethiopian Cafe & Restaurant (Plaza Midwood)

7. Zablong (Uptown)

8. NoDa Bodega (NoDa)

9. Viva Chicken (Elizabeth)

10. Banh Mi Brothers (University)

11. Le’s Sandwiches & Cafe (North Tryon/Sugar Creek)

12. Crispy Banh Mi (South Blvd)

13. Kung Foo Noodle (Huntersville)

14. Royal Cafe & Creperie (Matthews)

15. Jasmine Grill (South Blvd)

16. Tamales La Pasadita (The Plaza)

17. Fresh Chef Kitchen (Cornelius)

18. Tamarind Fine Cuisine Of India (Matthews)

19. Good Food on Montford (Montford)

20. The Smoke Pit (Concord)

21. Be’s Noodles & Banh Mi (Ballantyne)

22. Tea Fusion Cafe (University)

23. The Fig Tree Restaurant (Elizabeth)

24. Babushka’s Pierogi (Pineville-Matthews Rd)

25. Inizio Pizza Napoletana (Providence Commons)

26. Tacos Nayarit #2 (Fort Mill)

27. Poboy’s Low Country Seafood Market (Freedom Dr)

28. Sabor Latin Street Grill (Elizabeth)

29. Hazelnuts Creperie (Uptown)

30. Yafo Kitchen (SouthPark)

31. Euro Grill & Cafe (Plaza Midwood)

32. Peace -N- Hominy Q (Belmont)

33. Greco Fresh Grille (Ballantyne)

34. Deep Sea Seafood Market (Monroe Rd)

35. Local Dish (Fort Mill)

36. Roaming Fork (Food Truck)

37. The Common Market (Plaza Midwood)

38. FūD at Salud (NoDa)

39. 2 Gals Kitchen (Concord)

40. Ararat 17 (Matthews)

41. Lumiere French Kitchen (Myers Park)

42. Haberdish (NoDa)

43. Nile Ethiopian Restaurant & Grocery (Eastland)

44. What The Fries (Food truck)

45. The Flipside Restaurant (Rock Hill)

46. Las Lupitas (N Tryon)

47. Papi Queso (Food Truck)

48. Murphy’s Kitchen & Tap (Uptown)

49. Fiesta Mexicana Grill (Concord)

50. The Cellar At Duckworth’s (Uptown)

51. Soul Central (Plaza Midwood)

52. Midwood Smokehouse (Plaza Midwood)

53. NC Noodle Bar (Rock Hill)

54. Living Kitchen (South End)

55. Rhino Market & Deli (West Charlotte)

56. Due Amici Pizza (Highland Creek)

57. VBGB Beer Hall and Garden (NC Music Factory)

58. The Flipside Cafe (Fort Mill)

59. Sangam Indian Cuisine (Cornelius)

60. Orrman’s Cheese Shop (Uptown)

61. Dogwood Southern Table & Bar (SouthPark)

62. Kindred Restaurant (Davidson)

63. Laurel Market (Myers Park)

64. Sandwich Max (Elizabeth)

65. Taqueria Los Altos (Monroe Rd)

66. Alexander Michael’s (Uptown)

67. La Shish Kabob (Eastland)

68. Alino Pizzeria (Concord)

69. Anita’s Mexican Grill (Yorkmont)

70. The Cowfish Sushi Burger Bar (SouthPark)

71. Tin Kitchen (Food Truck)

72. Bang Bang Burgers (Elizabeth)

73. Arturo’s Taco Truck (Huntersville)

74. Earl’s Grocery (Elizabeth)

75. Lebowski’s Neighborhood Grill (Dilworth)

76. Owen’s Bagel & Deli (South End)

77. Bleu Barn Bistro (Food truck)

78. The Bellè Grille (Matthews)

79. Sushi Queen Sushi and Grill (Concord)

80. Tenders Fresh Food (Cornelius)

81. The Pickled Peach (Davidson)

82. Lee Cafe (Fort Mill)

83. ERD’s Eatery and Catering (Old Statesville Rd)

84. Mr Tokyo Japanese Restaurant (Pineville Matthews Rd)

85. Yaki Asia Fresh (Sardis Rd N)

86. Soul Gastrolounge (Plaza Midwood)

87. Dressler’s – Charlotte (Metropolitan)

88. Enat Ethiopian Restaurant (The Plaza)

89. The Turnhouse Grille (ParkTowne Village)

90. Futo Buta (South End)

91. Zeitouni Grill (Ballantyne)

92. Zack’s Hamburgers (South Blvd)

93. Lang Van Vietnamese (Eastland)

94. Amélie’s French Bakery & Café (Park Rd Shopping Center)

95. El Molcajete (Rock Hill)

96. Capriccio (Brookedale Dr)

97. Dilworth Tasting Room (Dilworth)

98. Ty’s Wings & Tings (N Sharon Amity Rd)

99. Yamazaru (South End)

100. Umami Sushi & Grill (Matthews)

 

 

 

 

 

 

 

 

 

[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_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='/community/yelps-2017-top-100-places-eat-charlotte/#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' >Comments</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='/community/yelps-2017-top-100-places-eat-charlotte/#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>