CONFIDENTIAL REPORT · MARCH 2026

West Story Website Performance
& Technical Audit

https://west-story.com

Prepared by Zakaria Fadl Senior E-Commerce Specialist
Report Date 26 March 2026 Lighthouse 13.0.1
Platform Shopify CDN: Cloudflare
Mobile
Performance
Desktop
Performance
Desktop
Accessibility
Mobile
SEO

This report presents a comprehensive analysis of west-story.com, a Saudi-based e-commerce store selling premium fragrance diffusers and home scenting products. The audit encompasses PageSpeed performance metrics, Core Web Vitals, traffic intelligence from SimilarWeb, technology stack profiling, competitive positioning, and a structured action roadmap for performance and conversion improvement.

Scroll to explore
02

Executive Summary

Key findings for decision-makers

West Story (west-story.com) is a niche Saudi Arabian e-commerce brand selling premium fragrance diffusers and home scenting solutions, having migrated to Shopify from a Zid platform in late 2025. The domain has been active since December 2013, and the site is currently hosted on Shopify's infrastructure behind Cloudflare's CDN.

The audit reveals a significant performance gap between mobile and desktop experiences, which is critically misaligned with the site's own traffic composition: 73.73% of all visits originate from mobile devices. While the desktop experience scores acceptably, mobile performance sits at a score of 50/100 — borderline failing — with a Largest Contentful Paint of 23.5 seconds under simulated mobile conditions.

Technical root causes include an excessive number of render-blocking CSS and JavaScript files, nearly 1 MB of unused JavaScript, large unoptimised images, and significant third-party script overhead from Google Tag Manager, Facebook Pixel, and multiple analytics tags executing at page load.

Critical Risk

Mobile LCP of 23.5s is severely outside Google's "Good" threshold of 2.5s. This directly impacts SEO rankings and user abandonment.

Key Opportunity

Image optimisation alone could save ~399 KiB on mobile and ~561 KiB on desktop, delivering the single largest performance gain.

Traffic Insight

100% of traffic originates from Saudi Arabia. Organic search accounts for only 44.15%, with 33.14% direct — indicating strong brand awareness but limited discovery reach.

Positive Signal

Bounce rate is 31.01% — well below e-commerce averages — and visitors browse ~2.07 pages per session, signalling genuine engagement.

Top 5 Priority Findings

  1. Mobile Performance Score of 50/100 — a failing grade that affects organic search ranking and conversion rates for the majority of visitors.
  2. Mobile LCP: 23.5 seconds — the primary hero image loads after a 1.91s element render delay and insufficient image optimisation.
  3. 955 KiB of unused JavaScript on mobile — primarily from Google Tag Manager (1,174 KiB transferred, 624 KiB unused) and Shopify hosting scripts.
  4. Total network payload of 4,817 KiB (mobile) / 4,968 KiB (desktop) — far exceeding the recommended budget of ~1,600 KiB for a mobile-first store.
  5. Multiple render-blocking resources — 14+ CSS files and Swiper JS bundle (35.5 KiB) blocking initial paint, with an estimated 780ms savings available on mobile.
03

Website Overview

Domain, technology & market profile

Domain Intelligence

Domainwest-story.com
Registered29 December 2013
Expires29 December 2026
RegistrarGoDaddy.com, LLC
Name Serversjames.ns.cloudflare.com
laura.ns.cloudflare.com
DNSSECUnsigned
SSLLet's Encrypt (active)
PrivacyDomains By Proxy, LLC

Technology Stack

Shopify E-commerce platform (migrated from Zid, Sep 2025)
Cloudflare CDN DNS, CDN & DDoS protection
Google Analytics 4 + Google Tag Manager
Facebook Pixel Conversion tracking & remarketing
jQuery 3.3.1 + Preact 10, core-js polyfills
Mailgun + Office 365 Transactional & business email
Payment: Visa · MC · Amex · Apple Pay Multiple gateways, SAR currency

Business Profile

CompanyWest Story
MarketSaudi Arabia (Primary)
CategoryHome Fragrance / Diffusers
Products Listed51+ SKUs
Tech Spend$894+ / month
SocialFacebook · Instagram · TikTok · Twitter
LanguagesArabic (primary) · English (hreflang)
Shipping200+ countries; KSA local pickup

Market Ranking

Global Rank #8,806,435
Saudi Arabia Rank #72,136
CrUX Dataset Top 5 Million
CommonCrawl Top 50 Million
Page Rank 40,971,306

The site is included in Google's CrUX Top 5M dataset, indicating sufficient real-world traffic for Core Web Vitals field data collection. Being in this dataset means Google has enough data to use real user metrics for ranking signals.

04

Performance Score Summary

Google Lighthouse audit results · 26 March 2026

Performance

Needs Improvement

The mobile performance score sits at 50/100 — the lowest of all categories and a direct indicator of poor user experience on smartphones. With 73.73% of traffic mobile, this is the highest-priority item in the entire audit. The score is primarily dragged down by an extremely high LCP, unused JavaScript, and render-blocking resources.

Accessibility

Moderate

Mobile accessibility scores 89/100. Key failures include buttons without accessible names (multiple "quick add" product buttons), dialog elements missing ARIA labels, and touch targets with insufficient size or spacing — impacting usability for all users, not just those with disabilities.

Best Practices

Moderate

Best Practices at 77/100 on mobile. Issues include use of deprecated APIs (AttributionReporting), browser console errors (ReferenceError: gtag is not defined), and missing Content Security Policy headers. The CSP gap exposes the site to XSS attack vectors.

SEO

Good

Mobile SEO scores 92/100 — the strongest category. The site has valid hreflang tags, a canonical URL, robots.txt, meta descriptions, and descriptive link text. The one failure is a non-crawlable link using href="javascript:void(0)" on a "See all reviews" anchor, which prevents crawlers from following it.

Performance

Needs Improvement

Desktop performance at 69/100 is better than mobile but still falls in the "Needs Improvement" band. The Speed Index of 4.5 seconds and Total Blocking Time of 400ms are the primary drags. Unused JavaScript (959 KiB savings), render-blocking resources (80ms savings), and an enormous network payload of 4,968 KiB are the main causes.

Accessibility

Moderate

Desktop accessibility at 83/100 — slightly lower than mobile. Issues include buttons without accessible names, images missing alt attributes, dialog elements without accessible names, and heading elements not in sequentially-descending order. These affect both accessibility compliance and SEO.

Best Practices

Moderate

Desktop Best Practices mirrors mobile at 77/100. Deprecated APIs, console errors, and missing security headers (CSP, HSTS strengthening, COOP) apply across both form factors. JavaScript libraries including jQuery 3.3.1 are detected — an older version with known CVEs.

SEO

Good

Desktop SEO at 85/100 — slightly below mobile. The same non-crawlable "javascript:void(0)" link failure applies. Additionally, some image elements lack alt attributes on desktop, which impacts both accessibility and image search indexing potential.

Mobile vs. Desktop — Score Comparison

Performance
50
69
Accessibility
89
83
Best Practices
77
77
SEO
92
85
📱 Mobile 🖥 Desktop
05

Core Web Vitals & Speed Metrics

Measured via Lighthouse 13.0.1 · 26 March 2026

Core Web Vitals are Google's standardised performance metrics used as ranking signals. "Good" thresholds are: LCP ≤ 2.5s · FID/TBT ≤ 100ms · CLS ≤ 0.1. The table below shows both mobile (simulated Moto G Power, Slow 4G) and desktop (emulated desktop, custom throttling) results.

Metric Mobile Desktop Good Threshold Mobile Status
LCP
Largest Contentful Paint
23.5 s 1.3 s ≤ 2.5 s Critical
FCP
First Contentful Paint
4.7 s 0.7 s ≤ 1.8 s Critical
TBT
Total Blocking Time
340 ms 400 ms ≤ 200 ms Elevated
CLS
Cumulative Layout Shift
0 0.036 ≤ 0.1 Good
Speed Index
Visual completeness
9.8 s 4.5 s ≤ 3.4 s Critical

LCP Breakdown — Mobile (23.5s total)

The LCP element is the hero Ramadan campaign image in the homepage slideshow. The breakdown of the 23.5s shows where time is wasted:

Time to First Byte (TTFB)
0 ms
Resource Load Delay
450 ms
Resource Load Duration
210 ms
Element Render Delay
1,910 ms

Critical insight: The Element Render Delay of 1.91s dominates — this means JavaScript is executing and blocking the browser from painting the LCP image even after it has been downloaded. The Swiper slider bundle (swiper-bundle.min.js, 35.5 KiB, 1,890ms duration) is identified as a primary culprit in the forced reflow analysis.

06

Traffic & Engagement Insights

SimilarWeb data · February 2026

0 Monthly Visits ▼ 19.26% MoM
00:42 Avg. Visit Duration — Low engagement
2.07 Pages / Visit ✓ Above baseline
31.01% Bounce Rate ✓ Below average

Device Distribution

📱 Mobile Web 73.73%
🖥 Desktop 26.27%

The stark mobile dominance makes the mobile performance score of 50/100 a business-critical issue. Over 3 in 4 users experience the degraded mobile journey.

Geography

🇸🇦 Saudi Arabia
100%

All traffic originates from Saudi Arabia — a highly focused market. This suggests the store has not yet penetrated GCC neighbours (UAE, Kuwait, Bahrain) despite shipping to 200+ countries.

Traffic Channels

Organic Search
44.15%
Direct
33.14%
Referrals
14.57%
Social
4.82%
Display
1.68%
Paid Search
1.33%

Despite running Google Ads (AW-789 tag detected), paid search drives under 1.5% of traffic. Organic and direct dominate — indicating strong brand recall but a dependency on SEO health.

Outgoing Traffic

Top destinationksa.paymob.com (100%)

All outgoing link traffic flows to the Paymob payment gateway, confirming it as the primary payment processor. No competitor referral traffic detected.

Social Traffic Source

PlatformSocial (100% of social share)
Volume< 1% of total traffic

Despite maintaining Facebook, Instagram, TikTok, and Twitter accounts, social media drives minimal traffic — a significant gap given the brand's product category appeal in the Gulf market.

07

Competitive Landscape

Similar sites identified via SimilarWeb · February 2026

SimilarWeb identified 7 websites with audience overlap with west-story.com. The affinity score indicates the degree of shared audience behaviour and interest. Note that the full-access version was limited; competitor details shown reflect available data.

# Domain Industry Global Rank Monthly Visits (Feb 2026) Affinity Score
west-story.com YOU Home Fragrance #8,806,435 1,478
100%
1 alwalaa-first.com Unknown 99
100%
2 diyalastore.com Unknown #3,557,795 4,701
97%
3 aljazerah-perfume.com Unknown #4,481,637 3,967
96.6%
4 ruajalyasamin.com Unknown 540
88.2%
5 altyab.com Beauty & Cosmetics #1,942,071
85.9%

Strategic Insight

Competitors diyalastore.com (#3.5M global rank) and aljazerah-perfume.com (#4.4M global rank) both generate significantly more monthly traffic than west-story.com despite being in the same niche. West Story's 1,478 monthly visits versus diyalastore's 4,701 represents a 3.2× traffic gap to close. Improving mobile performance directly impacts organic search ranking, which could meaningfully shift this competitive position.

08

Technical Findings

Detailed diagnostic analysis from PageSpeed Insights

HIGH

Unused JavaScript

955 KiB savings (mobile)

What it is: JavaScript files are downloaded and parsed by the browser but never executed during the initial page load. This wastes bandwidth and CPU time.

Why it matters: JavaScript parsing and compilation on mobile consumed 1,629ms of script evaluation time. Every kilobyte of unused code delays the browser's ability to become interactive.

Key offenders:

  • Google Tag Manager scripts: 1,174.8 KiB transferred, 624.8 KiB unused
  • Shopify platform scripts (math.min.js): 195.1 KiB transferred, 143 KiB unused
  • Shopify product-o….js: 133.4 KiB, 110.8 KiB unused
  • Facebook Pixel (fbevents.js): 94.3 KiB, 31.8 KiB unused

Business impact: Directly increases TBT (340ms mobile), delays interactivity, and reduces conversion probability on mobile devices.

HIGH

Render-Blocking Resources

780 ms savings (mobile)

What it is: CSS and JavaScript files loaded in the <head> that force the browser to pause rendering until they are fully downloaded and parsed.

Why it matters: The browser cannot paint any pixels until these resources load — directly extending FCP and LCP beyond acceptable thresholds.

Key offenders (mobile, total 71.6 KiB, 6,140ms):

  • swiper-bundle.min.js: 35.5 KiB, 1,890ms duration
  • base.css: 7.9 KiB, 790ms
  • 14 individual CSS files loaded synchronously
  • Google Fonts CSS (fonts.googleapis.com): 1.3 KiB, 780ms

Business impact: Users on mobile see a blank screen for 4.7 seconds before any content appears — a critical abandonment risk.

HIGH

Image Delivery Issues

399 KiB savings (mobile)

What it is: Product images are served at dimensions larger than their displayed size, and with insufficient compression. Images are the largest content type on the page.

Why it matters: Images are the primary LCP resource. The hero banner image (Ramadan.jpg) is identified as the LCP element. Multiple product card images are served at 750×750 pixels but displayed at only 317×317 pixels — a 5.6× oversize.

Key examples:

  • Main banner: 112.5 KiB, 87.3 KiB savings possible
  • Product card 23.jpg: 102 KiB, 85.6 KiB savings
  • Product card 15_1.jpg: 100.8 KiB, 84.4 KiB savings
  • Product card 17_1.jpg: 77 KiB, 63.2 KiB savings

Business impact: Product images are the primary conversion driver. Poor image quality OR slow image loading both reduce add-to-cart rates.

HIGH

Enormous Network Payload

Total: 4,817 KiB (mobile)

What it is: The total weight of all resources downloaded by the browser to render the page. Google recommends keeping payloads under ~1,600 KiB.

Why it matters: On a mobile connection (especially in areas with variable 4G), a 4.8MB page load is a significant bandwidth cost for users, increasing both load time and data usage. This directly correlates with the 9.8s Speed Index on mobile.

Breakdown:

  • Google Tag Manager: 1,049.1 KiB
  • First-party (Shopify store): 353.9 KiB
  • Shopify hosting (CDN): 331.2 KiB
  • Facebook Social: 138 KiB
  • Images (first party): 487.1 KiB
MEDIUM

Third-Party Script Impact

Main thread: 715 ms (GTM)

What it is: External scripts from analytics, advertising, and tracking platforms that load independently of the store's code and consume main thread time.

Why it matters: Third-party scripts are responsible for 848ms of CPU time on mobile (Google Tag Manager alone: 477ms script evaluation, 338ms script parse). They compete with user-facing code for the main thread.

Third parties detected: Google Tag Manager (8 separate gtag calls), Facebook Pixel, omnisnippet1.com (popups/forms), helixo.co (loyalty program), Secomapp (SEO app), hengam.io (discount), instant.page, Soundest/Omnisend.

Business impact: Each third-party script increases TBT and can degrade ad conversion tracking accuracy due to delayed execution.

MEDIUM

Legacy & Duplicated JavaScript

42 KiB legacy + 5 KiB duplicate

What it is: Legacy JavaScript contains Babel polyfills (transform-classes, transform-regenerator, transform-spread) for browser features natively supported since 2018. Duplicate modules load the same code twice.

Why it matters: Polyfills add unnecessary parse/compile time on modern devices. Duplicate modules waste bandwidth. jQuery 3.3.1 is also an older library version.

Key files: math.min.js (Shopify CDN, 19.1 KiB legacy); flatpickr.js (8.2 KiB); Facebook fbevents.js (12.5 KiB legacy). Duplicate: quick-add.js and product-form.js loaded twice.

MEDIUM

Cache Lifetime Issues

232 KiB could be cached

What it is: Several resources are served without appropriate long-term cache headers, forcing repeat visitors to re-download unchanged assets.

Key offenders (short TTLs): Facebook Social scripts (20-minute cache: 138 KiB), Shopify-hosted bucksSdk.min.js (30-minute cache), latest/accelerated-checkout-backwards-compat.css (5-minute cache), omnisnippet1.com scripts (1-hour cache, 70 KiB).

Business impact: Repeat visitors (brand loyalists, returning customers) experience the same slow load times on every visit — reducing lifetime value and repeat purchase rates.

MEDIUM

Main Thread Work & Long Tasks

3.5s main thread (mobile)

What it is: The browser's main thread handles JavaScript execution, style calculations, layout, and rendering. When it is occupied for long periods, the browser cannot respond to user interactions.

Stats: 15 long tasks found on mobile. Main thread breakdown: Script Evaluation (1,629ms), Script Parsing & Compilation (676ms), Other (622ms), Style & Layout (373ms).

DOM size: 4,954 total elements — excessive DOM depth creates style recalculation costs. Max DOM depth is 18 levels. A select element contains 238 child options (country dropdown).

LOW

Unused CSS

17 KiB savings

What it is: CSS rules downloaded but not applied to any element on the current page.

Key file: Shopify hosting's assets/style-COzgbOh_.css (17.3 KiB, 100% unused on this page).

Recommendation: Audit which Shopify theme CSS files are actually needed per page and use critical CSS inlining for above-the-fold styles.

LOW

Preconnect Overuse

Reduce to max 4 origins

What it is: The page declares more than 4 preconnect hints, including unused ones (e.g., https://shop.app which is not actually requested). This wastes connection resources on mobile.

Recommendation: Limit preconnect to the 4 most critical origins (cdn.shopify.com, fonts.googleapis.com, connect.facebook.net, www.googletagmanager.com) and remove unused hints.

09

Accessibility & UX Observations

Lighthouse accessibility audit findings

Accessibility failures are not just compliance issues — they directly reduce conversion rates. Inaccessible buttons cannot be activated via assistive technologies; missing alt text harms product discovery in Google Image Search; undersized touch targets cause mis-taps on mobile, leading to accidental navigations and cart abandonment.

🔘

Buttons Without Accessible Names

Affects: ~20+ "Quick Add" product buttons

Every product card has a "Quick Add to Cart" button that lacks a human-readable accessible name. Screen readers announce these as "button" with no context — making them completely unusable for visually impaired shoppers using VoiceOver or TalkBack.

Fix: Add aria-label="Add [Product Name] to cart" to each quick-add button, dynamically populated from the product title.
🖼

Images Without Alt Attributes

Affects: Product card images (desktop)

Product images in the collection grid are missing alt attributes. This prevents screen readers from describing product visuals, harms Google Image Search indexing, and reduces the overall accessibility score to 83 on desktop.

Fix: Add descriptive alt text to all product images: alt="[Product Name] - [Brief Description]". In Shopify Liquid, use {{ image.alt | escape }}.
💬

Dialog ARIA Naming Failure

Affects: Email subscription popup modal

The email subscription popup dialog has role="dialog" with an empty aria-label="". Screen reader users cannot determine the purpose of the modal when it opens, causing confusion and potentially trapping keyboard focus invisibly.

Fix: Set aria-labelledby pointing to the modal's heading element, or set a meaningful aria-label such as aria-label="Subscribe to newsletter".
👆

Touch Target Size & Spacing

Affects: Subscribe button & newsletter email input

The newsletter subscription button and email input field fail the minimum touch target size requirement of 48×48 CSS pixels with 8px spacing. Users with motor impairments — and average users on small screens — frequently mis-tap these elements.

Fix: Increase button minimum height to 48px with adequate padding. Ensure email input and submit button have sufficient tap area. This also reduces bounce rate from accidental navigation.
🧭

Non-Sequential Heading Order

Affects: Product collection section heading

A section heading is not in sequentially descending order (e.g., an H2 follows an H1 with no H2 in between). This disrupts both screen reader navigation and SEO parsing of page content hierarchy.

Fix: Audit all heading levels in the Shopify theme. Ensure H1 → H2 → H3 hierarchy is maintained without skipping levels.
🔗

Non-Crawlable JavaScript Links

Affects: "See all reviews" anchor element

A "See all reviews" link uses href="javascript:void(0)", which is not crawlable by search engines and not activatable by keyboard-only users who navigate via the Enter key on links.

Fix: Replace with a proper URL (href="/pages/reviews" or href="#reviews-section") or convert to a <button> element if it triggers JavaScript behaviour.
10

Business Impact Analysis

Translating technical findings into commercial outcomes

Performance is not merely a technical concern — it is a direct driver of revenue. Research by Google indicates that a 1-second delay in mobile page load time can reduce conversions by up to 20%. For West Story, with a Mobile LCP of 23.5 seconds, the impact is compounded across the entire funnel.

📉

Mobile Conversion Suppression

73.73% of visitors arrive on mobile. With a 23.5s LCP and 9.8s Speed Index, a substantial portion of these users abandon before the page fully loads. The current 42-second average visit duration on mobile is diagnostic of shallow engagement driven by load-time frustration rather than product disinterest.

High Impact
🔍

SEO Ranking Suppression

Google uses Core Web Vitals as ranking signals. West Story's mobile LCP (23.5s vs. the 2.5s "Good" threshold) and FCP (4.7s vs. 1.8s) will likely result in ranking penalties in Google's Page Experience system. This particularly impacts the 44.15% organic search traffic channel — the site's largest acquisition source.

High Impact
💸

Paid Advertising Inefficiency

Google Ads (AW-789 tag), Google Analytics 4, Google Tag Manager with 8 script calls, and Facebook Pixel all load at page start. These third-party scripts consume 848ms of CPU time, delaying the user's experience after clicking an ad. Slow landing pages directly increase Google Ads cost-per-click and reduce Quality Score, meaning the same budget yields fewer conversions.

Medium Impact
🧭

Product Discovery Quality

Product images missing alt attributes cannot be indexed in Google Image Search — a significant traffic source for home décor and fragrance categories. The non-crawlable "See all reviews" link prevents search engines from discovering and indexing the reviews page, reducing social proof visibility in search results.

Medium Impact

Brand Perception & Trust

West Story sells premium, luxury-positioned fragrance products priced at a premium. A slow, janky mobile experience creates cognitive dissonance — the website's performance signals contradict the premium brand promise. Missing security headers (CSP, COOP) and browser console errors may also trigger security warnings in future browser updates, damaging checkout trust.

Medium Impact
🌍

Market Expansion Barrier

100% of traffic comes from Saudi Arabia despite shipping to 200+ countries. Poor Core Web Vitals scores limit organic search visibility in other GCC markets (UAE, Kuwait, Bahrain) — markets with high disposable income and strong demand for premium home fragrance. Performance improvement is a prerequisite for international SEO expansion.

Growth Opportunity
11

Prioritised Action Plan

A structured roadmap from quick wins to strategic improvements

Phase 1

Quick Wins

0 – 2 Weeks
1.1 Enable Image Optimisation & Responsive Images Critical
Recommendation: In Shopify Admin → Settings → Files, ensure all product images are uploaded at their optimal display size (750px max). Use Shopify's built-in image CDN with srcset to serve appropriately sized images. Convert hero banner images to WebP format.
Expected Impact: ~399 KiB reduction in mobile page weight. Directly improves LCP — potentially reducing it from 23.5s to under 10s.
Difficulty: Easy
Owner: Store Manager + Developer
1.2 Add Alt Text to All Product Images High
Recommendation: In Shopify Admin, edit each product and add descriptive alt text to all product images. Use the format: "[Product Name] – [Key Description]" (e.g., "Oud Premium Diffuser – Luxury Home Fragrance 1500ml").
Expected Impact: Improves desktop accessibility from 83 to ~90+. Enables Google Image Search indexing. Improves SEO score.
Difficulty: Easy
Owner: Store Manager
1.3 Fix Accessible Names for Buttons & Dialogs High
Recommendation: In the Shopify theme's product card Liquid template, add dynamic aria-label to the quick-add button: aria-label="Add {{ product.title }} to cart". Fix the email popup dialog by adding aria-labelledby="popup-heading-id".
Expected Impact: Accessibility scores improve to ~94+. Reduces legal compliance risk. Improves experience for all users.
Difficulty: Easy
Owner: Developer
1.4 Fix Non-Crawlable "See All Reviews" Link Medium
Recommendation: Replace href="javascript:void(0)" with a real URL. If it opens a JS overlay, use a proper anchor and intercept the click with JavaScript. This ensures crawlability and keyboard accessibility.
Expected Impact: SEO score increases. Reviews page becomes discoverable via search.
Difficulty: Easy
Owner: Developer
1.5 Audit & Reduce GTM Tag Count High
Recommendation: Audit Google Tag Manager. Remove unused tags (TikTok Pixel was active until Sep 2024, Twitter until Jul 2025 — verify these are fully removed). Consolidate remaining tags. Use GTM's built-in trigger conditions to fire tags only on relevant pages (e.g., conversion tags only on /thank-you).
Expected Impact: Significant reduction in TBT. GTM currently accounts for 848ms of CPU time. Tag consolidation could reduce this by 30–50%.
Difficulty: Medium
Owner: Marketing + Developer
Phase 2

Mid-Term Improvements

2 – 6 Weeks
2.1 Defer Non-Critical JavaScript & CSS Critical
Recommendation: Move the Swiper slider JS to load after initial paint (add defer attribute or load dynamically after DOMContentLoaded). Load footer-only CSS (newsletter, footer, email-popup) asynchronously using <link rel="preload"> with onload conversion. Use critical CSS inlining for above-the-fold styles.
Expected Impact: LCP improvement of 2–5 seconds. FCP improvement. Estimated savings of 780ms render-blocking time on mobile.
Difficulty: Medium
Owner: Developer
2.2 Implement Lazy Loading for Below-Fold Images High
Recommendation: Ensure all product card images below the fold use loading="lazy" (already present on some, but verify all). Critically, the LCP hero image should NOT use lazy loading — it must use fetchpriority="high" (already set on the Ramadan.jpg banner — maintain this).
Expected Impact: Reduces initial payload. Focuses bandwidth on the LCP image. Improves perceived load time.
Difficulty: Easy
Owner: Developer
2.3 Improve Touch Targets & Mobile UX Medium
Recommendation: Increase minimum height of newsletter subscription button to 48px. Increase padding on the email input field. Review all interactive elements in the mobile view for minimum 48×48px touch target compliance.
Expected Impact: Accessibility score improvement. Measurable reduction in accidental taps and navigation errors. Potentially improves newsletter subscription conversion rate.
Difficulty: Easy
Owner: Developer + Designer
2.4 Implement Strong HSTS & Security Headers Medium
Recommendation: Via Cloudflare or Shopify's theme, strengthen HSTS policy: increase max-age (minimum 6 months → 1 year), add includeSubDomains and preload directives. Add a COOP header. Consult Shopify documentation for CSP implementation in Liquid.
Expected Impact: Best Practices score improves from 77 to ~90+. Reduces XSS and downgrade attack surface.
Difficulty: Medium
Owner: Developer
2.5 Activate Google Fonts Display Swap & Self-Hosting Medium
Recommendation: The site already uses display=swap for Tajawal (Google Fonts). Consider self-hosting font files via Shopify's CDN to eliminate the external fonts.googleapis.com DNS lookup (780ms additional delay). Pre-load the WOFF2 font files.
Expected Impact: Eliminates 780ms render-blocking delay from the Google Fonts CDN request.
Difficulty: Medium
Owner: Developer
Phase 3

Strategic Improvements

6+ Weeks
3.1 Full Shopify Theme Performance Audit & Rebuild Strategic
Recommendation: Commission a technical audit of the current Shopify theme. Evaluate migration to a performance-focused theme (e.g., Dawn, Impulse, or a custom Hydrogen build). The current theme loads 30+ CSS files at page load — a theme rebuilt with CSS splitting and critical CSS would dramatically reduce this.
Expected Impact: Mobile performance score could reach 70–80+. LCP under 5 seconds. Significant conversion rate uplift.
Difficulty: Complex
Owner: Developer (specialist Shopify dev)
3.2 Implement a Social Media Traffic Strategy Growth
Recommendation: Social media currently drives <5% of traffic despite the brand maintaining Facebook, Instagram, TikTok, and Twitter accounts. Develop a content strategy focused on fragrance storytelling, product demonstrations, and influencer partnerships in the Saudi/GCC luxury home market. TikTok shop integration should be considered given the KSA demographic.
Expected Impact: Could increase total monthly traffic 2–3× within 3–6 months.
Difficulty: Medium
Owner: Marketing
3.3 GCC Market Expansion via Localised SEO Growth
Recommendation: With 100% KSA traffic despite regional shipping capability, create dedicated landing pages for UAE, Kuwait, and Bahrain markets. Implement hreflang for regional Arabic variants. Build local backlinks through Gulf-focused beauty and lifestyle publications.
Expected Impact: Potential 40–60% traffic increase from GCC markets within 6 months of optimised content.
Difficulty: Medium
Owner: SEO + Marketing
3.4 Activate DMARC Enforcement Policy Low
Recommendation: The current DMARC policy is set to p=none (monitor only). Gradually progress to p=quarantine and then p=reject to fully protect the domain from email spoofing. Monitor DMARC reports via Mailgun to ensure legitimate email flows are not affected.
Expected Impact: Protects brand reputation. Reduces risk of phishing campaigns impersonating west-story.com.
Difficulty: Easy
Owner: IT / Developer
12

Final Conclusion

Strategic closing statement

To the West Story team,

West Story has built a genuine brand with real market traction in the Saudi premium home fragrance segment. The low bounce rate (31.01%), the above-average pages-per-visit (2.07), and the organic search dominance (44.15%) all point to a product and brand that resonates with its audience. These are strong foundations.

However, the technical performance of the website — particularly on mobile — currently functions as a hidden tax on every dimension of business performance. A mobile Largest Contentful Paint of 23.5 seconds means that the majority of your visitors are waiting over 23 seconds to see your most important content. Google measures this. Users experience this. Conversion rates reflect this.

The highest-return actions are clearly identified: image optimisation and render-blocking resource elimination can be executed within days and will yield the most significant improvement in mobile load time. These changes require minimal development effort but produce outsized results.

The mid-term investments — JavaScript deferral, security header improvements, and touch target remediation — will compound the initial gains and bring the site to a performance level competitive with the broader regional market.

The strategic investments — theme performance rebuild and a structured social and GCC expansion strategy — represent the transformation from a nationally recognised brand to a regionally dominant one.

This report provides all the data and directives needed to begin that journey. The path from a mobile performance score of 50 to a score of 80+ is achievable within 60–90 days with focused execution. That improvement alone could increase organic search visibility, conversion rate, and return-on-ad-spend in ways that compound over time.

The opportunity is clear. The roadmap is defined. The next step belongs to the team.

Zakaria Fadl Senior E-Commerce Specialist 26 March 2026