Lemon Grove is twenty-seven thousand people in a tight East County footprint: family retail, auto, trades, healthcare, and light services, much of it strung along the Downtown core and the residential pockets of Massachusetts Heights and Mt Vernon. In a city this compact, the searches are intensely neighborhood-scale: a household two streets over is making a different click than one near the Downtown center, and a single homepage trying to be the whole city ranks for none of those specific searches.
The operators who win a small city like this build a page per service and a page per pocket. An auto or home-services business covering Downtown, Massachusetts Heights, and Mt Vernon needs a page per area, because in a town this size trust is built block by block and the searcher types the neighborhood name. A healthcare or family-retail operator with several offerings needs a page per offering, because the person looking for one service isn't searching for the rest. Small doesn't mean simple. It means the differences that exist matter more.
That is what a programmatic page-grid build is for. Not auto-spun filler: a real grid generated from your own structured data, your services and service areas, then hand-edited until every page reads like one person wrote it about that exact corner of Lemon Grove. In a small, dense city, the page that names the actual street is the page that wins the actual search.