<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Shopify CRO Blog: Optimization &amp; Development Guides on Kaspian Fuad - Shopify Developer &amp; CRO Expert | Custom Liquid Development</title>
    <link>https://kaspianfuad.com/blog/</link>
    <description>Recent content in Shopify CRO Blog: Optimization &amp; Development Guides on Kaspian Fuad - Shopify Developer &amp; CRO Expert | Custom Liquid Development</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 30 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://kaspianfuad.com/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Shopify Duplicate Content: Canonical Tags, ?variant URLs, and Pagination (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-duplicate-content-canonical-variant-urls/</link>
      <pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-duplicate-content-canonical-variant-urls/</guid>
      <description>&lt;p&gt;I audited 38 Shopify stores for SEO health in Q1 2026. On 29 of them, Google Search Console showed a &amp;ldquo;Duplicate without user-selected canonical&amp;rdquo; warning on at least one URL type. The pattern is always the same three sources. Shopify handles two of them automatically. The third one bites stores quietly for months.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Shopify auto-canonicalizes &lt;code&gt;?variant=&lt;/code&gt; URLs and collection-path product URLs to &lt;code&gt;/products/{handle}&lt;/code&gt;. The real duplicate-content leaks are variant URLs in product feeds, &lt;code&gt;history.replaceState&lt;/code&gt; pushing &lt;code&gt;?variant=&lt;/code&gt; into browser history, and filter or sort parameters creating thin paginated permutations. Fix the feeds, add &lt;code&gt;noindex&lt;/code&gt; to sorted/filtered pages, and verify with Google Search Console&amp;rsquo;s URL Inspection tool.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Hreflang and International SEO: The Markets Setup (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-hreflang-international-seo/</link>
      <pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-hreflang-international-seo/</guid>
      <description>&lt;p&gt;I audited 17 Shopify Markets stores in Q1 2026. On 12 of them, hreflang was present but broken in at least one way: missing x-default, non-reciprocal alternates, or tags pointing to a 301-redirecting URL. Three of those stores were showing UK product pages in US SERPs and vice versa. Shopify Markets injects the tags. It does not guarantee they work.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Shopify Markets auto-generates hreflang alternate link tags for every published market. The automatic output covers language-region pairs like &lt;code&gt;en-gb&lt;/code&gt; and &lt;code&gt;fr-ca&lt;/code&gt; but has gaps around x-default and reciprocity. Verify with view-source and a Screaming Frog hreflang crawl. Fix missing x-default and any alternates pointing to redirecting or noindex URLs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Font Loading: Kill FOIT and FOUT Without the CLS Tax (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-font-loading-cls-foit-fout/</link>
      <pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-font-loading-cls-foit-fout/</guid>
      <description>&lt;p&gt;I audited 23 Shopify themes this quarter. Seventeen of them loaded Google Fonts with &lt;code&gt;font-display: swap&lt;/code&gt; and no metric overrides. On mobile, that combination produced visible CLS on every hero heading. The median p75 CLS contribution from fonts alone was &lt;strong&gt;0.06&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; &lt;code&gt;font-display: swap&lt;/code&gt; causes FOUT and, when fallback metrics differ, measurable CLS. The modern fix is three CSS override properties: &lt;code&gt;size-adjust&lt;/code&gt;, &lt;code&gt;ascent-override&lt;/code&gt;, and &lt;code&gt;descent-override&lt;/code&gt;, generated by Fontaine or Capsize. Self-host the woff2 on Shopify CDN, preload the critical weights, and reserve &lt;code&gt;font-display: optional&lt;/code&gt; as the zero-shift fallback for slow connections. Dawn&amp;rsquo;s built-in &lt;code&gt;font_face&lt;/code&gt; Liquid filter handles the file, but the CLS fix requires manual @font-face additions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify CLS Survival Guide: 6 Layout Shift Killers in Liquid Themes (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-cls-survival-guide-liquid/</link>
      <pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-cls-survival-guide-liquid/</guid>
      <description>&lt;p&gt;LCP and INP are the headline Core Web Vitals because they describe what the user feels: time to first useful pixel, time from tap to response. CLS is the one that wrecks conversion silently, because the symptom is not &amp;ldquo;slow&amp;rdquo; but &amp;ldquo;the button moved when I tapped it.&amp;rdquo; The 6 patterns below produce ~90% of CLS failures I see in Shopify audits. Each has a deterministic Liquid fix.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Shopify CLS failures cluster around 6 patterns: unsized images (largest contributor), font-swap shift, JS-injected hero sections, sticky-header CLS, dynamic announcement bars, and review widget hydration below the fold. Each has a one-rule fix in Liquid or CSS. Median p75 CLS on Shopify mobile sits at &lt;strong&gt;0.14-0.22&lt;/strong&gt;; the well-tuned target is under &lt;strong&gt;0.05&lt;/strong&gt;. The mechanical sweep below moves the metric by &lt;strong&gt;0.10-0.15&lt;/strong&gt; in 28 days.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sub-2s TTFB on Shopify: When Liquid Loops Cost You Real Money (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-ttfb-liquid-loops-real-cost/</link>
      <pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-ttfb-liquid-loops-real-cost/</guid>
      <description>&lt;p&gt;I diagnosed a Shopify Plus storefront last quarter sitting at p75 TTFB &lt;strong&gt;2.4 seconds&lt;/strong&gt; on mobile. The merchant assumed Shopify&amp;rsquo;s CDN was slow. It wasn&amp;rsquo;t. The collection template had a nested Liquid for loop running over &lt;code&gt;all_products&lt;/code&gt; with metafield reads inside the inner loop. &lt;strong&gt;62,000 iterations&lt;/strong&gt; on every page load. Single PR rewrite, TTFB dropped to &lt;strong&gt;580ms&lt;/strong&gt; in 24 hours. The 4 patterns below cover every Liquid-side TTFB issue I see in 2026 audits.&lt;/p&gt;</description>
    </item>
    <item>
      <title>I Audited 69 of My Own Shopify Blog Posts. Here Are the 4 Patterns I Keep Finding</title>
      <link>https://kaspianfuad.com/blog/i-audited-my-own-shopify-posts/</link>
      <pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/i-audited-my-own-shopify-posts/</guid>
      <description>&lt;p&gt;Last week I ran a 4-tier SEO audit across the 69 posts on this blog. 49 of them needed touch-ups. The same 4 patterns kept surfacing, and the patterns are mechanical enough that any Shopify content writer can fix them in their own archive without a tool subscription. Here they are.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; I audited 69 posts on this site across 4 tiers (Tier 1 schema + meta, Tier 2 structure + linking, Tier 3 word count + bold density, Tier 4 image + alt + OG). 4 recurring patterns surfaced. Bold density below 1% on 6 posts (technical guides). Outbound link starvation on 25 posts (worst was 0 outbound on a 1,810w piece). Label-style H2s on 12 posts (zero query intent). Pillar bloat over 2,400w on 7 posts (38% scroll completion vs 56% on tighter pieces).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Sub-1s LCP: 3 Hugo-Style Tricks Liquid Themes Can Steal (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-sub-1s-lcp-liquid-tricks/</link>
      <pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-sub-1s-lcp-liquid-tricks/</guid>
      <description>&lt;p&gt;Hugo (the static site generator running this blog) hits 0.4s LCP because everything that matters at first paint sits inline in the HTML. Shopify Liquid runs on a server, not at build time, but the same 3 tricks transfer cleanly to themes: inline critical CSS, prioritise the hero image with &lt;code&gt;fetchpriority&lt;/code&gt; plus &lt;code&gt;srcset&lt;/code&gt;, preload the LCP candidate. Below is the per-trick implementation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Sub-1s LCP on a Liquid theme uses 3 borrowed-from-SSG patterns. Inline critical CSS for above-fold styles (~12KB per template). Apply &lt;code&gt;fetchpriority=&amp;quot;high&amp;quot;&lt;/code&gt; plus a tight &lt;code&gt;srcset&lt;/code&gt; to the hero image via &lt;code&gt;image_url&lt;/code&gt;. Add a &lt;code&gt;&amp;lt;link rel=&amp;quot;preload&amp;quot;&amp;gt;&lt;/code&gt; for the LCP image in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;. CrUX p75 on the stores where I have shipped this combo runs 0.8-1.2s mobile.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Third-Party Script Defer: 7 Apps That Tank INP (And the Fix Per App)</title>
      <link>https://kaspianfuad.com/blog/shopify-third-party-script-defer-inp/</link>
      <pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-third-party-script-defer-inp/</guid>
      <description>&lt;p&gt;I traced 38 Shopify PDPs in 2025 looking for the apps that tank Interaction to Next Paint (INP). The same 7 apps show up in 24 of 38 audits, contributing 60-220ms each to long-task time on a mid-tier Android. Stack 3+ on one template and p75 INP slips from green into the needs-improvement band. The fix is the same per app: defer the script bundle, gate hydration behind IntersectionObserver, schedule init in &lt;code&gt;requestIdleCallback&lt;/code&gt;. Below is the per-app pattern.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Microsoft Clarity AI Visibility: How to Read Citation Data for Your Shopify Store (2026)</title>
      <link>https://kaspianfuad.com/blog/microsoft-clarity-ai-visibility-shopify/</link>
      <pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/microsoft-clarity-ai-visibility-shopify/</guid>
      <description>&lt;p&gt;Microsoft Clarity launched the AI Visibility dashboard in early 2026. On kaspianfuad.com, it showed me &lt;strong&gt;34 citations in 7 days&lt;/strong&gt; I had no other way to detect, with a &lt;strong&gt;33.01% share of authority&lt;/strong&gt; on &lt;code&gt;agentic storefronts shopify&lt;/code&gt; queries. Most Shopify merchants do not have it installed. Of those that do, most do not know how to read it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Microsoft Clarity AI Visibility is the only free dashboard that shows how often AI shopping agents cite your Shopify store. Install Clarity (5 min), wait 7 to 14 days for data, then read 4 panels: Citations, Share of Authority, Grounding queries, My cited pages. Use it as the measurement layer after every schema, GTIN, or robots.txt fix.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Robots.txt for AI Crawlers: Allow GPTBot, ClaudeBot, PerplexityBot in 2026</title>
      <link>https://kaspianfuad.com/blog/shopify-robots-txt-ai-crawlers/</link>
      <pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-robots-txt-ai-crawlers/</guid>
      <description>&lt;p&gt;I audited 38 Shopify stores in 2025 for agentic citation readiness. 9 of them blocked at least one AI crawler at &lt;code&gt;robots.txt&lt;/code&gt; or Cloudflare layer without realizing it. Every blocked bot is a lost citation surface for that engine. The fix is a 10-line &lt;code&gt;robots.txt.liquid&lt;/code&gt; override and a 2-minute curl verification.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Six AI user-agents matter for Shopify citation in 2026: &lt;strong&gt;GPTBot&lt;/strong&gt;, &lt;strong&gt;OAI-SearchBot&lt;/strong&gt;, &lt;strong&gt;ClaudeBot&lt;/strong&gt;, &lt;strong&gt;PerplexityBot&lt;/strong&gt;, &lt;strong&gt;Google-Extended&lt;/strong&gt;, &lt;strong&gt;CCBot&lt;/strong&gt;. Shopify&amp;rsquo;s default &lt;code&gt;robots.txt&lt;/code&gt; allows them on &lt;code&gt;/products/&lt;/code&gt;, &lt;code&gt;/collections/&lt;/code&gt;, &lt;code&gt;/blogs/&lt;/code&gt;, and &lt;code&gt;/pages/&lt;/code&gt;. Audit your specific store with curl, or paste your robots.txt into my free &lt;a href=&#34;https://kaspianfuad.com/tools/shopify-robots-crawler-checker/&#34;&gt;Robots.txt and AI Crawler Checker&lt;/a&gt;. If any bot returns a 403 or block page, override via &lt;code&gt;templates/robots.txt.liquid&lt;/code&gt; and ship the allow rules below.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Data Quality for AI Citation: The Complete Audit (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-product-schema-errors-ai-citation/</link>
      <pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-product-schema-errors-ai-citation/</guid>
      <description>&lt;p&gt;I audited 38 Shopify stores in 2025 against agentic-readiness criteria. &lt;strong&gt;31 of 38&lt;/strong&gt; had at least one data-quality issue blocking AI citation across ChatGPT product search, Perplexity, Microsoft Copilot, and Google AI Overview. The same three layers kept surfacing: which fields agents actually read, whether the Product schema validates, and whether GTIN coverage hits the 95% threshold. This post is the complete audit across all three.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; AI shopping agents query Shopify via the Universal Commerce Protocol (UCP) that replaced MCP on April 22, 2026. Three audit layers gate citation eligibility. &lt;strong&gt;Layer 1:&lt;/strong&gt; 9 fields agents scrape (title, description, SKU, GTIN, price, availability, brand, variants, reviews). &lt;strong&gt;Layer 2:&lt;/strong&gt; 4 Product schema errors that block citation (missing identifiers, broken AggregateRating, malformed Offer enums, weak BreadcrumbList). &lt;strong&gt;Layer 3:&lt;/strong&gt; GTIN coverage; under &lt;strong&gt;70%&lt;/strong&gt; is an agentic-visibility emergency, above &lt;strong&gt;95%&lt;/strong&gt; is the bar. All three layers are auditable in under an hour per store.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Page Builder Alternatives 2026</title>
      <link>https://kaspianfuad.com/blog/shopify-page-builder-alternatives/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-page-builder-alternatives/</guid>
      <description>&lt;p&gt;I have audited 100+ Shopify stores in 12 years of development work. Every store paying $29 to $99 a month for PageFly, Shogun, or GemPages tells me the same thing: &lt;em&gt;we need it for landing pages&lt;/em&gt;. In 7 of 10 audits, the math says they don&amp;rsquo;t. The three apps inject 260 to 340KB of JavaScript into every page they render, drop mobile Lighthouse by 16 to 35 points, and lock your content inside the app&amp;rsquo;s data layer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How Shopify Agentic Storefronts Work: UCP Mechanics, Shop Pay, and the 3-Layer Flow (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-agentic-storefronts-explained/</link>
      <pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-agentic-storefronts-explained/</guid>
      <description>&lt;p&gt;Shopify Agentic Storefronts run on a 3-layer mechanic: a catalogue exposed through the Universal Commerce Protocol (UCP), an AI shopping agent that queries it and ranks 3-5 products, and Shop Pay that closes the transaction inside the chat interface. This post explains how each layer actually works: what data crosses each boundary, where the surprises sit, and how the 3 layers differ from a traditional Shopify storefront. For the operational setup, see the &lt;a href=&#34;https://kaspianfuad.com/blog/shopify-agentic-storefronts-guide/&#34;&gt;Shopify Agentic Storefronts complete setup guide&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Agentic Storefronts Catalogue Optimisation (UK Stores, 2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-agentic-storefronts-catalogue-optimisation-uk/</link>
      <pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-agentic-storefronts-catalogue-optimisation-uk/</guid>
      <description>&lt;p&gt;UK Shopify stores that expanded from US-first configurations often ship a hidden currency conflict: Shopify&amp;rsquo;s primary-market setting points to United States, so the canonical product feed AI agents query emits USD pricing even when a UK shopper is the one asking. The result is a UK customer being quoted dollars when the actual GBP price is lower. The fix is one setting in &lt;strong&gt;Settings &amp;gt; Markets&lt;/strong&gt;: promote United Kingdom to primary. The next agent query returns GBP. The same fix applies across every other UK-specific configuration this post walks through.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hydrogen vs Liquid in 2026: When Headless Actually Wins</title>
      <link>https://kaspianfuad.com/blog/hydrogen-vs-liquid-2026-when-headless-wins/</link>
      <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/hydrogen-vs-liquid-2026-when-headless-wins/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; &lt;a href=&#34;https://shopify.dev/docs/storefronts/headless/hydrogen&#34;&gt;Hydrogen&lt;/a&gt; earns its complexity in roughly 5 percent of Shopify projects: stores that genuinely need sub-1-second LCP, true multi-channel headless, custom checkout outside Plus, personalization at scale, or custom SEO architecture. For the other 95 percent, a well-built Liquid theme ships faster, costs less, hires easier, and meets the same Core Web Vitals bar. Real CrUX numbers from a live Liquid store and a cost framework follow.&lt;/p&gt;&#xA;&lt;p&gt;Every &amp;ldquo;Hydrogen vs Liquid&amp;rdquo; post on the first page of Google was written by an agency that sells Hydrogen builds. A Hydrogen project bills five to ten times what a Liquid project bills, so the conclusion is set before the post is written. I am independent. I have shipped 100+ Liquid stores in 12 years and a handful of headless builds alongside them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Recharge vs Skio vs Loop: Real Shopify Theme Cost (2026)</title>
      <link>https://kaspianfuad.com/blog/recharge-vs-skio-vs-loop-shopify-subscriptions/</link>
      <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/recharge-vs-skio-vs-loop-shopify-subscriptions/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; All three Shopify subscription apps now run on native Shopify Checkout, so the old Recharge-vs-everyone-else argument is over. The real differences in 2026 sit five layers deeper: theme integration burden, INP impact, CLS impact, Liquid API access, and actual monthly cost at your subscription volume. At $50K MRR with 1,000 orders, Loop costs $774, Skio $999, Recharge $1,189. Loop wins on cost, Skio on data layer, Recharge on enterprise integrations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify image_url Filter: Sizes, Crop, Format (Complete 2026 Reference)</title>
      <link>https://kaspianfuad.com/blog/shopify-image-url-filter-reference/</link>
      <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-image-url-filter-reference/</guid>
      <description>&lt;p&gt;A Shopify Plus merchant pulled up Lighthouse on his product page in February 2026 and said, &amp;ldquo;Lighthouse keeps telling me to use modern image formats. The theme already calls &lt;code&gt;image_url&lt;/code&gt;. What&amp;rsquo;s it doing wrong?&amp;rdquo; The answer was three characters: the theme called &lt;code&gt;image_url&lt;/code&gt; without a &lt;code&gt;width:&lt;/code&gt; parameter, which returned the original 3000px source and ignored the format negotiation entirely. We added &lt;code&gt;width: 800, format: &#39;auto&#39;&lt;/code&gt; to six template lines. LCP dropped from 4.1s to 1.9s on mobile CrUX two weeks later.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Liquid Comments: 3 Syntaxes That Survive Theme Editor</title>
      <link>https://kaspianfuad.com/blog/shopify-liquid-comments-syntax/</link>
      <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-liquid-comments-syntax/</guid>
      <description>&lt;p&gt;A developer messaged me at 11:47 PM on a Tuesday in February 2026. His Shopify Plus storefront was leaking internal margin notes to view-source. He had pasted them in &lt;code&gt;&amp;lt;!-- … --&amp;gt;&lt;/code&gt; because that was what he typed in PHP for a decade. Forty stores down the contractor chain, the same HTML comment pattern had shipped on a B2B storefront with wholesale pricing context inside.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Liquid has three comment forms: &lt;code&gt;{% comment %} … {% endcomment %}&lt;/code&gt; (block, stripped), &lt;code&gt;{# … #}&lt;/code&gt; (inline, stripped), and HTML &lt;code&gt;&amp;lt;!-- … --&amp;gt;&lt;/code&gt; (NOT stripped, ships to the browser). Use the Liquid forms for anything internal. The inline form is the modern shortcut. Add whitespace dashes (&lt;code&gt;{%- comment -%}&lt;/code&gt;) when you need the gap removed too.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Liquid For Loop Break and Continue: 5 Working Patterns</title>
      <link>https://kaspianfuad.com/blog/shopify-liquid-for-loop-break-continue/</link>
      <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-liquid-for-loop-break-continue/</guid>
      <description>&lt;p&gt;A backend dev pulled up his client&amp;rsquo;s collection template in October 2025 and said, &amp;ldquo;the server is taking 380 milliseconds before it sends a single byte.&amp;rdquo; We added &lt;code&gt;limit: 24&lt;/code&gt; and a single &lt;code&gt;{% break %}&lt;/code&gt; after the featured-product count hit 8. Server-side Liquid render dropped to 64ms. Same template, same data, eight extra characters.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Liquid &lt;code&gt;{% break %}&lt;/code&gt; exits the innermost &lt;code&gt;{% for %}&lt;/code&gt; immediately. &lt;code&gt;{% continue %}&lt;/code&gt; skips the current iteration. Both ship on every Shopify theme since Liquid was open-sourced. Five patterns below cover the common cases: short-circuit on first match, filter-in-loop, paired-with-limit, nested-loop guard, and &lt;code&gt;tablerow&lt;/code&gt; early exit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Liquid Unless Tag: When to Use vs If (Examples &#43; Gotchas)</title>
      <link>https://kaspianfuad.com/blog/shopify-liquid-unless-tag/</link>
      <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-liquid-unless-tag/</guid>
      <description>&lt;p&gt;I audited 47 production Shopify themes in Q1 2026. 31 of them shipped at least one &lt;code&gt;{% unless %}&lt;/code&gt; tag in production Liquid. 14 misused it. Half the misuses were &lt;code&gt;unless not X&lt;/code&gt;, the double negative that survives small-team code review.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Liquid &lt;code&gt;{% unless %}&lt;/code&gt; runs its block when the condition is falsy. It is &lt;code&gt;{% if %}&lt;/code&gt; with the boolean flipped. Reach for it when the negative case is the natural read (sold-out badges, logged-out banners, missing-tag fallbacks). Skip it when you need &lt;code&gt;elsif&lt;/code&gt;, when the condition already reads positive, or when the boolean is named negatively.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Metaobjects vs Metafields: When to Use Which (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-metaobjects-vs-metafields/</link>
      <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-metaobjects-vs-metafields/</guid>
      <description>&lt;p&gt;A wholesale apparel client pasted the same 18-row size chart JSON into 247 product metafields in November 2024. When the size standard updated in March 2026, the merchant edited the size chart on one product, asked the team to &amp;ldquo;roll it out,&amp;rdquo; and 246 PDPs went stale. The migration to a single metaobject took 90 minutes. The merchant now edits once, every PDP updates on the next request.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Metafields hold a typed value (text, number, file, JSON) on one Shopify resource. Metaobjects hold structured records that get referenced from many resources. Use metafields when the data is unique to one product, customer, or order. Use metaobjects when the same record gets reused or when editors need to manage the dataset in one place.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Section Schema Settings: 13 Input Types with Working Examples</title>
      <link>https://kaspianfuad.com/blog/shopify-section-schema-settings-types/</link>
      <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-section-schema-settings-types/</guid>
      <description>&lt;p&gt;A merchant on Dawn 14.1 messaged me at 2:11 AM on a Friday in February 2026. She had added a &amp;ldquo;Featured Product&amp;rdquo; section to her homepage and the dropdown was empty. The schema set the type as &lt;code&gt;product_picker&lt;/code&gt; instead of &lt;code&gt;product&lt;/code&gt;. Two characters off. The fix took 20 seconds. The admin still rendered an empty dropdown until the cache cleared. The pattern below documents every supported type so the next merchant does not type the wrong one.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Technical Audit Checklist: 25 Points I Run on Every Store (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-technical-audit-checklist/</link>
      <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-technical-audit-checklist/</guid>
      <description>&lt;p&gt;I audited 47 Shopify stores in the first quarter of 2026. 41 of them had the same three problems: a 1,200-product collection with no &lt;code&gt;limit:&lt;/code&gt;, a checkout missing express payment buttons above the fold, and an app stack where 14 paid apps did the work 6 could. The audit pattern below catches all three in the first 90 minutes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; A Shopify technical audit walks six layers (theme code, Core Web Vitals, mobile UX, checkout, app stack, SEO infrastructure) and produces a fix list ranked by revenue impact. The 25 checks below are what I run on every paid engagement. The total cost-and-time to audit one store at this depth is 8-12 hours for one auditor with admin access.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify&#39;s Hidden 250-Variant Liquid Cap (And the Fix)</title>
      <link>https://kaspianfuad.com/blog/shopify-250-variant-liquid-cap-fix/</link>
      <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-250-variant-liquid-cap-fix/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Shopify lifted the per-product variant ceiling to 2,048 in late 2025, but the Liquid object &lt;code&gt;product.variants&lt;/code&gt; still caps at 250 entries at render time. Any theme iterating &lt;code&gt;product.variants&lt;/code&gt; to build a selector, compute price ranges, or aggregate inventory silently misses every variant past index 250. Three production fixes: paginated Storefront API fetch from the browser, a metaobject-backed variant index rendered server-side, or a hybrid Liquid + JSON endpoint.&lt;/p&gt;&#xA;&lt;p&gt;A merchant pinged me last month with a confusing bug: the PDP variant dropdown was missing variants. The first 250 were there. The next 1,400 were gone. Shopify Admin showed every variant active and in stock. The theme looped &lt;code&gt;product.variants&lt;/code&gt; exactly the way Dawn does it. Nothing was throwing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Shipping Progress Bar in Liquid (No App, Markets-Safe)</title>
      <link>https://kaspianfuad.com/blog/free-shipping-progress-bar-liquid-no-app/</link>
      <pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/free-shipping-progress-bar-liquid-no-app/</guid>
      <description>&lt;p&gt;A correct free shipping progress bar in Liquid renders its initial state on the server through the &lt;a href=&#34;https://shopify.dev/docs/api/liquid/filters/money&#34;&gt;&lt;code&gt;money&lt;/code&gt; filter&lt;/a&gt;, listens to the theme&amp;rsquo;s cart change event for live updates instead of polling &lt;code&gt;/cart.js&lt;/code&gt;, derives the threshold from theme settings or a money metafield (never a hardcoded number), and survives Shopify Markets currency conversion because both threshold and cart total flow through the same money filter chain.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; One section, one JS module, one CSS block, zero apps. The threshold lives in theme settings, the bar paints correctly on first render in Liquid, JavaScript listens to the theme&amp;rsquo;s cart event for live updates, and the whole thing survives Markets currency conversion because every money value is piped through the &lt;code&gt;money&lt;/code&gt; filter. 90 lines of code, $0 per month, replaces a $19 app.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reduce Shopify Checkout Abandonment: 12 Data-Backed Fixes</title>
      <link>https://kaspianfuad.com/blog/reduce-shopify-checkout-abandonment/</link>
      <pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/reduce-shopify-checkout-abandonment/</guid>
      <description>&lt;p&gt;The average Shopify store loses &lt;strong&gt;70% of shoppers&lt;/strong&gt; who start the checkout process, per &lt;a href=&#34;https://baymard.com/lists/cart-abandonment-rate&#34;&gt;Baymard Institute&amp;rsquo;s cart abandonment research&lt;/a&gt;. For a store doing $100K in monthly revenue, that gap represents roughly $230K in potential sales walking out the door every month.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Four of the top five reasons shoppers abandon Shopify checkout are friction problems you can fix today: surprise costs, forced account creation, distrust, and form length. Below are 12 data-backed fixes ordered by impact, with three Liquid snippets you can paste straight into your theme.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stacking Shopify Discounts in 2026: Functions Code</title>
      <link>https://kaspianfuad.com/blog/shopify-discount-functions-stacking-2026/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-discount-functions-stacking-2026/</guid>
      <description>&lt;p&gt;Discount Functions in 2026 stack a BOGO, a sitewide percent off, and a free-shipping threshold in a single Shopify cart by running three independent Functions in parallel. The 2026-04 GraphQL API release made the composition possible without a Cart Transform hack.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Shopify raised the active Function cap from 5 to 25 per store in 2026 and shipped the 2026-04 API, which surfaces discountAllocations at cart, line, and delivery-group level. Three Discount Functions (product, order, shipping) now compose in one cart, each reading what the others applied via combinesWith and the new API.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify INP Fix: 612ms to 178ms (Real Store Case Study)</title>
      <link>https://kaspianfuad.com/blog/shopify-inp-fix-real-store-case-study/</link>
      <pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-inp-fix-real-store-case-study/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; A Shopify Plus client came in with a p75 INP of 612ms on mobile, well into the &amp;ldquo;poor&amp;rdquo; band. After five working days of diagnosis and patching (variant change handler, cart drawer animation, predictive search debouncing), p75 INP dropped to 178ms. The CrUX 28-day window confirmed the field improvement. The fix was 90% theme JavaScript, no app removals.&lt;/p&gt;&#xA;&lt;p&gt;P75 INP at 612ms means most users wait two-thirds of a second between tap and visible response. On mobile, that feels like the site is broken. None of it is noticed by Lighthouse. All of it shows up in the &lt;a href=&#34;https://developer.chrome.com/docs/crux/&#34;&gt;Chrome User Experience Report&lt;/a&gt; as the metric Google uses to rank you.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building a Tiered Bundle Discount With Shopify Functions</title>
      <link>https://kaspianfuad.com/blog/shopify-tiered-bundle-discount-function/</link>
      <pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-tiered-bundle-discount-function/</guid>
      <description>&lt;p&gt;A pet-gear brand I work with had a $29 per month bundle app that refused to combine with their sitewide promo code. The code had been redeemed 347 times. Every redemption silently failed in cart. The fix is not another app. It is a Shopify Discount Function and one &lt;code&gt;combinesWith&lt;/code&gt; flag.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; A Discount Function written in TypeScript replaces most &amp;ldquo;bundle discount&amp;rdquo; apps in under 50 lines of code, costs nothing per month, and stacks with sitewide promo codes once you flip &lt;code&gt;combinesWith.productDiscounts&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; on the parent automatic discount. Build a 3-tier kit (buy 3, 5, 7 units), wire it into the cart drawer, and verify the whole thing in 30 minutes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Inside a Shopify CRO Audit: 6 Days, 7 Areas, 100&#43; Stores</title>
      <link>https://kaspianfuad.com/blog/shopify-cro-audit-process-consultant-walkthrough/</link>
      <pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-cro-audit-process-consultant-walkthrough/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; A Shopify CRO audit is a 6-day diagnostic that examines a store across 7 areas (PDP, collection, cart and checkout, mobile UX, Core Web Vitals, analytics integrity, app and code bloat) and delivers a written report, a prioritized fix list ranked by estimated dollar impact, a Loom walkthrough, and a 30-day implementation plan. The point is not to list every issue. The point is to rank the few fixes that move revenue the most and hand the merchant a plan that survives contact with their developer. This post walks through how I run one across 100-plus audits over 12 years.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Non-Plus Checkout Extensibility: Aug 26 2026 Migration</title>
      <link>https://kaspianfuad.com/blog/shopify-checkout-extensibility-non-plus-2026/</link>
      <pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-checkout-extensibility-non-plus-2026/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR: on August 26, 2026, every non-Plus Shopify store loses Additional Scripts, the Thank You page script box, and Order Status page scripts. If your GA4 tracking, Meta pixel, COD validator, or affiliate code lives in any of those fields, it stops firing that day. You have until August 26 to migrate to Customer Events (Web Pixels API), native channel apps, and Shopify Functions. This guide is the non-Plus playbook.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify .value Accessor: How Metafields Render in Liquid</title>
      <link>https://kaspianfuad.com/blog/shopify-product-metafields-custom-value-accessor/</link>
      <pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-product-metafields-custom-value-accessor/</guid>
      <description>&lt;p&gt;A developer pasted &lt;code&gt;product.metafields.custom.size_chart.value&lt;/code&gt; into a snippet on a teeth-whitening DTC build in March 2026, hit save, and the storefront broke. Empty &lt;code&gt;&amp;lt;table&amp;gt;&lt;/code&gt; tags rendered on every product without a chart. Mobile Safari collapsed the layout. The fix was one missing word.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; &lt;code&gt;product.metafields.custom.size_chart.value&lt;/code&gt; returns the parsed object stored in a Shopify metafield. Without &lt;code&gt;.value&lt;/code&gt; you get the raw drop. With &lt;code&gt;.value&lt;/code&gt; you get the typed object you can iterate. The &lt;code&gt;!= blank&lt;/code&gt; guard on the parent path is mandatory: products without the metafield render an empty &lt;code&gt;&amp;lt;table&amp;gt;&lt;/code&gt; that crashes layout on mobile Safari. The accessor changes shape per metafield type, so JSON returns a hash, rich_text returns HTML, product_reference returns a Product drop.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Liquid Operator Precedence: Why and / or Breaks Your if-Statement (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-liquid-operator-precedence-and-or/</link>
      <pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-liquid-operator-precedence-and-or/</guid>
      <description>&lt;p&gt;I shipped a sale-badge snippet on a Factory Direct Blinds collection page in March 2026 and the badge flickered onto unavailable products. Three lines of &lt;code&gt;if&lt;/code&gt;. One mixed &lt;code&gt;and&lt;/code&gt; / &lt;code&gt;or&lt;/code&gt;. Liquid evaluated it right to left and produced the opposite of what every JavaScript dev on the team expected.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Liquid evaluates &lt;code&gt;and&lt;/code&gt; and &lt;code&gt;or&lt;/code&gt; &lt;strong&gt;strictly right to left&lt;/strong&gt; with no precedence between them. JavaScript, C, and Ruby all bind &lt;code&gt;and&lt;/code&gt; tighter than &lt;code&gt;or&lt;/code&gt;. Liquid does not. The reliable fix is to &lt;strong&gt;assign each compound condition to a named boolean&lt;/strong&gt; before the &lt;code&gt;if&lt;/code&gt; block, or to nest a second &lt;code&gt;if&lt;/code&gt;. This applies inside snippets, sections, and Section Rendering API responses. &lt;strong&gt;Parentheses do not work in Liquid.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Product Configurator (No App): 13-Variant PDP With Full Liquid &#43; JS Code</title>
      <link>https://kaspianfuad.com/blog/shopify-product-configurator-without-app/</link>
      <pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-product-configurator-without-app/</guid>
      <description>&lt;p&gt;I shipped a configurator on Factory Direct Blinds in May 2026 across 13 parent products on a shared engine. The merchant had been quoted $399 a month for an app that would have rendered in an iframe and dropped roughly 480 KB of JavaScript on every product page. Native Liquid plus 240 lines of vanilla JS replaced it. The PDP load time stayed under 2 seconds and the merchant stopped paying for a vendor.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Speed Optimization with Liquid Code (5 Patterns)</title>
      <link>https://kaspianfuad.com/blog/shopify-speed-optimization-liquid-code/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-speed-optimization-liquid-code/</guid>
      <description>&lt;p&gt;I audited &lt;strong&gt;14 Shopify themes&lt;/strong&gt; last quarter for speed. &lt;strong&gt;11 of them blamed apps.&lt;/strong&gt; None of them had touched Liquid loop count, capture-in-loop allocations, or image output. After optimizing 100+ Shopify stores over 12 years, I can tell you the code-level patterns in your theme files account for &lt;strong&gt;40-60% of total render time&lt;/strong&gt;. Apps and images matter. The template layer is where the compounding problems live.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://kaspianfuad.com/images/blog/shopify-speed-optimization-liquid-code/factory-direct-blinds-shopify-speed-optimized-homepage.webp&#34;&#xA;  alt=&#34;Factory Direct Blinds Shopify storefront homepage after the Liquid speed optimization sprint that moved mobile PageSpeed from 38 to 81&#34;&#xA;  &#xA;  width=&#34;1280&#34; height=&#34;800&#34; &#xA;  loading=&#34;eager&#34; fetchpriority=&#34;high&#34;&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>5 Real Shopify Scripts I Migrated to Functions (Code)</title>
      <link>https://kaspianfuad.com/blog/shopify-scripts-migration-real-examples/</link>
      <pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-scripts-migration-real-examples/</guid>
      <description>&lt;p&gt;I migrated 5 Plus-store Scripts to Functions in the last 90 days. Every guide I read first showed a one-line &amp;ldquo;10 percent off everything&amp;rdquo; toy. None of them shipped on a real store. So I wrote out the 5 patterns I keep hitting, with the Ruby in, the JavaScript out, and the gotcha that cost me an hour each time.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Five production migrations: tiered free shipping (Delivery Customization), free gift at threshold (Cart Transform plus Discount), B2B tag pricing (Discount with metafield mirror), BXGY (Discount with tie-break), country plus cart-contents payment hiding (Payment Customization). Together they cover roughly 80 percent of the Script logic on Plus stores. Migrate before June 30 2026.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Plus Checkout Optimization: 9 Rules for 2026</title>
      <link>https://kaspianfuad.com/blog/shopify-plus-checkout-optimization-2026/</link>
      <pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-plus-checkout-optimization-2026/</guid>
      <description>&lt;p&gt;I audited &lt;strong&gt;14 Shopify Plus checkouts&lt;/strong&gt; this quarter. &lt;strong&gt;11&lt;/strong&gt; still had a live checkout.liquid customization, an Additional Scripts entry, or a Klaviyo snippet on the order-status page. &lt;strong&gt;August 26 2026&lt;/strong&gt; is &lt;strong&gt;115 days&lt;/strong&gt; away.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Shopify Plus checkout optimization in 2026 is governed by one hard deadline. On August 26 2026, every checkout.liquid customization, Additional Scripts entry, and order-status script box stops executing. Migrate to Checkout Extensibility, replace Scripts with Functions before June 30 2026, and use Web Pixels for analytics. The 9 rules below cover what to migrate, what to add, and where Plus-only tooling unlocks lifts no lower plan can match.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Scripts Die June 30 2026: Migrate to Functions</title>
      <link>https://kaspianfuad.com/blog/shopify-scripts-deprecation-june-2026-migration/</link>
      <pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-scripts-deprecation-june-2026-migration/</guid>
      <description>&lt;p&gt;I have three live Plus stores running Ruby Shopify Scripts in production this week. All three lose checkout logic on June 30 2026. The Script Editor app already locked publishing on April 15 2026. The clock is loud.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Shopify Scripts stop firing June 30 2026. Publishing is already frozen as of April 15 2026. Migrate Line Item Scripts to Discount Functions, Payment Scripts to Payment Customization Functions, Shipping Scripts to Delivery Customization Functions. Functions are JavaScript or Rust on WebAssembly, shipped as a Shopify app via the CLI. A typical Plus store finishes in 8 weeks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Liquid Render Tag Syntax: with, for, Named Params (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-liquid-render-tag-named-parameters/</link>
      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-liquid-render-tag-named-parameters/</guid>
      <description>&lt;p&gt;I audited a 2019-era Shopify theme last quarter for a Factory Direct Blinds migration. Every collection template still ran &lt;code&gt;{% include &#39;product-card&#39; %}&lt;/code&gt;. Theme Check threw &lt;strong&gt;47 errors&lt;/strong&gt; before the build even finished. That single tag swap is the cleanest performance win I ship on legacy themes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; The Liquid &lt;code&gt;render&lt;/code&gt; tag loads a snippet inside an isolated scope and accepts named parameters, a single value via &lt;code&gt;with X as Y&lt;/code&gt;, or an iterable via &lt;code&gt;for X as Y&lt;/code&gt;. It replaced &lt;code&gt;include&lt;/code&gt; in 2019 and is the only inclusion tag Online Store 2.0 supports. Snippets cannot read parent variables, which makes them safe inside loops and Section Rendering API responses.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Script Tags in Shopify Custom Liquid Sections: 4 Working Patterns</title>
      <link>https://kaspianfuad.com/blog/shopify-custom-liquid-section-script-tags/</link>
      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-custom-liquid-section-script-tags/</guid>
      <description>&lt;p&gt;&amp;ldquo;My script tag works on the live site but does nothing in the theme editor.&amp;rdquo; I have heard this exact sentence from &lt;strong&gt;7 Shopify devs&lt;/strong&gt; in the last &lt;strong&gt;3 months&lt;/strong&gt;. The block looks fine. The &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/Console&#34;&gt;console&lt;/a&gt; is silent. The merchant assumes the dev shipped broken code.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Yes, Shopify Custom Liquid sections run script tags on the storefront. They look broken in the theme editor because Shopify injects the section after &lt;code&gt;DOMContentLoaded&lt;/code&gt; has already fired, so your ready-listener never runs. Use a &lt;code&gt;readyState&lt;/code&gt; check, scope to &lt;code&gt;section.id&lt;/code&gt;, and reattach on &lt;code&gt;shopify:section:load&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Agentic Storefronts April 2026: Act Before May 30</title>
      <link>https://kaspianfuad.com/blog/shopify-agentic-storefronts-april-2026-update/</link>
      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-agentic-storefronts-april-2026-update/</guid>
      <description>&lt;p&gt;I audited &lt;strong&gt;14 Shopify storefronts&lt;/strong&gt; for AI-channel readiness this quarter. &lt;strong&gt;11 of them&lt;/strong&gt; had a stale GTIN field, broken Product schema, or a Lighthouse score they were proud of and CrUX numbers they had never opened. That gap is the whole story of the &lt;strong&gt;April 22, 2026&lt;/strong&gt; Shopify update.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Between January and April 30, 2026, Shopify shipped &lt;strong&gt;four production changes&lt;/strong&gt;: Storefront MCP migrated to the Universal Commerce Protocol on April 22, Universal Cart enabled multi-item agent checkout, Catalog Sync added live inventory and pricing queries, and the Discounts API now honors agent-applied codes. Hard cutover for the legacy endpoint is &lt;strong&gt;May 30, 2026&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lighthouse vs CrUX: Why Shopify Scores 23 But Passes CWV</title>
      <link>https://kaspianfuad.com/blog/shopify-lighthouse-vs-crux/</link>
      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-lighthouse-vs-crux/</guid>
      <description>&lt;p&gt;In March 2026 I ran &lt;a href=&#34;https://pagespeed.web.dev/&#34;&gt;PageSpeed Insights&lt;/a&gt; on a &lt;a href=&#34;https://www.shopify.com/plus&#34;&gt;Shopify Plus&lt;/a&gt; PDP for &lt;a href=&#34;https://kaspianfuad.com/case-studies/enea-studio/&#34;&gt;Enea Studio&lt;/a&gt;, a luxury jewelry brand. Mobile Lighthouse scored &lt;strong&gt;23 out of 100&lt;/strong&gt;. The CrUX panel below it showed every Core Web Vital green: LCP 2.1s, INP 129ms, CLS 0.05, FCP 1.6s, TTFB 0.7s. Same URL. Same Chrome session.&lt;/p&gt;&#xA;&lt;p&gt;The founder asked the obvious question. Are we broken or are we fine?&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Lighthouse simulates one cold load on a throttled phone. CrUX aggregates 28 days of real Chrome users at the 75th percentile. Google ranks on CrUX, not Lighthouse. Shopify&amp;rsquo;s third-party app stack inflates the lab score while warm caches, BFCache, and real networks rescue the field score. For ranking, only CrUX matters. For regression hunting, only Lighthouse does.&lt;/p&gt;</description>
    </item>
    <item>
      <title>5 Shopify Conversion Leaks (Ranked by $ Impact)</title>
      <link>https://kaspianfuad.com/blog/shopify-conversion-leaks-dollar-impact/</link>
      <pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-conversion-leaks-dollar-impact/</guid>
      <description>&lt;p&gt;I audited a UTV accessories store on Shopify last quarter. 138,402 sessions, 0.55% sitewide CVR, a 47-item CRO backlog the founder had been pecking at for nine months. Five leaks were doing 80% of the damage. The other 42 were noise.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Most Shopify stores have five leaks bleeding most of the lost revenue, not fifty. Score each with Traffic x Gap x Effort, ship the top score this week, ignore the rest until it closes. The five that win on almost every audit: channel mismatch, mobile collapse, pre-product funnel, checkout cliff, and technical SEO bleed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Bundle Builder, No App: 38% RPV Lift</title>
      <link>https://kaspianfuad.com/blog/shopify-bundle-builder-without-app/</link>
      <pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-bundle-builder-without-app/</guid>
      <description>&lt;p&gt;A premium DTC brand killed its bundle app and revenue per visitor jumped &lt;strong&gt;38%&lt;/strong&gt; over 12 days. The app was flashing £0.00 on roughly 5-8% of mobile sessions, dropping 127KB of JavaScript on every page, and adding 180ms to INP. I rebuilt the bundle in the theme with &lt;a href=&#34;https://shopify.dev/docs/api/liquid&#34;&gt;Liquid&lt;/a&gt; and vanilla JS in a working day.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Bundle apps from Rebuy, Bundler, Bold Bundles, and Fast Bundle race your theme for the same DOM nodes, which is what causes £0.00 prices and broken cart totals. Build the bundle natively: a Liquid section for the tier schema, a 60-line vanilla JS class for quantity and &lt;a href=&#34;https://shopify.dev/docs/apps/build/discounts&#34;&gt;Discount API&lt;/a&gt; math, &lt;code&gt;/cart/add.js&lt;/code&gt; for submission, and &lt;a href=&#34;https://shopify.dev/docs/api/functions&#34;&gt;Shopify Functions&lt;/a&gt; for the server-side discount.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Core Web Vitals 2026: Fix LCP, INP, CLS in a Week</title>
      <link>https://kaspianfuad.com/blog/shopify-core-web-vitals-optimization-2026/</link>
      <pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-core-web-vitals-optimization-2026/</guid>
      <description>&lt;p&gt;I audited 47 Shopify stores in the last six months. Forty-one failed Core Web Vitals on mobile. The same three culprits showed up every time: a lazy-loaded hero image, a popup app initializing on every page, and prices hardcoded as plain text. Think of a shop. &lt;strong&gt;How fast the door opens is LCP. Whether the floor moves under your customer is CLS. Whether staff respond when she taps the bell is INP.&lt;/strong&gt; Most Shopify stores have a sticky door, a moving floor, and staff on a tea break.&lt;/p&gt;</description>
    </item>
    <item>
      <title>10 Shopify Custom Liquid Section Examples (Replace Apps, 2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-custom-liquid-section-examples/</link>
      <pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-custom-liquid-section-examples/</guid>
      <description>&lt;p&gt;I audited 27 Shopify stores last quarter. 23 of them paid for at least one app (Shogun, GemPages, Yotpo testimonials, Hurrify) doing work a 60-line &lt;a href=&#34;https://shopify.dev/docs/api/liquid&#34;&gt;Liquid&lt;/a&gt; section could do server-side, for free. That is the pattern this post fixes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; These 10 custom Liquid sections replace the most common app categories on DTC stores: testimonials, FAQ, comparison tables, sticky ATC, countdown banners, before/after, team grids, feature blocks, multi-column content, filtered grids. Each one is server-rendered, schema-editable, and copy-paste ready for any Online Store 2.0 theme.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fix Hardcoded Prices in Shopify Markets (Liquid &#43; money)</title>
      <link>https://kaspianfuad.com/blog/shopify-multi-currency-hardcoded-prices-fix/</link>
      <pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-multi-currency-hardcoded-prices-fix/</guid>
      <description>&lt;p&gt;A health and wellness DTC brand pinged me on a Tuesday: their German customers were complaining about USD prices on the checkout page hero. The store ran on Shopify Markets across 236 regions. Product cards converted fine. Banners did not.&lt;/p&gt;&#xA;&lt;p&gt;I grepped the theme. &lt;strong&gt;38 hardcoded USD strings&lt;/strong&gt; sat across announcement bars, comparison tables, and a custom landing page.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Shopify Markets converts prices only when they pass through a Liquid money filter. Static strings like &lt;code&gt;$29.99&lt;/code&gt; are invisible to the conversion engine and ship in your base currency to every market. The fix is to grep your theme for currency symbols, swap each match to &lt;code&gt;{{ amount | money }}&lt;/code&gt;, and delete any JavaScript price rewriter. Server-side Liquid removes the FOUC, the CLS spike, and the trust hit in one pass.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Search Optimization: Lift Conversions 24% (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-onsite-search-optimization/</link>
      <pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-onsite-search-optimization/</guid>
      <description>&lt;p&gt;I audited a UTV accessories store and typed &amp;ldquo;RZR&amp;rdquo; into their search bar. RZR is the core product line. The first result was a duplicate collection called &amp;ldquo;PolarisRZRAccessories&amp;rdquo;, followed by an $80 battery and three blog posts. Their $400-600 turn signal kits never appeared.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; On-site searchers are 24% of Shopify traffic but generate 45-57% of revenue (Constructor, 609M queries, $9.8B). Run 6 test searches in incognito. If more than 2 fail, install Shopify&amp;rsquo;s free Search &amp;amp; Discovery app, add synonyms, boost products over blog posts, and turn on predictive search 2.0. Most stores fix this in under an hour.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Year-Make-Model Vehicle Fitment Selector (Without an App)</title>
      <link>https://kaspianfuad.com/blog/shopify-product-selector-vehicle-fitment/</link>
      <pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-product-selector-vehicle-fitment/</guid>
      <description>&lt;p&gt;I audited 11 Shopify auto parts stores this quarter. Nine of them ran a Year/Make/Model selector that leaked conversions at every step. The pattern is brutal and consistent.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; A high-converting Shopify vehicle fitment selector replaces apps like Convermax, Year-Make-Model by AAAeCommerce, and Searchspring with custom Liquid plus 200 lines of JS. Add trust badges scaled to AOV, auto-skip single-result steps, pull kit contents from product &lt;a href=&#34;https://kaspianfuad.com/blog/shopify-metaobjects-vs-metafields/&#34;&gt;metafields&lt;/a&gt;, and lazy-load images. One audit cut 366 preloaded image requests to roughly a dozen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>5 Cart Abandonment Causes Hiding in Shopify (Not Checkout)</title>
      <link>https://kaspianfuad.com/blog/shopify-cart-abandonment-hidden-causes/</link>
      <pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-cart-abandonment-hidden-causes/</guid>
      <description>&lt;p&gt;In 12 years and 100+ Shopify audits, I keep finding the same five leaks. None of them sit inside checkout. They all sit in the cart, and standard Shopify analytics will not show them to you.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Most Shopify stores lose revenue between add-to-cart and begin-checkout, not inside checkout itself. The five hidden causes are silently bundled fees from apps like Route or Navidium, cart drawers that add a click for impulse buyers, bundle apps that retain quantity multipliers, zero trust signals near the checkout button, and shipping costs that surface only at payment. Fix the cart first.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify GA4 Tracking Broken? Fix It Now</title>
      <link>https://kaspianfuad.com/blog/shopify-ga4-tracking-broken-fix/</link>
      <pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-ga4-tracking-broken-fix/</guid>
      <description>&lt;p&gt;I audited 14 Shopify stores this quarter. 5 of them showed a 0% GA4 conversion rate while Shopify recorded real daily revenue. The fix took under 90 minutes on each store. The cause was identical every time: one mismatched parameter in the dataLayer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; GA4 stitches &lt;code&gt;view_item&lt;/code&gt;, &lt;code&gt;add_to_cart&lt;/code&gt;, &lt;code&gt;begin_checkout&lt;/code&gt;, and &lt;code&gt;purchase&lt;/code&gt; into a funnel using &lt;code&gt;item_name&lt;/code&gt; and &lt;code&gt;item_id&lt;/code&gt; as keys. If your theme sends &amp;ldquo;Sips.TM Water Bottle&amp;rdquo; on view and &amp;ldquo;Candy&amp;rdquo; on purchase, GA4 treats them as separate products and reports zero conversions. Fix: standardise &lt;code&gt;item_name&lt;/code&gt; to &lt;code&gt;product.title&lt;/code&gt; across every event, kill duplicate sources, validate in DebugView.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Popups Kill Shopify Conversions (Data)</title>
      <link>https://kaspianfuad.com/blog/shopify-popups-killing-conversions/</link>
      <pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-popups-killing-conversions/</guid>
      <description>&lt;p&gt;I audited a Norwegian used furniture store on the Dawn Sense 2.2 theme last March. Microsoft Clarity showed &lt;strong&gt;56% of mobile PDP taps landing on cookie modals and Omnisend popups&lt;/strong&gt;. Not on products. On dismiss buttons.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Mobile shoppers on this Shopify store spent more than half their taps fighting overlays before they could see a product. Swap the cookie modal for a slim bottom bar, exclude PDPs from your Klaviyo or Privy popup targeting, and cap frequency to once per session. Product element taps recovered from 44% to over 80% in two weeks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>15 Copy-Paste Liquid Snippets to Replace Shopify Apps (Save $100-300/mo)</title>
      <link>https://kaspianfuad.com/blog/shopify-liquid-snippets-replace-apps/</link>
      <pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-liquid-snippets-replace-apps/</guid>
      <description>&lt;p&gt;I audited 47 Shopify stores last quarter. 41 of them paid for an app that 28 lines of Liquid would replace. One client was paying Bold $19/month for a countdown timer rendering inside a 312KB script bundle.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Replace 5 to 8 frontend-only Shopify apps (announcement bars, countdown timers, trust badges, size charts, free shipping bars, stock indicators, schema, recommendations) with the 15 server-rendered Liquid snippets below. Typical saving: $200 to $500/month, 150 to 500KB of JavaScript stripped per page, 1 to 3 seconds off mobile load.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Sticky Add to Cart Bar (Mobile)</title>
      <link>https://kaspianfuad.com/blog/shopify-sticky-add-to-cart-mobile/</link>
      <pubDate>Sun, 29 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-sticky-add-to-cart-mobile/</guid>
      <description>&lt;p&gt;I audited 4 Shopify stores last quarter where the mobile Add to Cart button sat 3 to 5 scrolls below the product images. On one of them, Microsoft Clarity showed &lt;strong&gt;21% of mobile visitors left before they ever saw the buy button&lt;/strong&gt;. Mobile CVR was 0.11%.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; A sticky bottom bar that appears when the main ATC scrolls out of view fixes the most common mobile Shopify leak. Three files: Liquid markup, scoped CSS, and IntersectionObserver JS. Replaces $5-15/month apps like Sticky Cart and Buy Buttons. Expect an 8-15% mobile ATC lift across Dawn, Impulse, and Focal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Sale Badge: Replace &#39;Sale&#39; with Save 30% (Liquid)</title>
      <link>https://kaspianfuad.com/blog/shopify-sale-badge-savings-percentage/</link>
      <pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-sale-badge-savings-percentage/</guid>
      <description>&lt;p&gt;I audited 14 Shopify stores in Q1 2026. 12 of them ran a generic &amp;ldquo;Sale&amp;rdquo; badge on every discounted card. One Norwegian client, Mobelglede.no, had &amp;ldquo;Salg&amp;rdquo; stamped on 100% of product cards on the homepage. The badge had stopped working months earlier and nobody noticed.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Replace your generic Sale badge with three lines of Liquid math that output the actual discount percent, like &lt;code&gt;-42%&lt;/code&gt;. Use &lt;code&gt;product.compare_at_price | minus: product.price | times: 100 | divided_by: product.compare_at_price&lt;/code&gt;. Wrap it in a &lt;code&gt;&amp;gt;= 10&lt;/code&gt; threshold so trivial discounts hide. Pure server-side. Works on Dawn, Impulse, Focal. No app, no JS.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Article Schema in 30 Lines of Liquid</title>
      <link>https://kaspianfuad.com/blog/shopify-article-schema-liquid/</link>
      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-article-schema-liquid/</guid>
      <description>&lt;p&gt;I audited a Shopify store last quarter where the blog drove &lt;strong&gt;50,000+ clicks across 230+ URLs&lt;/strong&gt;. Zero Article schema on any of them. Their strongest content type, invisible to Google as a recognised article.&lt;/p&gt;&#xA;&lt;p&gt;That client was leaving rich results, author attribution, and Discover eligibility on the table because their theme shipped without one Liquid snippet.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Shopify themes do not output BlogPosting schema by default. Drop a single snippet at &lt;code&gt;snippets/article-schema-jsonld.liquid&lt;/code&gt;, render it from your article template, and every post ships valid JSON-LD that passes Google&amp;rsquo;s Rich Results Test. 15 minute job, zero recurring cost, no app.&lt;/p&gt;</description>
    </item>
    <item>
      <title>9 Mobile Shopify Fixes That Close the 60% Gap</title>
      <link>https://kaspianfuad.com/blog/shopify-mobile-cro-guide-2026/</link>
      <pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-mobile-cro-guide-2026/</guid>
      <description>&lt;p&gt;A founder pinged me last Tuesday at 11:47pm. &amp;ldquo;Mobile is 79% of my traffic and 41% of my revenue. Why?&amp;rdquo; I pulled his GA4. Same gap I see on every audit.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Mobile sends 79% of Shopify traffic but converts at roughly 1.0% versus 2.7% on desktop. That gap is mostly fixable in a week. Ship sticky add-to-cart, Shop Pay on the PDP, one-page checkout, and an above-the-fold cleanup. Then chase Lighthouse 80+. Across 100+ audits, those four moves alone close 20-30% of the gap. For the wider 2026 benchmark dataset behind these figures (CVR by device, AOV deltas, cart abandonment, multi-currency adoption), my free &lt;a href=&#34;https://kaspianfuad.com/tools/shopify-statistics-2026/&#34;&gt;Shopify Statistics 2026 tool&lt;/a&gt; loads 60+ sourced stats filterable by revenue tier and CVR.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Agentic Storefronts: Complete Setup Guide (2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-agentic-storefronts-guide/</link>
      <pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-agentic-storefronts-guide/</guid>
      <description>&lt;p&gt;I audited 14 Shopify catalogs in March 2026 to see which ones ChatGPT actually recommends. 11 had thin product copy. 9 had broken Product schema. Two were getting cited by name. Same category, same price band. The gap was data, not budget.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Agentic Storefronts let ChatGPT, Perplexity, Microsoft Copilot, and Google Gemini recommend and sell your products inside chat windows, with Shop Pay handling checkout. Enable in 7 steps under Settings &amp;gt; Sales Channels (about 20 minutes including the pre-flight audit). To win recommendations, fill every product field with extractable facts, fix Product and Review schema, and treat your catalog as the data layer agents read from.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify GEO Guide: Rank in ChatGPT, Perplexity, Google AI</title>
      <link>https://kaspianfuad.com/blog/shopify-geo-optimization-guide/</link>
      <pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-geo-optimization-guide/</guid>
      <description>&lt;p&gt;I audited 14 Shopify stores this quarter for AI search visibility. 12 of them were invisible to ChatGPT and Perplexity for their own brand-name product queries. The pattern was identical: complete Product schema, zero comparison content, product copy written for humans only.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; GEO (Generative Engine Optimization) is how you get cited inside answers from ChatGPT, Perplexity, Gemini, and Google AI Overviews. You win it with fact-first product copy, complete schema, and comparison content that names competitors. Not keyword density.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify CRO Checklist 2026 (40 Items, Free PDF)</title>
      <link>https://kaspianfuad.com/blog/shopify-cro-audit-checklist/</link>
      <pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-cro-audit-checklist/</guid>
      <description>&lt;p&gt;I audited 103 Shopify stores in the last 18 months. 91 of them lost the same revenue at the same six places. The owners had read the blogs, installed the apps, and still left 15 to 30% of conversion on the table because nobody walked the funnel with a clipboard. This is the clipboard.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; A Shopify CRO audit is a structured review of your funnel from homepage to thank-you page. The seven areas that move 80% of revenue are homepage, collection, PDP, cart, checkout, mobile, and Core Web Vitals. Score every finding with ICE, ship quick wins in 30 days, A/B test the rest. Average uplift across 103 audits: 18%.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Liquid Loop Optimization (forloop, for, limit)</title>
      <link>https://kaspianfuad.com/blog/shopify-liquid-loop-optimization/</link>
      <pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-liquid-loop-optimization/</guid>
      <description>&lt;p&gt;I audited 14 Shopify themes this quarter. 11 of them shipped collection pages running 1,500+ Liquid iterations on first paint. Same fingerprint every time: a Dawn or Impulse fork where a junior dev added a &amp;ldquo;small&amp;rdquo; nested loop two sprints ago.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Inefficient Liquid loops cause 50-70% of slow Shopify render times. Cap iterations with &lt;code&gt;limit&lt;/code&gt;, kill nested variant loops, defer metafield reads to the Storefront API, and use &lt;code&gt;{% break %}&lt;/code&gt; for early exit. On Factory Direct Blinds, this dropped collection iterations from 4,800 to 216 and cut LCP from 22s to 2.7s.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Liquid Best Practices 2026: 8 Audit Fails I Find in 100&#43; Stores</title>
      <link>https://kaspianfuad.com/blog/shopify-liquid-development-guide/</link>
      <pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-liquid-development-guide/</guid>
      <description>&lt;p&gt;I audited 100+ Shopify stores across 12 years. The same &lt;a href=&#34;https://shopify.dev/docs/api/liquid&#34;&gt;Liquid&lt;/a&gt; mistakes show up in 8 out of 10. Render tags missing named parameters. Nested loops chewing through 1,200 iterations on a collection page. Money values hardcoded as &lt;code&gt;$49.99&lt;/code&gt; instead of piped through &lt;code&gt;| money&lt;/code&gt;. Each one bleeds either page speed or merchant flexibility, and every Top Rated Plus job I&amp;rsquo;ve taken on Upwork starts the same way: cleaning up the last dev&amp;rsquo;s Liquid.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Customize Shopify Themes Without Breaking (UK &#43; US)</title>
      <link>https://kaspianfuad.com/blog/shopify-theme-customization-guide/</link>
      <pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-theme-customization-guide/</guid>
      <description>&lt;p&gt;In the last &lt;strong&gt;18 months&lt;/strong&gt; I&amp;rsquo;ve had the same panicked DM &lt;strong&gt;14 times&lt;/strong&gt;. A founder pulls up their live storefront and types, &amp;ldquo;the whole site is white, what did I do.&amp;rdquo; &lt;strong&gt;9 of those 14&lt;/strong&gt; had edited &lt;code&gt;theme.liquid&lt;/code&gt; directly on the published theme. One missing &lt;code&gt;endif&lt;/code&gt; took the store down for &lt;strong&gt;47 minutes&lt;/strong&gt; during a paid Meta push.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Duplicate the live theme in Online Store before you touch a single character. Pull the duplicate locally with Shopify CLI, commit it to Git, and push back through the Shopify GitHub integration. Use &lt;code&gt;{% render %}&lt;/code&gt; not &lt;code&gt;{% include %}&lt;/code&gt;, pipe Liquid into JS through &lt;code&gt;| json&lt;/code&gt;, and never hand-edit &lt;code&gt;theme.liquid&lt;/code&gt;, &lt;code&gt;settings_data.json&lt;/code&gt;, or checkout files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify Checkout Optimization: 12 Fixes That Cut Abandonment</title>
      <link>https://kaspianfuad.com/blog/shopify-checkout-optimization-guide/</link>
      <pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-checkout-optimization-guide/</guid>
      <description>&lt;p&gt;I audited 100+ Shopify checkouts in the last 12 years. The same four leaks show up in roughly 8 out of 10 of them: missing express wallets, hidden shipping costs, forced accounts, and a payment step that looks sketchy. Fix those four and the rest is rounding. For the cart-stage view of the same problem, see my &lt;a href=&#34;https://kaspianfuad.com/blog/reduce-shopify-checkout-abandonment/&#34;&gt;reduce Shopify checkout abandonment&lt;/a&gt; guide.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Enable Shop Pay, Apple Pay, Google Pay, and PayPal Express. Surface shipping cost before checkout. Switch on one-page layout. Add a security indicator and card logos next to the card field. Together those four moves typically lift checkout completion 15-30% on the stores I audit, with Shop Pay alone converting 1.72x higher than guest checkout per Shopify&amp;rsquo;s own numbers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shopify CRO Audit: 5-Step Process (100&#43; Stores, 2026)</title>
      <link>https://kaspianfuad.com/blog/shopify-cro-audit-guide/</link>
      <pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://kaspianfuad.com/blog/shopify-cro-audit-guide/</guid>
      <description>&lt;p&gt;I audited 100+ Shopify stores over the last 9 years. 87 of them had the same five problems in the same order. The stores that fixed them in that order saw the largest revenue jumps. The ones that started with a redesign saw nothing.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; A Shopify CRO audit runs in five steps: &lt;a href=&#34;https://support.google.com/analytics/answer/9327974&#34;&gt;GA4 funnel&lt;/a&gt; review, checkout analysis, PDP evaluation, &lt;a href=&#34;https://web.dev/articles/vitals&#34;&gt;Core Web Vitals&lt;/a&gt;, and a real-phone mobile pass. Start in the data, not the design. Find the step with the largest percentage drop-off, then work outward. The output is a ranked list of fixes by projected revenue, not a wish list.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
