<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ryan York</title>
    <description>The latest articles on DEV Community by Ryan York (@webpossible).</description>
    <link>https://dev.to/webpossible</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3860230%2F51b719fd-44fb-4149-9958-7c5731bec1b1.png</url>
      <title>DEV Community: Ryan York</title>
      <link>https://dev.to/webpossible</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/webpossible"/>
    <language>en</language>
    <item>
      <title>147 Med Spas in One County: What Google Data Reveals About the Aesthetics Market</title>
      <dc:creator>Ryan York</dc:creator>
      <pubDate>Sat, 04 Apr 2026 01:05:32 +0000</pubDate>
      <link>https://dev.to/webpossible/147-med-spas-in-one-county-what-google-data-reveals-about-the-aesthetics-market-ld1</link>
      <guid>https://dev.to/webpossible/147-med-spas-in-one-county-what-google-data-reveals-about-the-aesthetics-market-ld1</guid>
      <description>&lt;p&gt;Oakland County, Michigan has 147 med spas competing for 1.27 million residents. We pulled every listing from the Google Places API and the competitive dynamics are fascinating.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;147 med spas&lt;/strong&gt; in Oakland County, MI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;24,716 total Google reviews&lt;/strong&gt; (avg 168 per business)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4.88 average rating&lt;/strong&gt; (highest of any industry we track)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Birmingham leads&lt;/strong&gt; with 18 med spas in a city of ~22,000 people&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For comparison, neighboring Macomb County (877K population) has just 31 med spas with 5,377 reviews.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Data Shows
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Birmingham is the aesthetics capital of Michigan
&lt;/h3&gt;

&lt;p&gt;18 med spas in a city of ~22,000 people. That's roughly 1 med spa per 1,200 residents. Troy (15), Clarkston (13), West Bloomfield (12), and Novi (11) round out the top 5. The Birmingham-Troy corridor is where the money is — and where the competition is fiercest.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The review leaders
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;City&lt;/th&gt;
&lt;th&gt;Rating&lt;/th&gt;
&lt;th&gt;Reviews&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rivage Day Spa Birmingham&lt;/td&gt;
&lt;td&gt;Birmingham&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;1,321&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spa Mariana&lt;/td&gt;
&lt;td&gt;Birmingham&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;818&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;COMPLEXION Med Spa&lt;/td&gt;
&lt;td&gt;West Bloomfield&lt;/td&gt;
&lt;td&gt;5.0&lt;/td&gt;
&lt;td&gt;779&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Rivage leads with 1,321 reviews — more than 8x the average provider. But unlike HVAC or dental where one player dominates, the med spa market has a much flatter distribution. The top 3 hold only 12% of all reviews.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. A 4.88 average means ratings don't differentiate
&lt;/h3&gt;

&lt;p&gt;When the average rating is 4.88 and most providers sit at 4.9-5.0, a perfect score doesn't set you apart. Differentiation comes from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Review volume&lt;/strong&gt; (168 avg, but top performers have 700+)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Before-and-after content&lt;/strong&gt; (the trust signal unique to aesthetics)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treatment-specific search visibility&lt;/strong&gt; ("Botox Troy MI" vs generic "med spa near me")&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Northern Oakland County is underserved
&lt;/h3&gt;

&lt;p&gt;Oxford, Lake Orion, and the northern suburbs have significantly fewer options despite growing populations. A med spa with strong local SEO in these areas faces a fraction of the competition.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters for Marketing
&lt;/h2&gt;

&lt;p&gt;If you're a med spa owner in Oakland County, the data tells you:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;You can't win on rating alone&lt;/strong&gt; — everyone has 4.8+. Reviews volume and recency matter more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treatment-specific pages are essential&lt;/strong&gt; — "HydraFacial Birmingham" and "Botox Troy" are different markets with different competition levels.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instagram creates awareness, Google captures intent&lt;/strong&gt; — 70% of med spa searches have local booking intent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Before-and-after galleries are your highest-converting SEO asset&lt;/strong&gt; — with consent, obviously.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We publish the full data for free:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://webpossible.com/med-spa/oakland-county-mi/market-data/" rel="noopener noreferrer"&gt;Oakland County Med Spa Market Data&lt;/a&gt; — every provider ranked&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://webpossible.com/med-spa/macomb-county-mi/market-data/" rel="noopener noreferrer"&gt;Macomb County Med Spa Market Data&lt;/a&gt; — 31 providers ranked&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Data collected via Google Places API, April 2026. Published by &lt;a href="https://webpossible.com" rel="noopener noreferrer"&gt;WebPossible&lt;/a&gt; — local SEO for small businesses in Southeast Michigan.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>data</category>
      <category>marketing</category>
      <category>business</category>
      <category>seo</category>
    </item>
    <item>
      <title>I Open-Sourced Our Local SEO Data Collection Tool</title>
      <dc:creator>Ryan York</dc:creator>
      <pubDate>Sat, 04 Apr 2026 01:05:01 +0000</pubDate>
      <link>https://dev.to/webpossible/i-open-sourced-our-local-seo-data-collection-tool-j54</link>
      <guid>https://dev.to/webpossible/i-open-sourced-our-local-seo-data-collection-tool-j54</guid>
      <description>&lt;p&gt;We just open-sourced the Node.js script we use to pull competitive market data from the Google Places API for local SEO analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/webpossible/local-seo-data" rel="noopener noreferrer"&gt;github.com/webpossible/local-seo-data&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Does
&lt;/h2&gt;

&lt;p&gt;Give it an industry ("dentist", "HVAC company", "med spa") and a county, and it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Searches multiple cities for comprehensive coverage&lt;/li&gt;
&lt;li&gt;Deduplicates by name + address&lt;/li&gt;
&lt;li&gt;Filters to the target county (city name matching + lat/lng bounding box)&lt;/li&gt;
&lt;li&gt;Sorts by review count&lt;/li&gt;
&lt;li&gt;Calculates market averages&lt;/li&gt;
&lt;li&gt;Groups by city for density analysis&lt;/li&gt;
&lt;li&gt;Outputs clean JSON&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why We Built It
&lt;/h2&gt;

&lt;p&gt;We run a local SEO agency in Southeast Michigan. When we onboard a new client, we want to show them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many competitors they actually have&lt;/li&gt;
&lt;li&gt;Who dominates reviews (and by how much)&lt;/li&gt;
&lt;li&gt;Which cities are saturated vs underserved&lt;/li&gt;
&lt;li&gt;What a realistic path to map pack visibility looks like&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most agencies pitch SEO services without knowing any of this. We wanted data-driven strategies instead of guesswork.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example: Dental in Oakland County, MI
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Total: 272 dental practices
Reviews: 85,614 combined
Avg rating: 4.73
Top provider: Southfield Family Dental (2,537 reviews)
Top cities: Novi (20), Southfield (19), Royal Oak (19), Troy (19)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That data immediately tells us:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Competition is extreme and evenly distributed (no geographic shortcut)&lt;/li&gt;
&lt;li&gt;Average practice has 315 reviews — that's the benchmark&lt;/li&gt;
&lt;li&gt;Emergency, routine, and cosmetic dental searches each need different strategies&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Google Places API (New) — text search endpoint&lt;/li&gt;
&lt;li&gt;Node.js with native &lt;code&gt;fetch&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Rate limiting (150ms between requests)&lt;/li&gt;
&lt;li&gt;No dependencies beyond Node 18+&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Use It
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/webpossible/local-seo-data
&lt;span class="nb"&gt;cd &lt;/span&gt;local-seo-data
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;GOOGLE_PLACES_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"your-key"&lt;/span&gt;
node fetch-places.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Edit the &lt;code&gt;INDUSTRIES&lt;/code&gt;, &lt;code&gt;SEARCHES&lt;/code&gt;, and &lt;code&gt;COUNTY_CITIES&lt;/code&gt; arrays for your target market.&lt;/p&gt;

&lt;h2&gt;
  
  
  Published Data
&lt;/h2&gt;

&lt;p&gt;We publish the results as free market reports at &lt;a href="https://webpossible.com/local/" rel="noopener noreferrer"&gt;webpossible.com/local/&lt;/a&gt; — 7 industries across 2 Michigan counties. Every provider ranked by reviews with competitive analysis.&lt;/p&gt;

&lt;p&gt;Feel free to fork, adapt for your market, or just use the data we've already published.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://webpossible.com" rel="noopener noreferrer"&gt;WebPossible&lt;/a&gt; — local SEO and AI automation for small businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>javascript</category>
      <category>seo</category>
      <category>api</category>
    </item>
    <item>
      <title>The Funeral Home SEO Market Nobody Is Talking About</title>
      <dc:creator>Ryan York</dc:creator>
      <pubDate>Sat, 04 Apr 2026 00:56:01 +0000</pubDate>
      <link>https://dev.to/webpossible/the-funeral-home-seo-market-nobody-is-talking-about-151j</link>
      <guid>https://dev.to/webpossible/the-funeral-home-seo-market-nobody-is-talking-about-151j</guid>
      <description>&lt;p&gt;I've been analyzing local business data across Southeast Michigan, and the funeral home industry has the most interesting competitive dynamics of any vertical I've looked at.&lt;/p&gt;

&lt;p&gt;Here's what the data shows — and why it matters for anyone doing local SEO in this space.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;p&gt;We pulled Google Places API data for every funeral home in two Michigan counties:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Macomb County:&lt;/strong&gt; 32 funeral homes, 1,589 total reviews, 4.62 avg rating&lt;br&gt;
&lt;strong&gt;Oakland County:&lt;/strong&gt; 53 funeral homes, 2,824 total reviews, 4.35 avg rating&lt;/p&gt;

&lt;p&gt;That 4.35 average in Oakland County is the &lt;strong&gt;lowest of any industry we track&lt;/strong&gt; — lower than dental (4.73), HVAC (4.80), or even landscaping (4.55).&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the Ratings Are Low
&lt;/h2&gt;

&lt;p&gt;Funeral services are emotionally charged. Families leave reviews during or shortly after the worst weeks of their lives. The bar for a negative experience is different than in other industries — a billing confusion that would be a minor annoyance at a dentist's office becomes a deeply personal grievance at a funeral home.&lt;/p&gt;

&lt;p&gt;Oakland County's White Chapel Memorial Park has 210 Google reviews but a &lt;strong&gt;2.6 average rating&lt;/strong&gt;. It's the county's second most-reviewed funeral provider. That means the most visible provider (by review count) is also one of the worst-rated. For a trust-driven industry, that's a massive gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Opportunity
&lt;/h2&gt;

&lt;p&gt;The average funeral home in both counties has roughly &lt;strong&gt;50 Google reviews&lt;/strong&gt;. The market leader (Kaul Funeral Home in Macomb County) has 370 across 3 locations.&lt;/p&gt;

&lt;p&gt;Compare that to HVAC, where Thornton &amp;amp; Grooms has &lt;strong&gt;15,720 reviews&lt;/strong&gt;, or dental, where the average practice has &lt;strong&gt;315 reviews&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Funeral homes are dramatically under-reviewed. Which means:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The review moat is small.&lt;/strong&gt; Getting from 20 reviews to 100 is achievable in 12-18 months with a consistent system. In dental or HVAC, going from 200 to 1,000 takes years.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A 4.8+ rating stands out.&lt;/strong&gt; When the market average is 4.35-4.62, a funeral home with a 4.9 rating and 100+ reviews is a clear outlier — in a good way.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pre-need content is uncontested.&lt;/strong&gt; Almost no funeral home has content targeting "how to pre-plan a funeral," "cremation vs burial costs," or "what to do when someone dies." These are high-volume searches with near-zero competition from actual funeral home websites.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Two Funnels, Two Strategies
&lt;/h2&gt;

&lt;p&gt;What makes funeral home SEO unique is the &lt;strong&gt;at-need vs pre-need split&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;At-need:&lt;/strong&gt; Family member just died. They search "funeral home near me." Decision happens in 15 minutes. Map pack visibility and reviews are everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pre-need:&lt;/strong&gt; Someone researching "how to pre-plan a funeral" or "cremation costs." They won't need you for months or years. But pre-arranged funerals are locked-in revenue — they don't go to bid later.&lt;/p&gt;

&lt;p&gt;Most funeral home SEO (what little exists) focuses on at-need. Pre-need is where the long-term ROI lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Sensitivity Factor
&lt;/h2&gt;

&lt;p&gt;This is the part most marketing agencies get wrong. You can't review-request a funeral home the same way you review-request a restaurant.&lt;/p&gt;

&lt;p&gt;The timing matters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Not during services&lt;/strong&gt; (obviously)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not in the first week&lt;/strong&gt; (family is grieving)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;At 30 days&lt;/strong&gt;, after an aftercare check-in (the relationship is established)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;At 12 months&lt;/strong&gt;, with an anniversary remembrance (families remember who remembered)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The tone matters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not transactional ("Rate us 5 stars!")&lt;/li&gt;
&lt;li&gt;Grateful and gentle ("If we helped during a difficult time, sharing your experience helps other families find us.")&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agencies that apply generic review playbooks to funeral homes actively damage the brand.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Data
&lt;/h2&gt;

&lt;p&gt;We publish free market reports for funeral homes (and 6 other industries) across Macomb and Oakland County, MI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://webpossible.com/funeral-homes/macomb-county-mi/market-data/" rel="noopener noreferrer"&gt;Macomb County Funeral Home Market Data&lt;/a&gt; — 32 providers ranked by reviews&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://webpossible.com/funeral-homes/oakland-county-mi/market-data/" rel="noopener noreferrer"&gt;Oakland County Funeral Home Market Data&lt;/a&gt; — 53 providers ranked by reviews&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every provider, every rating, every city. Real Google data, updated quarterly.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;We're &lt;a href="https://webpossible.com" rel="noopener noreferrer"&gt;WebPossible&lt;/a&gt; — local SEO and AI automation for small businesses. Based in Harrison Township, Michigan.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>marketing</category>
      <category>data</category>
      <category>business</category>
    </item>
    <item>
      <title>How We Use Google Places API Data to Build Local SEO Strategies for Small Businesses</title>
      <dc:creator>Ryan York</dc:creator>
      <pubDate>Sat, 04 Apr 2026 00:54:35 +0000</pubDate>
      <link>https://dev.to/webpossible/how-we-use-google-places-api-data-to-build-local-seo-strategies-for-small-businesses-ddk</link>
      <guid>https://dev.to/webpossible/how-we-use-google-places-api-data-to-build-local-seo-strategies-for-small-businesses-ddk</guid>
      <description>&lt;p&gt;We built an open-source Node.js script that pulls competitive market data from the Google Places API for any industry in any county. Here's how we use it to build SEO strategies for local businesses — and why raw data beats guesswork every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Most local SEO agencies pitch services without knowing the competitive landscape. They'll tell an HVAC contractor "you need more reviews" without knowing that the market leader in their county has 15,720 reviews. Or they'll promise a med spa "page 1 rankings" without knowing there are 147 competing med spas in the county.&lt;/p&gt;

&lt;p&gt;We wanted to fix that. So we built a tool that pulls real data from Google Places API for any industry in any geography.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Script Does
&lt;/h2&gt;

&lt;p&gt;For each industry + county combination, the script:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Searches multiple cities within the county to get comprehensive coverage&lt;/li&gt;
&lt;li&gt;Deduplicates businesses by name + address&lt;/li&gt;
&lt;li&gt;Filters to the target county using city name matching and lat/lng bounding box&lt;/li&gt;
&lt;li&gt;Sorts by review count (the strongest local SEO signal)&lt;/li&gt;
&lt;li&gt;Calculates averages: rating, review count, businesses per 100K population&lt;/li&gt;
&lt;li&gt;Groups businesses by city to show density distribution&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Real Example: HVAC in Oakland County, MI
&lt;/h2&gt;

&lt;p&gt;Here's what the data shows for HVAC companies in Oakland County, Michigan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;144 HVAC companies&lt;/strong&gt; serving 1.27 million residents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;86,092 total Google reviews&lt;/strong&gt; with a 4.80 average rating&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Top provider: Thornton &amp;amp; Grooms&lt;/strong&gt; with 15,720 reviews — 18% of ALL HVAC reviews in the county&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Average company has 598 reviews&lt;/strong&gt; — but that average is skewed by the top 3&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Troy has the most providers (18)&lt;/strong&gt;, followed by Waterford (16) and Farmington Hills (14)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This data tells us exactly what an HVAC contractor in Oakland County needs to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can't out-review Thornton &amp;amp; Grooms county-wide (15,720 reviews is a decade-long moat)&lt;/li&gt;
&lt;li&gt;You CAN dominate city-specific searches with dedicated pages ("HVAC repair Farmington Hills")&lt;/li&gt;
&lt;li&gt;Emergency and seasonal terms have lower review thresholds to rank&lt;/li&gt;
&lt;li&gt;Northern Oakland County cities have fewer providers = less competition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without this data, any SEO strategy is guesswork.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data for 7 Industries Across 2 Counties
&lt;/h2&gt;

&lt;p&gt;We've published free market reports for every provider in Macomb and Oakland County, MI:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Industry&lt;/th&gt;
&lt;th&gt;Macomb County&lt;/th&gt;
&lt;th&gt;Oakland County&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Med Spa&lt;/td&gt;
&lt;td&gt;31 providers, 5,377 reviews&lt;/td&gt;
&lt;td&gt;147 providers, 24,716 reviews&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dental&lt;/td&gt;
&lt;td&gt;130 providers, 52,545 reviews&lt;/td&gt;
&lt;td&gt;272 providers, 85,614 reviews&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chiropractic&lt;/td&gt;
&lt;td&gt;105 providers, 13,443 reviews&lt;/td&gt;
&lt;td&gt;193 providers, 22,661 reviews&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HVAC&lt;/td&gt;
&lt;td&gt;81 providers, 35,726 reviews&lt;/td&gt;
&lt;td&gt;144 providers, 86,092 reviews&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Roofing&lt;/td&gt;
&lt;td&gt;71 providers, 7,546 reviews&lt;/td&gt;
&lt;td&gt;112 providers, 11,759 reviews&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Landscaping&lt;/td&gt;
&lt;td&gt;77 providers, 7,192 reviews&lt;/td&gt;
&lt;td&gt;126 providers, 9,370 reviews&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funeral Homes&lt;/td&gt;
&lt;td&gt;32 providers, 1,589 reviews&lt;/td&gt;
&lt;td&gt;53 providers, 2,824 reviews&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Every report includes: every business ranked by reviews, city-by-city density, average ratings, competitive analysis, and market gap identification.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technical Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Places API (New)&lt;/strong&gt; — Text search with field masks for name, address, rating, reviews, website, location&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node.js&lt;/strong&gt; — Simple async script with rate limiting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Eleventy&lt;/strong&gt; — Static site generator that renders the data into programmatic SEO pages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nunjucks templates&lt;/strong&gt; — Render tables, stat cards, and analysis from JSON data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The script searches 8-16 cities per county to ensure comprehensive coverage, deduplicates by name+address, and filters using both city name matching and geographic bounding boxes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters for Local SEO
&lt;/h2&gt;

&lt;p&gt;Local SEO is data-driven or it's guesswork. When we onboard a new client, we show them:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Exactly how many competitors they have&lt;/li&gt;
&lt;li&gt;Who dominates reviews (and by how much)&lt;/li&gt;
&lt;li&gt;Which cities are oversaturated vs underserved&lt;/li&gt;
&lt;li&gt;What the realistic path to map pack visibility looks like&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No hand-waving. No "trust us." Just data.&lt;/p&gt;

&lt;p&gt;We publish all our market reports for free at &lt;a href="https://webpossible.com/local/" rel="noopener noreferrer"&gt;webpossible.com&lt;/a&gt;. If you're a local business in Southeast Michigan, check where you stand.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;We're &lt;a href="https://webpossible.com" rel="noopener noreferrer"&gt;WebPossible&lt;/a&gt; — local SEO and AI automation for small businesses in Macomb and Oakland County, MI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>api</category>
    </item>
  </channel>
</rss>
