Services

Services — 04

Found everywhere renters look.

Local search is where apartment leasing is won or lost — the map pack, the “apartments near me” query, and now the AI answer that never shows a tenth blue link. I built a custom engine that runs all of it for a 60+ property portfolio: classic SEO, generative-engine optimization, Google and Apple listings, reviews, and the live data that keeps every surface saying the same thing.

60+

Communities optimized

Biweekly

Full content regeneration

GBP + Apple

Listings automated

GSC + DataForSEO

Ranking feedback loop

The engine

One AI system, the whole SEO surface

A centralized pipeline regenerates the complete search surface for every property on a biweekly cycle — page titles and meta descriptions per page type, on-page body copy, heading hierarchy, image alt-text, a fresh FAQ set, and a neighborhood lifestyle summary. Google Gemini Pro and Flash do the writing, with Google Search Grounding pulling live keyword and competitor context into every prompt.

  • Every plan is versioned — one active row per property, with one-click rollback to any prior version
  • Content stability logic keeps sections that are ranking and only regenerates the ones that have gone stale
  • Runs on a queue so all 60+ properties process in parallel without hand-holding

The hard part

Keyword deconfliction across the portfolio

When one company runs 60 apartment sites in the same city, they quietly compete against each other for the same searches — two buildings a mile apart both chasing “Capitol Hill apartments” split the ranking and lose to a competitor. The engine detects these clashes: it groups properties by neighborhood, reads current Search Console rankings, assigns the head term to whichever sibling already ranks best, and hands every other property a forbidden-keyword list plus a differentiation angle — pet-friendly, amenity-led, value, or a long-tail location term. The portfolio stops cannibalizing itself.

GEO

Optimized for AI answer engines, not just Google

Generative-engine optimization is classic SEO's successor: increasingly the renter gets an AI-written answer, not a list of links. The engine writes for that world.

  • Auto-generated llms.txt on every property site — a machine-readable summary, key facts, and Q&A for LLM crawlers
  • Answer-first copy: every section opens with a direct answer to the likely query, structured for AI snippet extraction
  • Full JSON-LD graph per site — ApartmentComplex, LocalBusiness, an ItemList of live units, and a FAQPage built from the generated FAQs

Google

Business Profiles that run themselves

Google Business Profile is the highest-intent local surface, and it's fully automated against the Google API.

  • AI-written posts on a daily schedule, with branded post imagery generated from real property photos
  • Amenities mapped conservatively to Google's attribute IDs, kept in sync from the leasing data
  • AI-drafted review responses at scale — warm, named, property-referencing for local SEO, de-escalating negatives to private email
  • Automated policy-violation detection that scores reviews against Google's contribution policies and feeds a removal workflow

Apple

Apple Maps, kept current without an API

Apple offers no listings API below hundreds of locations, so I drive Apple Business Connect through an authenticated browser session — pushing listing data for 50+ locations and pulling Apple Maps insights (search taps, placecard views, direction and call taps) back into the dashboard to measure what Apple search is actually doing for leasing.

Consistency

One data spine, every surface in agreement

Inconsistent name/address/hours across the web is a silent local-ranking killer. Every listing pulls from a single Yardi/RentCafe spine, so live availability, pricing, and NAP stay identical across property sites, Google, and Apple.

  • Live units, pricing, fees, and move-in specials synced from Yardi on a schedule
  • New specials trigger fresh Google posts automatically
  • Seattle MFTE affordable-housing units surfaced correctly on the property sites — a compliance requirement no off-the-shelf plugin handled

Measurement

A closed loop, not a one-time push

The engine grades its own work and feeds the results back into the next cycle.

  • Google Search Console for positions, impressions, clicks, and CTR (free, first-party)
  • DataForSEO for competitor positions, search volume, difficulty, seasonality, and keyword gaps
  • Twice-monthly SERP screenshots and monthly competitor-directory checks across the major apartment directories
  • Walk/Transit/Bike Score and dual-sourced nearby-places data (Google Places + Foursquare) feeding every neighborhood prompt

Work with me

Need local search that actually moves leases?

hello@spenc.ee