مفاهیم core web vitals
چند سال پیش، معیار سنجش سرعت سایت برای یک کارشناس سئو بسیار ساده و خطی بود: «چقدر طول میکشد تا این صفحه از بالا تا پایین به صورت کامل لود شود؟» اگر این زمان کمتر از چهار ثانیه بود، همه چیز عالی به نظر میرسید. اما امروز قوانین بازی تغییر کرده است.
گوگل دیگر به یک تایمر خشک و خالی نگاه نمیکند، بلکه تمرکز خود را روی «تجربه کاربری» (User Experience) گذاشته است. صفحه شما ممکن است دو دقیقه طول بکشد تا به صورت کاملِ کامل لود شود، اما اگر در همان سه ثانیه اول، محتوای اصلی و مورد نیاز کاربر در دسترس او قرار بگیرد، از نظر گوگل شما برنده این بازی هستید. در واقع، سرعت لود صفحه و تجربه کاربری دو مفهوم مکمل اما کاملاً متفاوت هستند.
سفر کاربر در ثانیههای اولِ لود شدن صفحه
وقتی روی یک لینک کلیک میکنیم، در پسزمینه مرورگر اتفاقات متعددی میافتد. گوگل دقیقاً همین مسیر را برای بررسی تجربه کاربری رصد میکند. بیایید این مسیر را از چشم یک کاربر مرور کنیم:
- آیا اصلاً اتفاقی در حال رخ دادن است؟ (First Paint): اولین چیزی که بعد از کلیک میبینیم، یک صفحه سفید است. اگر این سفیدی طولانی شود، شک میکنیم که شاید اینترنت قطع است یا آدرس را اشتباه زدهایم. اما به محض اینکه یک تغییر رنگ جزئی، یک نوار باریک یا یک لوگوی محو ظاهر میشود، متوجه میشویم که ارتباط برقرار شده است. به این اولین نشانه حیات، First Paint میگوییم.
- آیا محتوایی وجود دارد؟ (First Contentful Paint یا FCP): قدم بعدی زمانی است که مرورگر کدهای HTML را میخواند و اولین المانهای محتوایی مثل یک عکس یا بخشی از متن را روی صفحه ترسیم میکند. هنوز صفحه کامل نیست، اما کاربر میبیند که دادهها در حال دریافت هستند.
- آیا این محتوا برای من معنیدار است؟ (First Meaningful Paint): در این مرحله، تایتلها قابل خواندن میشوند، عکسهای اصلی شکل میگیرند و ساختار کلی صفحه معنا پیدا میکند. ممکن است هنوز فونت اصلی سایت لود نشده باشد، اما کاربر میفهمد در چه صفحهای قرار دارد و آیا به جوابش نزدیک شده است یا خیر.
- آیا میتوانم با صفحه کار کنم؟ (Time to Interactive یا TTI): این یکی از حیاتیترین بخشهاست. صفحه در ظاهر لود شده و شما منوی همبرگری سایت را میبینید. روی آن کلیک میکنید، اما هیچ اتفاقی نمیافتد! چرا؟ چون پردازشگر اصلی مرورگر (Main Thread) هنوز درگیر اجرای کدهای سنگین جاوا اسکریپت است. زمان تعامل، یعنی فاصلهای که از لحظه کلیک کاربر تا واکنش نشان دادن سایت طول میکشد.
هسته حیاتی وب (Core Web Vitals): زبان مشترک ما و گوگل
گوگل برای اینکه بتواند مفاهیم کیفیِ تجربه کاربری را به دادههای کمی و قابل اندازهگیری تبدیل کند، فاکتورهای Core Web Vitals را معرفی کرد. درک عمیق این شاخصها، مسیر بهینهسازی را برای هر کارشناس سئو روشن میکند.
- شاخص LCP (Largest Contentful Paint) این شاخص به ما میگوید که بزرگترین المان محتواییِ معنادار در نگاه اول (Above the fold) چه زمانی لود میشود. اگر در صفحه محصول هستید، احتمالاً تصویر محصول یا عنوان آن، LCP شماست. نکته ظریف اینجاست که ما در سئو فقط به دنبال سریعتر لود شدن LCP نیستیم؛ بلکه باید استراتژی داشته باشیم که اصلاً چه چیزی باید LCP باشد. اگر وسط لود شدن صفحه، ناگهان یک پاپآپ بزرگ تمام صفحه را بگیرد، مرورگر آن را به عنوان LCP جدید میشناسد و زمان لود شما به شدت افت میکند.
- سرعت پر شدن صفحه (Speed Index) این شاخص به زبان ساده یعنی صفحه شما با چه سرعتی از نظر بصری کامل میشود. ممکن است ساختار کلی صفحه و المانهای کوچک در یک ثانیه لود شوند، اما عکس اصلی هشت ثانیه طول بکشد. اسپید ایندکس روندی است که نشان میدهد در طول زمان، چه درصدی از صفحه برای کاربر ساخته شده است. گاهی یک اشتباه ساده مثل استفاده از انیمیشنهای بینهایت (مثل المانی که مدام تغییر رنگ میدهد یا میچرخد)، باعث میشود مرورگر تصور کند صفحه هنوز در حال تغییر بصری است و محاسبه اسپید ایندکس تا بینهایت ادامه پیدا کند!
- ثبات بصری (Cumulative Layout Shift یا CLS) احتمالاً برای شما هم پیش آمده که در حال خواندن یک مقاله هستید و ناگهان با لود شدن یک بنر تبلیغاتی یا یک اسلایدر با تاخیر، کل متن به پایین پرتاب میشود. این پرشهای ناگهانی به شدت کاربر را آزار میدهند. گوگل تمام این جابهجاییها را از لحظه ورود تا زمانی که در صفحه اسکرول میکنید جمع میزند و تحت عنوان CLS نمرهدهی میکند.
- زمان مسدود شدن (Total Blocking Time یا TBT) مرورگر کدهای سایت را به صورت آبشاری از بالا به پایین میخواند (Waterfall). اگر در بخش Head سایت، کدهای سنگین جاوا اسکریپت، فایلهای استایل (CSS) حجیم یا فونتهایی از سرورهای خارجی قرار داده باشید، مرورگر تا زمان دانلود و خواندن آنها متوقف میشود و هیچ چیزی به کاربر نشان نمیدهد. این زمانهای مسدودی، TBT شما را تشکیل میدهند.
دومینوی سئو؛ رفع یک مشکل و خلق مشکلی دیگر!
بهینهسازی Core Web Vitals شبیه به حل کردن مکعب روبیک است. پارامترها به شدت به هم وابستهاند و تغییر در یکی، میتواند دیگری را تخریب کند.
برای مثال، فرض کنید متوجه میشوید فایل CSS اصلی سایت باعث طولانی شدن زمان مسدودی (TBT) شده است. تصمیم میگیرید این فایل را از بخش Head بردارید و به انتهای صفحه (Footer) منتقل کنید. نتیجه چه میشود؟ TBT شما بهبود پیدا میکند و صفحه سریعتر به کاربر نمایش داده میشود؛ اما چون کدهای استایل هنوز خوانده نشدهاند، کاربر برای یک لحظه سایت را به هم ریخته و بدون فرم میبیند. چند لحظه بعد که CSS از فوتر لود شد، ناگهان ظاهر سایت درست میشود و المانها جابهجا میشوند. در این حالت شما مشکل مسدودی را حل کردید، اما با ایجاد پرشهای بصری، نمره CLS خود را به شدت نابود کردهاید.
یا اگر برای رفع همین مشکل مسدودی، کدهای جاوا اسکریپت را به تعویق بیندازید (Defer یا جابهجایی به فوتر)، ممکن است منوها و دکمههای سایت زودتر نمایش داده شوند اما تا زمان لود شدن کامل اسکریپتها کار نکنند؛ در نتیجه شاخص تعاملپذیری (TTI) شما آسیب میبیند.
نقطه شروع کجاست؟ (Time to First Byte)
تمام این شاخصها و رنگآمیزیهای محتوایی روی یک فونداسیون بنا شدهاند: TTFB یا زمان رسیدن اولین بایتِ اطلاعات از سرور به مرورگر. کاربر کلیک میکند، درخواست به سمت سرور میرود، دیتابیس درگیر میشود، افزونهها و قالب پردازش میشوند و در نهایت یک خروجی HTML به سمت کاربر برمیگردد. تا زمانی که این پروسه طی نشود، عملاً صفحه سفید است و هیچ فاکتوری شروع به محاسبه نمیکند. کوتاه کردن TTFB، اولین و مهمترین قدمی است که روی تمام شاخصهای بعدی تأثیر مثبت میگذارد.
درک این مسیر، بررسی تایملاین لود شدن یک صفحه به صورت فریم به فریم و پیدا کردن گلوگاههای سرعت، مهارتی است که به ما کمک میکند به جای آزمون و خطاهای کورکورانه، برای هر نوع ساختار و سایتی، استراتژی دقیق و کارآمدی طراحی کنیم. مسلط شدن بر این مفاهیم، کلید ورود به دنیای حرفهای بهینهسازی تجربه کاربری است.