Encinitas is 62,000 residents arranged into five distinct micro-villages (Leucadia, Cardiff, Olivenhain, Downtown, and New Encinitas), and each one has its own search behavior. The buyer typing "yoga Cardiff" is not the buyer typing "yoga Leucadia." The Cardiff buyer is probably walking to class from the campgrounds or San Elijo. The Leucadia buyer is probably driving down 101 from a beach bungalow. The Downtown buyer is parking off D Street. Same city. Three different shortlists in Google. Three different routes the customer is willing to drive.
The industries here also fragment cleanly. Surf retail and wellness sit along the 101 corridor through Leucadia and Cardiff. Boutique restaurants cluster along downtown D Street and into New Encinitas. Yoga, pilates, and recovery studios are spread across all five pockets but each one draws a different demographic. Creative services (photographers, designers, agencies) work out of converted bungalows and small office stacks scattered through Olivenhain and Leucadia. Real estate brokers farm the entire city but split their lead generation by neighborhood. The operators winning Encinitas search build a page per village, plus a page per modality or category. The ones losing have one homepage that says "serving Encinitas" and rank nowhere.
The page grid takes your real footprint (locations, modalities, categories, neighborhoods you serve) and produces a real indexable page per combination. Generated from your data, then hand-edited until each page reads like an Encinitas local wrote it about that specific block.