← वापस लাक्सरी ज्वेलरी साइट्स जो 1.5 सेकंड से कम समय में लोड होती हैं -- लाइन-आर्ट इलस्ट्रेशन

लग्जरी ज्वेलरी साइट्स जो 1.5 सेकंड में लोड होती हैं

परफ़ॉर्मेंस और Core Web Vitals

2021 में Mayfair में एक जौहरी ब्रांड हमारे पास आया एक वेबसाइट लेकर जो वाकई शानदार थी, गहरी काली पृष्ठभूमि, फुल-ब्लीड एडिटोरियल फोटोग्राफी, एक कस्टम सेरिफ टाइपफेस जिसकी कीमत मेरे पहले फ्रीलांस प्रोजेक्ट से ज्यादा थी। लेकिन यह 4G कनेक्शन पर 9.4 सेकंड में लोड हो रहा था। उनकी बाउंस रेट 74% पर थी। वे पेइड सर्च पर महीने में £4,000 खर्च कर रहे थे और उन क्लिक्स का ज्यादातर हिस्सा तो उससे पहले ही गायब हो जाता था कि एक भी प्रोडक्ट रेंडर हो।

वह प्रोजेक्ट मेरे 9 साल की साइट बिल्डिंग के सबसे शिक्षाप्रद अनुभवों में से एक बन गया। क्योंकि चैलेंज सिर्फ "इसे तेज़ बनाओ" नहीं है। यह है "इसे तेज़ बनाओ और फिर भी ऐसा लगे कि यह Bond Street पर एक Cartier बुटीक के बगल में रखा हुआ है।" ये दोनों चीजें ऐसी लगती हैं कि वे विपरीत दिशाओं में खींच रही हैं। वे नहीं हैं। लेकिन आपको लगभग हर निर्णय के बारे में जानबूझकर सोचना होगा।

लग्जरी ज्वेलरी साइट्स परफॉर्मेंस की खास समस्या क्यों हैं

ज्यादातर ई-कॉमर्स परफॉर्मेंस एडवाइस मिड-मार्केट ब्रांड्स के लिए लिखी जाती है। अपनी इमेजेज को कंप्रेस करो, CDN इस्तेमाल करो, फोल्ड के नीचे की चीजें लेजी-लोड करो, बस। विलासवान जौहरी का खेल उन नियमों से नहीं खेलता, और अगर आप उन्हें सीधे-सीधे लागू करने की कोशिश करते हो, तो आप ऐसी साइट बनाएँगे जो तो जल्दी लोड होगी लेकिन Shopify ड्रॉपशिपिंग स्टोर जैसी दिखेगी।

विशिष्ट समस्याएँ हैं:

  • हीरो इमेजेज जो मीडियम-फॉर्मेट कैमरों से शूट की गई हों, कभी-कभी सोर्स फाइलें 80MB से भी ज्यादा बड़ी होती हैं।
  • निजी फाउंड्रीज़ से लोड किए गए कस्टम टाइपफेस, Google Fonts नहीं, जिसका मतलब है कि कोई कैशिंग शॉर्टकट नहीं
  • Parallax स्क्रॉल इफेक्ट्स जो डेवलपर्स "माहौल के लिए" जोड़ते हैं और फिर कभी ऑडिट नहीं करते
  • प्रोडक्ट फोटोग्राफी जिसमें कई एंगल हों, 8, 10, कभी-कभी 14 इमेजेज प्रति SKU।
  • वीडियो बैकग्राउंड जिनको किसी ने ब्रांड डेक में मंजूरी दे दी बिना इस बात पर विचार किए कि वेब पर क्या होगा

और उस सब के नीचे, अक्सर एक WordPress + WooCommerce स्टैक होता है, क्योंकि जब स्वतंत्र ज्वेलर्स हमारे पास आते हैं तो 60-70% यही चला रहे होते हैं।

एक रियल बेसलाइन से शुरुआत करें, गट फील से नहीं

एक भी फाइल को हाथ लगाने से पहले, मेजरमेंट करो। मैं इस बारे में ऑब्सेसिव हूँ। एक ही पेज पर Google PageSpeed Insights और WebPageTest को एक साथ चलाओ। PageSpeed तुम्हें लैब स्कोर और Core Web Vitals का ब्रेकडाउन देता है। WebPageTest तुम्हें वाटरफॉल देता है, जहाँ तुम सच में डायग्नोस कर सकते हो कि क्या तुम्हें मार रहा है।

इन तीन नंबर्स को देखो, LCP (Largest Contentful Paint), TBT (Total Blocking Time), और TTFB (Time to First Byte)। एक विलासवान जौहरी साइट के लिए, तुम्हारा दुश्मन लगभग हमेशा LCP होता है। वह हीरो इमेज, जिसमें मरमर पर हीरे की अँगूठी है, शायद तुम्हारा LCP एलिमेंट है, और वह शायद विशाल है और प्रीलोड नहीं है।

Seahawk में, हमने किसी भी optimisation work शुरू होने से पहले एक shared Notion table में baseline को document किया। हर change को इसके विरुद्ध track किया गया। Obvious लगता है। आप चकित होंगे कि कितने agencies इस step को skip करते हैं और फिर demonstrate नहीं कर सकते कि उन्होंने वास्तव में क्या सुधार किया।

इमेज पाइपलाइन ही सब कुछ है

यहीं आपके 80% लाभ आते हैं। इस पोस्ट का कोई और सेक्शन इतना महत्वपूर्ण नहीं है।

AVIF को पहले रखें, WebP को फॉलबैक के तौर पर

AVIF अब नया नहीं है लेकिन बहुत सारी लक्जरी साइट्स अभी भी JPEGs परोस रही हैं क्योंकि "फोटोग्राफर JPEGs देता है।" वह कोई बहाना नहीं है। AVIF आपको JPEG की तुलना में समान विजुअल क्वालिटी पर करीब 50% छोटी फाइलें देता है। एक प्रोडक्ट इमेज जो JPEG के रूप में 1.2MB पर बैठी है, AVIF आपको 400-600KB तक ले जाता है, स्क्रीन पर किसी भी प्रत्यक्ष क्वालिटी अंतर के बिना।

मैं Squoosh का उपयोग मैनुअल वन-ऑफ कन्वर्शन के लिए करता हूँ जब मैं बैच प्रोसेस पर कमिट करने से पहले क्वालिटी को विजुअली चेक करना चाहता हूँ। WordPress पर प्रोडक्शन पाइपलाइनों के लिए, ShortPixel AVIF कन्वर्शन स्वचालित रूप से संभालता है और क्वालिटी-टू-साइज़ रेश्यो सबसे अच्छा है जो मैंने लगभग 40 प्लगइन में टेस्ट किया है।

सही साइज सर्व करें, सिर्फ सही फॉर्मेट नहीं

एक 4K प्रोडक्ट इमेज को 375px चौड़ी iPhone स्क्रीन पर दिखाना लापरवाही है। WordPress का srcset सिद्धांत में इसे संभालता है, लेकिन तुम्हें यह सुनिश्चित करना चाहिए कि तुम्हारा थीम सचमुच सही इंटरमीडिएट साइजेज जेनरेट और सर्व कर रहा है। अपने wp_get_attachment_image कॉल्स को चेक करो। अपने थीम के add_image_size रजिस्ट्रेशन को चेक करो। अगर तुम्हारा थीम किसी ने बनाया है जिसने सिर्फ thumbnail, medium, और large रजिस्टर किए हैं, तो जाओ और 480px चौड़ाई पर एक product-mobile साइज़ जोड़ो और सुनिश्चित करो कि WooCommerce की गैलरी इसे इस्तेमाल कर रही है।

हीरो इमेज एक खास मामला है

इसे lazy-load न करें। मुझे पता है कि यह उलटा लगता है, लेकिन अपने LCP एलिमेंट को lazy-load करने से यह लोड सीक्वेंस में और आगे चला जाता है। इसके बजाय इसे preload करें। अपने <head> में:

<link rel="preload" as="image" href="/hero-ring.avif" fetchpriority="high">

उस एक लाइन ने Mayfair प्रोजेक्ट पर LCP को 0.8 सेकंड कम कर दिया। यह कोई बढ़ा-चढ़ाकर बात नहीं है। बस एक लाइन।

फ़ॉन्ट: उच्च-स्तरीय साइटों पर मौन प्रदर्शन हत्यारा

लक्जरी ब्रांड्स शायद ही कभी Google Fonts का इस्तेमाल करते हैं। वे Klim या Optimo जैसी foundries से typefaces लाइसेंस करते हैं, उन्हें self-host करते हैं, और 4-6 weights लोड करते हैं क्योंकि "ब्रांड गाइडलाइन्स ऐसा कहती हैं।" मुझे ब्रांड मैनेजर्स ने spec sheets दिए हैं जिनमें एक साइट के लिए आठ font variants थे, जबकि उस साइट ने सिर्फ तीन का ही इस्तेमाल किया।

यहाँ मैं यह करता हूँ:

  1. ऑडिट करें कि कौन सी weights वास्तव में साइट पर दिखाई देती हैं। ब्राउज़र के computed styles पैनल का इस्तेमाल हर पेज टेम्प्लेट पर करें।
  2. फॉन्ट को सबसेट करें। Font Squirrel का Webfont Generator आपको उन ग्लिफ्स को हटाने देता है जिनकी आपको जरूरत नहीं है। सभी डायक्रिटिक्स के साथ एक पूर्ण Latin टाइपफेस 280KB हो सकता है। English-only कैरेक्टर्स को कवर करने वाला एक सबसेट वह 40KB तक गिरा देता है।
  3. font-display: swap का उपयोग करें ताकि टेक्स्ट तुरंत दिखाई दे, फिर जब कस्टम फॉन्ट लोड हो तो उसमें स्विच हो जाए। हाँ, एक संक्षिप्त फ्लैश है। हाँ, कुछ ब्रांड मैनेजर शिकायत करेंगे। उन्हें कनवर्शन डेटा दिखाएं और वे शिकायत करना बंद कर देंगे।
  4. अपने primary body font को उसी तरह preload करें जैसे आप hero image को preload करते हैं।

subsetting और preloading का कॉम्बिनेशन आमतौर पर luxury sites पर 300-600ms बचाता है। यह कुछ नहीं है।

JavaScript: ऑडिट करें कि आप वास्तव में क्या लोड कर रहे हैं

इसमें ईमानदारी चाहिए। अपने ब्राउज़र का Network tab खोलें, JS से फिल्टर करें, और देखें कि क्या लोड हो रहा है। एक WooCommerce साइट पर जिसमें कुछ साल की plugin जमाखोरी हुई है, मैं आमतौर पर एक product page पर 2-4MB JavaScript देखता हूँ। यह पागलपन है।

jewellery साइट्स पर आमतौर पर ये culprits होते हैं:

  • लाइव चैट विजेट्स जो हर पेज पर 200KB का JS लोड करते हैं, उन पेजों सहित जहाँ कोई कभी चैट नहीं खोलता
  • Review प्लेटफॉर्म (Yotpo, Trustpilot) अपने पूरे SDK को लोड कर रहे हैं जब आपको सिर्फ एक स्टार रेटिंग विजेट की जरूरत है
  • Klaviyo या Omnisend ईमेल पॉप-अप स्क्रिप्ट्स पेज लोड पर फायर हो रही हैं बजाय defer किए जाने के
  • Instagram फीड प्लगइन्स जो API कॉल्स का दूसरा दौर खींचते हैं और render-blocking स्क्रिप्ट्स चलाते हैं

WordPress के लिए, मैं Asset CleanUp Pro इस्तेमाल करता हूँ स्क्रिप्ट्स और स्टाइलशीट्स को पेज टेम्पलेट के आधार पर डिसेबल करने के लिए। यह WP Rocket के एसेट ऑप्टिमाइजेशन से कहीं ज्यादा ग्रेन्युलर है। लाइव चैट को सिर्फ कॉन्टैक्ट पेज पर लोड करो। Klaviyo पॉप-अप स्क्रिप्ट को 3-सेकंड के यूजर इंटरैक्शन डिले के बाद ही लोड करो। ये ट्रिक्स नहीं हैं, बस जिम्मेदारीपूर्ण लोडिंग है।

होस्टिंग और अवसंरचना: स्टैक के शीर्ष पर सस्ते में न जाएँ

बात यह है, तुम इमेजेज और फॉन्ट्स और JavaScript के साथ सब कुछ सही कर सकते हो, फिर भी 600ms का TTFB हो सकता है क्योंकि सर्वर अंडरपावर्ड है या गलत कॉन्फ़िगर किया गया है। विलासवान क्लाइंट्स के लिए, मैंने Kinsta पर स्टैंडर्डाइज किया है WordPress होस्टिंग के लिए। उनका इंफ्रास्ट्रक्चर Google Cloud के C2 मशीनों पर चलता है, फुल-पेज कैशिंग Nginx लेवल पर होती है PHP के चलने से पहले, और उनका CDN (Cloudflare के नेटवर्क द्वारा संचालित) एसेट डिलीवरी को हैंडल करता है।

मैंने WP Engine और Flywheel को भी luxury projects पर इस्तेमाल किया है। दोनों ठीक हैं। लेकिन Kinsta का TTFB मेरी testing में UK locations से लगातार 80-140ms है, जो managed hosts के बीच सबसे अच्छा है जो मैंने measure किया है।

एक चीज़ जो लोग miss करते हैं: database optimisation WooCommerce sites पर लगभग किसी अन्य platform से ज़्यादा मायने रखता है। WooCommerce wp_options table में aggressively लिखता है, और एक साल के operation के बाद, वह table tens of thousands rows रख सकता है, जिनमें से कई ऐसे transients हैं जिन्हें कभी clean नहीं किया गया। WP-Optimize Pro इसे handle करता है। इसे चलाएँ। इसे weekly schedule पर सेट करें।

चेकआउट और प्रोडक्ट पेज होमपेज जैसे नहीं हैं

मैं ऐसी एजेंसियों को देखता हूँ जो होमपेज को 95 PageSpeed स्कोर तक ऑप्टिमाइज़ करती हैं और फिर प्रोडक्ट लिस्टिंग पेज, सिंगल प्रोडक्ट पेज और चेकआउट को अनदेखा करती हैं। वह पेजेस हैं जो रेवेन्यू ड्राइव करते हैं। एक ज्वेलरी साइट पर, सिंगल प्रोडक्ट पेज का सबसे ज़्यादा इमेज लोड होता है। वह वह जगह है जहाँ आपकी 14-एंगल प्रोडक्ट गैलरी रहती है।

WooCommerce प्रोडक्ट गैलरी के लिए, मैं डिफ़ॉल्ट गैलरी को Splide.js का उपयोग करके एक हल्के कस्टम इम्प्लीमेंटेशन से बदल देता हूँ, यह मिनिफाई और gzipped में लगभग 28KB है, lazy loading को सही तरीके से हैंडल करता है, और jQuery UI को खींचता नहीं है जिस तरह डिफ़ॉल्ट WooCommerce Flexslider करता है। प्रोडक्ट पेज पर JavaScript payload में अंतर ~380KB से ~90KB तक जाता है। मोबाइल पर यह LCP में एक सार्थक सुधार है।

पहली image को छोड़कर हर product image को lazy-load करें। पहली image को preload किया जाना चाहिए। बाकी? उन्हें तब load होने दें जब user scroll या gallery के through tap करे।

डिवाइस थ्रॉटलिंग के बजाय रियल डिवाइसेस पर टेस्ट करें

Chrome DevTools की throttling एक सिमुलेशन है। यह रिलेटिव तुलना के लिए उपयोगी है लेकिन यह ground truth नहीं है। मेरे पास टेस्टिंग के लिए विशेष रूप से एक Moto G Power (2021) है, एक £150 से कम की Android फोन, मेरी डेस्क पर रखी है। इसमें एक mid-range processor है और यह median global mobile hardware के करीब कुछ दर्शाता है। DevTools क्या दिखाता है और यह फोन actually क्या render करता है, इसके बीच का अंतर मुझे एक से अधिक बार पकड़ा चुका है।

Mayfair प्रोजेक्ट के लिए, DevTools ने "Fast 3G" throttling के तहत 1.3 सेकंड का LCP दिखाया। Moto G Power ने लंदन के मध्य में एक actual 4G कनेक्शन पर 1.9 सेकंड दिखाया। ये एक जैसी समस्या नहीं हैं। Real device testing से पता चला कि main thread को एक font animation से block किया जा रहा था जिसे हमने जोड़ा था, heading typeface पर एक subtle fade-in। अच्छा लगता था। Real hardware पर 400ms की कीमत। हमने इसे हटा दिया।

---

FAQ

एक लक्जरी ज्वेलरी वेबसाइट के लिए यथार्थवादी लोड टाइम टार्गेट क्या है?

1.5 seconds के under LCP एक mid-range mobile device पर यह है जो मैं aim करता हूँ। कुछ agencies आपको बताएँगे 2 seconds luxury के लिए ठीक है, और वे desktop के लिए entirely गलत नहीं हैं, जहाँ आपके typical jewellery buyer वास्तव में browsing कर रहे हों। लेकिन Google's research दिखाता है कि 2.5 second LCP threshold पहले से ही वह जगह है जहाँ conversion rates significantly decline करने लगते हैं। मैं margin रखना पसंद करता हूँ। Under 1.5s आपको headroom देता है even जैसे third-party scripts समय के साथ accumulate होती हैं।

क्या मैं फुल-ब्लीड वीडियो बैकग्राउंड रख सकता हूँ और फिर भी 1.5 सेकंड हिट कर सकता हूँ?

मोबाइल पर शायद ही कभी। जो मैं इसकी जगह करता हूँ: मोबाइल पर एक पोस्टर इमेज (ऑप्टिमाइज़्ड AVIF) सर्व करता हूँ, वीडियो केवल डेस्कटॉप पर एक CSS ब्रेकपॉइंट के ऊपर लोड करता हूँ। आप Network Information API के जरिए कनेक्शन स्पीड डिटेक्ट करने के लिए JavaScript का एक छोटा सा हिस्सा इस्तेमाल कर सकते हैं और धीमे कनेक्शन पर वीडियो लोडिंग को पूरी तरह स्किप कर सकते हैं। यह एक सिंगल सॉल्यूशन जितना एलिगेंट नहीं है, लेकिन यह उन कंस्ट्रेंट्स के बारे में ईमानदार है।

क्या मैं एक लक्जरी ज्वेलरी साइट पर Elementor या Divi जैसा पेज बिल्डर इस्तेमाल करूँ?

मैं एक client के लिए serious money को एक bespoke build पर खर्च कर रहे के लिए दोनों से दूर चला जाता। वे significant CSS और JavaScript overhead को inject करते हैं जो surgically हटाना मुश्किल है। Seahawk पर luxury projects के लिए, हमने एक lightweight custom theme या एक block-based theme पर build किया (केवल required blocks के साथ Kadence) और page builder को picture से बाहर रखा। अगर client को marketing team editability की जरूरत थी, तो हमने native WordPress block editor का उपयोग किया custom blocks के एक constrained set के साथ।

लॉन्च के बाद साइट स्पीड को कितनी बार फिर से टेस्ट करना चाहिए?

कम से कम मासिक। WooCommerce plugin updates, नई marketing scripts जो क्लाइंट आपको बताए बिना install करता है, seasonal campaign landing pages embedded Instagram feeds के साथ, ये सभी समय के साथ performance को erode करते हैं। मैं ongoing retainer clients के लिए एक quarterly performance audit schedule करता हूँ। पूरी तरह rebuild नहीं, बस 2-घंटे का audit एक written report और एक priority fix list के साथ। अधिकांश retainer clients इसे incredibly valuable पाते हैं क्योंकि वे usually तीन नई चीजें install की होती हैं पिछली check के बाद।

---

Speed और luxury opposites नहीं हैं। वे दोनों respect के बारे में हैं, प्रोडक्ट के लिए respect और उस व्यक्ति के लिए respect जो इसे देख रहा है। एक साइट जो किसी को wait कराती है वह एक साइट है जो पहले ही उन्हें कुछ बता चुकी है कि आप उनके समय को कितना value देते हैं। Fundamentals को सही तरीके से करें, जो actually slowness का कारण बन रहा है उसके बारे में ईमानदार रहें, और real hardware पर test करें। 1.5-सेकंड target achievable है। मैंने इसे 40-image product galleries और Swiss foundries से custom serif typefaces वाली साइटों पर hit किया है। यह अधिकतर builds को मिलने वाले intention से अधिक takes करता है।

← वापस