You'll sometimes hear fallacious claims that San Miguel Allende or Guanajuato or other parts of Mexico don't have superb food. What is true, in many Mexican cities, is that almost every place near the main square is only so-so. Here's what to do:
1. Look for time-specific food. In San Miguel for instance, there is barbacoa [barbecue] from 8-10 a.m., carnitas from about 11-4, and wonderful chorizo after 8 p.m. In Mexico, if the food is available only part of the day, it's almost always good. It's for locals and there is no storage in these places so it's also extremely fresh.
2. Often the best meals are served in places which have no names. In San Miguel the "brothers Bautista" run the best carnitas stands, but there is no sign and no marking. The stands are simply there on the side of the road, with some plastic tables and chairs, at a few places around town. Everyone in town knows about them.
3. Ask around with taxi drivers and be persistent. Ask the older taxi drivers. Throw away your guidebook, no matter which one you have.
4. Use breakfast and lunch for your best meals; dinner is an afterthought. Almost everywhere good is closed by 8 p.m. or often long before then. Always visit a place that closes by 1 p.m.
5. Roadside restaurants, on the edges of towns or between towns, serve some of the best food in Mexico or anyhere else for that matter. Some of these restaurants even have names, though you can overlook that in the interests of eating well.