SEO Roadmap Overview

February 2026 · Mad Hudson Watches · 12-month analytics + competitive audit

Where things stand, what's next, what the improvements look like technically, and the measurement infrastructure that tells you whether it's working.

Current Baselines
$52K
Trailing 12-Month Revenue
Feb 2025 – Jan 2026
289
Total Orders
$180 avg order value
$11K
Google Search Revenue
53 orders · primary SEO lever
$28.3K
Unattributed Revenue
179 orders · 62% of total
Growth target The model projects $75K–$85K annual revenue — $25K–$35K in addressable upside through SEO, content, and trust signals.
Active Work Plan

What's done, what's in motion, what's next

What the Improvements Look Like

Before & after for each fix category

Alt Text — Broken Time hero image

Before (empty)
(no alt text)
After
Broken Time watch by Brad Podray with smashed crystal dial on black background — Mad Hudson Watches limited edition
113 chars

Google can now index the image. Appears in Google Image search. Screen readers can describe it.

Page Title — Dogma product page

Before (Shopify default)
Dogma — Mad Hudson
After
Dogma by Bryce Wong — Limited Edition Artist Watch | Mad Hudson Watches
68 chars

Invisible to visitors. This is what appears as the clickable title in Google search results.

Meta Description — CD Watch

Before (Shopify auto-generated)
Buy CD Watch online. Shop limited edition watches at Mad Hudson.
After
CD Watch — a holographic disc dial designed by Atlanta artist Riki Prosper. Changes color with every turn of the wrist. Limited to 100. Free shipping.
158 chars

Sensory hook, scarcity signal, CTA. This is the preview text under the title in search results.

H1 Hierarchy Fix — site-wide

The H1 tag is currently on the animated logo GIF. Google thinks every page's primary heading is an image file.

Before (current Liquid)
<!-- Logo image incorrectly wrapped in H1 --> <h1 class="site-header__logo"> <a href="/"> <img src="mad-hudson-logo.gif" alt="Mad Hudson"> </a> </h1>
After (corrected)
<!-- Logo as div, semantic H1 for search engines --> <div class="site-header__logo"> <a href="/"> <img src="mad-hudson-logo.gif" alt="Mad Hudson Watches"> </a> </div> <h1 class="visually-hidden">Mad Hudson Watches</h1>

Visually-hidden H1 is invisible to visitors but readable by crawlers. Zero visual change, correct heading hierarchy.

Schema Markup — Product + Artist (future phase)

JSON-LD block that tells search engines exactly what each product is. Enables rich results (price, availability, edition size) in search listings. Zero competitors in tier have artist/creator schema.

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Product", "name": "{{ product.title }}", "brand": { "@type": "Brand", "name": "Mad Hudson Watches" }, "creator": { "@type": "Person", "name": "{{ product.metafields.custom.artist_name }}" }, "offers": { "@type": "Offer", "price": "{{ product.price | money_without_currency }}", "priceCurrency": "USD", "availability": "https://schema.org/InStock", "shippingDetails": { "shippingRate": { "value": "0" } } }, "isRelatedTo": { "@type": "VisualArtwork", "name": "Limited Edition of 100" } } </script>

One template in the Liquid product layout. Shopify variables auto-fill per product. First-mover advantage in the artist-collab watch category.

Measurement Architecture

What Shopify shows you vs. what you actually need

Shopify Analytics gives you revenue, orders, and session counts by channel. That's useful for bookkeeping but not for understanding whether SEO changes are working.

The measurement gap

Question You Need Answered Shopify Gives You What Actually Answers It Source
Are more people seeing MH in search results? Nothing Impressions by query — how many times MH appeared in Google results, for which searches GSC
Are the new title tags / meta descriptions getting more clicks? Nothing CTR by page — click-through rate on each product page, before vs. after changes GSC
Is SEO pulling in new audiences or just serving existing fans? Nothing Branded vs. non-branded query split — "mad hudson" (awareness) vs. "artist watch" (discovery) GSC
Which product pages are strongest in search? Nothing Clicks + impressions by URL — page-level search performance GSC
Is the site fast enough on mobile? Nothing Core Web Vitals — LCP, INP, CLS (Google's page experience signals) GSC + Lighthouse
Where does the $28.3K unattributed revenue come from? "Direct" bucket UTM-tagged traffic — Instagram link-in-bio, email, collabs all get attributed UTM setup
Is the schema markup valid and generating rich results? Nothing Rich Results status + enhancements report GSC + Schema test
How much is each search impression worth in revenue? Revenue by channel (aggregate) Revenue per impression — (organic revenue ÷ total impressions) tracked monthly Derived
What's the actual conversion rate without bot noise? 0.06% (inflated by bots) Bot-filtered CVR — 0.22% baseline average, 0.85% on best days Shopify filter

Data source architecture

Three free tools, layered. No third-party SEO subscriptions needed.

Google Search Console

Queries, impressions, clicks, CTR, position, Core Web Vitals, index coverage, rich results

Shopify Analytics

Revenue by channel, orders, sessions, product sales, conversion rate

Derived Metrics

Revenue per impression, branded/non-branded split, page-level organic value, month-over-month deltas

Setup: Google Search Console GSC is free and takes 15 minutes. Go to search.google.com/search-console, add the property (madhudsonwatches.com), verify via Shopify DNS or HTML tag. Data starts populating within 48–72 hours. Historical data going back ~16 months is available immediately after verification.
Monitoring Dashboard

What the monthly check-in looks like

Primary KPIs and baselines. Empty values populate once GSC is connected (48–72 hours after setup).

Metric Baseline Source Notes
Organic Search Revenue $917/mo Shopify $11K annual ÷ 12. Sustained lift above this line = SEO is paying off.
Search Impressions GSC Leading indicator. Lifts precede revenue lifts by 2–4 weeks.
Click-Through Rate GSC Title tag and meta description changes directly improve this.
Bot-Filtered Conversion Rate 0.22% Shopify (filtered) Range: 0.12%–0.85%. Compare same month year-over-year.

Derived metrics — what Shopify can't tell you

These require cross-referencing GSC + Shopify data. Manual calculation monthly, ~10 minutes.

Metric Source What It Measures
Revenue per Impression Derived Organic search revenue ÷ total impressions. Measures quality of search traffic, not just volume.
Non-Branded Queries GSC Count of queries not containing "mad hudson." Growth = SEO pulling in new audiences.
Avg. Search Position GSC Average across all queries. Position 1–10 = page 1. Moves slowly but compounds.

Page-level search performance

GSC breaks down impressions, clicks, CTR, and average position per URL. Populates after GSC connection. Snapshot monthly to build trend data.

Page Impressions Clicks CTR Avg Position
/products/broken-time
/products/cd-watch
/products/dogma
/products/eddie-watch
/products/marshall-watch
/products/miami-watch

Core Web Vitals

Google's page experience signals and ranking factors. Quick check: run any product page URL through pagespeed.web.dev.

Metric What It Measures Good Threshold MH Status
LCP (Largest Contentful Paint) How fast the main content loads ≤ 2.5s Check after GSC setup
INP (Interaction to Next Paint) How fast the page responds to interaction ≤ 200ms Check after GSC setup
CLS (Cumulative Layout Shift) How much content moves while loading ≤ 0.1 Check after GSC setup

Revenue by channel — baseline

Re-export monthly. The unattributed bucket will shrink as UTM parameters get added to Instagram, email, and collaborator links.

Channel Revenue Orders CVR Share
Direct / Unattributed $28,300 179 62%
Google Search $11,000 53 ~0.3% 21%
Instagram $3,500 23 0.038% 7%
Shopify Email $2,900 14 6%
Other (incl. 1 ChatGPT referral @ $188) $6,300 20 4%

UTM parameter architecture

Every inbound link to the site should carry UTM parameters so Shopify can attribute the visit to the right channel.

# Instagram link-in-bio madhudsonwatches.com?utm_source=instagram&utm_medium=social&utm_campaign=linkinbio # Shopify email campaign madhudsonwatches.com/products/broken-time?utm_source=shopify_email&utm_medium=email&utm_campaign=feb2026 # Artist collab cross-promo madhudsonwatches.com/products/cd-watch?utm_source=riki_prosper&utm_medium=social&utm_campaign=artist_collab # QR code on packaging madhudsonwatches.com?utm_source=qr_code&utm_medium=print&utm_campaign=packaging

Convention: utm_source = who. utm_medium = how. utm_campaign = why. Keep lowercase, underscores, no spaces.

Search query clusters to track

Cluster Example Queries What Growth Means
Branded "mad hudson watches", "mad hudson broken time" Awareness growing (social, word-of-mouth)
Non-branded "artist collaboration watch", "limited edition art watch" SEO pulling in new audiences
Artist-specific "bryce wong watch", "riki prosper cd watch" Artist bios and schema working
AEO signals ChatGPT/Claude referrals in Shopify analytics AI search surfacing MH (1 confirmed order)

Schema validation tools

Tool What It Checks When to Run
Google Rich Results Test Validates JSON-LD, shows which rich result types are eligible, flags errors After adding schema template, then spot-check quarterly
GSC Enhancements Report Shows all structured data detected across the site, errors, and warnings at scale Ongoing — check monthly after schema is live
Measurement Cadence

When to check what

Weekly · 5 min — Google Search Console
Monthly · 30 min — Shopify + GSC cross-reference
Quarterly · 1 hr — Strategic review
What "Working" Looks Like

When changes become visible in the data

Weeks 1–2

No visible change

Google is recrawling. Changes submitted but not yet reflected. This is normal and expected.

Weeks 3–4

Impressions start ticking up

GSC shows MH pages appearing in more results. New queries may surface. Clicks may lag behind impressions initially.

Months 2–3

CTR improves

Better title tags and meta descriptions translate to higher click rates on the same impression volume. Schema markup amplifies this with rich snippets.

Months 3–6

Revenue signal

Organic search revenue grows above the $917/mo baseline. Artist-specific queries appear. Revenue per impression improves. The growth model projects $25K–$35K addressable upside.

Competitive Context

The field is not trying hard

Brand Structured Data Product Descriptions Artist Schema Rich Snippets
Mr. Jones Watches Basic (Shopify default) Minimal None None
Unicorn Watches Basic (Shopify default) Inconsistent, broken pages None None
Mad Hudson (after fixes) Product + Creator + Offer Concise visible + rich invisible First in category Price, availability, edition

The bar is low. Every fix widens the gap over competitors who are not investing in this layer at all.

Mad Hudson SEO — Roadmap Overview · February 2026 · Based on in-person session, 12-month analytics, and 11-brand competitive audit

← Back