SEO & Local Visibility Audit
The shop shows up on the map. The website underneath it is nearly empty.
Eighty-eight words, one page, one internal link, and no way to tap your phone number. Google has almost nothing to rank you on beyond your own name — and the fixes are mostly small.
Scored against the six dimensions of a local SEO audit, weighted the way local search weights them.
Every row below was measured directly from the live page on 19 August 2026.
| Area | Status | What we measured |
|---|---|---|
| Content depth | Critical | 88 words render on the whole site. There is nothing for Google to match against "kids haircut", "beard trim", or "hot towel shave". |
| Site structure | Critical | The sitemap lists one URL. The page contains one internal link, and it points back at itself — there is no path for a crawler to follow. |
| Tap-to-call | Critical | Zero tel: links. Your phone number, 813-855-4549, appears only inside structured data — it is not in the visible text of the page at all. |
| Title & description | High | Title is 19 characters ("Rigby's Barber Shop"); description is 39. Neither names Westchase, Tampa, or a single service. |
| Blocked crawlers | High | 30 user-agents blocked in robots.txt — including AdsBot-Google, which Google Ads uses to score landing pages. |
| Dead-site widget | High | A Facebook comments box still loads against rigbyknowsbest.webs.com, your retired site. Confirmed live across three requests. |
| Heading structure | Medium | Three <h1> tags on one page. None contains a city or a service. |
| Canonical vs sitemap | Medium | Canonical points at the root domain; the sitemap lists /home. They disagree about which URL is the real one. |
| Images | Medium | 31 images, 20 with empty alt text. None is missing the attribute, so this is a content gap, not a coding error. |
| Page speed | Healthy | All three Core Web Vitals pass on a throttled phone. Details in section 3. |
Measured in Chrome on a simulated phone — Slow 4G, 4× CPU throttle. All three Core Web Vitals pass.
Content is how Google decides who ranks for anything other than your own name.
111 requests fire on a single page. Here is who they belong to.
Structured data is present but generic, and the address is a plain string Google cannot reliably parse.
| Property | Status | Detail |
|---|---|---|
| @type | High | Generic LocalBusiness. The narrowest fitting type is HairSalon. |
| address | High | A single newline-separated string, not a PostalAddress object. |
| telephone | High | Missing from LocalBusiness. It sits only on Organization. |
| geo | Medium | Absent. Coordinates to 5+ decimals are recommended. |
| @context | Medium | Uses http:// on all three blocks; should be https://. |
| url · priceRange · image | Medium | All absent from the LocalBusiness block. |
// Replace the existing LocalBusiness block with this { "@context": "https://schema.org", "@type": "HairSalon", "name": "Rigby's Barber Shop", "url": "https://rigbysbarbershop.com", "telephone": "+1-813-855-4549", "priceRange": "$$", "image": "https://rigbysbarbershop.com/<storefront-photo>.jpg", "address": { "@type": "PostalAddress", "streetAddress": "11655 Countryway Blvd", "addressLocality": "Tampa", "addressRegion": "FL", "postalCode": "33626", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": 28.05••••, "longitude": -82.61•••• }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"], "opens": "09:00", "closes": "19:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Saturday", "opens": "09:00", "closes": "15:00" } ], "sameAs": ["https://www.facebook.com/rigbysbarbershop"] }
Fill the two coordinate values from the shop's pin in Google Maps — five decimal places or better.
Ordered by impact per hour of effort. The first three are same-day changes.
tel: link. Most barber searches happen on a phone, and right now the number renders nowhere a customer can tap.
High impact · minutesAdsBot-Google should come off that list immediately if you run any ads. Whether to unblock GPTBot and ClaudeBot is a business call — it decides if AI assistants can recommend you.
High impact · minutesHairSalon markup from section 6. Fixes the type, the address object, and the missing phone in one edit.
High impact · under an hourStated plainly, so nothing here reads as more certain than it is:
Everything else in this document was measured directly from the live site, its robots.txt, its sitemap, its structured data, and a throttled mobile page load in Chrome on 19 August 2026.