What it does

VIKINGTREAT is a UK-based self-care store built around four collections: skincare, hair care, foot care and beauty essentials. The site does three jobs:

Helps shoppers find the right product fast, with collections organised by need rather than by brand jargon Backs every product with verified customer reviews so buying decisions feel low risk Makes gifting simple, with bundles and price points that work for treating yourself or someone else

How I built it

Shopify as the storefront, with collections restructured around how people actually search Google Search Console and GA4 as the source of truth for what shoppers type before they land Shopify Admin GraphQL API for bulk title, heading and metadata updates across the catalogue instead of editing page by page

Judge.me for review capture and display Microsoft Clarity for session recordings and friction spotting Pinterest native RSS auto-publish for hands-off product distribution, chosen over paid apps and third-party automation

Challenges I ran into

  • A site-wide heading problem: no real H2 tags anywhere, because markdown was rendering as literal text, and a homepage H1 that said nothing but the brand name
  • Around 116k monthly impressions were landing on pages whose headings contained none of the vocabulary people were actually searching
  • Merging overlapping collections without losing equity, which meant getting 301 redirects right the first time Core Web Vitals: LCP was being dragged down by third-party app blocks, so speed had to be traded off against review and analytics functionality
  • Missing schema markup meant the homepage was invisible to rich results

Accomplishments that I'm proud of

  • Rebuilt the entire heading and title structure against real search data rather than guesswork
  • Ran the fix as a controlled bulk operation via API, including a rollback and a clean re-run of the subset that worked
  • Consolidated collections cleanly, with redirects holding
  • Built a distribution channel that runs itself, at zero monthly cost
  • Kept the brand voice intact through all of it. The store still reads like a self-care brand, not an SEO exercise

What I learned

  • Invisible technical debt costs more than missing content. Broken markdown quietly erased every H2 on the site
  • Impressions without relevant headings are just wasted reach
  • Bulk API changes need a revert plan before the first mutation, not after
  • Every app you install is a performance decision, not just a feature decision
  • The simplest automation is usually already native to the platform, and worth checking before paying for a tool

Built With

Share this project:

Updates