الگوریتم واکنش چیست؟ | تأثیر سرعت واکنش‌گرایی پایین بر سئو


مقدمه: الگوریتم واکنش چیست؟

آیا تا به حال روی دکمه‌ای در سایت کلیک کرده‌اید و چند ثانیه هیچ اتفاقی نیفتاده است؟ این تجربه آزاردهنده ناشی از سرعت واکنش‌گرایی پایین است. الگوریتم واکنش (Vaakonesh) در کراولر پیشرفته P2X دقیقاً به همین موضوع می‌پردازد: آیا سرعت واکنش‌گرایی (INP) سایت شما پایین و نامطلوب است؟

الگوریتم واکنش از الگوریتم‌های منفی سیستم P2X محسوب می‌شود. این الگوریتم بررسی می‌کند که صفحات سایت شما چقدر سریع به تعاملات کاربر (کلیک، ضربه، تایپ) پاسخ می‌دهند. اگر INP بالاتر از ۲۰۰ میلی‌ثانیه باشد، امتیاز منفی تعلق می‌گیرد.

اما INP چیست و چرا اینقدر مهم است؟ در ادامه، همه چیز را بررسی خواهیم کرد.


INP (Interaction to Next Paint) چیست؟

INP مدت زمانی است که از تعامل کاربر (کلیک، ضربه، تایپ) تا نمایش تغییرات بصری بعدی در صفحه طول می‌کشد.

مثال:

text
کاربر روی دکمه «ثبت نام» کلیک می‌کند (زمان ۰)
↓
مرورگر درخواست را پردازش می‌کند
↓
جاوااسکریپت اجرا می‌شود
↓
صفحه به‌روز می‌شود (تغییر بصری)
↓
زمان ثبت می‌شود (مثلاً ۱۵۰ میلی‌ثانیه)

INP = ۱۵۰ میلی‌ثانیه (خوب)


دسته‌بندی INP بر اساس کیفیت

 
 
دسته محدوده INP وضعیت توضیح
عالی کمتر از ۱۰۰ میلی‌ثانیه ✅ عالی پاسخگویی فوق‌العاده سریع
خوب ۱۰۰ - ۲۰۰ میلی‌ثانیه ✅ خوب پاسخگویی قابل قبول
نیاز به بهبود ۲۰۰ - ۵۰۰ میلی‌ثانیه ⚠️ هشدار - جریمه خفیف کاربر احساس مکث می‌کند
ضعیف (جریمه) ۵۰۰ - ۱۰۰۰ میلی‌ثانیه ❌ ضعیف - جریمه متوسط کاربر احساس کندی می‌کند
بسیار ضعیف (جریمه شدید) بیشتر از ۱۰۰۰ میلی‌ثانیه ❌ بسیار ضعیف - جریمه شدید کاربر احساس «یخ زدگی» می‌کند

نحوه عملکرد الگوریتم واکنش در P2X

الگوریتم واکنش به صورت دقیق و هوشمندانه طراحی شده است. مراحل اجرای این الگوریتم در کراولر P2X به این صورت است:

 
 
مرحله توضیح
۱. شبیه‌سازی تعاملات الگوریتم تعاملات واقعی کاربر (کلیک، تایپ، اسکرول) را شبیه‌سازی می‌کند
۲. اندازه‌گیری زمان الگوریست زمان پاسخگویی به هر تعامل را اندازه‌گیری می‌کند
۳. محاسبه صدک ۷۵ الگوریتم صدک ۷۵ (بدترین تعاملات) را به عنوان INP محاسبه می‌کند
۴. تحلیل منابع کند الگوریتم منابعی که باعث کندی شده‌اند (جاوااسکریپت، CSS) را شناسایی می‌کند
۵. امتیازدهی منفی بر اساس میزان بالاتر بودن INP از ۲۰۰ میلی‌ثانیه، امتیاز منفی تعلق می‌گیرد

نکته مهم: INP بر اساس صدک ۷۵ (بدترین ۲۵٪ تعاملات) محاسبه می‌شود. یعنی اگر ۷۵٪ تعاملات سریع باشند اما ۲۵٪ کند باشند، INP تحت تأثیر تعاملات کند قرار می‌گیرد.


تفاوت INP با FID (نسخه قبلی)

 
 
معیار FID (قدیمی) INP (جدید - از ۲۰۲۴)
اندازه‌گیری فقط اولین تعامل همه تعاملات
شامل چه تعاملاتی فقط کلیک و ضربه کلیک، ضربه، تایپ، کیبورد
دقت کمتر بیشتر (تصویر کامل‌تر)
تاریخ معرفی ۲۰۲۰ ۲۰۲۴ (جایگزین FID)

نکته مهم: گوگل از مارس ۲۰۲۴ به طور کامل INP را جایگزین FID کرده است. دیگر FID مورد استفاده قرار نمی‌گیرد.


چرا INP پایین (کندی) برای سئو مضر است؟

INP پایین (یعنی زمان پاسخگویی بالا) از چند جهت برای سئو و تجربه کاربری مضر است:

 
 
دلیل ضرر توضیح
فاکتور رتبه‌بندی گوگل INP یکی از سه معیار اصلی Core Web Vitals است
تجربه کاربری بد کاربر احساس می‌کند سایت «یخ زده» یا «لاگ» است
افزایش نرخ پرش کاربران از سایت‌های کند و غیرپاسخگو فرار می‌کنند
کاهش تعامل کاربران کمتر با سایت تعامل می‌کنند (کلیک، تایپ)
کاهش نرخ تبدیل در فروشگاه‌ها، کندی باعث کاهش فروش می‌شود

چه عواملی باعث INP بالا می‌شوند؟

 
 
عامل توضیح راهکار
جاوااسکریپت سنگین کدهای JS طولانی و پیچیده بهینه‌سازی و split کردن
تاخیر در event handlers توابع سنگین در رویدادها بهینه‌سازی و debouncing
رندر مجدد مکرر بازسازی مکرر DOM بهینه‌سازی رندر
محاسبات سنگین در main thread حلقه‌های طولانی و محاسبات پیچیده انتقال به Web Worker
درخواست‌های شبکه همزمان درخواست‌های blocking asynchronous کردن
فریمورک سنگین React/Vue بدون بهینه‌سازی بهینه‌سازی و code splitting

معادل Google برای الگوریتم واکنش

الگوریتم واکنش در P2X معادل فاکتور "Interaction to Next Paint (INP)" در الگوریتم‌های گوگل است. گوگل در مستندات رسمی خود اعلام کرده است:

"INP measures how quickly a page responds to user interactions. A good INP score is 200 milliseconds or less. Pages with poor INP can frustrate users and may rank lower in search results."

منابع معتبر گوگل برای مطالعه بیشتر:


تفاوت INP با LCP و CLS

 
 
معیار اندازه‌گیری نوع مشکل
LCP زمان بارگذاری محتوا کندی در نمایش
CLS ثبات بصری جابجایی آزاردهنده
INP پاسخگویی به تعاملات کندی در واکنش

نکته: این سه معیار، تجربه کاربری کامل را از سه زاویه مختلف اندازه‌گیری می‌کنند.


راهکارهای کاهش INP (افزایش سرعت واکنش‌گرایی)

برای اینکه از الگوریتم واکنش جریمه نشوید، این راهکارها را رعایت کنید:

۱. جاوااسکریپت را بهینه کنید

  • کدهای طولانی را به فایل‌های کوچک‌تر split کنید

  • از async/defer برای بارگذاری JS استفاده کنید

  • کتابخانه‌های سنگین را با نسخه‌های سبک‌تر جایگزین کنید

html
<script src="heavy.js" defer></script>

۲. event handlers را بهینه کنید

javascript
// بد: عملیات سنگین در handler
button.addEventListener('click', () => {
    heavyOperation(); // 500ms
});

// خوب: عملیات سنگین با delay یا Web Worker
button.addEventListener('click', () => {
    setTimeout(() => {
        heavyOperation();
    }, 0);
});

۳. از Web Workers برای محاسبات سنگین استفاده کنید

محاسبات سنگین را به thread جداگانه منتقل کنید تا main thread مسدود نشود.


۴. از debouncing و throttling استفاده کنید

برای رویدادهای مکرر (مثل اسکرول، تایپ) از debouncing استفاده کنید.

javascript
// debouncing برای رویداد تایپ
input.addEventListener('input', debounce(() => {
    // جستجو
}, 300));

۵. رندر مجدد را کاهش دهید

به جای بازسازی کامل DOM، فقط قسمت‌های تغییر کرده را به‌روز کنید.


6. از requestAnimationFrame برای انیمیشن‌ها استفاده کنید

javascript
function animate() {
    // تغییرات DOM
    requestAnimationFrame(animate);
}

اشتباهات رایج در الگوریتم واکنش

 
 
اشتباه توضیح راهکار
جاوااسکریپت سنگین در main thread کدهای طولانی بدون break split و استفاده از setTimeout
event handlers بدون بهینه‌سازی عملیات سنگین در handler بهینه‌سازی و debouncing
فریمورک بدون code splitting همه کدها در یک فایل code splitting فعال کنید
رندر مجدد مکرر بازسازی کل DOM فقط بخش تغییر کرده را به‌روز کنید
درخواست‌های همزمان درخواست‌های blocking از async استفاده کنید

ابزارهای اندازه‌گیری INP

 
 
ابزار آدرس توضیح
PageSpeed Insights pagespeed.web.dev اندازه‌گیری INP و ارائه راهکار
Chrome DevTools F12 > Performance اندازه‌گیری دقیق تعاملات
Web Vitals Extension Chrome Web Store اندازه‌گیری real-time
Search Console search.google.com گزارش Core Web Vitals

تأثیر الگوریتم واکنش بر سئو و رتبه گوگل

 
 
فاکتور تأثیر
INP کمتر از ۲۰۰ میلی‌ثانیه بدون جریمه - تجربه کاربری خوب
INP بین ۲۰۰-۵۰۰ میلی‌ثانیه جریمه خفیف - افت نسبی رتبه
INP بیشتر از ۵۰۰ میلی‌ثانیه جریمه متوسط تا شدید - افت قابل توجه رتبه

جمع‌بندی نهایی

الگوریتم واکنش (Vaakonesh) در کراولر P2X، یکی از الگوریتم‌های منفی است که سرعت واکنش‌گرایی پایین (INP) را بررسی می‌کند.

سه نکته کلیدی که باید همیشه به خاطر داشته باشید:

  1. INP باید کمتر از ۲۰۰ میلی‌ثانیه باشد (ایده‌آل کمتر از ۱۰۰ میلی‌ثانیه) - INP یکی از سه معیار اصلی Core Web Vitals است و از مارس ۲۰۲۴ جایگزین FID شده است.

  2. جاوااسکریپت را بهینه کنید، event handlers را سبک کنید و از debouncing استفاده کنید - این سه اقدام بیشترین تأثیر را بر کاهش INP دارند.

  3. با ابزار PageSpeed Insights به طور منظم INP خود را اندازه‌گیری کنید - مانیتورینگ مداوم به شما کمک می‌کند مشکلات را زودتر تشخیص دهید.

با رعایت این اصول، می‌توانید از جریمه الگوریتم واکنش در امان بمانید.