Executive Summary
watchvault.us · Full-site SEO audit · 100 URLs sampled across a 1,703-URL inventory
Watch Vault is a credible Houston-based luxury watch dealer with a sizable catalog (1,629 products), a working brick-and-mortar story at 4722 Richmond Ave, and a Shopify storefront that already exposes the new agentic-commerce signals (/llms.txt, /agents.md, agentic discovery sitemap). It is reachable by Googlebot, Bingbot, GPTBot, ClaudeBot, and PerplexityBot — there are no crawler-side blocks. The score is held back by an unusually large number of mechanical, fixable problems: every product title is hard-truncated to 70 characters mid-word, the homepage has zero <H1> tags, no LocalBusiness or Organization JSON-LD anywhere on the site, two indexed staging clones (/pages/new-about-us, /pages/contact-us-new) that are 99.4 % and 74.2 % identical to their canonical originals, an external Bootstrap 3 CDN render-blocking every page, and 2,500 of 2,501 sampled images served with no loading="lazy" attribute and no inline width/height. The site footer + homepage + About + Contact display LocalIQ PPC call-tracking number (832) 248-0018 instead of the client-confirmed canonical (281) 516-5977 (verified by Dina on 2026-02-03; matches GBP, MapQuest, contact-page tel: href). LocalIQ tracking is fine for PPC attribution but must not appear on canonical NAP surfaces. There is no crawl-budget crisis, no penalty risk, and no broken information architecture — the work is scoped, predictable, and high-leverage.
Category Scores
Top 5 Critical Issues
<H1> tagsTop 5 Quick Wins (combined ≤ 4 hrs dev time)
| # | Fix | Expected impact | Effort |
|---|---|---|---|
| 1 | Unpublish /pages/new-about-us + /pages/contact-us-new; 301 to canonical | Reclaims canonical signal; removes split equity | XS · 15 min |
| 2 | Add loading="lazy" to all <img> emitted by rimg snippet | LCP −800 ms to 1.5 s on PLPs/PDPs; bandwidth saving | S · 1 hr |
| 3 | Replace homepage <title> with "Houston Luxury Watch Buyer & Seller | Watch Vault" | SERP CTR uplift sitewide on the highest-impression page | XS · 5 min |
| 4 | Add an <h1> to homepage hero | Restores top-level heading signal for ranking + accessibility | XS · 15 min |
| 5 | Add JewelryStore / LocalBusiness JSON-LD in theme.liquid head | Local pack + AI Overviews + Knowledge Panel eligibility | S · 30 min |
Category Summaries
Crawlable and indexable. HSTS at ~91 days (not preload-eligible). HTTP/3 explicitly disabled (alt-svc: clear). Bare-bones CSP. Missing Referrer-Policy, Permissions-Policy, COOP. All AI bots reach the origin. Cloudflare WAF non-blocking.
Decent product/collection word counts. Two staging clones live. 14 thin collection pages (107–115 words). Product descriptions are HTML-escaped spec dumps. Blog has no author bylines — weak Person schema, weak AI-citation signal.
24 truncated titles, 7 missing H1s, 9 missing meta descriptions, 26 over-long descriptions, generic 12–16-char titles on price-band collections and policy pages. <H3> usage essentially zero across the site.
Product + BreadcrumbList + WebSite present. Zero LocalBusiness/Organization. No FAQPage on /pages/faqs. No AggregateRating on /pages/watchvault_reviews. No CollectionPage or ItemList on collections. No SearchAction.
88 script tags on homepage (72 render-blocking). Bootstrap 3.3.7 + bootstrap-theme served from external maxcdn.bootstrapcdn.com on every page. 73 inline scripts (~46 KB). LCP estimated 4.0–5.5 s mobile.
99.96 % alt-attribute coverage (good). 12 % empty-alt content images (bad). 1 of 2,501 images uses loading="lazy". 1,654 of 2,501 missing width/height — CLS risk. srcset coverage 99.5 % (good).
Recalibrated using 5-dimension framework. Technical accessibility 90/100 (excellent — 16 AI bots verified, agentic discovery published). Held back by Citability 30 (no 134–167 word brand passages, no author bylines), Authority 25 (no Wikipedia, no Wikidata, weak directory presence), Structural Readability 35 (flat H2 layout). See GEO page for full breakdown.
Strong on-page local presence (73/100 pages mention Houston) but zero LocalBusiness schema. NAP phone conflict between site footer and llms.txt. Out-of-stock products kept in sitemap. Product schema missing UsedCondition.
What's Working Well
- All AI crawlers (GPTBot, ClaudeBot, PerplexityBot, ChatGPT-User) return 200 from origin
- Cloudflare in front but WAF is not challenging legitimate traffic
- All sampled pages render server-side (no JS-only content)
- Canonical tags present on 100 % of sampled pages, all self-referential
- BreadcrumbList JSON-LD on 95 % of pages
- Product schema on 100 % of PDPs (with offers, brand, priceValidUntil)
- Shopify's new agentic-discovery sitemap is published (/llms.txt, /agents.md, /llms-full.txt)
- 99.5 % of images use srcset for responsive serving
- 99.96 % of images have an alt attribute
- Site is in Common Crawl CC-MAIN-2025-43 (verified, multiple captures)
- Sitemap structure is split correctly across products / collections / pages / blogs / agentic discovery
- Strong local content presence: Houston (73 pages), Bellaire (35), Richmond Ave (11)
Expected Impact (Roadmap)
- Unpublish staging clones; 301 to canonical
- Replace homepage title; add H1
- Add LocalBusiness JSON-LD sitewide
- Reconcile NAP phone in /llms.txt + /agents.md
- Drop external Bootstrap 3 CDN dependency
- Rewrite product title template (kill the 70-char truncation pattern)
- Lazy-load all below-fold images; add explicit width/height
- Enrich Product schema (sku, mpn, condition=Used, multi-image, return policy)
- Add FAQPage schema to /pages/faqs; AggregateRating to /pages/watchvault_reviews
- Author bespoke /llms.txt with brand portfolio + FAQ
- Add CollectionPage + ItemList schema to all 47 collections
- Add HSTS preload + missing security headers; re-enable HTTP/3
- Visible breadcrumbs UI
- 200-word brand introductions on 14 thin collections
- Blog author bylines + Person schema
- Hero image preload on homepage
- Reduce script tag count (audit 7 third-party origins)
- Connect Search Console + GA4 + CrUX API for next audit pass
- Reduce empty-alt on content images
- Replace OG image (PNG → JPG/WebP)
- fetchpriority hints on critical resources
- Visible review widget on homepage
- Dedicated "About Watch Vault" trust page
- Re-template /pages/get-directions as proper LocalBusiness landing
- Decide policies indexation strategy
- Marketplace presence audit (Chrono24, Bezel, WatchProSite)
Expected total: +25–50 % organic sessions within 6 months if all critical + high items complete; +40–80 % AI Overview citation rate within 4–8 weeks of bespoke llms.txt + LocalBusiness deploy.