{"id":49,"date":"2026-09-30T15:52:19","date_gmt":"2026-09-30T15:52:19","guid":{"rendered":"https:\/\/ecomoptix.com\/nz\/?page_id=49"},"modified":"2026-09-30T15:52:19","modified_gmt":"2026-09-30T15:52:19","slug":"shopify-speed-optimization","status":"publish","type":"page","link":"https:\/\/ecomoptix.com\/nz\/shopify-speed-optimization\/","title":{"rendered":"Shopify Speed Optimisation Services | EcomOptix NZ"},"content":{"rendered":"\n<link href=\"https:\/\/fonts.googleapis.com\" rel=\"preconnect\"\/>\n<link crossorigin=\"\" href=\"https:\/\/fonts.gstatic.com\" rel=\"preconnect\"\/>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@600;700;900&amp;family=Barlow:wght@400;500;600&amp;display=swap\" rel=\"stylesheet\"\/>\n<style>:root{--ink:#080b0f;--ink-2:#0d1117;--card-dark:#111820;--border-dark:#1a2a3a;--white:#fff;--warm:#faf8f5;--mist:#f2f4f6;--pale:#f0fade;--g-bright:#7fff6b;--g-core:#2a8a1a;--g-deep:#1f7512;--t-dark:#0c1116;--t-body:#3d4852;--t-mute:#5a6672;--bd:#e2e6ea;--t-on-dark:#b8c8d4;--t-mute-dark:#7d8b98;--cream:#f5f2ec;--dot:rgba(8,11,15,.13);--off:6px;--wrap:1240px;--gut:clamp(20px,5vw,48px);--s1:8px;--s2:16px;--s3:24px;--s4:40px;--s5:64px;--s6:96px;--sec:clamp(64px,8vw,112px)}:root,body,.wp-site-blocks,.wp-block-post-content,.entry-content,.is-layout-constrained{--wp--style--global--content-size:100%!important;--wp--style--global--wide-size:100%!important}.wp-site-blocks,.wp-block-post-content,.entry-content,.is-layout-constrained,.is-layout-flow,.wp-block-group{max-width:none!important;width:auto!important;margin-left:0!important;margin-right:0!important;padding:0!important}.wp-site-blocks,.wp-block-post-content,.entry-content{margin-block:0!important}.wp-block-post-content>*,.entry-content>*,.is-layout-constrained>*{max-width:none!important;width:auto!important;margin-left:0!important;margin-right:0!important;margin-block:0!important}.wp-site-blocks>header.wp-block-template-part,.wp-site-blocks>footer.wp-block-template-part,.wp-block-post-title,.entry-header{display:none!important}.wp-site-blocks>*{margin-block:0!important}body{margin:0!important;padding:0!important;overflow-x:hidden}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--white);color:var(--t-dark);font-weight:400;font-family:Barlow,system-ui,-apple-system,sans-serif;font-size:17px;line-height:1.65;letter-spacing:.1px;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:inherit}h1,h2,h3,h4{font-family:'Barlow Condensed',Barlow,sans-serif;margin:0;line-height:1.04;font-weight:900;letter-spacing:-.4px;text-wrap:balance}p{margin:0}:focus-visible{outline:3px solid var(--g-deep);outline-offset:3px;border-radius:2px}.dark :focus-visible{outline-color:var(--g-bright)}.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut)}.sec{padding-block:var(--sec)}.dark{background:var(--ink);color:var(--t-on-dark)}.dark h2,.dark h3,.dark h4{color:#fff}.mist{background:var(--mist)}.paper{background:var(--cream)}.paper{background-image:radial-gradient(var(--dot) 1px,transparent 1px);background-size:22px 22px}.measure{max-width:64ch}.eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:'Barlow Condensed',sans-serif;font-size:13.5px;font-weight:900;text-transform:uppercase;letter-spacing:2.4px;color:var(--g-deep);margin:0 0 var(--s2)}.eyebrow i{width:22px;height:2px;background:var(--g-core);font-style:normal}.dark .eyebrow{color:var(--g-bright)}.dark .eyebrow i{background:var(--g-bright)}.h2{font-size:clamp(32px,3.6vw,50px);text-transform:uppercase;letter-spacing:-.3px;line-height:1.06}.h3{font-size:clamp(21px,1.9vw,25px);text-transform:uppercase;letter-spacing:.3px;line-height:1.14}.lede{font-size:clamp(17px,1.25vw,19.5px);line-height:1.62;color:var(--t-body)}.dark .lede{color:var(--t-on-dark)}.small{font-size:15px;color:var(--t-mute)}.dark .small{color:var(--t-mute-dark)}.g{color:var(--g-core)}.dark .g{color:var(--g-bright)}.num{font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:10px;font-family:'Barlow Condensed',sans-serif;font-size:19px;font-weight:900;text-transform:uppercase;letter-spacing:1.3px;text-decoration:none;cursor:pointer;padding:16px 32px;min-height:56px;border:2px solid var(--ink);position:relative;transition:transform .13s ease,box-shadow .13s ease,background .15s ease}.btn-primary{background:var(--ink);color:#fff;box-shadow:var(--off) var(--off) 0 var(--g-bright)}.btn-primary:hover{transform:translate(3px,3px);box-shadow:calc(var(--off) - 3px) calc(var(--off) - 3px) 0 var(--g-bright)}.btn-ghost{background:transparent;color:var(--t-dark);box-shadow:none}.btn-ghost:hover{background:var(--ink);color:#fff}.dark .btn-ghost{color:#fff;border-color:#fff}.dark .btn-ghost:hover{background:#fff;color:var(--ink)}.cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:var(--s4)}.crumbs{font-size:14px;color:var(--t-mute);padding-block:16px 0}.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}.crumbs li::after{content:'\/';margin-left:8px;color:var(--bd)}.crumbs li:last-child::after{content:''}.crumbs a{color:var(--t-mute);text-decoration:none}.crumbs a:hover{color:var(--g-deep);text-decoration:underline}.crumbs [aria-current]{color:var(--t-dark);font-weight:600}.rev{opacity:1}html.js-anim .rev{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1)}html.js-anim .rev.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html.js-anim .rev{opacity:1!important;transform:none!important;transition:none!important}html{scroll-behavior:auto}}.logo img{height:36px;width:auto;display:block}.foot .logo img{height:40px}@media(max-width:640px){.logo img{height:30px}.foot .logo img{height:34px}}.svc-h1 .mark,.h2 .mark{white-space:normal;-webkit-box-decoration-break:clone;box-decoration-break:clone}.svc-grid{grid-template-columns:minmax(0,1.16fr) minmax(0,1fr)}@media (max-width:1080px){.svc-grid{grid-template-columns:1fr}}@media (max-width:720px){.mark{white-space:normal;-webkit-box-decoration-break:clone;box-decoration-break:clone}}<\/style>\n<style>.badge{display:inline-flex;align-items:center;gap:9px;background:var(--ink);color:#fff;border-radius:100px;padding:10px 22px;font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:900;text-transform:uppercase;letter-spacing:2.6px;margin-bottom:var(--s3)}.badge .dot{width:7px;height:7px;border-radius:50%;background:var(--g-bright)}.dark .badge{background:var(--g-bright);color:#07240a}.dark .badge .dot{background:var(--ink)}.mark{white-space:nowrap;background-image:linear-gradient(var(--g-bright),var(--g-bright));background-repeat:no-repeat;background-size:100% .13em;background-position:0 100%;padding-bottom:.02em}.hard{border:2px solid var(--ink);background:#fff;border-radius:0;box-shadow:var(--off) var(--off) 0 var(--g-bright)}.paper{background-color:var(--cream);background-image:radial-gradient(circle,var(--dot) 1px,transparent 1px);background-size:28px 28px}.dark.paper{background-color:var(--ink);background-image:radial-gradient(circle,rgba(127,255,107,.15) 1px,transparent 1px);background-size:28px 28px}.svc-hero{padding-block:clamp(40px,5.5vh,72px) clamp(48px,6.5vh,84px)}.svc-hero .crumbs{padding-block:0 18px}.svc-grid{display:grid;grid-template-columns:1.16fr 1fr;gap:clamp(32px,4.5vw,64px);align-items:center}.svc-h1{font-size:clamp(36px,3.6vw,52px);text-transform:uppercase;letter-spacing:-.6px;line-height:1.04;color:var(--t-dark)}.svc-hook{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;font-weight:900;font-size:clamp(19px,1.8vw,26px);line-height:1.18;letter-spacing:.4px;color:var(--ink);margin-top:var(--s3)}.svc-hook .g{color:var(--g-deep);display:block}.svc-hero .lede{margin-top:var(--s3);max-width:56ch}.svc-hero .cta-row{margin-top:26px}.svc-hero .btn{font-size:17px;padding:13px 24px;min-height:50px;letter-spacing:1.1px;--off:5px}.dash{padding:0;overflow:hidden}.dash-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 22px;border-bottom:2px solid var(--ink);background:var(--ink)}.dash-head .t{font-family:'Barlow Condensed',sans-serif;font-size:16px;font-weight:900;text-transform:uppercase;letter-spacing:1.4px;color:#fff}.dash-head .tag{font-family:'Barlow Condensed',sans-serif;font-size:12.5px;font-weight:900;letter-spacing:1.6px;text-transform:uppercase;background:var(--g-bright);color:#07240a;padding:4px 10px}.dash-rows{padding:6px 22px}.dash-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:13px 0;border-bottom:1px solid var(--bd)}.dash-row:last-child{border-bottom:0}.dash-row .k{font-size:15px;color:var(--t-body)}.dash-row .v{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:19px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink);white-space:nowrap}.dash-row .v.g{color:var(--g-deep)}.dash-note{padding:14px 22px;background:var(--pale);border-top:1px solid var(--bd);font-size:13.5px;color:#1a4a10}.numstrip{display:grid;grid-template-columns:repeat(4,1fr);margin-top:var(--s5);border:2px solid var(--ink);background:#fff;box-shadow:var(--off) var(--off) 0 rgba(8,11,15,.10)}.numstrip .tile{padding:22px 24px;border-right:1px solid var(--bd);border-top:3px solid var(--g-bright)}.numstrip .tile:last-child{border-right:0}.numstrip b{display:block;font-family:'Barlow Condensed',sans-serif;font-size:clamp(36px,3.3vw,50px);font-weight:900;color:var(--ink);line-height:1}.numstrip b i{font-style:normal;color:var(--g-core)}.numstrip span{display:block;font-size:13.5px;color:var(--t-mute);margin-top:7px;text-transform:uppercase;letter-spacing:1.3px;font-family:'Barlow Condensed',sans-serif;font-weight:700}.ledger{margin-top:var(--s5);border-top:2px solid var(--g-bright)}.ledger-row{display:grid;grid-template-columns:72px 1fr 1fr;gap:var(--s4);padding-block:var(--s4);border-bottom:1px solid var(--border-dark);align-items:start}.ledger-row .n{font-family:'Barlow Condensed',sans-serif;font-size:clamp(26px,2.4vw,34px);font-weight:900;color:var(--g-bright);line-height:1;padding-top:2px}.ledger-row h3{margin-bottom:10px;color:#fff}.ledger-row p{font-size:15.5px;line-height:1.62;color:var(--t-on-dark)}.ledger-row .fix{border-left:3px solid var(--g-bright);padding-left:var(--s3)}.ledger-row .fix .k{display:block;font-family:'Barlow Condensed',sans-serif;font-size:12.5px;font-weight:900;text-transform:uppercase;letter-spacing:2px;color:var(--g-bright);margin-bottom:6px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4) var(--s3);margin-top:var(--s5)}.card{border:2px solid var(--ink);background:#fff;padding:26px 24px;border-radius:0;box-shadow:var(--off) var(--off) 0 rgba(8,11,15,.10);transition:transform .15s ease,box-shadow .15s ease}.card:hover{transform:translate(-2px,-2px);box-shadow:calc(var(--off) + 2px) calc(var(--off) + 2px) 0 var(--g-bright)}.card .ico{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border:2px solid var(--ink);background:var(--pale);margin-bottom:var(--s3)}.card h3{margin-bottom:10px}.card p{font-size:15.5px;line-height:1.62;color:var(--t-body)}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:var(--s5)}.step{padding:var(--s4) var(--s3) 0 0;border-top:6px solid var(--ink)}.step+.step{padding-left:var(--s3);border-top-color:var(--bd)}.step .n{font-family:'Barlow Condensed',sans-serif;font-size:15px;font-weight:700;letter-spacing:1.6px;color:var(--g-deep);margin-bottom:12px;display:block;text-transform:uppercase}.step h3{font-size:23px;margin-bottom:10px;letter-spacing:.5px}.step p{font-size:15.5px;line-height:1.66;color:var(--t-body)}.spec-wrap{margin-top:var(--s5);overflow-x:auto;border:2px solid var(--ink);background:#fff;box-shadow:var(--off) var(--off) 0 var(--g-bright)}.spec{width:100%;border-collapse:collapse;min-width:640px;font-size:15.5px}.spec th,.spec td{text-align:left;padding:16px 20px;border-bottom:1px solid var(--bd);vertical-align:top}.spec thead th{background:var(--ink);color:#fff;font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:900;text-transform:uppercase;letter-spacing:1.8px;border-bottom:2px solid var(--ink)}.spec tbody tr:last-child td{border-bottom:0}.spec tbody tr:nth-child(even){background:var(--cream)}.spec .term{font-family:'Barlow Condensed',sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.6px;font-size:17px;white-space:nowrap;color:var(--ink)}.spec .yes{color:var(--g-deep);font-weight:600}.cluster{display:flex;flex-wrap:wrap;gap:16px;margin-top:var(--s4)}.cluster a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:250px;flex:0 1 auto;border:2px solid var(--ink);background:#fff;padding:17px 20px;text-decoration:none;box-shadow:4px 4px 0 rgba(8,11,15,.10);font-family:'Barlow Condensed',sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.8px;font-size:18px;color:var(--ink);transition:transform .13s ease,box-shadow .13s ease,background .15s ease,color .15s ease}.cluster a:hover{background:var(--ink);color:#fff;transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--g-bright)}.cluster a span{color:var(--g-core)}.cluster a:hover span{color:var(--g-bright)}.ph{border:2px dashed #8d9aa6;background:repeating-linear-gradient(45deg,#f7f9fa,#f7f9fa 10px,#f1f4f6 10px,#f1f4f6 20px);padding:var(--s4)}.ph .lab{display:inline-block;font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:1.8px;color:#8a5a00;background:#ffe9b8;border:1px solid #e0b95e;padding:4px 12px;border-radius:100px;margin-bottom:12px}.ph .hint{font-size:14.5px;color:var(--t-mute);max-width:52ch}.ph-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin-top:var(--s5)}.faq{margin-top:var(--s5);border:2px solid var(--ink);background:#fff;box-shadow:var(--off) var(--off) 0 rgba(8,11,15,.10)}.faq details{border-bottom:1px solid var(--bd)}.faq details:last-child{border-bottom:0}.faq summary{cursor:pointer;list-style:none;padding:22px 60px 22px 24px;position:relative;font-family:'Barlow Condensed',sans-serif;font-size:clamp(19px,1.6vw,23px);font-weight:900;text-transform:uppercase;letter-spacing:.3px;line-height:1.2;color:var(--ink)}.faq summary:hover{background:var(--cream)}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:'';position:absolute;right:26px;top:50%;width:12px;height:12px;border-right:3px solid var(--g-core);border-bottom:3px solid var(--g-core);transform:translateY(-70%) rotate(45deg);transition:transform .2s ease}.faq details[open] summary{background:var(--cream);border-bottom:1px solid var(--bd)}.faq details[open] summary::after{transform:translateY(-30%) rotate(225deg)}.faq .a{padding:20px 24px 26px;max-width:76ch;color:var(--t-body)}.faq .a p+p{margin-top:12px}.endcta{border:2px solid var(--g-bright);background:var(--ink-2);padding:clamp(32px,4vw,56px);display:grid;grid-template-columns:1.4fr 1fr;gap:var(--s4);align-items:center;box-shadow:var(--off) var(--off) 0 rgba(127,255,107,.28)}.endcta .h2{color:#fff}.endcta .lede{color:var(--t-on-dark)}.dark .h2,.dark h3{color:#fff}.dark .card,.dark .card p{color:var(--t-body)}.dark .card h3{color:var(--t-dark)}.dark .lede{color:var(--t-on-dark)}.dark .eyebrow{display:none}@media (max-width:1080px){.svc-grid{grid-template-columns:1fr}.cards,.cluster{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(2,1fr)}.step{padding-right:var(--s3)}.step+.step{padding-left:0;border-top-color:var(--ink)}.step:nth-child(n+2){border-top-color:var(--bd)}.numstrip{grid-template-columns:repeat(2,1fr)}.numstrip .tile:nth-child(even){border-right:0}.numstrip .tile:nth-child(-n+2){border-bottom:1px solid var(--bd)}.endcta{grid-template-columns:1fr}}@media (max-width:760px){.ledger-row{grid-template-columns:1fr;gap:var(--s3);padding-block:var(--s3)}.cards,.cluster,.ph-grid,.steps{grid-template-columns:1fr}.numstrip{grid-template-columns:1fr}.numstrip .tile{border-right:0;border-bottom:1px solid var(--bd)}.numstrip .tile:last-child{border-bottom:0}.btn{width:100%;justify-content:center}.cta-row{flex-direction:column;align-items:stretch}.faq summary{padding:18px 48px 18px 18px}.faq .a{padding:16px 18px 22px}}<\/style>\n<style>.nav{position:sticky;top:0;z-index:200;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.6) blur(10px);border-bottom:1px solid var(--bd)}.nav-in{display:flex;align-items:center;gap:var(--s3);height:76px;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}.logo{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:25px;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;color:var(--ink);display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.logo .lg-2{color:var(--g-core)}.logo .ai{background:var(--g-bright);color:#07240a;font-size:12px;font-weight:900;padding:2px 6px;border-radius:3px;letter-spacing:1px}.nav-links{display:flex;align-items:center;gap:26px;margin-left:auto;list-style:none;padding:0;margin-block:0}.nav-links>li{position:static}.nav-links>li>a,.svc-trigger{font-family:'Barlow Condensed',sans-serif;font-size:17px;font-weight:900;text-transform:uppercase;letter-spacing:1.2px;text-decoration:none;color:var(--ink);padding:6px 0;display:inline-flex;align-items:center;gap:7px;background:none;border:0;cursor:pointer;font-family:'Barlow Condensed',sans-serif}.nav-links>li>a:hover,.svc-trigger:hover,.svc-trigger[aria-expanded=\"true\"]{color:var(--g-deep)}.nav-links>li>a[aria-current=\"page\"]{color:var(--g-deep);box-shadow:inset 0 -3px 0 var(--g-bright)}.svc-trigger .car{width:9px;height:9px;border-right:2.4px solid currentColor;border-bottom:2.4px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .18s ease}.svc-trigger[aria-expanded=\"true\"] .car{transform:translateY(1px) rotate(225deg)}.mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--bd);border-bottom:2px solid var(--ink);box-shadow:0 22px 44px rgba(8,11,15,.16);display:none;z-index:190;max-height:calc(100vh - 76px);overflow-y:auto}.mega[data-open=\"true\"]{display:block}.mega-in{max-width:var(--wrap);margin-inline:auto;padding:34px var(--gut) 30px;display:grid;grid-template-columns:repeat(4,1fr);gap:32px 28px}.mega-col .eo-menu-category{font-family:'Barlow Condensed',sans-serif;font-size:13.5px;font-weight:900;text-transform:uppercase;letter-spacing:1.5px;color:var(--g-deep);margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--bd);display:flex;align-items:center;gap:8px;white-space:nowrap}.mega-col .eo-menu-category::before{content:'';width:15px;height:2px;background:var(--g-core);flex:none}.mega-col+.mega-col-tight h4{margin-top:var(--s4)}.mega-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.mega-col a{display:block;text-decoration:none;color:var(--t-body);font-size:15.5px;padding:8px 10px;border-radius:7px;transition:background .14s ease,color .14s ease,padding-left .14s ease}.mega-col a:hover{padding-left:14px}.mega-col a:hover{background:var(--pale);color:var(--ink)}.mega-col a[aria-current=\"page\"]{color:var(--ink);font-weight:600;background:var(--pale)}.mega-col .soon{display:block;padding:8px 10px;font-size:15.5px;color:var(--t-mute);opacity:.62;cursor:default}.navsoon{font-family:'Barlow Condensed',sans-serif;font-size:17px;font-weight:900;text-transform:uppercase;letter-spacing:1.2px;color:var(--t-mute);opacity:.55;padding:6px 0;display:inline-block;cursor:default}.mega-col .star{color:var(--g-core);margin-right:5px}.mega-foot{grid-column:1\/-1;border-top:1px solid var(--bd);padding-top:20px;margin-top:4px;display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between}.mega-foot p{font-size:14.5px;color:var(--t-mute)}.burger{display:none;margin-left:auto;background:none;border:1px solid var(--bd);border-radius:8px;width:46px;height:46px;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px}.burger span{display:block;width:20px;height:2.4px;background:var(--ink);border-radius:2px}.foot{background:var(--ink);color:var(--t-on-dark);padding-block:var(--s6) var(--s4)}.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--s4)}.foot h4{font-family:'Barlow Condensed',sans-serif;font-size:13.5px;font-weight:900;text-transform:uppercase;letter-spacing:2px;color:var(--g-bright);margin:0 0 14px}.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.foot a{color:var(--t-on-dark);text-decoration:none;font-size:15.5px}.foot a:hover{color:#fff;text-decoration:underline}.foot .soon{color:var(--t-mute-dark);opacity:.7;font-size:15.5px}.foot .logo{color:#fff}.foot .logo .lg-2{color:var(--g-bright)}.foot-bar{border-top:1px solid var(--border-dark);margin-top:var(--s5);padding-top:var(--s3);display:flex;flex-wrap:wrap;gap:var(--s2);justify-content:space-between;font-size:14px;color:var(--t-mute-dark)}@media (max-width:1000px){.mega-in{grid-template-columns:repeat(2,1fr)}}@media (max-width:860px){.nav-links{display:none;margin-left:0}.burger{display:flex}.nav-links.open{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--bd);padding:var(--s2) var(--gut) var(--s3);max-height:calc(100vh - 76px);overflow-y:auto}.nav-links.open>li{border-bottom:1px solid var(--bd)}.nav-links.open>li>a,.nav-links.open .svc-trigger{display:flex;width:100%;padding:15px 0;font-size:18px}.mega{position:static;box-shadow:none;border:0;background:transparent;max-height:none;overflow:visible}.mega-in{grid-template-columns:1fr;padding:0 0 var(--s3);gap:var(--s3)}.mega-col a,.mega-col .soon{padding:9px 0}.mega-foot{display:none}.foot-grid{grid-template-columns:1fr 1fr}}@media (max-width:560px){.foot-grid{grid-template-columns:1fr}}<\/style>\n<header class=\"nav\"><style id=\"eo-nav-fix\">@media (min-width:861px){header.nav .nav-links{margin-left:auto}}header.nav .nav-links>li.m-cta{display:none}header.nav .nav-links>li.m-cta>a.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#080b0f!important;color:#fff!important;border:2px solid #080b0f!important;border-radius:10px!important;box-shadow:4px 4px 0 #7fff6b!important;font-family:\"Barlow Condensed\",sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:1px;text-decoration:none;line-height:1.1;white-space:nowrap;transition:transform .13s ease,box-shadow .13s ease}header.nav .nav-links>li.m-cta>a.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 #7fff6b!important;color:#fff!important}@media (min-width:1100px){header.nav .nav-links>li.m-cta{display:block;padding:0;border:0;margin-left:2px}header.nav .nav-links>li.m-cta>a.btn{width:auto!important;min-height:44px!important;padding:9px 18px!important;font-size:15px!important}}header.nav .nav-links>li>a.geo-switch{display:inline-flex;width:auto;font-size:13px;letter-spacing:1.6px;border:1.5px solid #e2e6ea;border-radius:4px;padding:4px 9px;opacity:.85;box-shadow:none}header.nav .nav-links>li>a.geo-switch:hover{opacity:1;border-color:#1f7512}header.nav .burger{border:2px solid #080b0f;border-radius:8px;width:46px;height:46px;background:#fff}header.nav .burger span{transition:transform .18s ease,opacity .18s ease}header.nav .burger[aria-expanded=\"true\"] span:nth-child(1){transform:translateY(6.4px) rotate(45deg)}header.nav .burger[aria-expanded=\"true\"] span:nth-child(2){opacity:0}header.nav .burger[aria-expanded=\"true\"] span:nth-child(3){transform:translateY(-6.4px) rotate(-45deg)}@media (max-width:860px){header.nav .nav-links.open>li>a,header.nav .nav-links.open .svc-trigger{padding:15px 0;font-size:18px;min-height:56px}header.nav .nav-links.open>li>a.geo-switch{display:inline-flex;width:auto;min-height:0;padding:6px 12px;margin:12px 0;font-size:14px}header.nav .nav-links>li.m-cta{display:block;padding-top:24px;border:0}header.nav .nav-links>li.m-cta>a.btn{width:100%!important;min-height:52px!important;padding:12px 18px!important;font-size:17px!important}}header.nav .svc-trigger{line-height:normal}@media (prefers-reduced-motion:reduce){header.nav .nav-links>li.m-cta>a.btn:hover{transform:none}}<\/style><nav aria-label=\"Primary\" class=\"nav-in\"><a aria-label=\"EcomOptix home\" class=\"logo\" href=\"https:\/\/ecomoptix.com\/nz\/\"><img alt=\"EcomOptix AI\" decoding=\"async\" height=\"80\" src=\"\/wp-content\/uploads\/2026\/09\/ecomoptix-ai-logo-dark.png\" width=\"300\"\/><\/a><button aria-controls=\"navlinks\" aria-expanded=\"false\" aria-label=\"Open menu\" class=\"burger\" id=\"burger\"><span><\/span><span><\/span><span><\/span><\/button><ul class=\"nav-links\" id=\"navlinks\"><li><button aria-controls=\"megaservices\" aria-expanded=\"false\" class=\"svc-trigger\" id=\"svctrigger\">Services <span aria-hidden=\"true\" class=\"car\"><\/span><\/button><div class=\"mega\" data-open=\"false\" id=\"megaservices\"><div class=\"mega-in\"><div class=\"mega-col\"><div class=\"eo-menu-category\">Platform SEO<\/div><ul><li><a href=\"https:\/\/ecomoptix.com\/nz\/ecommerce-seo\/\"><span aria-hidden=\"true\" class=\"star\">\u2605<\/span>Ecommerce SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/shopify-seo\/\">Shopify SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/woocommerce-seo\/\">WooCommerce SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/magento-seo\/\">Magento SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/bigcommerce-seo\/\">BigCommerce SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/enterprise-ecommerce-seo\/\">Enterprise Ecom SEO<\/a><\/li><\/ul><\/div><div class=\"mega-col\"><div class=\"eo-menu-category\">Industry SEO<\/div><ul><li><a href=\"https:\/\/ecomoptix.com\/nz\/furniture-store-seo\/\">Furniture Store SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/jewelry-store-seo\/\">Jewellery Store SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/pet-store-seo\/\">Pet Store SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/beauty-and-cosmetics-seo\/\">Beauty &amp; Cosmetics SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/fashion-seo\/\">Fashion SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/food-and-beverage-seo\/\">Food And Beverage SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/supplement-seo\/\">Supplement SEO<\/a><\/li><\/ul><\/div><div class=\"mega-col\"><div class=\"eo-menu-category\">Strategy &amp; Conversion<\/div><ul><li><a href=\"https:\/\/ecomoptix.com\/nz\/conversion-rate-optimization\/\">Ecommerce CRO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/shopify-migration\/\">Shopify Migration<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/white-label-ecommerce-seo\/\">White Label Ecom SEO<\/a><\/li><\/ul><\/div><div class=\"mega-col\"><div class=\"eo-menu-category\">Development<\/div><ul><li><a href=\"https:\/\/ecomoptix.com\/nz\/shopify-development\/\">Shopify Development<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/woocommerce-development\/\">WooCommerce Dev<\/a><\/li><li><a aria-current=\"page\" href=\"https:\/\/ecomoptix.com\/nz\/shopify-speed-optimization\/\">Shopify Speed Optimisation<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/white-label-development\/\">White Label Dev<\/a><\/li><\/ul><\/div><div class=\"mega-foot\"><p>All 20 ecommerce growth services, live and linked.<\/p><a class=\"btn btn-primary\" href=\"https:\/\/ecomoptix.com\/nz\/contact\/\" style=\"min-height:46px;padding:11px 22px;font-size:16px\">Get my free growth analysis<\/a><\/div><\/div><\/div><\/li><li class=\"geo-li\"><a aria-label=\"You are viewing New Zealand. Visit the international website.\" class=\"geo-switch\" href=\"https:\/\/ecomoptix.com\/\" hreflang=\"en-AU\" title=\"Switch to the Australian site\">NZ<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/results\/\">Results<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/about\/\">About<\/a><\/li><li class=\"m-cta\"><a class=\"btn btn-primary\" href=\"https:\/\/ecomoptix.com\/nz\/contact\/\" style=\"width:100%;justify-content:center;min-height:50px;font-size:17px\">Get my free growth analysis<\/a><\/li><\/ul><\/nav><\/header><style id=\"x-btn-v2\">.btn{transition:transform .15s ease,box-shadow .15s ease,background .18s ease,color .18s ease,border-color .18s ease}.btn-primary:hover{background:var(--g-bright);color:var(--ink);border-color:var(--ink);transform:translate(-2px,-2px);box-shadow:calc(var(--off) + 2px) calc(var(--off) + 2px) 0 var(--ink)}.dark .btn-primary:hover,.bg-mast .btn-primary:hover,.bl-sec .btn-primary:hover,.rs-hero .btn-primary:hover{box-shadow:calc(var(--off) + 2px) calc(var(--off) + 2px) 0 rgba(255,255,255,.92)}.btn-primary:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--ink)}.dark .btn-primary:active,.bg-mast .btn-primary:active,.bl-sec .btn-primary:active,.rs-hero .btn-primary:active{box-shadow:2px 2px 0 rgba(255,255,255,.92)}.btn-ghost:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 rgba(8,11,15,.28)}.dark .btn-ghost:hover{box-shadow:4px 4px 0 rgba(255,255,255,.25)}.btn-ghost:active{transform:translate(2px,2px);box-shadow:none}.btn:focus-visible{outline:3px solid var(--g-core);outline-offset:3px}.dark .btn:focus-visible,.bg-mast .btn:focus-visible,.bl-sec .btn:focus-visible,.rs-hero .btn:focus-visible{outline-color:var(--g-bright)}@media (prefers-reduced-motion:reduce){.btn-primary:hover,.btn-ghost:hover{transform:none}}<\/style>\n<main id=\"main\">\n<section class=\"svc-hero paper\">\n<div class=\"wrap\">\n<div class=\"svc-grid\">\n<div>\n<span class=\"badge\"><span aria-hidden=\"true\" class=\"dot\"><\/span>Development \u00b7 Speed<\/span>\n<h1 class=\"svc-h1\">Shopify speed optimisation measured where <span class=\"mark\">it counts: your buyers&#8217; phones.<\/span><\/h1>\n<p class=\"svc-hook\">Every second of load time <span class=\"g\">is paid for in abandoned carts.<\/span><\/p>\n<p class=\"lede\">Slow stores lose twice: shoppers abandon before the page paints, and Core Web Vitals feeds rankings. We optimise against real-user field data \u2014 not a lab score to screenshot \u2014 by cutting app scripts, fixing image delivery and engineering the theme&#8217;s critical path.<\/p>\n<div class=\"cta-row\">\n<a class=\"btn btn-primary\" href=\"https:\/\/ecomoptix.com\/nz\/contact\/\">Get My Free Growth Analysis<\/a>\n<a class=\"btn btn-ghost\" href=\"#problem\">See What We Fix<\/a>\n<\/div>\n<\/div>\n<figure class=\"eo-service-hero-photo\"><img fetchpriority=\"high\" alt=\"Illustrative homeware storefront on laptop and mobile screens\" decoding=\"async\" fetchpriority=\"high\" height=\"800\" loading=\"eager\" sizes=\"(max-width: 1024px) calc(100vw - 40px), (max-width: 1440px) 45vw, 720px\" src=\"https:\/\/ecomoptix.com\/wp-content\/uploads\/2026\/09\/ecomoptix-development-studio-800.webp\" srcset=\"https:\/\/ecomoptix.com\/wp-content\/uploads\/2026\/09\/ecomoptix-development-studio-480.webp 480w, https:\/\/ecomoptix.com\/wp-content\/uploads\/2026\/09\/ecomoptix-development-studio-800.webp 800w, https:\/\/ecomoptix.com\/wp-content\/uploads\/2026\/09\/ecomoptix-development-studio-1200.webp 1200w\" width=\"1200\"><figcaption>A considered experience, on every screen. <a href=\"https:\/\/ecomoptix.com\/nz\/results\/\">See client results \u2197<\/a><\/figcaption><\/img><\/figure>\n<\/div>\n<div class=\"numstrip rev\">\n<div class=\"tile\"><b class=\"num\">8<\/b><span>Years ecommerce-only<\/span><\/div>\n<div class=\"tile\"><b class=\"num\">55<i>+<\/i><\/b><span>Stores built &amp; launched<\/span><\/div>\n<div class=\"tile\"><b class=\"num\">90<i>%<\/i><\/b><span>Client retention<\/span><\/div>\n<div class=\"tile\"><b class=\"num\">100<i>+<\/i><\/b><span>Five-star reviews<\/span><\/div>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"sec dark paper\" id=\"problem\">\n<div class=\"wrap\">\n<span class=\"badge rev\"><span aria-hidden=\"true\" class=\"dot\"><\/span>The Problem<\/span>\n<h2 class=\"h2 rev\">Why Shopify stores <span class=\"mark\">get slow.<\/span><\/h2>\n<p class=\"lede measure rev\" style=\"margin-top:var(--s3)\">Speed problems are additive \u2014 each app, image and font made sense alone. These are the five patterns behind almost every failing store we audit.<\/p>\n<div class=\"ledger\"><div class=\"ledger-row rev\"><span class=\"n num\">01<\/span>\n<div><h3 class=\"h3\">App scripts stacked for years<\/h3><p>Every installed app loads JavaScript on every page, installed or not still in use.<\/p><\/div>\n<div class=\"fix\"><span class=\"k\">What it costs you<\/span><p>Main-thread congestion drags INP and LCP on precisely the devices most of your traffic uses.<\/p><\/div><\/div><div class=\"ledger-row rev\"><span class=\"n num\">02<\/span>\n<div><h3 class=\"h3\">Images shipped raw<\/h3><p>4000px PNGs scaled down in CSS, no modern formats, no responsive sizing.<\/p><\/div>\n<div class=\"fix\"><span class=\"k\">What it costs you<\/span><p>The largest element on every page \u2014 the product image \u2014 is also the slowest, and LCP records it.<\/p><\/div><\/div><div class=\"ledger-row rev\"><span class=\"n num\">03<\/span>\n<div><h3 class=\"h3\">Fonts blocking the paint<\/h3><p>Multiple font families loaded blocking, with no fallback strategy.<\/p><\/div>\n<div class=\"fix\"><span class=\"k\">What it costs you<\/span><p>Text invisible for seconds on mobile connections, and CLS spikes when it finally swaps.<\/p><\/div><\/div><div class=\"ledger-row rev\"><span class=\"n num\">04<\/span>\n<div><h3 class=\"h3\">Layout that jumps<\/h3><p>Banners, badges and reviews injected late without reserved space.<\/p><\/div>\n<div class=\"fix\"><span class=\"k\">What it costs you<\/span><p>Shoppers tap the wrong thing as content shifts \u2014 CLS is a UX complaint expressed as a metric.<\/p><\/div><\/div><div class=\"ledger-row rev\"><span class=\"n num\">05<\/span>\n<div><h3 class=\"h3\">Optimising the lab, not the field<\/h3><p>A perfect Lighthouse run on office wifi while CrUX shows failing thresholds.<\/p><\/div>\n<div class=\"fix\"><span class=\"k\">What it costs you<\/span><p>The score in the screenshot passes; the experience your actual buyers get keeps failing \u2014 and Google grades the field.<\/p><\/div><\/div><\/div>\n<\/div>\n<\/section>\n<section class=\"sec\" id=\"deliverables\">\n<div class=\"wrap\">\n<span class=\"badge rev\"><span aria-hidden=\"true\" class=\"dot\"><\/span>What You Get<\/span>\n<h2 class=\"h2 rev\">The critical path, engineered.<\/h2>\n<p class=\"lede measure rev\" style=\"margin-top:var(--s3)\">Speed work is subtraction and sequencing: remove what does not pay its way, and make what remains load in the order shoppers need it.<\/p>\n<div class=\"cards\" style=\"margin-top:var(--s5)\"><div class=\"card rev\"><div aria-hidden=\"true\" class=\"ico\"><svg fill=\"none\" height=\"22\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"22\"><path d=\"M4 19a9 9 0 1 1 16 0\"><\/path><path d=\"M12 19l4.4-6.3\"><\/path><circle cx=\"12\" cy=\"19\" r=\"1.4\"><\/circle><\/svg><\/div><h3 class=\"h3\">Field-data diagnosis<\/h3><p>CrUX and RUM analysis to find what the 75th-percentile visitor actually experiences, per template.<\/p><\/div><div class=\"card rev\"><div aria-hidden=\"true\" class=\"ico\"><svg fill=\"none\" height=\"22\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"22\"><path d=\"M13 2L4.5 13H11l-1 9 8.5-11H12z\"><\/path><\/svg><\/div><h3 class=\"h3\">App script audit<\/h3><p>Every script inventoried and priced in milliseconds; the unjustifiable removed or deferred.<\/p><\/div><div class=\"card rev\"><div aria-hidden=\"true\" class=\"ico\"><svg fill=\"none\" height=\"22\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"22\"><rect height=\"16\" width=\"18\" x=\"3\" y=\"4\"><\/rect><path d=\"M3 10h18M9 10v10\"><\/path><\/svg><\/div><h3 class=\"h3\">Image &amp; font delivery<\/h3><p>Modern formats, responsive sizes, preloaded LCP assets and a font strategy that never blocks paint.<\/p><\/div><div class=\"card rev\"><div aria-hidden=\"true\" class=\"ico\"><svg fill=\"none\" height=\"22\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"22\"><path d=\"M8.5 7.5L4 12l4.5 4.5\"><\/path><path d=\"M15.5 7.5L20 12l-4.5 4.5\"><\/path><path d=\"M13.2 4.5l-2.4 15\"><\/path><\/svg><\/div><h3 class=\"h3\">Theme critical path<\/h3><p>Render-blocking resources restructured so the first paint carries the product, not the tooling.<\/p><\/div><div class=\"card rev\"><div aria-hidden=\"true\" class=\"ico\"><svg fill=\"none\" height=\"22\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"22\"><path d=\"M12 2l8 4v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6z\"><\/path><path d=\"M8.7 11.8l2.3 2.3 4.3-4.7\"><\/path><\/svg><\/div><h3 class=\"h3\">CLS elimination<\/h3><p>Space reserved for every late-loading element, so the page never moves under a thumb.<\/p><\/div><div class=\"card rev\"><div aria-hidden=\"true\" class=\"ico\"><svg fill=\"none\" height=\"22\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"22\"><path d=\"M3 20.5h18\"><\/path><path d=\"M6.5 20.5V14M11 20.5V9.5M15.5 20.5V12M20 20.5V5.5\"><\/path><\/svg><\/div><h3 class=\"h3\">Conversion-tied reporting<\/h3><p>Speed reported alongside conversion and bounce by device \u2014 the point, not the score.<\/p><\/div><\/div>\n<div class=\"eo-region-note\"><p class=\"kick\">Built around your market<\/p><p>Focus on the searches your New Zealand store can genuinely fulfil. We connect product discovery with delivery coverage and useful buying information, and separate NZ and Australian search priorities when you serve both markets.<\/p><\/div><\/div>\n<\/section>\n<section class=\"sec mist whofor\" id=\"who-for\">\n<div class=\"wrap\">\n<span class=\"badge rev\"><span aria-hidden=\"true\" class=\"dot\"><\/span>Who It&#8217;s For<\/span>\n<h2 class=\"h2 rev\">Built for Shopify merchants \u2014 <span class=\"mark\">not for everyone.<\/span><\/h2>\n<div class=\"cards\" style=\"margin-top:var(--s5)\"><div class=\"card rev\"><div aria-hidden=\"true\" class=\"ico\"><svg fill=\"none\" height=\"22\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"22\"><path d=\"M4 19a9 9 0 1 1 16 0\"><\/path><path d=\"M12 19l4.4-6.3\"><\/path><circle cx=\"12\" cy=\"19\" r=\"1.4\"><\/circle><\/svg><\/div><h3 class=\"h3\">Stores failing Core Web Vitals<\/h3><p>Field data in the red, rankings capped, and mobile conversion paying the price every single day.<\/p><\/div><div class=\"card rev\"><div aria-hidden=\"true\" class=\"ico\"><svg fill=\"none\" height=\"22\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"22\"><circle cx=\"9\" cy=\"20\" r=\"1.6\"><\/circle><circle cx=\"18\" cy=\"20\" r=\"1.6\"><\/circle><path d=\"M3 4h2.5l2.3 11h10.7l2-8H7\"><\/path><\/svg><\/div><h3 class=\"h3\">High-traffic brands<\/h3><p>At your volume, every hundred milliseconds of load time is measurable revenue. Speed is a line item.<\/p><\/div><div class=\"card rev\"><div aria-hidden=\"true\" class=\"ico\"><svg fill=\"none\" height=\"22\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"22\"><circle cx=\"12\" cy=\"8\" r=\"4\"><\/circle><path d=\"M4 21c1.5-4 5-6 8-6s6.5 2 8 6\"><\/path><\/svg><\/div><h3 class=\"h3\">Teams tired of plugin promises<\/h3><p>The minify-everything apps made it worse. You want engineering, measured on real visitors.<\/p><\/div><\/div>\n<\/div>\n<\/section>\n<section class=\"sec paper\" id=\"process\">\n<div class=\"wrap\">\n<span class=\"badge rev\"><span aria-hidden=\"true\" class=\"dot\"><\/span>How We Work<\/span>\n<h2 class=\"h2 rev\">How speed work actually sticks.<\/h2>\n<div class=\"steps\"><div class=\"step rev\"><span class=\"n\">01: Measure<\/span><span aria-hidden=\"true\" class=\"step-ic\" style=\"display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:2px solid var(--ink);background:var(--pale);margin:10px 0 4px\"><svg fill=\"none\" height=\"20\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"20\"><circle cx=\"10\" cy=\"10\" r=\"6\"><\/circle><path d=\"M15 15l6 6\"><\/path><\/svg><\/span><h3>Field data first<\/h3><p>CrUX, RUM and per-template profiling establish what real visitors experience.<\/p><\/div><div class=\"step rev\"><span class=\"n\">02: Price<\/span><span aria-hidden=\"true\" class=\"step-ic\" style=\"display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:2px solid var(--ink);background:var(--pale);margin:10px 0 4px\"><svg fill=\"none\" height=\"20\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"20\"><path d=\"M4 20V10M10 20V4M16 20v-7M22 20H2\"><\/path><\/svg><\/span><h3>Cost every script<\/h3><p>Each app and asset priced in milliseconds against the revenue it claims to earn.<\/p><\/div><div class=\"step rev\"><span class=\"n\">03: Cut<\/span><span aria-hidden=\"true\" class=\"step-ic\" style=\"display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:2px solid var(--ink);background:var(--pale);margin:10px 0 4px\"><svg fill=\"none\" height=\"20\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"20\"><circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle><path d=\"M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M19.1 4.9L17 7M7 17l-2.1 2.1\"><\/path><\/svg><\/span><h3>Remove the unjustified<\/h3><p>Scripts deferred or deleted, images and fonts re-engineered, critical path rebuilt.<\/p><\/div><div class=\"step rev\"><span class=\"n\">04: Verify<\/span><span aria-hidden=\"true\" class=\"step-ic\" style=\"display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:2px solid var(--ink);background:var(--pale);margin:10px 0 4px\"><svg fill=\"none\" height=\"20\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"20\"><path d=\"M12 3l7 3v6c0 4-3 7-7 9-4-2-7-5-7-9V6z\"><\/path><path d=\"M9 12l2 2 4-4\"><\/path><\/svg><\/span><h3>Prove it in the field<\/h3><p>Changes confirmed in field data over a full collection window, not one lab run.<\/p><\/div><div class=\"step rev\"><span class=\"n\">05: Hold<\/span><span aria-hidden=\"true\" class=\"step-ic\" style=\"display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:2px solid var(--ink);background:var(--pale);margin:10px 0 4px\"><svg fill=\"none\" height=\"20\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"20\"><path d=\"M8 4h8v5a4 4 0 01-8 0z\"><\/path><path d=\"M8 5H5a3 3 0 003 4M16 5h3a3 3 0 01-3 4M12 13v4M8 21h8M10 17h4\"><\/path><\/svg><\/span><h3>Keep it fast<\/h3><p>A speed budget and regression checks so the next app install cannot undo the work.<\/p><\/div><\/div>\n<\/div>\n<\/section>\n<section class=\"sec dark paper xsys\" id=\"system\"><div class=\"xsys-wrap\"><div class=\"xsys-stage\"><div class=\"wrap xsys-grid\"><div><span class=\"badge\"><span aria-hidden=\"true\" class=\"dot\"><\/span>The System<\/span><h2 class=\"h2\">How real speed is built, <span class=\"mark\">layer by layer.<\/span><\/h2><div class=\"xits\"><div class=\"xit\"><span class=\"xn\">01<\/span><h3>Field data<\/h3><p>Real-user data shows what the 75th-percentile visitor actually gets.<\/p><\/div><div class=\"xit\"><span class=\"xn\">02<\/span><h3>Script diet<\/h3><p>Every script priced in milliseconds; the unjustifiable get cut.<\/p><\/div><div class=\"xit\"><span class=\"xn\">03<\/span><h3>Critical path<\/h3><p>The product paints first \u2014 the tooling waits its turn.<\/p><\/div><div class=\"xit\"><span class=\"xn\">04<\/span><h3>Speed budget<\/h3><p>A budget and regression checks stop the next app undoing the work.<\/p><\/div><\/div><\/div><div><div class=\"xbars\"><div class=\"xb\"><span class=\"lb\">Field data<\/span><span class=\"role\">CrUX at p75<\/span><\/div><div class=\"xb\"><span class=\"lb\">Script diet<\/span><span class=\"role\">milliseconds priced<\/span><\/div><div class=\"xb\"><span class=\"lb\">Critical path<\/span><span class=\"role\">product paints first<\/span><\/div><div class=\"xb\"><span class=\"lb\">Speed budget<\/span><span class=\"role\">regressions blocked<\/span><\/div><div class=\"xcap\">Green vitals that hold<\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n<section class=\"sec\" id=\"proof\">\n<div class=\"wrap\">\n<span class=\"badge rev\"><span aria-hidden=\"true\" class=\"dot\"><\/span>Proof<\/span>\n<h2 class=\"h2 rev\">Figures from <span class=\"mark\">live client accounts.<\/span><\/h2>\n<p class=\"lede measure rev\" style=\"margin-top:var(--s3)\">We publish numbers only after clients sign them off \u2014 no borrowed screenshots, no invented percentages. What you can verify today:<\/p>\n<div class=\"pf2\" style=\"display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:var(--s4)\">\n<a class=\"rev\" href=\"https:\/\/ecomoptix.com\/nz\/results\/#client-stories\" onmouseout=\"this.style.transform='';this.style.borderColor='var(--ink)';this.style.boxShadow='var(--off) var(--off) 0 rgba(8,11,15,.10)'\" onmouseover=\"this.style.transform='translate(-3px,-3px)';this.style.borderColor='var(--g-deep)';this.style.boxShadow='9px 9px 0 rgba(8,11,15,.2)'\" style=\"display:block;border:2px solid var(--ink);background:#fff;box-shadow:var(--off) var(--off) 0 rgba(8,11,15,.10);padding:22px;text-decoration:none;transition:transform 150ms ease,box-shadow 150ms ease,border-color 150ms ease\"><h3 style=\"font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:19px;letter-spacing:.4px;text-transform:uppercase;color:var(--ink);margin:0 0 6px\">Clients on camera<\/h3><p style=\"font-size:14.5px;line-height:1.58;color:var(--t-body);margin:0\">Three unscripted video testimonials \u2014 real store owners describing the work in their own words, on the record.<\/p><span style=\"display:inline-block;margin-top:10px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:13.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--g-deep)\">See it \u2192<\/span><\/a>\n<a class=\"rev\" href=\"https:\/\/ecomoptix.com\/nz\/results\/\" onmouseout=\"this.style.transform='';this.style.borderColor='var(--ink)';this.style.boxShadow='var(--off) var(--off) 0 rgba(8,11,15,.10)'\" onmouseover=\"this.style.transform='translate(-3px,-3px)';this.style.borderColor='var(--g-deep)';this.style.boxShadow='9px 9px 0 rgba(8,11,15,.2)'\" style=\"display:block;border:2px solid var(--ink);background:#fff;box-shadow:var(--off) var(--off) 0 rgba(8,11,15,.10);padding:22px;text-decoration:none;transition:transform 150ms ease,box-shadow 150ms ease,border-color 150ms ease\"><h3 style=\"font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:19px;letter-spacing:.4px;text-transform:uppercase;color:var(--ink);margin:0 0 6px\">Authority Score 12 \u2192 25<\/h3><p style=\"font-size:14.5px;line-height:1.58;color:var(--t-body);margin:0\">A real client\u2019s authority growth in under 5 months \u2014 charted on our results page, with 55+ stores built and grown behind it.<\/p><span style=\"display:inline-block;margin-top:10px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:13.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--g-deep)\">See it \u2192<\/span><\/a>\n<\/div>\n<style>@media (max-width:760px){.pf2{grid-template-columns:1fr!important}}<\/style>\n<div class=\"cta-row\" style=\"margin-top:var(--s4)\"><a class=\"btn btn-ghost\" href=\"https:\/\/ecomoptix.com\/nz\/results\/\">See Published Results<\/a><\/div>\n<\/div>\n<\/section>\n<section class=\"sec mist\">\n<div class=\"wrap\">\n<span class=\"badge rev\"><span aria-hidden=\"true\" class=\"dot\"><\/span>Related<\/span>\n<h2 class=\"h2 rev\">Services that pair with this one.<\/h2>\n<div class=\"cluster rev\"><a href=\"https:\/\/ecomoptix.com\/nz\/shopify-development\/\">Shopify Development <span aria-hidden=\"true\">\u2192<\/span><\/a><a href=\"https:\/\/ecomoptix.com\/nz\/shopify-seo\/\">Shopify SEO <span aria-hidden=\"true\">\u2192<\/span><\/a><a href=\"https:\/\/ecomoptix.com\/nz\/conversion-rate-optimization\/\">Ecommerce CRO <span aria-hidden=\"true\">\u2192<\/span><\/a><\/div>\n<\/div>\n<\/section>\n<section class=\"sec\" id=\"why-us\">\n<div class=\"wrap\">\n<span class=\"badge rev\"><span aria-hidden=\"true\" class=\"dot\"><\/span>Why Choose Us<\/span>\n<h2 class=\"h2 rev\">How our Shopify speed optimisation compares to <span class=\"mark\">a typical agency.<\/span><\/h2>\n<p class=\"lede measure rev\" style=\"margin-top:var(--s3)\">Anyone can raise a lab score for a screenshot. Making your real visitors measurably faster is different work.<\/p>\n<div class=\"spec-wrap rev\"><table class=\"spec\"><thead><tr><th scope=\"col\">What matters<\/th><th scope=\"col\">Typical agency<\/th><th scope=\"col\">EcomOptix<\/th><\/tr><\/thead><tbody><tr><td class=\"term\">Measured on<\/td><td>One Lighthouse run on office wifi<\/td><td class=\"yes\">Real-user field data at the 75th percentile<\/td><\/tr><tr><td class=\"term\">Method<\/td><td>Minify-everything plugins<\/td><td class=\"yes\">App scripts priced in milliseconds and cut<\/td><\/tr><tr><td class=\"term\">Scope<\/td><td>A score for the screenshot<\/td><td class=\"yes\">LCP, INP and CLS fixed at template level<\/td><\/tr><tr><td class=\"term\">Durability<\/td><td>Fast for a week<\/td><td class=\"yes\">A speed budget with regression checks<\/td><\/tr><tr><td class=\"term\">Reporting<\/td><td>Lab scores<\/td><td class=\"yes\">Vitals beside conversion, by device<\/td><\/tr><\/tbody><\/table><\/div>\n<\/div>\n<\/section>\n<section class=\"sec mist\" id=\"why-trust\"><div class=\"wrap\"><style id=\"tw-css\">.tw-stars{margin-top:var(--s3);font-size:15px;color:var(--t-body)}.tw-stars b{color:#f5c518;letter-spacing:2px;font-size:16px;font-weight:400}.tw-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:var(--s4)}.tw-c{border:2px solid var(--ink);background:#fff;box-shadow:var(--off) var(--off) 0 rgba(8,11,15,.10);padding:20px;transition:transform 150ms ease,box-shadow 150ms ease}.tw-c:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 rgba(8,11,15,.2);border-color:var(--g-deep)}.tw-c h3{font-size:16.5px;text-transform:uppercase;color:var(--ink);margin:10px 0 6px;font-family:\"Barlow Condensed\",sans-serif;font-weight:900;letter-spacing:.4px}.tw-c p{font-size:14px;line-height:1.56;color:var(--t-body)}.tw-ic{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border:2px solid var(--ink);background:var(--pale)}@media (max-width:980px){.tw-grid{grid-template-columns:1fr 1fr}}@media (max-width:560px){.tw-grid{grid-template-columns:1fr}}<\/style><span class=\"badge rev\"><span aria-hidden=\"true\" class=\"dot\"><\/span>Why Stores Choose EcomOptix<\/span><h2 class=\"h2 rev\">Chosen for the work, <span class=\"mark\">kept for the results.<\/span><\/h2><p class=\"tw-stars rev\"><b>\u2605<\/b> Top Rated Plus on Upwork \u00b7 96% Job Success \u00b7 4.9 from 30 client ratings<\/p><div class=\"tw-grid\"><div class=\"tw-c rev\"><span class=\"tw-ic\"><svg aria-hidden=\"true\" fill=\"none\" height=\"20\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"20\"><circle cx=\"9\" cy=\"8\" r=\"3\"><\/circle><circle cx=\"17\" cy=\"10\" r=\"2.5\"><\/circle><path d=\"M3 20c0-3 3-5 6-5s6 2 6 5M14 15c3 0 5 2 5 5\"><\/path><\/svg><\/span><h3>Senior strategists only<\/h3><p>The people who plan your strategy do the work. No handoffs down a ladder, no juniors learning on your store.<\/p><\/div><div class=\"tw-c rev\"><span class=\"tw-ic\"><svg aria-hidden=\"true\" fill=\"none\" height=\"20\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"20\"><path d=\"M4 20V10M10 20V4M16 20v-7M22 20H2\"><\/path><\/svg><\/span><h3>Revenue-first reporting<\/h3><p>Live dashboards tie every ranking to orders and dollars \u2014 measured against a baseline set before work begins.<\/p><\/div><div class=\"tw-c rev\"><span class=\"tw-ic\"><svg aria-hidden=\"true\" fill=\"none\" height=\"20\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"20\"><path d=\"M12 3l7 3v6c0 4-3 7-7 9-4-2-7-5-7-9V6z\"><\/path><path d=\"M9 12l2 2 4-4\"><\/path><\/svg><\/span><h3>No lock-in contracts<\/h3><p>We earn the next month by delivering this one. Everything we build is documented and stays yours.<\/p><\/div><div class=\"tw-c rev\"><span class=\"tw-ic\"><svg aria-hidden=\"true\" fill=\"none\" height=\"20\" stroke=\"#080b0f\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.2\" viewbox=\"0 0 24 24\" width=\"20\"><circle cx=\"12\" cy=\"12\" r=\"9\"><\/circle><path d=\"M12 7v5l3 3\"><\/path><\/svg><\/span><h3>agreed business hours<\/h3><p>Questions asked in the morning get answered the same day, with your strategist reachable through your workday.<\/p><\/div><\/div><\/div><\/section><section class=\"sec paper\" id=\"faq\">\n<div class=\"wrap\">\n<span class=\"badge rev\"><span aria-hidden=\"true\" class=\"dot\"><\/span>Questions<\/span>\n<h2 class=\"h2 rev\">The questions to ask before you hire anyone.<\/h2>\n<div class=\"faq rev eo-soft-faq\"><details><summary>Why is my Shopify store slow?<\/summary><div class=\"a\"><p>Almost always the same stack: app scripts accumulated over years, oversized images, blocking fonts and a theme whose critical path grew by accretion. Shopify&#8217;s own infrastructure is fast; the weight is nearly always in what got added on top.<\/p><\/div><\/details><details><summary>Lighthouse says 90 but the store feels slow. Which is right?<\/summary><div class=\"a\"><p>The store. Lighthouse is one synthetic run on one simulated device; Google ranks and shoppers convert on field data \u2014 the real experience at the 75th percentile. We treat CrUX as the scoreboard and Lighthouse as a debugging tool.<\/p><\/div><\/details><details><summary>Does speed actually affect rankings?<\/summary><div class=\"a\"><p>Yes \u2014 Core Web Vitals is a confirmed ranking input, assessed on field data. It is rarely the biggest input, but in competitive niches it tips close calls, and its <a href=\"https:\/\/ecomoptix.com\/nz\/conversion-rate-optimization\/\" style=\"color:var(--g-deep);font-weight:600\">conversion effect<\/a> is larger than its ranking effect anyway.<\/p><\/div><\/details><details><summary>Can you make us fast without deleting our apps?<\/summary><div class=\"a\"><p>Partly \u2014 deferral, conditional loading and script sequencing recover a lot. But honest speed work usually finds apps whose millisecond cost exceeds their revenue contribution, and we will show you that maths app by app. What you cut is your call.<\/p><\/div><\/details><details><summary>How fast can our store get?<\/summary><div class=\"a\"><p>Most established stores can reach passing Core Web Vitals at p75 on mobile \u2014 green across LCP, INP and CLS. From a typical starting point that means LCP improvements of 30 to 60 percent. We quote targets after the audit, not before.<\/p><\/div><\/details><details><summary>How do we stay fast afterwards?<\/summary><div class=\"a\"><p>A speed budget: every future app or feature gets a millisecond price, and regression checks flag when a deploy breaches it. Speed decays by default; the budget is what stops the slide.<\/p><\/div><\/details><\/div>\n<\/div>\n<\/section>\n<section class=\"sec dark paper\">\n<div class=\"wrap\">\n<style id=\"x-cta-v1\">.xcta{display:block;text-align:center;max-width:860px;margin-inline:auto;background:var(--card-dark);border:2px solid var(--g-bright);box-shadow:10px 10px 0 #274826;padding:clamp(34px,4.5vw,60px) clamp(22px,4vw,56px);position:relative}.xcta-tag{position:absolute;top:-16px;left:50%;transform:translateX(-50%) rotate(-1.5deg);background:var(--g-bright);color:var(--ink);border:2px solid var(--ink);font-family:\"Barlow Condensed\",sans-serif;font-weight:900;font-size:14px;letter-spacing:2.4px;text-transform:uppercase;padding:6px 13.6px 6px 16px;white-space:nowrap}.xcta .h2{color:#fff;font-size:clamp(30px,3.4vw,46px)}.xcta .lede{max-width:54ch;margin:var(--s3) auto 0}.xcta .btn{font-size:20px;padding:20px 44px;min-height:64px;margin-top:var(--s4)}.xcta .btn-primary{background:var(--g-bright);color:var(--ink);border-color:var(--ink);box-shadow:8px 8px 0 rgba(255,255,255,.92)}.xcta .btn-primary:hover{background:#fff;color:var(--ink);transform:translate(-2px,-2px);box-shadow:10px 10px 0 rgba(255,255,255,.92)}.xcta .btn-primary:active{transform:translate(3px,3px);box-shadow:2px 2px 0 rgba(255,255,255,.92)}.xchips{margin-top:var(--s2);font-family:\"Barlow Condensed\",sans-serif;font-weight:700;font-size:14px;letter-spacing:2.2px;text-transform:uppercase;color:var(--t-mute-dark)}.xchips b{color:var(--g-bright);font-weight:700;font-size:8px;vertical-align:2px;margin:0 10px;letter-spacing:0}<\/style><div class=\"xcta2 rev\"><div class=\"xc-copy\"><span class=\"xc-tag\"><i aria-hidden=\"true\"><\/i>Free Growth Analysis<\/span><h2 class=\"h2\">Every slow second sends shoppers back to Google. <span class=\"mark\" style=\"color:#fff\">Stop the clock.<\/span><\/h2><p class=\"lede\">A senior strategist measures what your theme and apps really cost in load time and lost orders \u2014 and hands you the fixes in priority order. Free, recorded, in about three business days.<\/p><\/div><div class=\"xc-panel\"><p class=\"xc-kick\">What you get, free<\/p><ul class=\"xc-list\"><li>A recorded video teardown of your store<\/li><li>A revenue-leak map ranked by impact<\/li><li>The first three fixes, in about three business days<\/li><\/ul><a class=\"btn btn-primary\" href=\"https:\/\/ecomoptix.com\/nz\/contact\/\">Test My Store Speed <span aria-hidden=\"true\" class=\"arr\">\u2192<\/span><\/a><p class=\"xc-note\">Free \u2014 no card <b aria-hidden=\"true\">\u00b7<\/b> Findings first, then you decide <b aria-hidden=\"true\">\u00b7<\/b> The findings are yours either way<\/p><\/div><\/div>\n<\/div>\n<\/section>\n<\/main>\n<style>.foot-grid{grid-template-columns:1.4fr 1fr 1.1fr 1.2fr 1fr}@media (max-width:1080px){.foot-grid{grid-template-columns:1fr 1fr}}@media (max-width:560px){.foot-grid{grid-template-columns:1fr}}.foot h4+ul+h4{margin-top:22px}<\/style>\n<footer class=\"foot\"><style id=\"foot-v3\">footer.foot{background:var(--ink,#080b0f);color:#c7cdd2;padding:clamp(48px,5vw,72px) 0 26px;font-family:Barlow,system-ui,sans-serif}footer.foot .wrap{max-width:1200px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}footer.foot .logo{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-family:\"Barlow Condensed\",sans-serif;font-weight:900;font-size:24px;letter-spacing:.5px;text-transform:uppercase}footer.foot .logo .lg-1{color:#fff}footer.foot .logo .lg-2{color:var(--g-bright,#7fff6b)}footer.foot .logo .ai{background:var(--g-bright,#7fff6b);color:#080b0f;font-size:13px;padding:2px 7px;margin-left:2px}footer.foot p{margin:0}footer.foot .small{font-size:14px;line-height:1.62;color:#c7cdd2}footer.foot h4{font-family:\"Barlow Condensed\",sans-serif;font-weight:900;font-size:15px;letter-spacing:1.2px;text-transform:uppercase;color:var(--g-bright,#7fff6b);margin:0 0 10px}footer.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}footer.foot ul a{color:#c7cdd2;text-decoration:none;font-size:14.5px;transition:color 150ms ease}footer.foot ul a:hover{color:var(--g-bright,#7fff6b)}footer.foot ul a:focus-visible{outline:2px solid var(--g-bright,#7fff6b);outline-offset:2px}.f3-top{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:clamp(22px,3vw,40px);align-items:stretch;padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:30px}.f3-stars{margin-top:14px;font-size:13.5px;color:#c7cdd2}.f3-stars b{color:#f5c518;letter-spacing:2px;font-size:15px;font-weight:400}.f3-card{border:2px solid var(--g-bright,#7fff6b);background:rgba(255,255,255,.03);padding:20px}.f3-card h4{margin:0 0 8px}.f3-tag{font-family:\"Barlow Condensed\",sans-serif;font-weight:700;font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:rgba(255,255,255,.55);display:block;margin-bottom:4px}.f3-nl p{font-size:13.5px;line-height:1.55;color:#c7cdd2;margin:8px 0 14px}.f3-nl-row{display:flex;gap:8px}.f3-nl input{flex:1;min-width:0;background:#0d1117;border:1.5px solid rgba(255,255,255,.25);color:#fff;padding:11px 12px;font:inherit;font-size:14px}.f3-nl input:focus-visible{outline:2px solid var(--g-bright,#7fff6b);outline-offset:1px;border-color:var(--g-bright,#7fff6b)}.f3-nl button{background:var(--g-bright,#7fff6b);color:#0a0f0a;border:0;font-family:\"Barlow Condensed\",sans-serif;font-weight:900;font-size:15px;letter-spacing:1px;text-transform:uppercase;padding:0 18px;cursor:pointer;transition:transform 150ms ease,box-shadow 150ms ease}.f3-nl button:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 rgba(127,255,107,.35)}.f3-nl button:focus-visible{outline:2px solid #fff;outline-offset:2px}.f3-nl small{display:block;margin-top:10px;font-size:12px;color:rgba(255,255,255,.5)}.f3-line{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px dashed rgba(255,255,255,.14)}.f3-line:last-child{border-bottom:0;padding-bottom:2px}.f3-ic{display:inline-flex;flex:none;width:32px;height:32px;align-items:center;justify-content:center;border:1.5px solid var(--g-bright,#7fff6b)}.f3-k{display:block;font-family:\"Barlow Condensed\",sans-serif;font-weight:700;font-size:11.5px;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.55)}.f3-line a,.f3-v{color:#fff;font-weight:600;font-size:14.5px;text-decoration:none;transition:color 150ms ease}.f3-line a:hover{color:var(--g-bright,#7fff6b)}.f3-line a:focus-visible{outline:2px solid var(--g-bright,#7fff6b);outline-offset:2px}@media (max-width:980px){.f3-top{grid-template-columns:1fr}}.f4-cols{display:grid;grid-template-columns:repeat(5,1fr);gap:26px;padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:30px}.f4-cols h4{padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.18);margin-bottom:14px}.f4-mut{color:rgba(255,255,255,.45);font-size:13.5px}.f4-acc{margin-bottom:30px}.f4-acc .note{font-size:13px;color:rgba(255,255,255,.55);margin:-2px 0 14px}.f4-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:start}.f4-row details{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.02)}.f4-row summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;padding:14px 16px;font-family:\"Barlow Condensed\",sans-serif;font-weight:900;font-size:15.5px;letter-spacing:.7px;text-transform:uppercase;color:#fff}.f4-row summary::-webkit-details-marker{display:none}.f4-row summary .cnt{font-size:12px;color:#080b0f;background:var(--g-bright,#7fff6b);padding:2px 7px;font-weight:700}.f4-row summary .car{margin-left:auto;flex:none;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.08);display:inline-flex;align-items:center;justify-content:center;color:var(--g-bright,#7fff6b);font-size:11px;transition:transform 150ms ease,background 150ms ease}.f4-row details[open] summary .car{transform:rotate(180deg);background:rgba(127,255,107,.15)}.f4-row summary:hover{background:rgba(255,255,255,.04)}.f4-row summary:focus-visible{outline:2px solid var(--g-bright,#7fff6b);outline-offset:-2px}.f4-row .pane{padding:2px 16px 14px}.f4-row .pane ul{display:grid;gap:8px}.f4-bar{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.12);margin-top:8px;padding-top:22px;font-size:13px;color:rgba(255,255,255,.55)}.f4-legal{display:flex;gap:20px}.f4-legal a{color:rgba(255,255,255,.7);text-decoration:none;transition:color 150ms ease}.f4-legal a:hover{color:var(--g-bright,#7fff6b)}.f4-soc{display:flex;gap:10px}.f4-soc a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);display:inline-flex;align-items:center;justify-content:center;color:#c7cdd2;transition:background 150ms ease,color 150ms ease,transform 150ms ease,border-color 150ms ease}.f4-soc a:hover{background:var(--g-bright,#7fff6b);color:#080b0f;border-color:var(--g-bright,#7fff6b);transform:translateY(-2px)}.f4-soc a:focus-visible{outline:2px solid var(--g-bright,#7fff6b);outline-offset:2px}.f4-soc svg{width:17px;height:17px;display:block}@media (max-width:1080px){.f4-cols{grid-template-columns:repeat(3,1fr)}.f4-row{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.f4-cols{grid-template-columns:1fr 1fr}.f4-row{grid-template-columns:1fr}.f4-bar{justify-content:center;text-align:center}}@media (max-width:420px){.f4-cols{grid-template-columns:1fr}}.tile{transition:background 150ms ease,transform 150ms ease}.tile:hover{background:rgba(127,255,107,.08);transform:translateY(-3px)}.steps .step{transition:border-color 150ms ease,background 150ms ease}.steps .step:hover{border-top-color:var(--g-deep,#1f7512);background:rgba(127,255,107,.05)}.ledger .ledger-row{transition:background 150ms ease}.ledger .ledger-row:hover{background:rgba(127,255,107,.07)}.spec tr{transition:background 150ms ease}.spec tr:hover{background:rgba(127,255,107,.07)}.cards .card{transition:transform 150ms ease,box-shadow 150ms ease,border-color 150ms ease}.cards .card:hover{border-color:var(--g-deep,#1f7512)}.rev-card{transition:transform 150ms ease,border-color 150ms ease}.rev-card:hover{transform:translateY(-3px);border-color:var(--g-bright,#7fff6b)}.xbars{display:grid;gap:12px}.xb{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1.5px dashed rgba(255,255,255,.25);padding:14px 18px;transition:border-color 150ms ease,transform 150ms ease}.xb .lb{font-family:\"Barlow Condensed\",sans-serif;font-weight:900;font-size:16px;letter-spacing:.6px;text-transform:uppercase;color:rgba(255,255,255,.78)}.xb .role{font-family:\"Barlow Condensed\",sans-serif;font-weight:700;font-size:11.5px;letter-spacing:1.6px;text-transform:uppercase;color:rgba(255,255,255,.4);text-align:right}.xb:first-child{border:2px solid #fff;background:#fff;box-shadow:4px 4px 0 var(--g-bright,#7fff6b)}.xb:first-child .lb{color:#080b0f}.xb:first-child .role{color:#1f7512}.xb:hover{border-color:var(--g-bright,#7fff6b);transform:translateX(4px)}.xb:first-child:hover{transform:none}.xcap{margin-top:6px;font-family:\"Barlow Condensed\",sans-serif;font-weight:700;font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:var(--g-bright,#7fff6b)}.faq-dark details{border:1px solid rgba(255,255,255,.18)!important;background:rgba(255,255,255,.03)}.faq-dark summary{color:#fff}.faq-dark .a p{color:#c7cdd2}.faq-dark details:hover{border-color:var(--g-bright,#7fff6b)!important}.ny-shot:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 rgba(8,11,15,.2)!important;border-color:var(--g-deep,#1f7512)!important}.btn{border-radius:999px!important}.nav-links>li>a{transition:color 150ms ease}.nav-links>li>a:hover{color:var(--g-deep,#1f7512)}.xcta{border:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;max-width:680px;text-align:left!important}.xcta .xcta-tag{border:0!important;background:transparent!important;padding:0!important;color:var(--g-bright,#7fff6b)!important;font-size:13px!important;letter-spacing:2.4px!important;position:static!important;transform:none!important;display:inline-block!important;margin-bottom:12px!important}.xcta .h2{font-size:clamp(26px,3.2vw,40px)!important;line-height:1.05!important}.xcta .h2::after{content:\"\";display:block;width:64px;height:4px;background:var(--g-bright,#7fff6b);margin-top:18px}.xcta .lede{font-size:16px!important;max-width:52ch;margin-inline:0!important}.xcta .xchips{color:rgba(255,255,255,.5);font-size:13px}.xcta .xchips b{color:var(--g-bright,#7fff6b)}.nyi-x,.nyp-e,.nyd-c,.nys-i{box-shadow:6px 6px 0 rgba(0,0,0,.38)!important;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease!important}.nyi-x:hover,.nyp-e:hover,.nyd-c:hover,.nys-i:hover{transform:translate(-2px,-2px)!important;box-shadow:8px 8px 0 var(--g-bright,#7fff6b)!important;border-color:var(--g-bright,#7fff6b)!important}.nyp-c:hover{box-shadow:9px 9px 0 var(--g-bright,#7fff6b)!important;transform:translate(-2px,-2px)!important;border-color:var(--g-bright,#7fff6b)!important}:root{--sec:clamp(44px,5.2vw,80px);--wrap:1280px}@media (min-width:1600px){:root{--wrap:1500px}}@media (min-width:1900px){:root{--wrap:1600px}}.ny-hero,.nys-hero,.nyp-hero,.nyd-hero,.ct-hero,.ab-hero,.rs-hero,.lg-hero{padding:clamp(44px,5vw,76px) 0}main .btn{font-size:19px!important;padding:16px 32px!important;line-height:1.15!important;min-height:56px!important}.crumbs a,.crumbs span{display:inline-block;padding:6px 0}main .h1,main h1.h1{font-size:clamp(40px,4.4vw,62px)!important}main .h2,main h2.h2{font-size:clamp(28px,2.9vw,40px)!important;line-height:1.08!important}main .h3,main h3.h3{font-size:clamp(19px,1.5vw,22px)!important}main .xcta .h2{font-size:clamp(26px,2.6vw,36px)!important}main .xcta{padding:clamp(30px,4vw,52px) clamp(22px,4vw,48px)!important}main .xcta .btn{margin-top:var(--s3)!important}@media (min-width:1100px){.nav-links>li>a.geo-switch{font-size:13px;letter-spacing:1.6px;text-transform:uppercase;border:1.5px solid var(--bd,#d9ded8);border-radius:4px;padding:4px 9px;opacity:.8}.nav-links>li>a.geo-switch:hover{opacity:1;border-color:var(--g-deep,#1f7512)}}@media (max-width:480px){main .btn{font-size:16px!important;padding:14px 14px!important;letter-spacing:.8px!important;min-height:54px!important}main .btn-accent::after{display:none}}<\/style><div class=\"wrap\">\n<div class=\"f3-top\">\n<div><a class=\"logo\" href=\"https:\/\/ecomoptix.com\/nz\/\"><img loading=\"lazy\" alt=\"EcomOptix AI\" decoding=\"async\" height=\"80\" loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/09\/ecomoptix-ai-logo-white.png\" width=\"300\"\/><\/a><p class=\"small\" style=\"margin-top:16px;max-width:42ch\">EcomOptix is a trusted ecommerce growth agency serving New Zealand helping brands scale with SEO, AI search optimisation and conversion strategy \u2014 smarter digital experiences that drive visibility, traffic and long-term growth.<\/p><p class=\"f3-stars\"><a href=\"https:\/\/ecomoptix.com\/nz\/results\/\">Client feedback \u00b7 Watch the testimonials \u2197<\/a><\/p><\/div>\n<div class=\"f3-card f3-nl\"><span class=\"f3-tag\">Your next step<\/span><h4>Talk through your store\u2019s priorities<\/h4><p>SEO, conversion or development\u2014share what you want to improve and we\u2019ll help define the next step.<\/p><a class=\"btn btn-p\" href=\"https:\/\/ecomoptix.com\/nz\/contact\/\">Let\u2019s talk growth \u2197<\/a><\/div>\n<div class=\"f3-card\"><span class=\"f3-tag\">Get in touch<\/span><h4>Direct lines<\/h4><div class=\"f3-line\"><span class=\"f3-ic\"><svg aria-hidden=\"true\" fill=\"none\" height=\"16\" stroke=\"#7fff6b\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewbox=\"0 0 24 24\" width=\"16\"><rect height=\"14\" rx=\"2\" width=\"18\" x=\"3\" y=\"5\"><\/rect><path d=\"M3 7l9 6 9-6\"><\/path><\/svg><\/span><span><span class=\"f3-k\">Email<\/span><a href=\"mailto:manoj@ecomoptix.com\">manoj@ecomoptix.com<\/a><\/span><\/div><div class=\"f3-line\"><span class=\"f3-ic\"><svg aria-hidden=\"true\" fill=\"none\" height=\"16\" stroke=\"#7fff6b\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewbox=\"0 0 24 24\" width=\"16\"><path d=\"M12 21s-7-5.5-7-11a7 7 0 0114 0c0 5.5-7 11-7 11z\"><\/path><circle cx=\"12\" cy=\"10\" r=\"2.5\"><\/circle><\/svg><\/span><span><span class=\"f3-k\">Availability<\/span><span class=\"f3-v\">Serving New Zealand remotely \u00b7 Calls by appointment<\/span><\/span><\/div><\/div>\n<\/div>\n<div class=\"f4-cols\">\n<div><h4>Top Services<\/h4><ul><li><a href=\"https:\/\/ecomoptix.com\/nz\/ecommerce-seo\/\">Ecommerce SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/shopify-seo\/\">Shopify SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/woocommerce-seo\/\">WooCommerce SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/shopify-development\/\">Shopify Development<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/white-label-ecommerce-seo\/\">White Label SEO<\/a><\/li><\/ul><\/div>\n\n<div><h4>Resources<\/h4><ul><li><a href=\"https:\/\/ecomoptix.com\/nz\/results\/\">Case Studies<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/contact\/\">Free Growth Analysis<\/a><\/li><\/ul><\/div>\n<div><h4>Company<\/h4><ul><li><a href=\"https:\/\/ecomoptix.com\/nz\/about\/\">About Us<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/results\/\">Results<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/contact\/\">Contact<\/a><\/li><\/ul><\/div>\n<div><h4>For Agencies<\/h4><ul><li><a href=\"https:\/\/ecomoptix.com\/nz\/white-label-ecommerce-seo\/\">White Label SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/white-label-development\/\">White Label Development<\/a><\/li><\/ul><\/div>\n<\/div>\n<div class=\"f4-acc\"><h4>All services<\/h4><p class=\"note\">Complete catalogue. Tap a category to expand.<\/p><div class=\"f4-row\">\n<details><summary>Platform SEO <span class=\"cnt\">6<\/span><span aria-hidden=\"true\" class=\"car\">\u25bc<\/span><\/summary><div class=\"pane\"><ul><li><a href=\"https:\/\/ecomoptix.com\/nz\/ecommerce-seo\/\">Ecommerce SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/shopify-seo\/\">Shopify SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/woocommerce-seo\/\">WooCommerce SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/magento-seo\/\">Magento SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/bigcommerce-seo\/\">BigCommerce SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/enterprise-ecommerce-seo\/\">Enterprise Ecom SEO<\/a><\/li><\/ul><\/div><\/details>\n<details><summary>Industry SEO <span class=\"cnt\">7<\/span><span aria-hidden=\"true\" class=\"car\">\u25bc<\/span><\/summary><div class=\"pane\"><ul><li><a href=\"https:\/\/ecomoptix.com\/nz\/furniture-store-seo\/\">Furniture Store SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/jewelry-store-seo\/\">Jewellery Store SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/pet-store-seo\/\">Pet Store SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/beauty-and-cosmetics-seo\/\">Beauty &amp; Cosmetics SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/fashion-seo\/\">Fashion SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/food-and-beverage-seo\/\">Food &amp; Beverage SEO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/supplement-seo\/\">Supplement SEO<\/a><\/li><\/ul><\/div><\/details>\n<details><summary>Strategy &amp; Conversion <span class=\"cnt\">3<\/span><span aria-hidden=\"true\" class=\"car\">\u25bc<\/span><\/summary><div class=\"pane\"><ul><li><a href=\"https:\/\/ecomoptix.com\/nz\/conversion-rate-optimization\/\">Ecommerce CRO<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/shopify-migration\/\">Shopify Migration<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/white-label-ecommerce-seo\/\">White Label Ecom SEO<\/a><\/li><\/ul><\/div><\/details>\n<details><summary>Development <span class=\"cnt\">4<\/span><span aria-hidden=\"true\" class=\"car\">\u25bc<\/span><\/summary><div class=\"pane\"><ul><li><a href=\"https:\/\/ecomoptix.com\/nz\/shopify-development\/\">Shopify Development<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/woocommerce-development\/\">WooCommerce Development<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/shopify-speed-optimization\/\">Shopify Speed Optimisation<\/a><\/li><li><a href=\"https:\/\/ecomoptix.com\/nz\/white-label-development\/\">White Label Development<\/a><\/li><\/ul><\/div><\/details>\n<\/div><\/div>\n<div class=\"f4-bar\"><span>\u00a9 2026 EcomOptix Private Limited. All Rights Reserved.<\/span><span class=\"f4-legal\"><a href=\"https:\/\/ecomoptix.com\/privacy-policy\/\">Privacy<\/a><a href=\"https:\/\/ecomoptix.com\/terms-of-service\/\">Terms<\/a><a href=\"https:\/\/ecomoptix.com\/nz\/sitemap_index.xml\">Sitemap<\/a><\/span><span class=\"f4-soc\"><a aria-label=\"EcomOptix on LinkedIn\" href=\"https:\/\/www.linkedin.com\/company\/ecomoptix\/\" rel=\"noopener\" target=\"_blank\"><svg aria-hidden=\"true\" fill=\"currentColor\" viewbox=\"0 0 24 24\"><path d=\"M6.94 5a2 2 0 11-4-.002A2 2 0 016.94 5zM3.5 8.5h3v12h-3zM9.5 8.5h2.9v1.64h.04c.4-.77 1.39-1.58 2.86-1.58 3.06 0 3.7 2.01 3.7 4.63v7.31h-3v-6.48c0-1.55-.03-3.54-2.16-3.54-2.16 0-2.34 1.69-2.34 3.43v6.59h-3z\"><\/path><\/svg><\/a><a aria-label=\"EcomOptix on Facebook\" href=\"https:\/\/www.facebook.com\/profile.php?id=61569166120767\" rel=\"noopener\" target=\"_blank\"><svg aria-hidden=\"true\" fill=\"currentColor\" viewbox=\"0 0 24 24\"><path d=\"M13.5 21.9v-7.9h2.66l.4-3.09H13.5V8.94c0-.9.25-1.5 1.54-1.5h1.64V4.67c-.28-.04-1.26-.12-2.4-.12-2.38 0-4 1.45-4 4.12v2.23H7.6v3.09h2.68v7.9z\"><\/path><\/svg><\/a><a aria-label=\"EcomOptix on Instagram\" href=\"https:\/\/www.instagram.com\/ecomoptix\/\" rel=\"noopener\" target=\"_blank\"><svg aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" viewbox=\"0 0 24 24\"><rect height=\"18\" rx=\"5\" width=\"18\" x=\"3\" y=\"3\"><\/rect><circle cx=\"12\" cy=\"12\" r=\"4\"><\/circle><circle cx=\"17.3\" cy=\"6.7\" fill=\"currentColor\" r=\"1.1\" stroke=\"none\"><\/circle><\/svg><\/a><a aria-label=\"EcomOptix on X\" href=\"https:\/\/x.com\/manoj1832000\" rel=\"noopener\" target=\"_blank\"><svg aria-hidden=\"true\" fill=\"currentColor\" viewbox=\"0 0 24 24\"><path d=\"M17.75 3h3.07l-6.7 7.66L22 21h-6.17l-4.83-6.32L5.46 21H2.38l7.17-8.19L2 3h6.33l4.37 5.78zm-1.08 16.16h1.7L7.4 4.74H5.58z\"><\/path><\/svg><\/a><\/span><\/div>\n<script id=\"f3nl\">(function(){var b=document.getElementById(\"f3join\");if(!b)return;b.addEventListener(\"click\",function(){var i=document.getElementById(\"f3em\");var v=i?i.value.trim():\"\";if(!v){if(i)i.focus();return}location.href=\"mailto:manoj@ecomoptix.com?subject=\"+encodeURIComponent(\"Newsletter signup - The EcomOptix Monthly\")+\"&body=\"+encodeURIComponent(\"Please add me to the monthly newsletter: \"+v)})})();<\/script>\n<\/div><\/footer>\n<style id=\"x-anim-v2\">html.js-anim .cards .card.rev:nth-child(2),html.js-anim .steps .step.rev:nth-child(2),html.js-anim .ledger .ledger-row.rev:nth-child(2){transition-delay:.08s}html.js-anim .cards .card.rev:nth-child(3),html.js-anim .steps .step.rev:nth-child(3),html.js-anim .ledger .ledger-row.rev:nth-child(3){transition-delay:.16s}html.js-anim .cards .card.rev:nth-child(4),html.js-anim .steps .step.rev:nth-child(4),html.js-anim .ledger .ledger-row.rev:nth-child(4){transition-delay:.24s}html.js-anim .cards .card.rev:nth-child(5),html.js-anim .steps .step.rev:nth-child(5),html.js-anim .ledger .ledger-row.rev:nth-child(5){transition-delay:.32s}html.js-anim .cards .card.rev:nth-child(6),html.js-anim .steps .step.rev:nth-child(6){transition-delay:.4s}@keyframes xdash{from{opacity:0;transform:translateY(20px) scale(.985)}to{opacity:1;transform:none}}html.js-anim .svc-hero .dash{animation:xdash .7s cubic-bezier(.22,1,.36,1) .18s backwards}@keyframes xstrip{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}html.js-anim .numstrip{animation:xstrip .6s cubic-bezier(.22,1,.36,1) .45s backwards}@media (prefers-reduced-motion:reduce){html.js-anim .svc-hero .dash,html.js-anim .numstrip{animation:none}html.js-anim .cards .card.rev,html.js-anim .steps .step.rev,html.js-anim .ledger .ledger-row.rev{transition-delay:0s}}<\/style><script id=\"x-count-v2\">(function(){if(matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;var els=document.querySelectorAll(\".numstrip b\");if(!els.length||!(\"IntersectionObserver\" in window))return;var io=new IntersectionObserver(function(es){es.forEach(function(e){if(!e.isIntersecting)return;io.unobserve(e.target);var node=e.target.childNodes[0];if(!node||node.nodeType!==3)return;var target=parseInt(node.textContent,10);if(isNaN(target))return;var t0=null;function st(ts){if(!t0)t0=ts;var p=Math.min((ts-t0)\/900,1);var ease=p<.5?2*p*p:-1+(4-2*p)*p;node.textContent=Math.round(target*ease);if(p<1)requestAnimationFrame(st);else node.textContent=target}requestAnimationFrame(st)})},{threshold:.4});els.forEach(function(el){io.observe(el)})})();<\/script>\n<style id=\"x-sections-v3\">.whofor .cards{grid-template-columns:repeat(3,1fr)}.stackbar{border:2px solid var(--g-bright);background:var(--ink-2);padding:15px 20px;display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-top:10px;opacity:.22;transform:translateY(12px);transition:opacity .45s ease,transform .5s cubic-bezier(.22,1,.36,1),box-shadow .45s ease}.stackbar .lb{font-family:\"Barlow Condensed\",sans-serif;font-weight:900;font-size:19px;letter-spacing:.6px;text-transform:uppercase;color:#fff}.stackbar .role{font-size:13px;color:var(--t-mute-dark);text-transform:uppercase;letter-spacing:1.2px;white-space:nowrap}.stackbar.on{opacity:1;transform:none;box-shadow:5px 5px 0 rgba(127,255,107,.32)}.stackcap{margin-top:14px;border:2px dashed var(--border-dark);padding:14px 20px;text-align:center;font-family:\"Barlow Condensed\",sans-serif;font-weight:900;font-size:20px;letter-spacing:1.4px;text-transform:uppercase;color:var(--t-mute-dark);opacity:0;transform:translateY(10px);transition:all .5s ease}.stackcap.on{opacity:1;transform:none;background:var(--g-bright);color:#07240a;border-style:solid;border-color:var(--g-bright)}.stackwrap{max-width:640px;margin-top:var(--s5)}@media (prefers-reduced-motion:reduce){.stackbar,.stackcap{opacity:1;transform:none}.stackcap{background:var(--g-bright);color:#07240a;border-style:solid}}@media (max-width:1080px){.whofor .cards{grid-template-columns:1fr}}<\/style>\n<style id=\"x-sys-v5\">.xsys{padding-block:0}.xsys-wrap{min-height:240vh;position:relative}.xsys-stage{position:sticky;top:76px;min-height:calc(100vh - 76px);max-height:calc(100vh - 76px);display:flex;align-items:center;overflow:hidden}.xsys-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,3.5vw,60px);align-items:center;width:100%}.xsys .badge{margin-bottom:14px}.xsys .h2{font-size:clamp(26px,2.8vw,40px)}.xits{margin-top:clamp(14px,2.4vh,30px)}.xit{padding:clamp(7px,1.3vh,13px) 0 clamp(7px,1.3vh,13px) 20px;border-left:3px solid var(--border-dark);opacity:.32;transition:opacity .35s ease,border-color .35s ease}.xit.cur{opacity:1;border-left-color:var(--g-bright)}.xit .xn{font-family:\"Barlow Condensed\",sans-serif;font-size:12.5px;font-weight:900;letter-spacing:2px;color:var(--g-bright);display:block;margin-bottom:3px}.xit h3{color:#fff;font-size:clamp(17px,1.6vw,22px);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}.xit p{font-size:14px;line-height:1.5;color:var(--t-on-dark);max-width:46ch}.xb{border:2px solid var(--g-bright);background:var(--ink-2);padding:clamp(10px,1.6vh,14px) 20px;display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-top:clamp(7px,1.1vh,10px);opacity:.22;transform:translateY(12px);transition:opacity .4s ease,transform .45s cubic-bezier(.22,1,.36,1),box-shadow .4s ease}.xb .lb{font-family:\"Barlow Condensed\",sans-serif;font-weight:900;font-size:17.5px;letter-spacing:.6px;text-transform:uppercase;color:#fff}.xb .role{font-size:12px;color:var(--t-mute-dark);text-transform:uppercase;letter-spacing:1.1px;white-space:nowrap}.xb.on{opacity:1;transform:none;box-shadow:5px 5px 0 rgba(127,255,107,.32)}.xcap{margin-top:clamp(9px,1.4vh,14px);border:2px dashed var(--border-dark);padding:clamp(9px,1.5vh,13px) 20px;text-align:center;font-family:\"Barlow Condensed\",sans-serif;font-weight:900;font-size:18px;letter-spacing:1.3px;text-transform:uppercase;color:var(--t-mute-dark);opacity:0;transform:translateY(10px);transition:all .5s ease}.xcap.on{opacity:1;transform:none;background:var(--g-bright);color:#07240a;border-style:solid;border-color:var(--g-bright)}.xsys.x-tight .xit p{display:none}.xsys.x-tight .xit{padding-block:7px}.xsys.x-tight .h2{font-size:clamp(22px,2.2vw,30px)}.xsys.x-tight .badge{margin-bottom:9px;padding:8px 18px}.xsys.x-tight .xits{margin-top:12px}.xsys.x-tight .xb{padding:9px 16px;margin-top:7px}.xsys.x-tight .xcap{padding:9px 16px;font-size:16px}.xsys.x-static{padding-block:var(--sec)}.xsys.x-static .xsys-wrap{min-height:0}.xsys.x-static .xsys-stage{position:static;min-height:0;max-height:none;overflow:visible;display:block}.xsys.x-static .xit{opacity:1}@media (max-width:900px){.xsys{padding-block:var(--sec)}.xsys-wrap{min-height:0}.xsys-stage{position:static;min-height:0;max-height:none;overflow:visible;display:block}.xsys-grid{grid-template-columns:1fr}.xit{opacity:1}}@media (prefers-reduced-motion:reduce){.xb,.xcap{opacity:1;transform:none}.xit{opacity:1}.xcap{background:var(--g-bright);color:#07240a;border-style:solid}}<\/style><script id=\"x-sys-v5js\">(function(){var z=document.querySelector(\".xsys\");if(!z)return;var wrapEl=z.querySelector(\".xsys-wrap\");var stage=z.querySelector(\".xsys-stage\");var bars=z.querySelectorAll(\".xb\");var cap=z.querySelector(\".xcap\");var its=z.querySelectorAll(\".xit\");var N=bars.length;var played=false;function allOn(){for(var i=0;i<N;i++){bars[i].classList.add(\"on\")}for(var j=0;j<its.length;j++){its[j].classList.add(\"cur\")}if(cap){cap.classList.add(\"on\")}}if(matchMedia(\"(prefers-reduced-motion: reduce)\").matches){allOn();return}function setK(k,p){for(var i=0;i<N;i++){bars[i].classList.toggle(\"on\",k>i)}var cur=Math.floor(k);if(cur<0){cur=0}if(cur>N-1){cur=N-1}for(var j=0;j<its.length;j++){its[j].classList.toggle(\"cur\",j===cur)}if(cap){cap.classList.toggle(\"on\",p>0.9)}}function autoplay(){if(played){return}played=true;if(!(\"IntersectionObserver\" in window)){allOn();return}var io=new IntersectionObserver(function(es){es.forEach(function(e){if(!e.isIntersecting){return}io.disconnect();var i=0;var t=setInterval(function(){if(i<N){bars[i].classList.add(\"on\");if(i<its.length){its[i].classList.add(\"cur\")}i++}else{if(cap){cap.classList.add(\"on\")}clearInterval(t)}},340)})},{threshold:.25});io.observe(z);setTimeout(allOn,9000)}var staticMode=false;function fit(){if(matchMedia(\"(max-width:900px)\").matches){staticMode=true;autoplay();return}z.classList.remove(\"x-tight\");z.classList.remove(\"x-static\");var avail=window.innerHeight-76;if(stage.scrollHeight>avail+4){z.classList.add(\"x-tight\")}if(stage.scrollHeight>avail+4){z.classList.remove(\"x-tight\");z.classList.add(\"x-static\");staticMode=true;autoplay();return}staticMode=false}var tick=false;function draw(){tick=false;if(staticMode){return}var r=wrapEl.getBoundingClientRect();var vh=window.innerHeight;var travel=r.height-vh;if(travel<1){setK(N,1);return}var p=(0-r.top)\/travel;if(p<0){p=0}if(p>1){p=1}var k=(p-0.08)\/0.8*(N+0.4);setK(k,p)}function onS(){if(tick){return}tick=true;requestAnimationFrame(draw)}var rT=null;function onR(){if(rT){clearTimeout(rT)}rT=setTimeout(function(){fit();onS()},180)}window.addEventListener(\"scroll\",onS,{passive:true});window.addEventListener(\"resize\",onR,{passive:true});fit();draw();setTimeout(function(){if(staticMode){return}var anyOn=false;for(var i=0;i<N;i++){if(bars[i].classList.contains(\"on\")){anyOn=true}}if(!anyOn){fit();draw()}},2000)})();<\/script>\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@graph\": [{\"@type\": \"BreadcrumbList\", \"@id\": \"https:\/\/ecomoptix.com\/nz\/shopify-speed-optimization\/#breadcrumb\", \"itemListElement\": [{\"@type\": \"ListItem\", \"position\": 1, \"name\": \"Home\", \"item\": \"https:\/\/ecomoptix.com\/nz\/\"}, {\"@type\": \"ListItem\", \"position\": 2, \"name\": \"Shopify Speed Optimisation\", \"item\": \"https:\/\/ecomoptix.com\/nz\/shopify-speed-optimization\/\"}]}, {\"@type\": \"Service\", \"@id\": \"https:\/\/ecomoptix.com\/nz\/shopify-speed-optimization\/#service\", \"name\": \"Shopify Speed Optimisation Services\", \"serviceType\": \"Shopify Speed Optimisation\", \"url\": \"https:\/\/ecomoptix.com\/nz\/shopify-speed-optimization\/\", \"description\": \"Shopify speed optimisation for United States stores. Real-user Core Web Vitals work \u2014 LCP, INP, CLS \u2014 through app script audits, image delivery and theme performance engineering.\", \"provider\": {\"@type\": \"Organization\", \"name\": \"EcomOptix\", \"url\": \"https:\/\/ecomoptix.com\/nz\/\"}, \"areaServed\": {\"@type\": \"Country\", \"name\": \"New Zealand\"}, \"audience\": {\"@type\": \"BusinessAudience\", \"name\": \"Shopify merchants with slow stores\"}, \"hasOfferCatalog\": {\"@type\": \"OfferCatalog\", \"name\": \"Shopify Speed Optimisation Services deliverables\", \"itemListElement\": [{\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"Field-data diagnosis\"}}, {\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"App script audit\"}}, {\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"Image &amp; font delivery\"}}, {\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"Theme critical path\"}}, {\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"CLS elimination\"}}, {\"@type\": \"Offer\", \"itemOffered\": {\"@type\": \"Service\", \"name\": \"Conversion-tied reporting\"}}]}}, {\"@type\": \"FAQPage\", \"@id\": \"https:\/\/ecomoptix.com\/nz\/shopify-speed-optimization\/#faq\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"Why is my Shopify store slow?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Almost always the same stack: app scripts accumulated over years, oversized images, blocking fonts and a theme whose critical path grew by accretion. Shopify's own infrastructure is fast; the weight is nearly always in what got added on top.\"}}, {\"@type\": \"Question\", \"name\": \"Lighthouse says 90 but the store feels slow. Which is right?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"The store. Lighthouse is one synthetic run on one simulated device; Google ranks and shoppers convert on field data \u2014 the real experience at the 75th percentile. We treat CrUX as the scoreboard and Lighthouse as a debugging tool.\"}}, {\"@type\": \"Question\", \"name\": \"Does speed actually affect rankings?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Yes \u2014 Core Web Vitals is a confirmed ranking input, assessed on field data. It is rarely the biggest input, but in competitive niches it tips close calls, and its conversion effect is larger than its ranking effect anyway.\"}}, {\"@type\": \"Question\", \"name\": \"Can you make us fast without deleting our apps?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Partly \u2014 deferral, conditional loading and script sequencing recover a lot. But honest speed work usually finds apps whose millisecond cost exceeds their revenue contribution, and we will show you that maths app by app. What you cut is your call.\"}}, {\"@type\": \"Question\", \"name\": \"How fast can our store get?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Most established stores can reach passing Core Web Vitals at p75 on mobile \u2014 green across LCP, INP and CLS. From a typical starting point that means LCP improvements of 30 to 60 percent. We quote targets after the audit, not before.\"}}, {\"@type\": \"Question\", \"name\": \"How do we stay fast afterwards?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"A speed budget: every future app or feature gets a millisecond price, and regression checks flag when a deploy breaches it. Speed decays by default; the budget is what stops the slide.\"}}]}]}<\/script>\n<script>\n\/* Reveal on scroll, written so it can only ever ADD visibility.\n   - content ships visible; the hiding class is applied by this script\n   - a geometry sweep reveals anything on screen without involving the observer\n   - a scroll listener repeats the sweep, so it still works if IO never fires\n   - a 2.5s failsafe drops the mechanism entirely if nothing has revealed *\/\n(function(){\n  var els = document.querySelectorAll('.rev');\n  if (!els.length) { return; }\n  if (matchMedia('(prefers-reduced-motion: reduce)').matches) { return; }\n  var root = document.documentElement;\n  root.classList.add('js-anim');\n  var queued=false;\n  function scheduleSweep(){if(!queued){queued=true;requestAnimationFrame(sweep);}}\n  function sweep(){\n    queued=false;\n    var remaining=0;\n    for (var i=0;i<els.length;i++){\n      if(els[i].classList.contains('in'))continue;\n      if(els[i].getBoundingClientRect().top<window.innerHeight*.95)els[i].classList.add('in');\n      else remaining++;\n    }\n    if(!remaining){window.removeEventListener('scroll',scheduleSweep);window.removeEventListener('resize',scheduleSweep);}\n  }\n  window.addEventListener('scroll',scheduleSweep,{passive:true});\n  window.addEventListener('resize',scheduleSweep,{passive:true});\n  sweep();\n  if ('IntersectionObserver' in window) {\n    var io = new IntersectionObserver(function(entries){\n      for (var i = 0; i < entries.length; i++) {\n        if (entries[i].isIntersecting) {\n          entries[i].target.classList.add('in');\n          io.unobserve(entries[i].target);\n        }\n      }\n    }, { rootMargin: '0px 0px -6% 0px', threshold: 0.01 });\n    for (var j = 0; j < els.length; j++) { io.observe(els[j]); }\n  }\n  setTimeout(function(){\n    if (!document.querySelectorAll('.rev.in').length) { root.classList.remove('js-anim'); }\n  }, 2500);\n})();\n\n\/* Mega menu. Click to toggle on desktop, accordion on mobile, Escape closes,\n   and it never traps keyboard users inside the panel. *\/\n(function(){\n  var trigger = document.getElementById('svctrigger');\n  var panel = document.getElementById('megaservices');\n  var burger = document.getElementById('burger');\n  var links = document.getElementById('navlinks');\n  if (!trigger) { return; }\n  function setMega(open){\n    panel.setAttribute('data-open', open ? 'true' : 'false');\n    trigger.setAttribute('aria-expanded', open ? 'true' : 'false');\n  }\n  trigger.addEventListener('click', function(e){\n    e.stopPropagation();\n    setMega(trigger.getAttribute('aria-expanded') !== 'true');\n  });\n  document.addEventListener('click', function(e){\n    if (panel.getAttribute('data-open') !== 'true') { return; }\n    if (panel.contains(e.target)) { return; }\n    if (trigger.contains(e.target)) { return; }\n    setMega(false);\n  });\n  document.addEventListener('keydown', function(e){\n    if (e.key === 'Escape') { setMega(false); trigger.focus(); }\n  });\n  if (burger) {\n    burger.addEventListener('click', function(){\n      var open = links.classList.toggle('open');\n      burger.setAttribute('aria-expanded', open ? 'true' : 'false');\n      if (!open) { setMega(false); }\n    });\n  }\n})();\n\n<\/script>\n<style id=\"premium-v6\">.crumbs{display:none!important}.svc-hero{padding-top:clamp(34px,4.4vw,60px)!important}.svc-h1{font-size:clamp(34px,3.3vw,48px)!important;line-height:1.04!important}.ny-h1{font-size:clamp(34px,3.4vw,50px)!important;line-height:1.04!important}.svc-hook{font-size:clamp(17px,1.5vw,22px)!important}.xcta2{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,60px);align-items:center;max-width:1180px;margin-inline:auto;background:#0e1318;border:2px solid var(--g-bright,#7fff6b);box-shadow:12px 12px 0 #1c3a1a;padding:clamp(28px,4.2vw,60px);text-align:left;position:relative}.xc-tag{display:inline-flex;align-items:center;gap:10px;border:1.5px solid rgba(127,255,107,.5);border-radius:999px;padding:7px 15px 7px 12px;font-family:\"Barlow Condensed\",sans-serif;font-weight:900;font-size:13px;letter-spacing:2.2px;text-transform:uppercase;color:var(--g-bright,#7fff6b);line-height:1}.xc-tag i{width:8px;height:8px;border-radius:50%;background:var(--g-bright,#7fff6b);animation:xcpulse 2.4s ease-out infinite}@keyframes xcpulse{0%{box-shadow:0 0 0 0 rgba(127,255,107,.55)}70%{box-shadow:0 0 0 9px rgba(127,255,107,0)}100%{box-shadow:0 0 0 0 rgba(127,255,107,0)}}.xc-copy .h2{color:#fff!important;margin-top:18px;font-size:clamp(28px,2.9vw,42px)!important;line-height:1.04!important;max-width:none}.xc-copy .h2::after{display:none!important}.xc-copy .h2 .mark{color:#fff!important}.xc-copy .lede{color:#c7cdd2!important;margin:18px 0 0!important;max-width:50ch;font-size:clamp(16px,1.2vw,18px)!important;line-height:1.6}.xc-panel{background:#fff;color:var(--ink,#080b0f);border:2px solid var(--ink,#080b0f);padding:clamp(22px,2.4vw,32px);box-shadow:8px 8px 0 var(--g-bright,#7fff6b);transition:transform .2s ease,box-shadow .2s ease}.xcta2:hover .xc-panel{transform:translate(-3px,-3px);box-shadow:11px 11px 0 var(--g-bright,#7fff6b)}.xc-kick{font-family:\"Barlow Condensed\",sans-serif;font-weight:900;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--g-deep,#1f7512);margin:0 0 14px}.xc-list{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:13px}.xc-list li{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:center;font-size:15.5px;line-height:1.4;color:var(--t-dark,#14181d);font-weight:500}.xc-list li::before{content:\"\";width:28px;height:28px;border-radius:50%;background:var(--ink,#080b0f) url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%237fff6b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'\/><\/svg>\") center\/15px no-repeat}main .xc-panel .btn{width:100%;justify-content:center;background:var(--ink,#080b0f)!important;color:#fff!important;border:2px solid var(--ink,#080b0f)!important;box-shadow:5px 5px 0 var(--g-bright,#7fff6b)!important;padding:16px 18px!important;font-size:18px!important;letter-spacing:1px;transition:background-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}main .xc-panel .btn:hover{background:var(--g-bright,#7fff6b)!important;color:var(--ink,#080b0f)!important;transform:translate(3px,3px);box-shadow:2px 2px 0 var(--ink,#080b0f)!important}main .xc-panel .btn .arr{display:inline-block;margin-left:8px;transition:transform .18s ease}main .xc-panel .btn:hover .arr{transform:translateX(5px)}.xc-note{margin:14px 0 0;font-size:13px;line-height:1.5;color:var(--t-mute,#5d6670);text-align:center}.xc-note b{color:var(--g-deep,#1f7512);margin:0 7px;font-weight:900}.xc-alt{display:block;text-align:center;margin-top:14px;font-weight:600;font-size:15px;color:var(--ink,#080b0f);text-decoration:underline;text-decoration-color:var(--g-bright,#7fff6b);text-decoration-thickness:3px;text-underline-offset:5px;transition:color .15s ease}.xc-alt:hover{color:var(--g-deep,#1f7512)}@media (max-width:980px){.xcta2{grid-template-columns:1fr}}@media (max-width:480px){.xcta2{padding:26px 18px;box-shadow:6px 6px 0 #1c3a1a}.xc-panel{padding:20px 16px;box-shadow:5px 5px 0 var(--g-bright,#7fff6b)}main .xc-panel .btn{font-size:16px!important}}main .btn{transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}main .btn:focus-visible,main a:focus-visible,main summary:focus-visible{outline:3px solid var(--g-bright,#7fff6b);outline-offset:3px}main .badge{transition:transform .18s ease,background-color .18s ease}main section:hover>.wrap>.badge .dot{animation:xcpulse 2.4s ease-out infinite}main .lede a:not(.btn),main .card p a,main .ledger-row p a,main .faq .a a,main .step p a{color:inherit;text-decoration:underline;text-decoration-color:var(--g-bright,#7fff6b);text-decoration-thickness:2px;text-underline-offset:4px;transition:color .15s ease,text-decoration-color .15s ease}main .lede a:not(.btn):hover,main .card p a:hover,main .faq .a a:hover,main .step p a:hover{color:var(--g-deep,#1f7512);text-decoration-color:var(--g-deep,#1f7512)}.dark main .lede a:not(.btn):hover,main .dark .lede a:not(.btn):hover,main .ledger-row p a:hover{color:var(--g-bright,#7fff6b)}.card .ico,.tw-c .tw-ic,.step .step-ic{transition:background-color .18s ease,transform .18s ease,border-color .18s ease}.card:hover .ico,.tw-c:hover .tw-ic,.step:hover .step-ic{background:var(--g-bright,#7fff6b)!important;transform:rotate(-6deg) scale(1.06)}.ledger-row .n{transition:transform .18s ease,color .18s ease}.ledger-row:hover .n{transform:translateX(4px);color:#fff}.ledger-row:hover h3{color:var(--g-bright,#7fff6b)}.numstrip .tile{transition:background-color .18s ease}.numstrip .tile:hover{background:var(--pale,#effbe9)}.spec tbody tr{transition:background-color .15s ease}.spec tbody tr:hover{background:#eefbe9!important}.spec td.yes{position:relative;padding-left:48px!important;font-weight:600;color:var(--ink,#080b0f)}.spec td.yes::before{content:\"\";position:absolute;left:18px;top:15px;width:20px;height:20px;border-radius:50%;background:var(--g-bright,#7fff6b) url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23080b0f' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'\/><\/svg>\") center\/12px no-repeat}.spec td.term+td:not(.yes){color:var(--t-mute,#5d6670)}.spec thead th:last-child{background:var(--g-deep,#1f7512)}.faq details{transition:background-color .15s ease}.faq details[open]{background:#fbfaf6}.faq details[open]>summary{color:var(--g-deep,#1f7512)}.faq summary{transition:color .15s ease,background-color .15s ease}.faq summary:hover{color:var(--g-deep,#1f7512)}.cluster a{transition:background-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}.cluster a span{transition:transform .18s ease}.cluster a:hover span{transform:translateX(5px)}.pf2>a h3::before{content:\"\";display:inline-block;width:22px;height:22px;margin-right:10px;vertical-align:-4px;background:var(--ink,#080b0f) url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%237fff6b'><path d='M8 5.5v13l10.5-6.5z'\/><\/svg>\") center\/12px no-repeat;border-radius:50%}.pf2>a+a h3::before{background-image:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%237fff6b' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'><path d='M4 17l5-5 4 3 7-8'\/><path d='M15 7h5v5'\/><\/svg>\");background-size:13px}.mailbig{transition:color .18s ease,text-decoration-color .18s ease}.mailbig:hover{color:var(--g-deep,#1f7512)!important}@media (prefers-reduced-motion:reduce){.xc-tag i,main section:hover>.wrap>.badge .dot{animation:none}.card:hover .ico,.tw-c:hover .tw-ic,.step:hover .step-ic{transform:none}}<\/style>\n<style id=\"eo-site-faq-soft-v1\">body .faq.eo-soft-faq{border:0!important;box-shadow:none!important;background:transparent!important;border-radius:0;padding:0;max-width:900px;margin:28px auto 0}body .faq.eo-soft-faq details,body .faq.eo-soft-faq details:first-child,body .faq.eo-soft-faq details:last-child,body .faq.eo-soft-faq details[open]{border:0!important;box-shadow:none!important;background:transparent!important;border-radius:0;margin:0;padding:0}body .faq.eo-soft-faq summary,body .faq.eo-soft-faq details[open]>summary,body .faq.eo-soft-faq summary:hover{border:0!important;box-shadow:none!important;background:transparent!important;padding:16px 0!important;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:24px;text-transform:none;font-size:22px;font-weight:700;line-height:1.35;letter-spacing:0;list-style:none}body .faq.eo-soft-faq summary::before{display:none!important}body .faq.eo-soft-faq summary::after{content:'+';position:static;inset:auto;display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;margin:0;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;transform:none!important;font:400 24px\/1 Arial,sans-serif;color:#667268;transition:none}body .faq.eo-soft-faq details[open]>summary::after{content:'\u2212';transform:none!important;background:transparent!important}body .faq.eo-soft-faq details p{border:0!important;background:transparent!important;box-shadow:none!important;padding:0 48px 18px 0!important;margin:0!important;max-width:76ch;font-size:17px;line-height:1.7}body .faq.eo-soft-faq summary:focus-visible{outline:2px solid #37842b;outline-offset:3px}@media(max-width:700px){body .faq.eo-soft-faq{margin-top:22px}body .faq.eo-soft-faq summary{font-size:20px;padding:14px 0!important;gap:16px}body .faq.eo-soft-faq details p{font-size:16px;padding:0 28px 16px 0!important}}body .faq.eo-soft-faq details,body .faq.eo-soft-faq details:first-child,body .faq.eo-soft-faq details:last-child{background:#f6f8f3!important;border-radius:10px;margin:0 0 10px;padding:0;overflow:visible}body .faq.eo-soft-faq details[open]{background:#eff4e9!important}body .faq.eo-soft-faq summary,body .faq.eo-soft-faq details[open]>summary,body .faq.eo-soft-faq summary:hover{padding:16px 20px!important;border-radius:10px;outline:none!important}body .faq.eo-soft-faq summary:focus:not(:focus-visible){outline:none!important;box-shadow:none!important}body .faq.eo-soft-faq summary:focus-visible{outline:2px solid #37842b!important;outline-offset:3px}body .faq.eo-soft-faq details p{padding:0 64px 20px 20px!important}@media(max-width:700px){body .faq.eo-soft-faq summary,body .faq.eo-soft-faq details[open]>summary,body .faq.eo-soft-faq summary:hover{padding:14px 16px!important}body .faq.eo-soft-faq details p{padding:0 16px 18px!important}}body .faq.eo-soft-faq .a,body .faq.eo-soft-faq .ans{border:0!important;outline:none;box-shadow:none!important;background:transparent!important;padding:0 64px 20px 20px!important;margin:0;max-width:none;font:400 17px\/1.7 Barlow,Arial,sans-serif;color:#3d4852}body .faq.eo-soft-faq .a p,body .faq.eo-soft-faq .ans p{padding:0!important;margin:0!important;max-width:76ch}body .faq.eo-soft-faq summary{color:#101318!important;font-family:'Barlow Condensed',sans-serif!important}body .faq.eo-soft-faq details[open]>summary{color:#287e20!important}@media(max-width:700px){body .faq.eo-soft-faq .a,body .faq.eo-soft-faq .ans{padding:0 16px 18px!important;font-size:16px}}<\/style>\n<style id=\"eo-service-hero-photo-css\">figure.eo-service-hero-photo{display:block!important;align-self:center;min-width:0;width:100%;margin:0!important;overflow:hidden;border-radius:24px;background:#f3f0e9;box-shadow:0 18px 50px rgba(27,35,22,.08)}figure.eo-service-hero-photo img{display:block!important;width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:3\/2;object-fit:cover}figure.eo-service-hero-photo figcaption{font-family:inherit;font-size:15px!important;line-height:1.5!important;color:#42513f!important;background:#edf2e7;padding:18px 22px!important}figure.eo-service-hero-photo figcaption a{color:#267b1c;text-decoration:underline;font-weight:600;display:inline-block;margin-left:10px}@media(max-width:760px){figure.eo-service-hero-photo{border-radius:18px}figure.eo-service-hero-photo figcaption{font-size:14px!important;padding:14px 18px!important}}<\/style>","protected":false},"excerpt":{"rendered":"<p>Services Platform SEO \u2605Ecommerce SEO Shopify SEO WooCommerce SEO Magento SEO BigCommerce SEO Enterprise Ecom SEO Industry SEO Furniture Store SEO Jewellery Store SEO Pet Store SEO Beauty &amp; Cosmetics SEO Fashion SEO Food And Beverage SEO Supplement SEO Strategy &amp; Conversion Ecommerce CRO Shopify Migration White Label Ecom SEO Development Shopify Development WooCommerce Dev [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-49","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ecomoptix.com\/nz\/wp-json\/wp\/v2\/pages\/49","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ecomoptix.com\/nz\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ecomoptix.com\/nz\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ecomoptix.com\/nz\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ecomoptix.com\/nz\/wp-json\/wp\/v2\/comments?post=49"}],"version-history":[{"count":1,"href":"https:\/\/ecomoptix.com\/nz\/wp-json\/wp\/v2\/pages\/49\/revisions"}],"predecessor-version":[{"id":50,"href":"https:\/\/ecomoptix.com\/nz\/wp-json\/wp\/v2\/pages\/49\/revisions\/50"}],"wp:attachment":[{"href":"https:\/\/ecomoptix.com\/nz\/wp-json\/wp\/v2\/media?parent=49"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}