چگونه وب‌سایت‌های GoDaddy و خدمات بازاریابی، Core Web Vitals مشتریان را تا 75 درصد بهبود بخشیدند

مطالعه موردی تغییراتی که GoDaddy برای بهبود عملکرد وب‌سایت برای میلیون‌ها سایت پیاده‌سازی کرده است، به آنها کمک می‌کند تا به امتیازات خوب PageSpeed ​​Insights و Core Web Vitals دست یابند.

سیمون لو پارک
Simon Le Parc

GoDaddy بزرگترین پلت فرم خدمات در جهان برای کارآفرینان در سراسر جهان است. ما مأموریت داریم تا جامعه جهانی خود را با بیش از 20 میلیون مشتری - و کارآفرینان در همه جا - با ارائه تمام کمک‌ها و ابزارهایی که برای رشد آنلاین نیاز دارند، تقویت کنیم.

در سال 2019 GoDaddy Websites + Marketing را با تعهد به ارائه ابزارها و خدماتی راه اندازی کرد که استفاده از آنها آسان است و به صاحبان مشاغل کمک می کند تا به اهداف خود برسند. Websites + Marketing ساخت وب سایت را با ابزارهای بازاریابی و تجارت الکترونیک ادغام می کند و آنها را با بهترین راهنمایی های کلاس جفت می کند تا به مشتریان کمک کند با سرمایه گذاری های جدید خود به موفقیت برسند.

از زمان راه‌اندازی وب‌سایت‌ها + بازاریابی، عملکرد بخش مهمی از محصول و چیزی است که به طور فعال نظارت و روی آن کار شده است. در این مقاله، سفر GoDaddy را از استفاده از تست عملکرد آزمایشگاهی تا استفاده از داده‌های دنیای واقعی با Core Web Vitals و مجموعه‌ای از پیشرفت‌های انجام شده در محصول برای دریافت نرخ عبور بسیار بالا برای سایت‌های مشتریان خود مرور می‌کنیم.

ردیابی عملکرد با Lighthouse

ما برای ردیابی عملکرد به داده های Lighthouse تکیه کرده ایم. هر بار که یک وب‌سایت بر روی پلتفرم منتشر می‌شود، عملکرد آن را با استفاده از ابزار داخلی خود به نام «Lighthouse4u» اندازه‌گیری می‌کنیم، که Google Lighthouse را به عنوان یک سرویس ارائه می‌کند https://github.com/godaddy/lighthouse4u . این به ما نشان خوبی از نحوه عملکرد سایت ها در یک محیط آزمایشگاهی داد.

از آنجایی که میلیون‌ها سایتی که ما روی پلتفرم خود میزبانی می‌کنیم دارای طیف گسترده‌ای از ویژگی‌ها و محتوا هستند، ترکیب داده‌های عملکرد با ابرداده‌های مربوط به هر سایت در حال آزمایش (مانند الگوی استفاده‌شده، نوع ابزارک‌های ارائه‌شده و غیره) مهم بود. این به ما اجازه داد تا در مورد اینکه چه ویژگی‌های وب‌سایتی عملکرد پایین‌تری دارند، نتیجه‌گیری کنیم، در حالی که بینشی برای یافتن بهبود در کجا فراهم می‌کند.

به عنوان مثال، این به ما کمک کرد تشخیص دهیم که "popup modal" تاثیر منفی بر سرعت صفحه دارد. سایت های دارای این ویژگی 12 امتیاز کمتر از سایت های بدون آن داشتند. پس از به‌روزرسانی کد برای به تعویق انداختن بارگذاری جاوا اسکریپت، امتیاز Lighthouse خود را 2 امتیاز بهبود دادیم. ما توانستیم این یادگیری را برای ویژگی‌های دیگری مانند "بنر کوکی" که بلافاصله پس از بارگیری صفحه ارائه می‌شود، اعمال کنیم.

نموداری که امتیازات Lighthouse را برای سایت‌های با و بدون پاپ آپ مدال نشان می‌دهد. سایت‌های بدون پاپ آپ مدال به طور مداوم سریع‌تر هستند.
نموداری که امتیاز عملکرد را برای سایت‌های با و بدون «مدال بازشو» (به ترتیب خطوط آبی و سبز) قبل و بعد از بهبود عملکرد نشان می‌دهد.

همراه با بررسی سایت‌های مشکل‌ساز بر اساس ویژگی‌ها، تجزیه و تحلیلی از بسته جاوا اسکریپت خود انجام دادیم و دیدیم که بخش بزرگی از اندازه آن از وابستگی‌های خارجی (immutable.js و draft.js) ناشی می‌شود. ما با تغییر ساختار مصرف کنندگان به وابستگی بار تنبل به تقاضا، اندازه بسته را کاهش دادیم. این امر منجر به کاهش بیش از 50 درصدی اندازه بسته نرم افزاری جاوا اسکریپت رایج شد که از بیش از 200 کیلوبایت به حدود 90 کیلوبایت (کوچک شده) رسید. اندازه کوچکتر بسته نرم افزاری به مرورگر اجازه می دهد تا دارایی های خارجی را بارگیری کند و اسکریپت های حیاتی را زودتر در چرخه عمر بارگذاری اولیه سایت اجرا کند، که منجر به افزایش در بزرگترین رنگ محتوایی (LCP) و تاخیر ورودی اولیه (FID) می شود.

نموداری که میانگین امتیازات Lighthouse را در طول زمان نشان می دهد. میانگین امتیاز پس از رویدادهایی مانند کاهش بسته جاوا اسکریپت، به تعویق انداختن اجزای جاوا اسکریپت و بهینه سازی تصویر بهبود می یابد.
میانگین امتیاز Lighthouse برای سایت های تازه منتشر شده در طول زمان. بهینه سازی های اصلی برای نشان دادن تأثیر روی نمودار روی آن قرار می گیرند.

به لطف تلاش‌های مستمر ما، میانگین امتیاز سایت مشتری Lighthouse از حدود 40 امتیاز در نوامبر 2020 به بالاتر از 70 امتیاز در ماه مه 2021 رسید. با این حال، همه تلاش‌های ما جواب نداد و زمانی که نتایج همیشه بین آنچه در محیط‌های آزمایشی محلی آزمایش شده بود و نتایجی که در میدان به دست می‌آوریم سازگار نبود، گاهی شگفت‌زده می‌شدیم. نتایج آزمایشگاهی واقعاً مفید بودند، اما زمان آن فرا رسیده بود که روی تجربیات واقعی کاربر مشاهده شده در این زمینه تمرکز کنیم.

ردیابی داده های واقعی کاربر با Core Web Vitals

پس از افزودن کتابخانه web-vitals به سایت‌های مشتریانمان، توانستیم داده‌ها را روی دستگاه‌های واقعی از بازدیدکنندگان واقعی اندازه‌گیری کنیم، جایی که سخت‌افزار، سرعت شبکه، تعامل با کاربر (مانند پیمایش یا کلیک کردن) مانند تنظیمات آزمایشگاهی با استفاده از Lighthouse در یک خط پایه ثابت نیستند. این یک گام بزرگ در مسیر درست بود، زیرا اکنون داده‌هایی داشتیم که نمایانگر آنچه بازدیدکنندگان وب‌سایت ما تجربه می‌کردند بود.

تجزیه و تحلیل داده های جدید به ما دیدگاه جدیدی در مورد آنچه که باید برای بهبود سرعت وب سایت انجام می شد به ما داد. به دلیل کار انجام شده برای بهبود امتیاز Lighthouse، LCP صدک 75 ما 860 میلی‌ثانیه و FID ما در همان آستانه زیر 10 میلی‌ثانیه بود، بنابراین ما از نرخ قبولی بالایی برای این معیارها در سایت‌های مشتریان خود بهره‌مند شدیم: به ترتیب 78 درصد و 98 درصد. با این حال، اعداد CLS (Cumulative Layout Shift) کاملاً متفاوت از آنچه در Lighthouse به آن عادت داشتیم به نظر می رسند. CLS ما در صدک 75 0.17 بود – بالاتر از آستانه 0.1 برای «گذراندن» – و بنابراین نرخ قبولی ما در تمام سایت‌های ما فقط 47٪ بود.

این معیار میزان پاس کلی ما را به 40 درصد کاهش داد، بنابراین ما تصمیم گرفتیم یک هدف بلندپروازانه تعیین کنیم تا این عدد را تا پایان آگوست 2021 به بالای 60 درصد برسانیم. برای انجام این کار، باید روی CLS تمرکز کنیم .

در زندگی واقعی، کاربران با صفحه ارتباط برقرار می‌کنند و از محتوای «بالاتر» عبور می‌کنند، که Core Web Vitals بهتر می‌گیرد. به دلیل تنوع در نحوه تعامل کاربران با سایت در هنگام بارگیری اولیه، CLS با داده های آزمایشگاهی و میدانی متفاوت بود.

جاده ای برای عبور از تمام Core Web Vitals

بهبود عملکرد مستلزم آزمون و خطا است و هر تلاشی همیشه آنطور که انتظار می رود کار نمی کند. با این حال، در اینجا چند پیشرفت وجود دارد که به ما در رسیدن به اهدافمان کمک کرد.

رزرو فضا برای بارگذاری تصاویر امتیاز CLS ما را به شدت بهبود بخشید زیرا از تغییر محتوای زیر تصاویر جلوگیری می کند. ما از ویژگی aspect-ratio CSS برای رفع این مشکل در مرورگرهایی که از آن پشتیبانی می‌کنند استفاده کردیم. برای کسانی که این کار را نمی کنند، ما یک تصویر مکان نگهدار شفاف را بارگذاری کردیم که در حافظه پنهان و اندازه آن فقط چند بایت بود، بنابراین تقریباً بلافاصله بارگیری می شود.

این رفتار کلی تصویر به ما این امکان را می‌دهد که ارتفاع تصویر نهایی را در حین رندر سمت سرور، بر اساس عرض و نسبت تصویر تصویر، از قبل محاسبه کنیم. این منجر به نشانه گذاری HTML با فضای عمودی مناسب برای تصویر نهایی شد. این بهبود به‌ویژه در دستگاه‌های تلفن همراه قابل مشاهده بود، زیرا تصاویر در گستره کامل درگاه‌های نمایش تلفن همراه ارائه می‌شوند.

برخی از مؤلفه‌ها در سایت‌های مشتریان ما دارای محتوای پویا هستند (مثلاً فهرستی از نظرات مشتریان خارجی) و نمی‌توان آنها را به CSS خالص تبدیل کرد تا از مزایای عملکرد رندر سمت سرور استفاده کند. اینها مناطق دشواری برای بهبود تغییرات چیدمان هستند زیرا محتوا (در نتیجه ارتفاع) متفاوت خواهد بود. در آن موارد، ما جزء را در ظرفی پیچیده کردیم که min-height بر اساس مشاهده میانگین ارتفاع برای هر یک از اجزای خاص از پیش تعیین شده بود. زمانی که مولفه دینامیک داخلی رندر انجام شد min-height حذف می‌شود. اگرچه این راه حل کامل نیست، اما به ما امکان داد تا تغییر طرح را تا حد زیادی کاهش دهیم.

در حالی که روی بهبودهای CLS تمرکز داشتیم، به کار بر روی LCP ادامه دادیم. در بسیاری از وب‌سایت‌ها، تصاویر بزرگ‌ترین عاملی هستند که به LCP کمک می‌کنند و برای ما این یک زمینه واضح برای بهبود بود. ما با استفاده از IntersectionObserver برای بارگذاری تنبل تصاویر بهبودهایی ایجاد کرده بودیم، اما متوجه شدیم که اندازه‌های تصویر به بهترین شکل برای هر نقطه شکست (موبایل، تبلت، دسکتاپ، دسک‌تاپ بزرگ) تنظیم نشده است، بنابراین کد تولید تصویر خود را به‌روزرسانی کردیم تا تصاویر را در هر نقطه شکست گیره و مقیاس کنیم و سپس مجدداً وضوح را بر اساس تراکم پیکسل مقیاس کنیم. به عنوان مثال، این کار اندازه یک تصویر بزرگ خاص را از 192 کیلوبایت به 102 کیلوبایت کاهش داد.

برای رندر سریع وب‌سایت‌ها در دستگاه‌هایی با اتصالات شبکه ضعیف، کدی را اضافه کردیم تا به صورت پویا کیفیت تصویر را بر اساس سرعت اتصال کاهش دهیم. این را می توان با استفاده از ویژگی downlink که توسط navigator.connection برگردانده شده است انجام داد. ما پارامترهای پرس و جو مبتنی بر URL را برای کاهش کیفیت تصویر از طریق API دارایی خود بر اساس آن شرایط شبکه اعمال می کنیم.

تعدادی از بخش های سایت های مشتریان ما به صورت پویا بارگیری می شوند. از آنجایی که می‌دانیم چه بخش‌هایی در یک سایت مشخص در زمان انتشار آن ارائه می‌شوند، از راهنمایی منبع rel=preconnect برای مقداردهی اولیه اتصال و دست دادن‌های ضروری قبل از زمان استفاده کردیم. ما همچنین از نکات منابع برای بارگیری سریع فونت ها و سایر منابع مهم استفاده می کنیم.

هنگام ساخت سایت های خود، مشتریان بخش های مختلفی را اضافه می کنند که ممکن است دارای اسکریپت های درون خطی باشند تا قابلیت های مختلف را امکان پذیر کنند. وجود این اسکریپت‌ها در صفحه HTML همیشه برای عملکرد بهینه نیست. ما تصمیم گرفتیم این اسکریپت ها را خارجی کنیم تا به مرورگر اجازه دهیم محتوای اسکریپت را به صورت ناهمزمان بارگیری و تجزیه کند. اسکریپت های جدید خارجی نیز می توانند در بین صفحات به اشتراک گذاشته شوند. این باعث افزایش عملکرد بیشتر در قالب حافظه پنهان مرورگر و CDN شد. ما اسکریپت های مهم را در خط نگه می داریم تا مرورگر آنها را سریعتر تجزیه و اجرا کند.

نتایج

با تمرکز تلاش ما بر روی CLS نتیجه داد، نرخ عبور Core Web Vitals ما از حدود 40٪ به تقریبا 70٪ رسید: بهبود 75٪!

نموداری که Core Web Vitals را در طول زمان نشان می دهد. همه Core Web Vitals (به جز FID) به طور مداوم در طول زمان بهبود می یابند.
درصد وب‌سایت‌های زنده وب‌سایت+بازاریابی با «گذراندن Core Web Vitals» در طول زمان (کلی و زیرمتری).

همانطور که کاربران برای به‌روزرسانی و انتشار مجدد سایت‌های خود به پلتفرم ما باز می‌گردند، آخرین پیشرفت‌های عملکردی را دریافت می‌کنند و در نتیجه تعداد سایت‌هایی با "گذر از Core Web Vitals" به طور پیوسته در حال افزایش است، همانطور که در نمودار زیر نشان داده شده است:

نموداری که Core Web Vitals خوب را در طول زمان به بخش‌های موبایل و دسکتاپ تقسیم می‌کند. روند با گذشت زمان بهبود می یابد.
نمودار نشان دهنده سایت های GoDaddy Website Builder با "ارزش های اصلی اصلی وب خوب". منبع: cwvtech.report

نتیجه گیری

یافتن زمینه هایی برای بهبود عملکرد و ردیابی موفقیت آمیز پیشرفت به شدت به ابزارهایی که برای اندازه گیری استفاده می شود بستگی دارد. در حالی که Lighthouse برای اندازه‌گیری عملکرد بالاتر در یک "تنظیمات آزمایشگاهی" مفید بود، مشکلات عملکردی را که فقط از تعاملات کاربر (مانند پیمایش در صفحه) رخ می‌داد به‌دقت ثبت نکرد.

ردیابی Core Web Vitals دنیای واقعی با ابرداده به ما این امکان را می‌دهد تا تأثیر پیشرفت‌های خود را تجسم، هدف‌گیری و اندازه‌گیری کنیم. سفر برای بهبود نمرات Core Web Vitals به تیم این امکان را داد تا الگوهای غیرعملکردی موجود در سرتاسر پایگاه کد ما را شناسایی و جایگزین کنند. گاهی اوقات تغییرات امیدوارکننده تقریباً تأثیری را که ما انتظار داشتیم نداشتند، برخی اوقات برعکس این اتفاق می افتاد. دنیایی بکر نیست، پس باید به تلاش ادامه دهید.

،

مطالعه موردی تغییراتی که GoDaddy برای بهبود عملکرد وب‌سایت برای میلیون‌ها سایت پیاده‌سازی کرده است، به آنها کمک می‌کند تا به امتیازات خوب PageSpeed ​​Insights و Core Web Vitals دست یابند.

سیمون لو پارک
Simon Le Parc

GoDaddy بزرگترین پلت فرم خدمات در جهان برای کارآفرینان در سراسر جهان است. ما مأموریت داریم تا جامعه جهانی خود را با بیش از 20 میلیون مشتری - و کارآفرینان در همه جا - با ارائه تمام کمک‌ها و ابزارهایی که برای رشد آنلاین نیاز دارند، تقویت کنیم.

در سال 2019 GoDaddy Websites + Marketing را با تعهد به ارائه ابزارها و خدماتی راه اندازی کرد که استفاده از آنها آسان است و به صاحبان مشاغل کمک می کند تا به اهداف خود برسند. Websites + Marketing ساخت وب سایت را با ابزارهای بازاریابی و تجارت الکترونیک ادغام می کند و آنها را با بهترین راهنمایی های کلاس جفت می کند تا به مشتریان کمک کند با سرمایه گذاری های جدید خود به موفقیت برسند.

از زمان راه‌اندازی وب‌سایت‌ها + بازاریابی، عملکرد بخش مهمی از محصول و چیزی است که به طور فعال نظارت و روی آن کار شده است. در این مقاله، سفر GoDaddy را از استفاده از تست عملکرد آزمایشگاهی تا استفاده از داده‌های دنیای واقعی با Core Web Vitals و مجموعه‌ای از پیشرفت‌های انجام شده در محصول برای دریافت نرخ عبور بسیار بالا برای سایت‌های مشتریان خود مرور می‌کنیم.

ردیابی عملکرد با Lighthouse

ما برای ردیابی عملکرد به داده های Lighthouse تکیه کرده ایم. هر بار که یک وب‌سایت بر روی پلتفرم منتشر می‌شود، عملکرد آن را با استفاده از ابزار داخلی خود به نام «Lighthouse4u» اندازه‌گیری می‌کنیم، که Google Lighthouse را به عنوان یک سرویس ارائه می‌کند https://github.com/godaddy/lighthouse4u . این به ما نشان خوبی از نحوه عملکرد سایت ها در یک محیط آزمایشگاهی داد.

از آنجایی که میلیون‌ها سایتی که ما روی پلتفرم خود میزبانی می‌کنیم دارای طیف گسترده‌ای از ویژگی‌ها و محتوا هستند، ترکیب داده‌های عملکرد با ابرداده‌های مربوط به هر سایت در حال آزمایش (مانند الگوی استفاده‌شده، نوع ابزارک‌های ارائه‌شده و غیره) مهم بود. این به ما اجازه داد تا در مورد اینکه چه ویژگی‌های وب‌سایتی عملکرد پایین‌تری دارند، نتیجه‌گیری کنیم، در حالی که بینشی برای یافتن بهبود در کجا فراهم می‌کند.

به عنوان مثال، این به ما کمک کرد تشخیص دهیم که "popup modal" تاثیر منفی بر سرعت صفحه دارد. سایت های دارای این ویژگی 12 امتیاز کمتر از سایت های بدون آن داشتند. پس از به‌روزرسانی کد برای به تعویق انداختن بارگذاری جاوا اسکریپت، امتیاز Lighthouse خود را 2 امتیاز بهبود دادیم. ما توانستیم این یادگیری را برای ویژگی‌های دیگری مانند "بنر کوکی" که بلافاصله پس از بارگیری صفحه ارائه می‌شود، اعمال کنیم.

نموداری که امتیازات Lighthouse را برای سایت‌های با و بدون پاپ آپ مدال نشان می‌دهد. سایت‌های بدون پاپ آپ مدال به طور مداوم سریع‌تر هستند.
نموداری که امتیاز عملکرد را برای سایت‌های با و بدون «مدال بازشو» (به ترتیب خطوط آبی و سبز) قبل و بعد از بهبود عملکرد نشان می‌دهد.

همراه با بررسی سایت‌های مشکل‌ساز بر اساس ویژگی‌ها، تجزیه و تحلیلی از بسته جاوا اسکریپت خود انجام دادیم و دیدیم که بخش بزرگی از اندازه آن از وابستگی‌های خارجی (immutable.js و draft.js) ناشی می‌شود. ما با تغییر ساختار مصرف کنندگان به وابستگی بار تنبل به تقاضا، اندازه بسته را کاهش دادیم. این امر منجر به کاهش بیش از 50 درصدی اندازه بسته نرم افزاری جاوا اسکریپت رایج شد که از بیش از 200 کیلوبایت به حدود 90 کیلوبایت (کوچک شده) رسید. اندازه کوچکتر بسته نرم افزاری به مرورگر اجازه می دهد تا دارایی های خارجی را بارگیری کند و اسکریپت های حیاتی را زودتر در چرخه عمر بارگذاری اولیه سایت اجرا کند، که منجر به افزایش در بزرگترین رنگ محتوایی (LCP) و تاخیر ورودی اولیه (FID) می شود.

نموداری که میانگین امتیازات Lighthouse را در طول زمان نشان می دهد. میانگین امتیاز پس از رویدادهایی مانند کاهش بسته جاوا اسکریپت، به تعویق انداختن اجزای جاوا اسکریپت و بهینه سازی تصویر بهبود می یابد.
میانگین امتیاز Lighthouse برای سایت های تازه منتشر شده در طول زمان. بهینه سازی های اصلی برای نشان دادن تأثیر روی نمودار روی آن قرار می گیرند.

به لطف تلاش‌های مستمر ما، میانگین امتیاز سایت مشتری Lighthouse از حدود 40 امتیاز در نوامبر 2020 به بالاتر از 70 امتیاز در ماه مه 2021 رسید. با این حال، همه تلاش‌های ما جواب نداد و زمانی که نتایج همیشه بین آنچه در محیط‌های آزمایشی محلی آزمایش شده بود و نتایجی که در میدان به دست می‌آوریم سازگار نبود، گاهی شگفت‌زده می‌شدیم. نتایج آزمایشگاهی واقعاً مفید بودند، اما زمان آن فرا رسیده بود که روی تجربیات واقعی کاربر مشاهده شده در این زمینه تمرکز کنیم.

ردیابی داده های واقعی کاربر با Core Web Vitals

پس از افزودن کتابخانه web-vitals به سایت‌های مشتریانمان، توانستیم داده‌ها را روی دستگاه‌های واقعی از بازدیدکنندگان واقعی اندازه‌گیری کنیم، جایی که سخت‌افزار، سرعت شبکه، تعامل با کاربر (مانند پیمایش یا کلیک کردن) مانند تنظیمات آزمایشگاهی با استفاده از Lighthouse در یک خط پایه ثابت نیستند. این یک گام بزرگ در مسیر درست بود، زیرا اکنون داده‌هایی داشتیم که نمایانگر آنچه بازدیدکنندگان وب‌سایت ما تجربه می‌کردند بود.

تجزیه و تحلیل داده های جدید به ما دیدگاه جدیدی در مورد آنچه که باید برای بهبود سرعت وب سایت انجام می شد به ما داد. به دلیل کار انجام شده برای بهبود امتیاز Lighthouse، LCP صدک 75 ما 860 میلی‌ثانیه و FID ما در همان آستانه زیر 10 میلی‌ثانیه بود، بنابراین ما از نرخ قبولی بالایی برای این معیارها در سایت‌های مشتریان خود بهره‌مند شدیم: به ترتیب 78 درصد و 98 درصد. با این حال، اعداد CLS (Cumulative Layout Shift) کاملاً متفاوت از آنچه در Lighthouse به آن عادت داشتیم به نظر می رسند. CLS ما در صدک 75 0.17 بود – بالاتر از آستانه 0.1 برای «گذراندن» – و بنابراین نرخ قبولی ما در تمام سایت‌های ما فقط 47٪ بود.

این معیار میزان پاس کلی ما را به 40 درصد کاهش داد، بنابراین ما تصمیم گرفتیم یک هدف بلندپروازانه تعیین کنیم تا این عدد را تا پایان آگوست 2021 به بالای 60 درصد برسانیم. برای انجام این کار، باید روی CLS تمرکز کنیم .

در زندگی واقعی، کاربران با صفحه ارتباط برقرار می‌کنند و از محتوای «بالاتر» عبور می‌کنند، که Core Web Vitals بهتر می‌گیرد. به دلیل تنوع در نحوه تعامل کاربران با سایت در هنگام بارگیری اولیه، CLS با داده های آزمایشگاهی و میدانی متفاوت بود.

جاده ای برای عبور از تمام Core Web Vitals

بهبود عملکرد مستلزم آزمون و خطا است و هر تلاشی همیشه آنطور که انتظار می رود کار نمی کند. با این حال، در اینجا چند پیشرفت وجود دارد که به ما در رسیدن به اهدافمان کمک کرد.

رزرو فضا برای بارگذاری تصاویر امتیاز CLS ما را به شدت بهبود بخشید زیرا از تغییر محتوای زیر تصاویر جلوگیری می کند. ما از ویژگی aspect-ratio CSS برای رفع این مشکل در مرورگرهایی که از آن پشتیبانی می‌کنند استفاده کردیم. برای کسانی که این کار را نمی کنند، ما یک تصویر مکان نگهدار شفاف را بارگذاری کردیم که در حافظه پنهان و اندازه آن فقط چند بایت بود، بنابراین تقریباً بلافاصله بارگیری می شود.

این رفتار کلی تصویر به ما این امکان را می‌دهد که ارتفاع تصویر نهایی را در حین رندر سمت سرور، بر اساس عرض و نسبت تصویر تصویر، از قبل محاسبه کنیم. این منجر به نشانه گذاری HTML با فضای عمودی مناسب برای تصویر نهایی شد. این بهبود به‌ویژه در دستگاه‌های تلفن همراه قابل مشاهده بود، زیرا تصاویر در گستره کامل درگاه‌های نمایش تلفن همراه ارائه می‌شوند.

برخی از مؤلفه‌ها در سایت‌های مشتریان ما دارای محتوای پویا هستند (مثلاً فهرستی از نظرات مشتریان خارجی) و نمی‌توان آنها را به CSS خالص تبدیل کرد تا از مزایای عملکرد رندر سمت سرور استفاده کند. اینها مناطق دشواری برای بهبود تغییرات چیدمان هستند زیرا محتوا (در نتیجه ارتفاع) متفاوت خواهد بود. در آن موارد، ما جزء را در ظرفی پیچیده کردیم که min-height بر اساس مشاهده میانگین ارتفاع برای هر یک از اجزای خاص از پیش تعیین شده بود. زمانی که مولفه دینامیک داخلی رندر انجام شد min-height حذف می‌شود. اگرچه این راه حل کامل نیست، اما به ما امکان داد تا تغییر طرح را تا حد زیادی کاهش دهیم.

در حالی که روی بهبودهای CLS تمرکز داشتیم، به کار بر روی LCP ادامه دادیم. در بسیاری از وب‌سایت‌ها، تصاویر بزرگ‌ترین عاملی هستند که به LCP کمک می‌کنند و برای ما این یک زمینه واضح برای بهبود بود. ما با استفاده از IntersectionObserver برای بارگذاری تنبل تصاویر بهبودهایی ایجاد کرده بودیم، اما متوجه شدیم که اندازه‌های تصویر به بهترین شکل برای هر نقطه شکست (موبایل، تبلت، دسکتاپ، دسک‌تاپ بزرگ) تنظیم نشده است، بنابراین کد تولید تصویر خود را به‌روزرسانی کردیم تا تصاویر را در هر نقطه شکست گیره و مقیاس کنیم و سپس مجدداً وضوح را بر اساس تراکم پیکسل مقیاس کنیم. به عنوان مثال، این کار اندازه یک تصویر بزرگ خاص را از 192 کیلوبایت به 102 کیلوبایت کاهش داد.

برای رندر سریع وب‌سایت‌ها در دستگاه‌هایی با اتصالات شبکه ضعیف، کدی را اضافه کردیم تا به صورت پویا کیفیت تصویر را بر اساس سرعت اتصال کاهش دهیم. این را می توان با استفاده از ویژگی downlink که توسط navigator.connection برگردانده شده است انجام داد. ما پارامترهای پرس و جو مبتنی بر URL را برای کاهش کیفیت تصویر از طریق API دارایی خود بر اساس آن شرایط شبکه اعمال می کنیم.

تعدادی از بخش های سایت های مشتریان ما به صورت پویا بارگیری می شوند. از آنجایی که می‌دانیم چه بخش‌هایی در یک سایت مشخص در زمان انتشار آن ارائه می‌شوند، از راهنمایی منبع rel=preconnect برای مقداردهی اولیه اتصال و دست دادن‌های ضروری قبل از زمان استفاده کردیم. ما همچنین از نکات منابع برای بارگیری سریع فونت ها و سایر منابع مهم استفاده می کنیم.

هنگام ساخت سایت های خود، مشتریان بخش های مختلفی را اضافه می کنند که ممکن است دارای اسکریپت های درون خطی باشند تا قابلیت های مختلف را امکان پذیر کنند. وجود این اسکریپت‌ها در صفحه HTML همیشه برای عملکرد بهینه نیست. ما تصمیم گرفتیم این اسکریپت ها را خارجی کنیم تا به مرورگر اجازه دهیم محتوای اسکریپت را به صورت ناهمزمان بارگیری و تجزیه کند. اسکریپت های جدید خارجی نیز می توانند در بین صفحات به اشتراک گذاشته شوند. این باعث افزایش عملکرد بیشتر در قالب حافظه پنهان مرورگر و CDN شد. ما اسکریپت های مهم را در خط نگه می داریم تا مرورگر آنها را سریعتر تجزیه و اجرا کند.

نتایج

با تمرکز تلاش ما بر روی CLS نتیجه داد، نرخ عبور Core Web Vitals ما از حدود 40٪ به تقریبا 70٪ رسید: بهبود 75٪!

نموداری که Core Web Vitals را در طول زمان نشان می دهد. همه Core Web Vitals (به جز FID) به طور مداوم در طول زمان بهبود می یابند.
درصد وب‌سایت‌های زنده وب‌سایت+بازاریابی با «گذراندن Core Web Vitals» در طول زمان (کلی و زیرمتری).

همانطور که کاربران برای به‌روزرسانی و انتشار مجدد سایت‌های خود به پلتفرم ما باز می‌گردند، آخرین پیشرفت‌های عملکردی را دریافت می‌کنند و در نتیجه تعداد سایت‌هایی با "گذر از Core Web Vitals" به طور پیوسته در حال افزایش است، همانطور که در نمودار زیر نشان داده شده است:

نموداری که Core Web Vitals خوب را در طول زمان به بخش‌های موبایل و دسکتاپ تقسیم می‌کند. روند با گذشت زمان بهبود می یابد.
نمودار نشان دهنده سایت های GoDaddy Website Builder با "ارزش های اصلی اصلی وب خوب". منبع: cwvtech.report

نتیجه گیری

یافتن زمینه هایی برای بهبود عملکرد و ردیابی موفقیت آمیز پیشرفت به شدت به ابزارهایی که برای اندازه گیری استفاده می شود بستگی دارد. در حالی که Lighthouse برای اندازه‌گیری عملکرد بالاتر در یک "تنظیمات آزمایشگاهی" مفید بود، مشکلات عملکردی را که فقط از تعاملات کاربر (مانند پیمایش در صفحه) رخ می‌داد به‌دقت ثبت نکرد.

ردیابی Core Web Vitals دنیای واقعی با ابرداده به ما این امکان را می‌دهد تا تأثیر پیشرفت‌های خود را تجسم، هدف‌گیری و اندازه‌گیری کنیم. سفر برای بهبود نمرات Core Web Vitals به تیم این امکان را داد تا الگوهای غیرعملکردی موجود در سرتاسر پایگاه کد ما را شناسایی و جایگزین کنند. گاهی اوقات تغییرات امیدوارکننده تقریباً تأثیری را که ما انتظار داشتیم نداشتند، برخی اوقات برعکس این اتفاق می افتاد. دنیایی بکر نیست، پس باید به تلاش ادامه دهید.

،

مطالعه موردی تغییراتی که GoDaddy برای بهبود عملکرد وب‌سایت برای میلیون‌ها سایت پیاده‌سازی کرده است، به آنها کمک می‌کند تا به امتیازات خوب PageSpeed ​​Insights و Core Web Vitals دست یابند.

سیمون لو پارک
Simon Le Parc

GoDaddy بزرگترین پلت فرم خدمات در جهان برای کارآفرینان در سراسر جهان است. ما مأموریت داریم تا جامعه جهانی خود را با بیش از 20 میلیون مشتری - و کارآفرینان در همه جا - با ارائه تمام کمک‌ها و ابزارهایی که برای رشد آنلاین نیاز دارند، تقویت کنیم.

در سال 2019 GoDaddy Websites + Marketing را با تعهد به ارائه ابزارها و خدماتی راه اندازی کرد که استفاده از آنها آسان است و به صاحبان مشاغل کمک می کند تا به اهداف خود برسند. Websites + Marketing ساخت وب سایت را با ابزارهای بازاریابی و تجارت الکترونیک ادغام می کند و آنها را با بهترین راهنمایی های کلاس جفت می کند تا به مشتریان کمک کند با سرمایه گذاری های جدید خود به موفقیت برسند.

از زمان راه‌اندازی وب‌سایت‌ها + بازاریابی، عملکرد بخش مهمی از محصول و چیزی است که به طور فعال نظارت و روی آن کار شده است. در این مقاله، سفر GoDaddy را از استفاده از تست عملکرد آزمایشگاهی تا استفاده از داده‌های دنیای واقعی با Core Web Vitals و مجموعه‌ای از پیشرفت‌های انجام شده در محصول برای دریافت نرخ عبور بسیار بالا برای سایت‌های مشتریان خود مرور می‌کنیم.

ردیابی عملکرد با Lighthouse

ما برای ردیابی عملکرد به داده های Lighthouse تکیه کرده ایم. هر بار که یک وب‌سایت بر روی پلتفرم منتشر می‌شود، عملکرد آن را با استفاده از ابزار داخلی خود به نام «Lighthouse4u» اندازه‌گیری می‌کنیم، که Google Lighthouse را به عنوان یک سرویس ارائه می‌کند https://github.com/godaddy/lighthouse4u . این به ما نشان خوبی از نحوه عملکرد سایت ها در یک محیط آزمایشگاهی داد.

از آنجایی که میلیون‌ها سایتی که ما روی پلتفرم خود میزبانی می‌کنیم دارای طیف گسترده‌ای از ویژگی‌ها و محتوا هستند، ترکیب داده‌های عملکرد با ابرداده‌های مربوط به هر سایت در حال آزمایش (مانند الگوی استفاده‌شده، نوع ابزارک‌های ارائه‌شده و غیره) مهم بود. این به ما اجازه داد تا در مورد اینکه چه ویژگی‌های وب‌سایتی عملکرد پایین‌تری دارند، نتیجه‌گیری کنیم، در حالی که بینشی برای یافتن بهبود در کجا فراهم می‌کند.

به عنوان مثال، این به ما کمک کرد تشخیص دهیم که "popup modal" تاثیر منفی بر سرعت صفحه دارد. سایت های دارای این ویژگی 12 امتیاز کمتر از سایت های بدون آن داشتند. پس از به‌روزرسانی کد برای به تعویق انداختن بارگذاری جاوا اسکریپت، امتیاز Lighthouse خود را 2 امتیاز بهبود دادیم. ما توانستیم این یادگیری را برای ویژگی‌های دیگری مانند "بنر کوکی" که بلافاصله پس از بارگیری صفحه ارائه می‌شود، اعمال کنیم.

نموداری که امتیازات Lighthouse را برای سایت‌های با و بدون پاپ آپ مدال نشان می‌دهد. سایت‌های بدون پاپ آپ مدال به طور مداوم سریع‌تر هستند.
نموداری که امتیاز عملکرد را برای سایت‌های با و بدون «مدال بازشو» (به ترتیب خطوط آبی و سبز) قبل و بعد از بهبود عملکرد نشان می‌دهد.

همراه با بررسی سایت‌های مشکل‌ساز بر اساس ویژگی‌ها، تجزیه و تحلیلی از بسته جاوا اسکریپت خود انجام دادیم و دیدیم که بخش بزرگی از اندازه آن از وابستگی‌های خارجی (immutable.js و draft.js) ناشی می‌شود. ما با تغییر ساختار مصرف کنندگان به وابستگی بار تنبل به تقاضا، اندازه بسته را کاهش دادیم. این امر منجر به کاهش بیش از 50 درصدی اندازه بسته نرم افزاری جاوا اسکریپت رایج شد که از بیش از 200 کیلوبایت به حدود 90 کیلوبایت (کوچک شده) رسید. اندازه کوچکتر بسته نرم افزاری به مرورگر اجازه می دهد تا دارایی های خارجی را بارگیری کند و اسکریپت های حیاتی را زودتر در چرخه عمر بارگذاری اولیه سایت اجرا کند، که منجر به افزایش در بزرگترین رنگ محتوایی (LCP) و تاخیر ورودی اولیه (FID) می شود.

نموداری که میانگین امتیازات Lighthouse را در طول زمان نشان می دهد. میانگین امتیاز پس از رویدادهایی مانند کاهش بسته جاوا اسکریپت، به تعویق انداختن اجزای جاوا اسکریپت و بهینه سازی تصویر بهبود می یابد.
میانگین امتیاز Lighthouse برای سایت های تازه منتشر شده در طول زمان. بهینه سازی های اصلی برای نشان دادن تأثیر روی نمودار روی آن قرار می گیرند.

به لطف تلاش‌های مستمر ما، میانگین امتیاز سایت مشتری Lighthouse از حدود 40 امتیاز در نوامبر 2020 به بالاتر از 70 امتیاز در ماه مه 2021 رسید. با این حال، همه تلاش‌های ما جواب نداد و زمانی که نتایج همیشه بین آنچه در محیط‌های آزمایشی محلی آزمایش شده بود و نتایجی که در میدان به دست می‌آوریم سازگار نبود، گاهی شگفت‌زده می‌شدیم. نتایج آزمایشگاهی واقعاً مفید بودند، اما زمان آن فرا رسیده بود که روی تجربیات واقعی کاربر مشاهده شده در این زمینه تمرکز کنیم.

ردیابی داده های واقعی کاربر با Core Web Vitals

پس از افزودن کتابخانه web-vitals به سایت‌های مشتریانمان، توانستیم داده‌ها را روی دستگاه‌های واقعی از بازدیدکنندگان واقعی اندازه‌گیری کنیم، جایی که سخت‌افزار، سرعت شبکه، تعامل با کاربر (مانند پیمایش یا کلیک کردن) مانند تنظیمات آزمایشگاهی با استفاده از Lighthouse در یک خط پایه ثابت نیستند. این یک گام بزرگ در مسیر درست بود، زیرا اکنون داده‌هایی داشتیم که نمایانگر آنچه بازدیدکنندگان وب‌سایت ما تجربه می‌کردند بود.

تجزیه و تحلیل داده های جدید به ما دیدگاه جدیدی در مورد آنچه که باید برای بهبود سرعت وب سایت انجام می شد به ما داد. به دلیل کار انجام شده برای بهبود امتیاز Lighthouse، LCP صدک 75 ما 860 میلی‌ثانیه و FID ما در همان آستانه زیر 10 میلی‌ثانیه بود، بنابراین ما از نرخ قبولی بالایی برای این معیارها در سایت‌های مشتریان خود بهره‌مند شدیم: به ترتیب 78 درصد و 98 درصد. با این حال، اعداد CLS (Cumulative Layout Shift) کاملاً متفاوت از آنچه در Lighthouse به آن عادت داشتیم به نظر می رسند. CLS ما در صدک 75 0.17 بود – بالاتر از آستانه 0.1 برای «گذراندن» – و بنابراین نرخ قبولی ما در تمام سایت‌های ما فقط 47٪ بود.

این معیار میزان پاس کلی ما را به 40 درصد کاهش داد، بنابراین ما تصمیم گرفتیم یک هدف بلندپروازانه تعیین کنیم تا این عدد را تا پایان آگوست 2021 به بالای 60 درصد برسانیم. برای انجام این کار، باید روی CLS تمرکز کنیم .

در زندگی واقعی، کاربران با صفحه ارتباط برقرار می‌کنند و از محتوای «بالاتر» عبور می‌کنند، که Core Web Vitals بهتر می‌گیرد. به دلیل تنوع در نحوه تعامل کاربران با سایت در هنگام بارگیری اولیه، CLS با داده های آزمایشگاهی و میدانی متفاوت بود.

جاده ای برای عبور از تمام Core Web Vitals

بهبود عملکرد مستلزم آزمون و خطا است و هر تلاشی همیشه آنطور که انتظار می رود کار نمی کند. با این حال، در اینجا چند پیشرفت وجود دارد که به ما در رسیدن به اهدافمان کمک کرد.

رزرو فضا برای بارگذاری تصاویر امتیاز CLS ما را به شدت بهبود بخشید زیرا از تغییر محتوای زیر تصاویر جلوگیری می کند. ما از ویژگی aspect-ratio CSS برای رفع این مشکل در مرورگرهایی که از آن پشتیبانی می‌کنند استفاده کردیم. برای کسانی که این کار را نمی کنند، ما یک تصویر مکان نگهدار شفاف را بارگذاری کردیم که در حافظه پنهان و اندازه آن فقط چند بایت بود، بنابراین تقریباً بلافاصله بارگیری می شود.

این رفتار کلی تصویر به ما این امکان را می‌دهد که ارتفاع تصویر نهایی را در حین رندر سمت سرور، بر اساس عرض و نسبت تصویر تصویر، از قبل محاسبه کنیم. این منجر به نشانه گذاری HTML با فضای عمودی مناسب برای تصویر نهایی شد. این بهبود به‌ویژه در دستگاه‌های تلفن همراه قابل مشاهده بود، زیرا تصاویر در گستره کامل درگاه‌های نمایش تلفن همراه ارائه می‌شوند.

برخی از مؤلفه‌ها در سایت‌های مشتریان ما دارای محتوای پویا هستند (مثلاً فهرستی از نظرات مشتریان خارجی) و نمی‌توان آنها را به CSS خالص تبدیل کرد تا از مزایای عملکرد رندر سمت سرور استفاده کند. اینها مناطق دشواری برای بهبود تغییرات چیدمان هستند زیرا محتوا (در نتیجه ارتفاع) متفاوت خواهد بود. در آن موارد، ما جزء را در ظرفی پیچیده کردیم که min-height بر اساس مشاهده میانگین ارتفاع برای هر یک از اجزای خاص از پیش تعیین شده بود. زمانی که مولفه دینامیک داخلی رندر انجام شد min-height حذف می‌شود. اگرچه این راه حل کامل نیست، اما به ما امکان داد تا تغییر طرح را تا حد زیادی کاهش دهیم.

در حالی که روی بهبودهای CLS تمرکز داشتیم، به کار بر روی LCP ادامه دادیم. در بسیاری از وب‌سایت‌ها، تصاویر بزرگ‌ترین عاملی هستند که به LCP کمک می‌کنند و برای ما این یک زمینه واضح برای بهبود بود. ما با استفاده از IntersectionObserver برای بارگذاری تنبل تصاویر بهبودهایی ایجاد کرده بودیم، اما متوجه شدیم که اندازه‌های تصویر به بهترین شکل برای هر نقطه شکست (موبایل، تبلت، دسکتاپ، دسک‌تاپ بزرگ) تنظیم نشده است، بنابراین کد تولید تصویر خود را به‌روزرسانی کردیم تا تصاویر را در هر نقطه شکست گیره و مقیاس کنیم و سپس مجدداً وضوح را بر اساس تراکم پیکسل مقیاس کنیم. به عنوان مثال، این کار اندازه یک تصویر بزرگ خاص را از 192 کیلوبایت به 102 کیلوبایت کاهش داد.

برای رندر سریع وب‌سایت‌ها در دستگاه‌هایی با اتصالات شبکه ضعیف، کدی را اضافه کردیم تا به صورت پویا کیفیت تصویر را بر اساس سرعت اتصال کاهش دهیم. این را می توان با استفاده از ویژگی downlink که توسط navigator.connection برگردانده شده است انجام داد. ما پارامترهای پرس و جو مبتنی بر URL را برای کاهش کیفیت تصویر از طریق API دارایی خود بر اساس آن شرایط شبکه اعمال می کنیم.

تعدادی از بخش های سایت های مشتریان ما به صورت پویا بارگیری می شوند. از آنجایی که می‌دانیم چه بخش‌هایی در یک سایت مشخص در زمان انتشار آن ارائه می‌شوند، از راهنمایی منبع rel=preconnect برای مقداردهی اولیه اتصال و دست دادن‌های ضروری قبل از زمان استفاده کردیم. ما همچنین از نکات منابع برای بارگیری سریع فونت ها و سایر منابع مهم استفاده می کنیم.

هنگام ساخت سایت های خود، مشتریان بخش های مختلفی را اضافه می کنند که ممکن است دارای اسکریپت های درون خطی باشند تا قابلیت های مختلف را امکان پذیر کنند. وجود این اسکریپت‌ها در صفحه HTML همیشه برای عملکرد بهینه نیست. ما تصمیم گرفتیم این اسکریپت ها را خارجی کنیم تا به مرورگر اجازه دهیم محتوای اسکریپت را به صورت ناهمزمان بارگیری و تجزیه کند. اسکریپت های جدید خارجی نیز می توانند در بین صفحات به اشتراک گذاشته شوند. این باعث افزایش عملکرد بیشتر در قالب حافظه پنهان مرورگر و CDN شد. ما اسکریپت های مهم را در خط نگه می داریم تا مرورگر آنها را سریعتر تجزیه و اجرا کند.

نتایج

با تمرکز تلاش ما بر روی CLS نتیجه داد، نرخ عبور Core Web Vitals ما از حدود 40٪ به تقریبا 70٪ رسید: بهبود 75٪!

نموداری که Core Web Vitals را در طول زمان نشان می دهد. همه Core Web Vitals (به جز FID) به طور مداوم در طول زمان بهبود می یابند.
درصد وب‌سایت‌های زنده وب‌سایت+بازاریابی با «گذراندن Core Web Vitals» در طول زمان (کلی و زیرمتری).

از آنجا که کاربران برای به روزرسانی و انتشار مجدد سایت های خود به پلتفرم ما باز می گردند ، آخرین پیشرفت های عملکرد را بدست می آورند و در نتیجه تعداد سایت هایی با "گذر از وب ویتامان اصلی" همانطور که در نمودار زیر نشان داده شده است ، به طور پیوسته در حال رشد است:

نموداری که وب های اصلی وب را به مرور زمان در بخش های موبایل و دسک تاپ تقسیم می کند. این روند با گذشت زمان بهبود می یابد.
نمودار نمایندگی سایتهای سازنده وب سایت Godaddy با "وب ویتای خوب اصلی". منبع: cwvtech.report

نتیجه گیری

یافتن زمینه هایی برای پیشرفت عملکرد و پیگیری موفقیت آمیز پیشرفت بسیار وابسته به اینکه از ابزارهایی برای اندازه گیری استفاده می شود ، بسیار وابسته است. در حالی که Lighthouse برای اندازه گیری عملکرد بالاتر از برابر در "تنظیم آزمایشگاه" مفید بود ، اما به طور دقیق مشکلات عملکردی را که فقط از تعامل کاربر رخ داده است (مانند پیمایش در صفحه) به طور دقیق ضبط نکرد.

ردیابی ویتام های وب واقعی جهان با ابرداده به ما امکان می دهد تا تأثیر پیشرفت های خود را تجسم ، هدف و اندازه گیری کنیم. سفر برای بهبود نمرات اصلی وب ویتامان به تیم امکان می دهد الگوهای غیر عملکردی موجود در پایگاه کد ما را شناسایی و جایگزین کند. گاهی اوقات تغییرات امیدوارکننده تقریباً تاثیری را که انتظار داشتیم نداشتند ، بعضی اوقات برعکس اتفاق افتاد. این یک دنیای بکر در آنجا نیست ، بنابراین شما باید تلاش کنید.

،

مطالعه موردی از تغییرات Godaddy که برای بهبود عملکرد وب سایت برای میلیون ها سایت اجرا شده است ، و به آنها در دستیابی به بینش خوب و نمرات اصلی وب ویتامین کمک می کند.

سیمون لو پارک
Simon Le Parc

Godaddy بزرگترین بستر خدمات جهان برای کارآفرینان در سراسر جهان است. ما در حال مأموریت هستیم تا جامعه جهانی خود را با بیش از 20 میلیون مشتری - و کارآفرین در همه جا - با کمک و ابزارهای مورد نیاز برای رشد آنلاین به آنها توانمند کنیم.

در سال 2019 ، Godaddy وب سایت ها + بازاریابی را با تعهد به ارائه ابزارها و خدماتی که استفاده از آنها آسان است و به صاحبان مشاغل در دستیابی به اهداف خود کمک می کند ، راه اندازی کرد. وب سایت ها + بازاریابی ، ایجاد وب سایت را با ابزارهای بازاریابی و تجارت الکترونیک ادغام می کند و آنها را با راهنمایی های بهترین کلاس برای کمک به مشتریان در دستیابی به موفقیت در سرمایه گذاری های جدید خود جفت می کند.

از زمان راه اندازی وب سایت ها + بازاریابی ، عملکرد بخش مهمی از محصول و چیزی بوده است که به طور فعال تحت نظارت و کار شده است. در این مقاله ، ما سفر GoDaddy را از استفاده از آزمایش عملکرد آزمایشگاه تا استفاده از داده های دنیای واقعی با Core Web Vitals ، و سری پیشرفت های انجام شده در این محصول بررسی خواهیم کرد تا نرخ عبور بسیار بالایی برای سایت های مشتری خود بدست آوریم.

ردیابی عملکرد با فانوس دریایی

ما برای ردیابی عملکرد به داده های فانوس دریایی اعتماد کرده ایم. هر بار که یک وب سایت روی این سیستم عامل منتشر می شود ، ما عملکرد آن را با استفاده از ابزار داخلی ما به نام "Lighthouse4u" اندازه گیری می کنیم ، که Google Lighthouse را به عنوان یک سرویس https://github.com/godaddy/lighthouse4u ارائه می دهد. این نشانگر خوبی از نحوه عملکرد سایتها در یک آزمایشگاه به ما نشان می داد.

از آنجا که میلیون ها سایت که ما در پلتفرم خود میزبان هستیم دارای طیف گسترده ای از ویژگی ها و محتوا است ، مهم بود که داده های عملکرد را با ابرداده در مورد هر سایت مورد آزمایش قرار دهیم (مانند الگوی مورد استفاده ، نوع ابزارک های ارائه شده و غیره). این به ما اجازه می دهد تا نتیجه گیری در مورد ویژگی های وب سایت عملکرد کمتری داشته باشیم ، در حالی که بینشی را برای جستجوی پیشرفت ها ارائه می دهیم.

به عنوان مثال ، این به ما کمک کرد تا تشخیص دهیم که "معین بازشو" تأثیر منفی بر سرعت صفحه داشته است. سایت هایی با این ویژگی 12 امتیاز پایین تر از بدون آن را انجام داده اند. پس از به روزرسانی در کد برای به تعویق انداختن بارگذاری جاوا اسکریپت ، نمره فانوس دریایی خود را با 2 امتیاز بهبود بخشیدیم. ما توانستیم این یادگیری را برای سایر ویژگی هایی مانند "پرچم کوکی" که به زودی پس از بار صفحه ارائه می شود ، اعمال کنیم.

نمودار که نمرات فانوس دریایی را برای سایت های دارای و بدون معین پاپ آپ نشان می دهد. سایت های بدون معین پاپ آپ به طور مداوم سریعتر هستند.
نمودار نشان دهنده نمره عملکرد برای سایتهای با و بدون "مودال پاپ" (خطوط آبی و سبز به ترتیب) قبل و بعد از بهبود عملکرد.

در کنار نگاه کردن به سایتهای مشکل ساز بر اساس ویژگی ها ، ما تجزیه و تحلیل بسته نرم افزاری JavaScript را انجام دادیم و دیدیم که بخش بزرگی از اندازه آن از وابستگی های خارجی ناشی می شود (تغییر ناپذیر. js و پیش نویس. js). ما با بازسازی مصرف کنندگان به وابستگی بار تنبل در صورت تقاضا ، اندازه بسته نرم افزاری را کاهش دادیم. این منجر به افت بیش از 50 درصدی در اندازه بسته نرم افزاری جاوا اسکریپت ، که از بیش از 200 کیلوبایت به حدود 90 کیلوبایت (Minified) رفت. اندازه بسته نرم افزاری کوچکتر به مرورگر اجازه می دهد تا دارایی های خارجی را بارگیری کرده و اسکریپت های بحرانی را در اوایل چرخه عمر بارگذاری سایت اولیه اجرا کند و منجر به دستیابی به بزرگترین رنگ محتوا (LCP) و اولین تأخیر ورودی (FID) شود.

نمودار که میانگین نمرات فانوس دریایی را با گذشت زمان نشان می دهد. میانگین نمره پس از وقایع مانند کاهش بسته نرم افزاری JavaScript ، به تعویق انداختن اجزای جاوا اسکریپت و بهینه سازی تصویر بهبود می یابد.
میانگین نمره فانوس دریایی برای سایتهای تازه منتشر شده در طول زمان. بهینه سازی های اصلی برای نشان دادن تأثیر در نمودار پوشانده شده است.

به لطف تلاش های مداوم ما ، میانگین نمره فانوس دریایی سایت مشتری از حدود 40 امتیاز در نوامبر 2020 به بیش از 70 امتیاز در ماه مه 2021 منتقل شد. با این حال ، همه تلاش های ما کار نکردند و ما گاهی اوقات تعجب می کردیم که نتایج همیشه بین آنچه در محیط های آزمایش محلی آزمایش شده و نتایج ما در این زمینه سازگار نبود. نتایج آزمایشگاه واقعاً مفید بوده است ، اما زمان آن رسیده بود که روی تجربیات واقعی کاربر مشاهده شده در این زمینه تمرکز کنیم.

ردیابی داده های کاربر واقعی با وب سایت های اصلی

پس از افزودن کتابخانه web-vitals به سایت های مشتری ، ما توانستیم داده های مربوط به دستگاه های واقعی را از بازدید کنندگان واقعی اندازه گیری کنیم ، جایی که سخت افزار ، سرعت شبکه ، تعامل کاربر (مانند پیمایش یا کلیک) در یک پایه ثابت مانند یک آزمایشگاه با استفاده از فانوس دریایی قرار ندارند. این یک گام بزرگ در جهت درست بود ، زیرا اکنون داده هایی داشتیم که نماینده آنچه بازدید کنندگان وب سایت ما تجربه می کردند.

تجزیه و تحلیل داده های جدید چشم انداز جدیدی را در مورد آنچه باید برای بهبود سرعت وب سایت انجام شود ، به ما داد. به دلیل کارهایی که برای بهبود نمره فانوس دریایی انجام شده است ، LCP صدک 75 ما 860 میلی ثانیه و FID ما در همان آستانه زیر 10 میلی ثانیه بود ، بنابراین ما به ترتیب از نرخ پاس بالا برای این معیارها در سایت های مشتری خود برخوردار بودیم: 78 ٪ و 98 ٪. با این حال ، اعداد تغییر چیدمان تجمعی (CLS) کاملاً متفاوت از آنچه ما با فانوس دریایی استفاده می کردیم. CLS ما در صدک 75 0.17 -آستانه 0.1 آستانه به "عبور" بود - و نرخ پاس ما از این رو تنها 47 ٪ نسبت به تمام سایتهای ما بود.

این متریک نرخ پاس کلی ما را به 40 ٪ کاهش داد ، بنابراین ما تصمیم گرفتیم تا پایان اوت 2021 ، هدف بلندپروازانه را برای انتقال این تعداد به بالای 60 ٪ تعیین کنیم. برای انجام این کار ، ما باید روی CLS تمرکز کنیم .

در زندگی واقعی ، کاربران با صفحه تعامل دارند و از محتوای "بالاتر از برابر" عبور می کنند ، این چیزی است که وب ویتام های اصلی بهتر می شوند. با توجه به تنوع در نحوه تعامل کاربران با سایت در حالی که در ابتدا بارگیری می شود ، CLS از داده های آزمایشگاهی و میدانی متفاوت است.

جاده عبور از تمام ویتام های اصلی وب

بهبود عملکرد آزمایش و خطا را انجام می دهد ، و هر تلاشی همیشه همانطور که انتظار می رفت کار نمی کند. با این حال ، در اینجا چند پیشرفت وجود دارد که به ما در رسیدن به اهداف خود کمک کرده است.

رزرو فضای برای بارگیری تصاویر به طرز چشمگیری نمره CLS ما را بهبود بخشید زیرا مانع از تغییر محتوای زیر تصاویر می شود. ما از ویژگی aspect-ratio برای پرداختن به این موضوع در مرورگرهایی که از آن پشتیبانی می کنند استفاده کردیم. برای آنهایی که این کار را نمی کنند ، ما یک تصویر نگهدارنده شفاف را که ذخیره شده و فقط چند بایت در اندازه بود ، بارگذاری کردیم ، بنابراین تقریباً بلافاصله بارگیری می کنیم.

این رفتار تصویر عمومی به ما این امکان را می دهد تا بر اساس عرض نمای و نسبت ابعاد تصویر ، ارتفاع تصویر نهایی را در حین ارائه سمت سرور محاسبه کنیم. این منجر به نشانه گذاری HTML با فضای عمودی مناسب برای تصویر نهایی شد. این پیشرفت به ویژه در دستگاه های تلفن همراه قابل مشاهده بود ، زیرا تصاویر به اندازه کامل نمای تلفن همراه ارائه می شوند.

برخی از مؤلفه ها در سایت های مشتریان ما دارای محتوای پویا هستند (به عنوان مثال ، لیستی از بررسی های مشتری خارجی) و نمی توانند به CSS خالص تبدیل شوند تا از مزایای عملکرد ارائه سمت سرور استفاده کنند. اینها مناطق دشوار برای بهبود تغییرات طرح هستند زیرا محتوا (در نتیجه ارتفاع) متفاوت خواهد بود. در این موارد ، ما مؤلفه را در یک ظرف با یک min-height استفاده کردیم ، از پیش تعیین شده بر اساس مشاهده ارتفاع متوسط ​​برای هر یک از مؤلفه های خاص. هنگامی که مؤلفه پویا درونی انجام می شود min-height برداشته می شود. در حالی که کامل نیست ، این راه حل به ما اجازه می دهد تا تغییر چیدمان را به مقدار زیادی کاهش دهیم.

در حالی که روی پیشرفت های CLS تمرکز داشتیم ، ما به کار خود در LCP ادامه دادیم. در بسیاری از وب سایت ها ، تصاویر بزرگترین مقصر مشارکت در LCP هستند و برای ما یک منطقه آشکار از پیشرفت بود. ما در تصاویر بار تنبل با استفاده از IntersectionObserver پیشرفت هایی ایجاد کرده بودیم اما فهمیدیم که اندازه تصویر بهینه ترین روش برای هر نقطه شکست (تلفن همراه ، تبلت ، دسک تاپ ، دسک تاپ بزرگ) تنظیم نشده است ، بنابراین ما کد تولید تصویر خود را برای گیره و مقیاس در هر نقطه به روز کردیم و دوباره بر اساس چگالی پیکسل. به عنوان نمونه ، این اندازه یک تصویر بزرگ خاص را از سال 192 کیلوبایت به 102 کیلوبایت کاهش می دهد.

برای ارائه سریع وب سایت ها در دستگاه هایی با اتصالات شبکه ضعیف ، ما کد را برای کاهش پویا کیفیت تصویر بر اساس سرعت اتصال اضافه کردیم. این کار را می توان با استفاده از ویژگی downlink که توسط navigator.connection برگشته است انجام دهید. ما پارامترهای پرس و جو مبتنی بر URL را برای کاهش کیفیت تصویر از طریق API دارایی خود بر اساس آن شرایط شبکه اعمال می کنیم.

تعدادی از بخش های سایت های مشتری ما به صورت پویا بارگیری می شوند. از آنجا که می دانیم هنگام انتشار ، چه بخش هایی در یک سایت معین ارائه می شود ، ما از rel=preconnect منبع استفاده کردیم تا اتصال و دست های لازم را قبل از زمان انجام دهیم. ما همچنین از نکات منابع برای بارگیری فونت ها و سایر منابع مهم به سرعت استفاده می کنیم.

هنگام ساخت سایت های خود ، مشتریان بخش های مختلفی را اضافه می کنند که ممکن است دارای اسکریپت های درون خطی باشند تا قابلیت های مختلف را فراهم کنند. داشتن این اسکریپت ها به صورت درون صفحه HTML همیشه برای عملکرد بهینه نیست. ما تصمیم گرفتیم که این اسکریپت ها را بیرونی کنیم تا به مرورگر اجازه دهد تا محتوای اسکریپت را به صورت غیر همزمان بارگیری و تجزیه کند. اسکریپت های تازه بیرونی نیز می توانند در صفحات به اشتراک گذاشته شوند. این امر باعث می شود سود عملکرد دیگری در قالب مرورگر و حافظه پنهان CDN باشد. ما اسکریپت های بحرانی را بصورت آنلاین نگه داشتیم تا مرورگر بتواند آنها را سریعتر تجزیه کند و آنها را اجرا کند.

نتایج

با تمرکز تلاش ما بر روی CLS پرداخت شده ، نرخ گذرگاه اصلی ما در حدود 40 ٪ به 70 ٪ رسید: بهبود 75 ٪!

نموداری که به مرور زمان ویتامین های اصلی وب را نشان می دهد. تمام ویتام های اصلی وب (به جز FID) به طور مداوم با گذشت زمان بهبود می یابند.
درصد وب سایت های زنده+وب سایت های بازاریابی با "گذر از وب اصلی وب" به مرور زمان (به طور کلی و فرعی).

از آنجا که کاربران برای به روزرسانی و انتشار مجدد سایت های خود به پلتفرم ما باز می گردند ، آخرین پیشرفت های عملکرد را بدست می آورند و در نتیجه تعداد سایت هایی با "گذر از وب ویتامان اصلی" همانطور که در نمودار زیر نشان داده شده است ، به طور پیوسته در حال رشد است:

نموداری که وب های اصلی وب را به مرور زمان در بخش های موبایل و دسک تاپ تقسیم می کند. این روند با گذشت زمان بهبود می یابد.
نمودار نمایندگی سایتهای سازنده وب سایت Godaddy با "وب ویتای خوب اصلی". منبع: cwvtech.report

نتیجه گیری

یافتن زمینه هایی برای پیشرفت عملکرد و پیگیری موفقیت آمیز پیشرفت بسیار وابسته به اینکه از ابزارهایی برای اندازه گیری استفاده می شود ، بسیار وابسته است. در حالی که Lighthouse برای اندازه گیری عملکرد بالاتر از برابر در "تنظیم آزمایشگاه" مفید بود ، اما به طور دقیق مشکلات عملکردی را که فقط از تعامل کاربر رخ داده است (مانند پیمایش در صفحه) به طور دقیق ضبط نکرد.

ردیابی ویتام های وب واقعی جهان با ابرداده به ما امکان می دهد تا تأثیر پیشرفت های خود را تجسم ، هدف و اندازه گیری کنیم. سفر برای بهبود نمرات اصلی وب ویتامان به تیم امکان می دهد الگوهای غیر عملکردی موجود در پایگاه کد ما را شناسایی و جایگزین کند. گاهی اوقات تغییرات امیدوارکننده تقریباً تاثیری را که انتظار داشتیم نداشتند ، بعضی اوقات برعکس اتفاق افتاد. این یک دنیای بکر در آنجا نیست ، بنابراین شما باید تلاش کنید.