<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Gap Watch]]></title><description><![CDATA[Gap Watch]]></description><link>https://gapwatch.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 05 Nov 2026 14:07:06 GMT</lastBuildDate><atom:link href="https://gapwatch.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[What I found checking 26 Austin salon websites by hand]]></title><description><![CDATA[If you build websites or do local SEO, you have probably tried the obvious prospecting filter: "show me businesses with no website." I wanted to know what…]]></description><link>https://gapwatch.hashnode.dev/what-i-found-checking-26-austin-salon-websites-by-hand</link><guid isPermaLink="true">https://gapwatch.hashnode.dev/what-i-found-checking-26-austin-salon-websites-by-hand</guid><category><![CDATA[Web Development]]></category><category><![CDATA[SEO]]></category><category><![CDATA[Freelancing]]></category><category><![CDATA[Small business]]></category><dc:creator><![CDATA[Cornelis Van Wyk]]></dc:creator><pubDate>Wed, 28 Oct 2026 21:09:35 GMT</pubDate><content:encoded><![CDATA[<p>If you build websites or do local SEO, you have probably tried the obvious prospecting filter: "show me businesses with no website." I wanted to know what that filter misses, so I picked one city and one niche (Austin hair &amp; beauty) and checked every candidate by hand.</p>
<h2>What I did</h2>
<p>I reviewed roughly 80 to 100 Austin hair, nail, barber, lash/brow and esthetician businesses. I found them through searches aimed at businesses likely to have online gaps, so <strong>this is not a random sample.</strong> Nothing below is a rate for "all Austin salons." It describes the 26 businesses that ended up on my list.</p>
<p>I left out chains and franchises, closed businesses, and any business that already had a working website with online booking. Of the businesses I reviewed, 26 qualified:</p>
<ul>
<li>10 hair salons (including 3 braiding salons and 1 hair/barber shop)</li>
<li>7 nail salons</li>
<li>6 barbershops</li>
<li>3 lash/brow studios</li>
<li>0 estheticians. I checked about 8, and every one already had a working site with online booking.</li>
</ul>
<p>For every website listed for a business (on its Google profile, directories, Yelp-style listings or social bios), I:</p>
<ol>
<li>Requested it with <code>curl</code>, following redirects, with a mobile browser user agent.</li>
<li>Recorded the final status code, the final URL, the page size and the page language/title.</li>
<li>Re-tested every failure from a second network, so a single flaky connection wouldn't count as "dead."</li>
<li>Looked at the page itself: is this actually the business, and does the booking link go somewhere real?</li>
</ol>
<p>I collected public business information only. No personal emails and no data about individuals.</p>
<h2>The headline: "has a website" is often false</h2>
<p><strong>20 of the 26 had no working website on their own domain.</strong> They had no site at all, a dead one, a parked one, one pointing at the wrong business, or only a booking page or link-in-bio.</p>
<p>The part a "no website" filter misses: <strong>10 of the 26 had a website listed publicly that was broken.</strong> A tool that only looks at whether the website field is filled in would mark all 10 as "has a website" and skip them.</p>
<p>Here is what those 10 listed websites actually did:</p>
<table>
<thead>
<tr>
<th>What the listed URL did</th>
<th>Count</th>
</tr>
</thead>
<tbody><tr>
<td>Domain now belongs to something unrelated (a blog, an unrelated WordPress site returning HTTP 500, a German-language site)</td>
<td>3</td>
</tr>
<tr>
<td>Parked: a ~114-byte page that just JS-redirects to <code>/lander</code></td>
<td>2</td>
</tr>
<tr>
<td>Old Google Business Sites (<code>business.site</code>) URL, now 404, still listed in directories</td>
<td>1</td>
</tr>
<tr>
<td>Wix domain disconnected (404 "connect your domain" page)</td>
<td>1</td>
</tr>
<tr>
<td>Server down (TLS connection dropped / 502)</td>
<td>1</td>
</tr>
<tr>
<td>Infinite 301 redirect loop</td>
<td>1</td>
</tr>
<tr>
<td>Listing points to a chain's corporate page, not the business</td>
<td>1</td>
</tr>
</tbody></table>
<p>A few patterns stood out:</p>
<ul>
<li><strong>Parked pages return HTTP 200.</strong> A status-code check alone calls them "up." The giveaway was the tiny body size and the redirect to <code>/lander</code>.</li>
<li><strong>Google's retired Business Sites URLs are still out there.</strong> Directories still show the <code>business.site</code> link even though it returns 404.</li>
<li><strong>Lapsed domains get reused.</strong> Three "websites" now load something with no connection to the salon. Someone searching for the salon would land there.</li>
<li><strong>Booking links break too.</strong> One booking-platform link sent visitors to a generic search page, and one booking-platform profile was an unclaimed placeholder.</li>
</ul>
<p>When I re-checked the listed domains on 2026-10-28, three days later, they gave the same results.</p>
<h2>The other gaps</h2>
<p>Each business could have more than one gap. Across the 26:</p>
<table>
<thead>
<tr>
<th>Gap</th>
<th>Businesses</th>
</tr>
</thead>
<tbody><tr>
<td>No working website</td>
<td>18</td>
</tr>
<tr>
<td>Name/address/phone inconsistent across listings</td>
<td>10</td>
</tr>
<tr>
<td>Facebook/Instagram is the only web presence</td>
<td>9</td>
</tr>
<tr>
<td>Few reviews</td>
<td>7</td>
</tr>
<tr>
<td>No online booking</td>
<td>6</td>
</tr>
<tr>
<td>Broken pages on the site</td>
<td>3</td>
</tr>
<tr>
<td>No own domain (booking page / link-in-bio only)</td>
<td>2</td>
</tr>
<tr>
<td>No prices shown</td>
<td>2</td>
</tr>
<tr>
<td>No mobile viewport</td>
<td>1</td>
</tr>
<tr>
<td>No valid HTTPS</td>
<td>1</td>
</tr>
<tr>
<td>Outdated copyright footer</td>
<td>0</td>
</tr>
</tbody></table>
<p>I scored each business by how many distinct gaps it had. Most landed in the middle: 1 business scored 6, 5 scored 5, 13 scored 4, 4 scored 3 and 3 scored 2.</p>
<p>Geographically, the list clustered in a few areas. 8 were in 78753, 5 in 78752, 5 in 78745, 3 in 78741 and 2 in 78702, with one each in 78758, 78704 and 78727. That reflects where my searches turned things up as much as where gaps actually exist.</p>
<h2>Limitations</h2>
<ul>
<li><strong>Pre-selected sample.</strong> Don't read "10 of 26" as a rate for the whole city.</li>
<li><strong>Review counts can lag</strong> behind what a live profile shows.</li>
<li><strong>I didn't score social-media inactivity</strong>, even though it is often the real problem for Facebook/Instagram-only businesses.</li>
<li><strong>Things change.</strong> A parked domain can come back tomorrow. Everything here is accurate only as of the check dates.</li>
</ul>
<h2>Takeaway for anyone prospecting local businesses</h2>
<p>If you sell websites or local SEO, the "website" field in a listing is a claim, not a fact. A 30-second check (follow redirects, look at the body size, confirm the business name appears on the page) separates "has a website" from "has a website that works." In my small, biased sample, that check turned up 10 extra businesses that a blank-field filter would have skipped.</p>
<hr />
<p><strong>Disclosure:</strong> I'm testing whether there's demand for a paid monthly version of this: a hand-verified list of Austin hair &amp; beauty businesses with these gaps, with the evidence for each one. It is <strong>not launched</strong>, nothing is for sale and no payments are accepted. $49/month is a price I'm testing, and 10-25 leads a month is a target, not a promise. If you'd use something like this, or think it's pointless, the details and a free waitlist are here: <a href="https://gapwatch.carrd.co">https://gapwatch.carrd.co</a></p>
]]></content:encoded></item></channel></rss>