Tulster×Legacy Creative seal
Reporting period: May 21 – July 21, 2026 · Issued July 21, 2026

SEO Program & Site Performance Report

What we worked on over the last 60 days, how organic search is performing against last year, and the findings in the data that need your attention.

Prepared for Noah Ross (Director of Marketing) & Richard Hobbs (Owner) · Prepared by Jason Garland, Legacy Creative

The 30-second read

Organic search is now Tulster's largest traffic channel and the one carrying growth: revenue is up 10.4% year over year on 11.6% fewer sessions, because organic conversions grew 38% and average order value rose 7%. The post-relaunch technical recovery is real and measurable — but the aggregate numbers are hiding two problems we've flagged in Priority Findings: traffic composition has shifted away from core money pages, and several GA4 tracking events broke in the relaunch.

Site Revenue (30d)
$161.3K
▲ 10.4% vs last year
$146.1K same period 2025
Organic Sessions
34,259
▲ 11.4% vs last year
Largest single channel · 36% of traffic
Organic Conversions
600
▲ 38.2% vs last year
434 same period 2025
Average Order Value
$103.16
▲ 7.0% vs last year
1,564 transactions (+3.2%)
Daily site revenue — this year vs. same 30 days last year
Jun 21 – Jul 20, 2026 vs. Jun 21 – Jul 20, 2025 · GA4
20262025

The step-down after July 6 looks alarming in isolation — it's seasonal. The identical pattern appears in 2025 (post–July 4th slowdown), and 2026 is still ahead of last year in both halves of the window: +11.2% before July 7, +9.0% after.

Where the program stands

The March site relaunch broke five technical fundamentals — schema, page titles, page weight, tag management, and resource hints — and organic visibility paid for it through April and May. Over the last 60 days we diagnosed each regression at the code level, delivered engineering-ready fixes, and stood up real-user performance monitoring. Layout stability (CLS) has improved 83% in a month, Google began formally validating the Core Web Vitals fixes on July 8, and site health is holding at 93/100 while we work.

The channel is validated two ways: Search Console and GA4 agree with each other, Google clicks are ahead of last year despite the relaunch, and organic traffic from beyond Google — Bing, DuckDuckGo, AI search assistants — roughly 2.4×'d year over year. What's still in motion: recapturing the Q1 click baseline as the dev fixes land, and the ranking wobble of July 7–14 while Google re-evaluates the site. The detailed picture — including exactly which pages we're prioritizing for recovery — is in the tabs above.

Priority findings

These are the things in the data an executive should actually care about — not just the numbers, but what they mean for revenue and what we recommend doing. Ordered by severity.

Critical · Revenue at risk

Core category pages lost ~5,000 monthly clicks — and the aggregate numbers hide it

Total organic clicks look flat year over year (+2% per day). Underneath, the composition changed drastically: Tulster's highest-intent commercial pages collapsed and were backfilled by blog and new-product traffic that converts at a much lower rate.

Glock 43/43X category: 1,275 → 122 clicks (−90%), avg. position 7.7 → 19.5 · Glock 48: 631 → 119 (−81%) · Ruger RXM: 743 → 134 (−82%) · Glock hub: 903 → 249 (−72%) · Sig P365 AXG Legion: 519 → 117 (−77%) · H&K CC9: 578 → fell out of the top 50 entirely · Canik MC9 Prime: 1,202 → 577 (−52%). Keyword side: "glock 48 holster" 235 → 29 clicks, "ruger rxm holster" 287 → 27, "glock holster" 211 → 33.

Why it matters: these are bread-and-butter model pages for your best-selling fits. At the organic conversion rate (~1.75%) and current AOV ($103), ~5,000 lost commercial clicks represents roughly $6–9K/month in organic revenue at risk — masked in reporting because new content gains offset the total.

Recommended action: this is where the already-specced fixes must land first. These are ranking collapses on stable URLs — we verified against pre-launch February data that the current URL structure predates the relaunch and was holding positions 2.8–7.2 before it (e.g., Glock 43/43X held position 7.2 in February on the same URL where it now sits at 19.5). That points squarely at the relaunch signal losses — schema, titles, page weight — not redirects. Prioritize schema restoration, title-template correction, and performance work on this exact URL list, plus the Streamlight accessory pages (the TLR-6 Glock 42/43/43X page fell from 43 to 13 clicks/day), and resolve the duplicate Sig AXG Legion pages (old vs. “new-version”) with a canonical decision. We will report these ten pages weekly until they recover.

Critical · Broken tracking

The relaunch silently broke GA4 ecommerce event tracking — funnel data is currently unusable

Comparing event counts to the same 30 days last year exposes four regressions that are invisible in topline reporting:

Add-to-cart events: 7,000 last year → 4 this year (effectively dead) · Promotion views: 45,957 → 0 · Pageviews per session: 2.49 → 1.46 (−41%) while session duration doubled — the signature of route changes no longer firing page_view in a single-page app · Checkout events: 2,379 → 5,657 (+138%) against flat transactions — begin_checkout appears to be double/triple-firing.

Why it matters: you cannot see where buyers abandon (cart → checkout → purchase is unmeasurable), page-level content analysis undercounts by ~40%, and if ad platforms use these events for optimization, Google/Meta are learning from corrupted signals. Purchase and revenue tracking itself is intact — the topline numbers in this report are reliable.

Recommended action: extend the GTM restoration work (already in the dev queue from our May diagnosis) to a full ecommerce dataLayer audit: restore add_to_cart and view_promotion, dedupe begin_checkout, and fire page_view on route changes. We can deliver the exact GTM spec the same way we delivered the CLS tracking spec in June.

High

Google shows the site 44% more often — but clicks through 29% less

Daily impressions are up 44% year over year (35.4K/day vs. 24.5K), yet CTR fell from 3.90% to 2.76%. Tulster is qualifying for far more searches (1,029 new ranking keywords in June alone) but winning proportionally fewer of them.

Part of this is healthy — new keywords enter at lower positions. But part is self-inflicted: the relaunch's malformed, duplicated page titles are still causing Google to rewrite listings in search results, and 325 over-length titles remain (down from 421). CTR on the Glock hub page is 0.65% on 38K impressions — a well-titled category page at that position should do 2–3×.

Recommended action: ship the title-template fix (already specced for dev) and finish the over-length title cleanup. This is the cheapest traffic recovery available — same rankings, more clicks. Worth roughly 8–10K incremental clicks/year if CTR recovers even half the gap.

High · Watch closely

Average ranking position is slipping again in July

After improving through June, average position degraded from ~7.4 to a peak of 9.6 during the week of July 12–14 — the worst reading since the post-relaunch trough in May. This coincides with Google's ongoing Core Web Vitals re-validation (started July 8), and re-evaluation volatility is expected and normal. But the same week also shows impressions rising while position falls, meaning Google is testing the site against more queries at lower slots.

Recommended action: no panic moves — algorithmic whiplash during validation is documented behavior. We monitor positions weekly (Semrush) and will escalate if position hasn't re-stabilized under 8 by mid-August. The best insurance is landing the remaining dev fixes (schema, titles) while Google is actively re-crawling.

Medium · Outside SEO, worth the money

Meta Ads traffic barely converts — 12,000 sessions, 39 conversions

In the last 30 days, Meta Ads drove 12,012 sessions that produced 39 conversions (0.32%). Google Ads drove a similar 12,914 sessions and produced 352 conversions (2.73%) — 8.5× the rate. Meta sessions also show the weakest engagement on the site (2:18 avg. duration vs. 5:13 for Google Ads).

Recommended action: this report doesn't have Meta spend data, so we can't compute ROAS — but the on-site behavior alone justifies an audit of Meta audience targeting and landing-page match. Note the broken add-to-cart tracking (finding #2) may also be starving Meta's optimization algorithm of signals; fixing tracking may partially fix this too. Happy to run this down with whoever manages the Meta account.

Positive signal

The revenue engine is getting more efficient, not just bigger

Revenue grew 10.4% on 3.2% more transactions and 11.6% fewer sessions — meaning each visit is worth more (+25% revenue per session) and each order is bigger (+7% AOV). Organic's conversion growth (+38%) against modest session growth (+11%) says the SEO program is pulling in better-qualified buyers, not just more visitors. The July revenue step-down that looks concerning on the daily chart is seasonal: 2025 shows the identical post–July 4th pattern, and 2026 is ahead of last year in both halves of the window.

SEO performance — last 30 days vs. same period last year

June 21 – July 20, 2026 vs. June 21 – July 20, 2025. Traffic and conversion data from GA4; search visibility from Google Search Console; rankings from Semrush/Ahrefs.

Organic search channel (GA4)

Organic Sessions
34,259
▲ 11.4%
30,745 in 2025
Organic Users
25,163
▲ 15.7%
21,750 in 2025
New Users (organic)
22,655
▲ 20.6%
18,791 in 2025
Organic Conversions
600
▲ 38.2%
434 in 2025
Engagement Rate
63.7%
▲ 3.6 pts
60.1% in 2025

Organic search was the site's largest traffic channel this period — and it grew while total site traffic declined ~12%, offsetting softness in paid and direct.

Google visibility (Search Console)

Clicks / day
976
▲ 2.0%
956/day in 2025
Impressions / day
35.4K
▲ 44.1%
24.5K/day in 2025
Click-through rate
2.76%
▼ from 3.90%
See Priority Finding #3
Avg. position
8.2
▲ from 10.8
Better YoY; worse than Mar (5.9)

Cross-validation: Search Console vs. GA4 — the numbers agree, and the gap between them is good news

We validate every report by reconciling Google's click data against GA4's session data. They line up within expected bounds — GA4 organic sessions always run above GSC clicks, because Search Console only measures Google. The size of that gap is Tulster's non-Google organic traffic — Bing, DuckDuckGo, and increasingly AI search assistants — and it's the fastest-growing part of the channel:

Organic source check2025 (per day)2026 (per day)Change
Google clicks (Search Console)956976+2.0%
All organic sessions (GA4)1,0251,142+11.4%
Non-Google organic (the gap)~69~166~2.4×

Read together: Google held its ground through a full site relaunch — a period where most sites lose double digits — while organic demand from beyond Google roughly two-and-a-half-x'd. The SEO program is building visibility that isn't dependent on a single search engine, exactly where search is heading in the AI era.

Google clicks per day — 2026 to date
7-day rolling average · Google Search Console · Jan 1 – Jul 19, 2026

The relaunch interrupted a strong Q1 (≈1,550 clicks/day). The important signal: the decline is over — clicks have held a stable floor since May, stayed ahead of last year, and Google's Core Web Vitals re-validation (July 8) is the gateway to recapturing the Q1 baseline as the dev fixes land.

Average ranking position — 2026 to date
7-day rolling average · lower is better · axis inverted so up = better

Positions degraded from ~5.9 (March) to ~8 after the relaunch, recovered slightly in June, then dipped again during Google's Core Web Vitals re-validation the week of July 7–14. We're monitoring weekly.

Where clicks moved — top gaining and losing pages, year over year

Clicks, Jun 21 – Jul 20, 2026 vs. same window 2025, from each year's top-50 pages (renamed URLs matched across the relaunch's structure change). The pattern: new-product and blog content gained; legacy core category pages lost. Detail and dollar impact in Priority Findings.

Keyword movers worth knowing

Keyword2025 clicks2026 clicksChangeRead
tulster / tulster holster(s) (brand)3,9732,809−29%Brand demand softened; watch alongside paid spend
bodyguard 2.0 holster (+ carry comp)144163+13%New-product content capturing launch demand
canik prime radian / mc9 prime terms293309+5%Holding well through the relaunch
9mm hollow point terms (blog)0237newBlog content ranking; informational intent
glock 48 holster23529−88%Core category loss — priority recovery target
ruger rxm holster28727−91%Core category loss — priority recovery target
glock holster / glock 19 / glock 43x545124−77%Core category loss — priority recovery target
taurus 605 / 856 holster175197+13%Rath series pages gaining

June ranking & authority signals

MeasureResultSource
New keyword rankings (June)1,029 new keywordsAhrefs
Backlinks (June)57 new / 19 lostAhrefs
Layout stability (CLS)Improved 83% over the past monthSpeedCurve
Core Web Vitals fixesGoogle validation in progress (began Jul 8)Search Console
Site health score93/100, holding through fixesAhrefs Site Audit

Site & revenue analytics — beyond SEO

Sitewide GA4 performance for June 21 – July 20, 2026 vs. the same window in 2025, across all channels.

Total Revenue
$161.3K
▲ 10.4%
$146.1K in 2025
Sessions
95,618
▼ 11.6%
108,219 in 2025
Revenue / Session
$1.69
▲ 25%
$1.35 in 2025
Transactions
1,564
▲ 3.2%
1,515 in 2025
First-time Purchasers
1,461
▲ 2.5%
93% of all purchasers

The shape of the business right now

Fewer people are visiting, but the ones who do are buying more, more often. That's the profile of a brand whose demand quality is improving — organic search (up 38% in conversions) and Google Ads are pulling qualified buyers while lower-intent volume fades. AOV rising 7% alongside says merchandising and pricing are working with the traffic, not against it.

One caution: 93% of purchasers this period were first-time buyers. That's typical for holsters (long replacement cycle), but it means revenue depends on a continuous supply of new demand — which is exactly why the category-page traffic losses in Priority Findings matter more than the flat topline suggests.

Channel contribution (30 days)

ChannelSessionsConversionsConv. rateEngagementAvg. duration
Organic, direct & other unpaid71,8441,1771.64%53.9%3:26
Google Ads12,9143522.73%74.3%5:13
Meta Ads12,012390.32%59.9%2:18
Other paid154042.2%2:45

Channel grouping as reported by AgencyAnalytics (paid platforms split out; organic/direct/referral consolidated). The Meta Ads conversion gap is Priority Finding #5. GA4 revenue-by-channel attribution is available on request.

Tracking health scorecard

Signal2025 (30d)2026 (30d)Status
Purchases / revenue1,515 · $146.1K1,564 · $161.3K✓ Healthy
Add-to-cart events7,0004✗ Broken
Promotion views45,9570✗ Broken
Checkout events2,3795,657⚠ Over-firing
Pageviews / session2.491.46⚠ Undercounting

Full diagnosis and fix plan in Priority Finding #2. Revenue and purchase tracking are intact — every dollar figure in this report is reliable.

SEO work completed — last 60 days

May 21 – July 21, 2026. The period centered on one objective: recovering the organic visibility lost after the late-March site relaunch — diagnose exactly what broke, deliver engineering-ready fixes, and measure the recovery.

Late May

Diagnosis: code-level comparison of pre- vs. post-relaunch builds Delivered

Compared the February (pre-launch) codebase against the April build plus a live scan on May 22. Confirmed five technical regressions, each a direct ranking-signal loss — detailed in the table below.

May 27

Full SEO site audit Delivered

Page-by-page technical audit (1,919 pages) with prioritized critical issues: missing meta descriptions on blog posts, duplicate meta descriptions on interior pages, multiple H1s per page, no Open Graph/Twitter Card tags sitewide, and an About page invisible to crawlers.

Early June

SEO Performance Review + Developer Fix Specifications Delivered

A plain-language report explaining what happened and why rankings declined, paired with engineering-ready documentation for all five regressions — exact schema markup (BreadcrumbList, ItemList), title-template fixes, and implementation notes for the dev team.

June 17

CLS field-tracking specification Delivered

A GTM → GA4 implementation that captures real-user layout shift and identifies the exact page element causing it, so fixes target the true culprit rather than lab guesses.

June

Architecture recommendation: scope the Makeswift provider Delivered

Traced the 154% page-weight increase (553 KB → 1,407 KB) to the Makeswift page builder bundling component code into every page. Rather than a costly platform migration, specified scoping the provider to only managed routes. Larger architectural changes deferred until performance data requires them.

June 28

Monthly PDF performance report distributed Delivered

Semrush-generated performance reporting to the Tulster team; Google Business Profile June performance also reviewed.

July 8 →

Google Core Web Vitals validation underway In progress

Google began formally validating the CWV fixes in Search Console. CLS improved 83% over the past month (SpeedCurve real-user data). Position volatility during validation is expected; monitoring weekly.

Ongoing weekly

Monitoring cadence Standing

Weekly automated site audits (Ahrefs) routed into the dev fix queue · weekly US keyword position tracking (Semrush) · real-user performance monitoring in SpeedCurve · weekly Wednesday 1:00 PM CT strategy meeting with Noah and team, plus same-week turnaround on dev questions and content approvals.

What the relaunch broke — the five regressions

IssueSeverityImpact
Structured data (schema) removed sitewideCriticalLost rich-results eligibility and entity signals
Brand name duplicated in every page titleHighMalformed titles; Google rewriting SERP listings
Page weight up 154% (553 KB → 1,407 KB)HighCore Web Vitals degradation, especially mobile
Google Tag Manager absent from page sourceHighTracking and ad conversion data at risk
Preconnect/resource hints removedMediumSlower resource loading

Technical cleanup — 60-day audit comparison

IssueMay 20Jul 15Change
5XX server-error pages491−98%
4XX pages receiving organic traffic40Cleared
Pages linking to broken pages35~8−77%
404 / 4XX error pages8~1−7 pages
Over-length title tags (indexable)421325−23%
Slow pages231~156−32%
Orphan pages127~121−6 pages

Ahrefs Site Audit crawl comparison, 1,919 pages, site health 92.5→93. The server-error cleanup is the headline: no error pages receive organic traffic anymore, preventing ranking loss from dead URLs.

Content & strategy advanced this period

What happens next

Sequenced by revenue impact, informed by the findings in this report.

1 · Land the dev fixes where the money is

Ship schema restoration, title-template correction, and GTM verification — prioritized on the ten category pages that lost the most clicks (Glock 43/43X, Glock 48, Glock hub, Ruger RXM, Sig P365 family, H&K CC9, Canik MC9 Prime). Include the high-value Streamlight accessory pages and resolve the duplicate Sig AXG Legion pages. These pages get weekly recovery reporting against their February baselines.

2 · Restore full ecommerce tracking

GTM/dataLayer audit to bring back add-to-cart and promotion tracking, dedupe checkout events, and fix SPA pageview counting — so funnel analysis works again and ad platforms optimize on clean signals. Legacy Creative delivers the spec; dev implements; we verify.

3 · Complete Core Web Vitals validation & close on-page gaps

Confirm Google's CWV validation completes in Search Console. Close the remaining audit items: meta descriptions on 637 indexable pages, multiple H1s on 103 pages, and the remaining 325 over-length titles (the CTR recovery lever).

4 · Keep the content engine shipping

Publish the Maryland Glock ban post while the topic is hot, continue the state-page rollout and geometry guides, and move the Glock location pages and ladies-focused carry page through the pipeline.

5 · Monitor the July position dip to resolution

Weekly position tracking through Google's re-evaluation, with an escalation checkpoint in mid-August if average position hasn't re-stabilized. Weekly Wednesday strategy meetings continue as the working cadence.

Questions on anything in this report

jason@legacy-creative.co — or bring it to Wednesday's strategy meeting.