<?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: House Call SEO</title>
    <description>The latest articles on DEV Community by House Call SEO (@housecallseo).</description>
    <link>https://dev.to/housecallseo</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4199429%2Fd488c85b-1cb7-437b-ae35-ba2011390188.png</url>
      <title>DEV Community: House Call SEO</title>
      <link>https://dev.to/housecallseo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/housecallseo"/>
    <language>en</language>
    <item>
      <title>NAP Consistency Is a Data Integrity Problem, So Treat It Like One</title>
      <dc:creator>House Call SEO</dc:creator>
      <pubDate>Thu, 22 Oct 2026 02:52:52 +0000</pubDate>
      <link>https://dev.to/housecallseo/nap-consistency-is-a-data-integrity-problem-so-treat-it-like-one-2f3m</link>
      <guid>https://dev.to/housecallseo/nap-consistency-is-a-data-integrity-problem-so-treat-it-like-one-2f3m</guid>
      <description>&lt;p&gt;Name, Address, Phone. Three strings. Local SEO treats them as a ranking factor; developers should treat them as a distributed-systems consistency bug. Your business data is replicated across dozens of directories you never asked to join, and the replicas drift.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the drift happens
&lt;/h2&gt;

&lt;p&gt;You move offices and update your website and GBP. Yelp still has the old address. A data aggregator picked up an old Yellow Pages record and is now selling it to forty other directories. A tracking number from a 2022 ad campaign got indexed as your "real" number. Each mismatch is a small negative signal; dozens of them tell Google your business identity is unreliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix is an audit, then a canonical record
&lt;/h2&gt;

&lt;p&gt;First, find every variant: search your phone number, your old addresses, and your business name in quotes. Document each listing and its state. Then define one canonical NAP - exact formatting, no tracking numbers anywhere public - and push it to the aggregators first (they propagate downstream), then to the major directories manually.&lt;/p&gt;

&lt;h2&gt;
  
  
  Formats count
&lt;/h2&gt;

&lt;p&gt;"Suite 200" vs "Ste 200" vs "#200" are three different strings to a parser. Pick one and use it everywhere, including your own site's schema markup and footer. The same goes for phone formatting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who writes this stuff
&lt;/h2&gt;

&lt;p&gt;House Call SEO: an Israeli-owned agency for local search, dedicated to US home services businesses. Founder-led, no sales layer; plans are published starting at $750 a month, and you can cancel anytime. Every free 30 minute audit includes a citation consistency check next to the GBP review, competitor scan, and AI visibility test, and you leave with three concrete fixes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try this:&lt;/strong&gt; &lt;a href="https://housecallseo.com/free-seo-consultation/" rel="noopener noreferrer"&gt;Get a Free SEO Audit&lt;/a&gt; or read &lt;a href="https://housecallseo.com/nap-consistency-local-seo-importance-moz/" rel="noopener noreferrer"&gt;why NAP consistency matters&lt;/a&gt; in depth. The &lt;a href="https://sites.google.com/view/home-services-seo-hub" rel="noopener noreferrer"&gt;Home Services SEO Hub&lt;/a&gt; carries the rest of the series.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>localbusiness</category>
      <category>marketing</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Site Speed Is a Ranking Input and a Conversion Multiplier for Local Service Sites</title>
      <dc:creator>House Call SEO</dc:creator>
      <pubDate>Thu, 22 Oct 2026 02:44:21 +0000</pubDate>
      <link>https://dev.to/housecallseo/site-speed-is-a-ranking-input-and-a-conversion-multiplier-for-local-service-sites-4plf</link>
      <guid>https://dev.to/housecallseo/site-speed-is-a-ranking-input-and-a-conversion-multiplier-for-local-service-sites-4plf</guid>
      <description>&lt;p&gt;A contractor's site has one job: get the phone to ring. Every performance decision should be judged against that. Slow pages lose twice - once in rankings, and again when the homeowner with a burst pipe hits the back button before your number renders.&lt;/p&gt;

&lt;h2&gt;
  
  
  The metrics that matter for a local service site
&lt;/h2&gt;

&lt;p&gt;Largest Contentful Paint under 2.5 seconds on mobile, Interaction to Next Paint under 200ms, and no layout shift that moves the tap-to-call button while a thumb is descending toward it. That last one is the classic contractor-site bug: the header image loads late, the phone number jumps, the tap misses.&lt;/p&gt;

&lt;h2&gt;
  
  
  The usual suspects, in order of frequency
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Hero images straight from a phone.&lt;/strong&gt; A 4MB JPEG as the header. Compress to WebP, resize to display dimensions, preload it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Page builders stacking three slider plugins.&lt;/strong&gt; One plugin's assets load on every page whether used or not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Third-party scripts.&lt;/strong&gt; Chat widgets, review carousels, heatmap tools - each one defers your own content. Audit annually; remove what you cannot tie to booked jobs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No caching or CDN.&lt;/strong&gt; A site serving one metro should still cache aggressively; repeat visitors from the same neighborhood are your highest-intent traffic.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Measuring what matters
&lt;/h2&gt;

&lt;p&gt;Run PageSpeed Insights on your top three landing pages, not just the homepage. Service pages and city pages are where the money searches land. Field data (real user measurements) beats lab data for decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  About this guide's authors
&lt;/h2&gt;

&lt;p&gt;This comes from House Call SEO, an Israeli-owned local SEO agency serving US home services companies. It is founder-led - no sales team sits between you and the person doing the work - and pricing is public from $750 a month with no contract. The free 30 minute audit reviews your site speed alongside your Google Business Profile, three local competitors, and your visibility in ChatGPT and Perplexity, and closes with the three highest-value fixes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start here:&lt;/strong&gt; &lt;a href="https://housecallseo.com/free-seo-consultation/" rel="noopener noreferrer"&gt;Get a Free SEO Audit&lt;/a&gt; or dig into &lt;a href="https://housecallseo.com/google-maps-seo/" rel="noopener noreferrer"&gt;Google Maps SEO for service businesses&lt;/a&gt;. More on the &lt;a href="https://sites.google.com/view/home-services-seo-hub" rel="noopener noreferrer"&gt;Home Services SEO Hub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>webdev</category>
      <category>pagespeed</category>
    </item>
    <item>
      <title>LocalBusiness Schema for Home Service Sites: A Developer's Implementation Guide</title>
      <dc:creator>House Call SEO</dc:creator>
      <pubDate>Thu, 22 Oct 2026 02:43:34 +0000</pubDate>
      <link>https://dev.to/housecallseo/localbusiness-schema-for-home-service-sites-a-developers-implementation-guide-3104</link>
      <guid>https://dev.to/housecallseo/localbusiness-schema-for-home-service-sites-a-developers-implementation-guide-3104</guid>
      <description>&lt;p&gt;Most contractor websites have no structured data at all, or a sitewide Organization block that says nothing about the actual business. For local search, the schema that matters is LocalBusiness (or a subtype like Plumber, Electrician, or HVACBusiness), and getting it right is a one-afternoon job that keeps paying off.&lt;/p&gt;

&lt;h2&gt;
  
  
  The minimal viable LocalBusiness block
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"@context"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://schema.org"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"HomeAndConstructionBusiness"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Exact Business Name"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"telephone"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"+1-555-555-5555"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://example.com"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"priceRange"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$$"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"address"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"PostalAddress"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"addressLocality"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"City"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"addressRegion"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ST"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"postalCode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"00000"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"areaServed"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"City A"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"City B"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"City C"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"openingHoursSpecification"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"OpeningHoursSpecification"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"dayOfWeek"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Monday"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"Tuesday"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"Wednesday"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"Thursday"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"Friday"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"opens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"08:00"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"closes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"18:00"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a service-area business without a storefront, omit the street address and lean on &lt;code&gt;areaServed&lt;/code&gt;. Match every field to your Google Business Profile exactly - name formatting, phone format, hours. Google cross-references.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to put it
&lt;/h2&gt;

&lt;p&gt;One LocalBusiness block sitewide (footer or homepage), plus Service schema on each service page with &lt;code&gt;provider&lt;/code&gt; referencing the business by &lt;code&gt;@id&lt;/code&gt;. Do not spray Review schema on your own testimonials - self-serving reviews are explicitly out of scope for rich results and can earn a manual action.&lt;/p&gt;

&lt;h2&gt;
  
  
  Validation workflow
&lt;/h2&gt;

&lt;p&gt;Test with the Rich Results Test, then Schema.org's validator for warnings the rich test ignores. Re-test after any theme update; WordPress theme changes silently wipe injected JSON-LD more often than any plugin conflict does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who this guide is from
&lt;/h2&gt;

&lt;p&gt;House Call SEO: an Israeli-owned local SEO practice built for US home services businesses, founder-led with no sales team - the person who audits your site is the person who fixes it. Pricing is published (plans from $750 a month, no contract), and the free 30 minute audit covers exactly this kind of technical gap plus your GBP, three competitors, and AI visibility in ChatGPT and Perplexity. The work runs AI-first: Google and AI search together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next step:&lt;/strong&gt; &lt;a href="https://housecallseo.com/free-seo-consultation/" rel="noopener noreferrer"&gt;Get a Free SEO Audit&lt;/a&gt; or read about the &lt;a href="https://housecallseo.com/technical-seo-audit-service/" rel="noopener noreferrer"&gt;technical SEO audit for home service sites&lt;/a&gt;. More guides on the &lt;a href="https://sites.google.com/view/home-services-seo-hub" rel="noopener noreferrer"&gt;Home Services SEO Hub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>webdev</category>
      <category>marketing</category>
    </item>
  </channel>
</rss>
