یک صفحه ممکن است روی لپ تاپ شما در کمتر از چند ثانیه باز شود، اما برای کاربری که با موبایل میان رده و اینترنت ضعیف تر وارد سایت شده تجربه کاملاً متفاوتی ایجاد کند. ممکن است محتوای اصلی دیر ظاهر شود، کلیک روی منو با تأخیر پاسخ بگیرد یا هنگام بارگذاری تصویر و تبلیغ، چیدمان صفحه جابه جا شود.
همه این مشکلات را معمولاً زیر عنوان کلی «کند بودن سایت» قرار می دهیم، در حالی که از نظر فنی یک مسئله واحد نیستند.
سرعت سایت مجموعه ای از چند بُعد مختلف عملکرد است: سرعت پاسخ سرور، زمان نمایش محتوا، نحوه بارگذاری منابع، پاسخ گویی صفحه به تعاملات و ثبات بصری رابط کاربری.
از دید SEO نیز بهتر است سرعت را به یک امتیاز PageSpeed یا عدد Lighthouse تقلیل ندهیم. Google اعلام کرده Core Web Vitals در سیستم های Ranking استفاده می شوند، اما داشتن امتیاز خوب در این معیارها تضمین نمی کند یک صفحه در رتبه های بالای نتایج قرار بگیرد. کیفیت محتوا، ارتباط با Query و سایر سیگنال های Ranking همچنان اهمیت دارند.
پس هدف از بهبود سرعت سایت فقط «سبز کردن PageSpeed» نیست. باید تجربه واقعی کاربر را سریع تر، پاسخ گوتر و پایدارتر کنیم و در کنار آن یکی از بخش های مهم کیفیت فنی سایت را بهبود دهیم.
آیا سرعت سایت روی سئو تأثیر دارد؟
بله، اما رابطه سرعت سایت و سئو را نباید بیش از حد ساده کرد.
Google می گوید Core Web Vitals توسط سیستم های Ranking استفاده می شوند و داشتن تجربه صفحه مناسب می تواند به موفقیت در Search کمک کند. در عین حال Google صراحتاً تأکید می کند که Core Web Vitals تنها بخشی از مجموعه بزرگ تری از سیگنال ها هستند و گرفتن نتیجه خوب در ابزارهایی مانند Search Console تضمین رتبه بالا نیست.
بنابراین این گزاره دقیق نیست:
«اگر سرعت سایت را بالا ببریم، رتبه Google حتماً بهتر می شود.»
عبارت دقیق تر این است:
بهبود Performance می تواند تجربه کاربران و وضعیت Core Web Vitals را بهتر کند و این معیارها بخشی از سیگنال های مورد استفاده سیستم های Ranking هستند؛ اما اثر نهایی SEO به عوامل متعدد دیگری نیز وابسته است.
اگر می خواهید رابطه این سیگنال ها را در تصویر بزرگ تری ببینید، در مقاله رتبه بندی گوگل درباره نحوه نگاه به Ranking Systems توضیح داده ایم.
اما حتی اگر Ranking را برای لحظه ای کنار بگذاریم، Performance همچنان اهمیت دارد. کاربری که برای دیدن محتوا منتظر می ماند، روی دکمه ای کلیک می کند و پاسخ نمی گیرد یا با جابه جایی ناگهانی عناصر روبه رو می شود، تجربه مطلوبی از سایت ندارد.
سرعت سایت یک عدد نیست
یکی از رایج ترین سوءبرداشت ها این است که «سرعت سایت» را با یک عدد مثل Performance Score در Lighthouse یکی بدانیم.
در واقع باید چند سؤال جداگانه مطرح کنیم:
- سرور چه زمانی شروع به ارسال HTML می کند؟
- اولین محتوا چه زمانی روی صفحه ظاهر می شود؟
- محتوای اصلی چه زمانی قابل مشاهده است؟
- صفحه هنگام Load شدن چقدر Main Thread را درگیر می کند؟
- تعامل کاربر با چه سرعتی پاسخ داده می شود؟
- عناصر صفحه چقدر پایدار هستند؟
- این تجربه برای کاربران واقعی چگونه است؟
به همین دلیل ابزارهای Performance چند Metric مختلف ارائه می کنند.
مهم ترین معیارهایی که باید بشناسیم
| معیار | چه چیزی را نشان می دهد؟ | کاربرد اصلی |
|---|---|---|
| TTFB | زمان دریافت اولین بایت پاسخ | بررسی Backend، شبکه، Cache و CDN |
| FCP | زمان نمایش اولین محتوای قابل مشاهده | تشخیص سرعت شروع Rendering |
| LCP | زمان نمایش محتوای اصلی | Loading Performance |
| INP | پاسخ گویی به تعاملات کاربر | Responsiveness |
| CLS | جابه جایی غیرمنتظره عناصر | Visual Stability |
| TBT | زمان Block شدن Main Thread در تست Lab | تشخیص مشکلات JavaScript و Main Thread |
در میان این معیارها، LCP، INP و CLS سه Core Web Vital فعلی هستند.
اگر مشکل شما دیر ظاهر شدن محتوای اصلی است، مقاله LCP چیست مسئله را به صورت تخصصی بررسی می کند.
اگر صفحه Load می شود اما کلیک، Tap یا ورودی کاربر با تأخیر پاسخ می گیرد، باید INP را بررسی کنید.
و اگر عناصر بعد از نمایش ناگهان جابه جا می شوند، مسئله به CLS مربوط است.
این تفکیک مهم است، چون یک نسخه واحد برای «افزایش سرعت سایت» وجود ندارد. سایتی که LCP ضعیف دارد لزوماً همان مشکلی را ندارد که سایتی با INP ضعیف تجربه می کند.
PageSpeed Insights واقعاً چه چیزی را نشان می دهد؟
PageSpeed Insights یکی از مفیدترین ابزارها برای شروع بررسی Performance است، اما فقط زمانی که تفاوت دو بخش اصلی آن را بدانیم.
Field Data؛ تجربه کاربران واقعی
Field Data در PageSpeed Insights از Chrome User Experience Report یا CrUX می آید و تجربه واقعی کاربران Chrome را در یک بازه ۲۸ روزه گزارش می کند.
این داده می تواند شامل مواردی مانند:
- LCP
- INP
- CLS
- FCP
- TTFB
باشد.
اگر برای URL موردنظر داده کافی وجود نداشته باشد، ممکن است PageSpeed Insights اطلاعات سطح Origin را نمایش دهد یا اصلاً Field Data در دسترس نباشد.
Field Data پاسخ این سؤال را می دهد:
کاربران واقعی سایت ما چه تجربه ای دارند؟
Lab Data؛ محیط کنترل شده برای عیب یابی
بخش Lab توسط Lighthouse تولید می شود و صفحه را در شرایط شبیه سازی شده آزمایش می کند.
Lab Data بیشتر برای پاسخ دادن به این سؤال مفید است:
چرا صفحه کند است و چه چیزی می تواند عامل آن باشد؟
Google نیز توضیح می دهد که Lab Data برای Debugging مفید است، اما ممکن است تمام Bottleneckهایی را که کاربران واقعی تجربه می کنند نشان ندهد. در مقابل Field Data تجربه واقعی را بهتر منعکس می کند، ولی جزئیات تشخیصی محدودتری دارد.
پس یک Workflow حرفه ای این است:
Field Data → پیدا کردن مشکل واقعی → Lab Data → تشخیص علت → اصلاح → اندازه گیری دوباره
نه اینکه فقط Lighthouse را چند بار اجرا کنیم و برای رسیدن به Score صد تلاش کنیم.
روش درست تحلیل سرعت سایت چیست؟
بهبود Performance باید شبیه Debugging باشد، نه اجرای تصادفی یک Checklist.
مرحله اول: مشخص کنید مشکل واقعی وجود دارد یا نه
ابتدا Search Console، PageSpeed Insights یا ابزار RUM خودتان را بررسی کنید.
ببینید:
- مشکل در موبایل است یا دسکتاپ؟
- یک URL مشکل دارد یا گروه بزرگی از صفحات؟
- LCP ضعیف است؟
- INP ضعیف است؟
- CLS مشکل دارد؟
- TTFB بالا است؟
تا زمانی که Metric مشکل دار مشخص نشده، شروع Optimization بیشتر شبیه حدس زدن است.
مرحله دوم: مشکل را به یک Bottleneck فنی تبدیل کنید
مثلاً «LCP ضعیف است» هنوز تشخیص نهایی نیست.
ممکن است علت آن یکی از این موارد باشد:
TTFB بالا → مشکل Server، Cache، Backend یا Network
Resource Load Delay بالا → مرورگر دیر متوجه LCP Resource می شود
Resource Load Duration بالا → فایل بزرگ یا انتقال کند است
Render Delay بالا → CSS، JavaScript یا Rendering مانع نمایش Element شده اند
همین منطق درباره INP و CLS نیز وجود دارد.
هدف این مرحله تبدیل یک Metric به یک علت قابل اصلاح است.
مرحله سوم: بزرگ ترین مشکل را اول اصلاح کنید
فرض کنید Lighthouse ده ها پیشنهاد نمایش می دهد.
این به آن معنی نیست که همه آن ها ارزش یکسانی دارند.
اگر ۷۰٪ مشکل Loading شما از یک Hero Image چند مگابایتی ناشی می شود، احتمالاً اصلاح همان تصویر ارزش بسیار بیشتری از Minify کردن یک فایل CSS کوچک دارد.
Performance Optimization باید Impact-driven باشد.
از خودتان بپرسید:
اگر فقط بتوانیم یک تغییر انجام دهیم، کدام تغییر بیشترین اثر را روی تجربه واقعی کاربر دارد؟
چگونه سرعت پاسخ سرور را بهتر کنیم؟
قبل از اینکه مرورگر بتواند HTML، CSS، JavaScript یا تصویر اصلی را پردازش کند، باید پاسخ اولیه سرور را دریافت کند.
اگر این مرحله کند باشد، تمام مراحل بعدی نیز دیرتر شروع می شوند.
TTFB بالا می تواند به دلایل مختلفی ایجاد شود:
- Backend کند
- Queryهای سنگین Database
- Cache نامناسب
- تعداد زیاد Redirect
- Server Overload
- فاصله جغرافیایی کاربر از سرور
- پردازش های غیرضروری قبل از تولید HTML
- زیرساخت Hosting نامتناسب با ترافیک
راهنمای web.dev نیز اشاره می کند که TTFB بالا می تواند رسیدن به LCP مناسب را بسیار دشوار کند و عواملی مانند Redirect، فاصله از سرور و نبود Cache در آن نقش دارند.
چه کار کنیم؟
در سطح Backend معمولاً باید این موارد بررسی شوند:
Cache کردن HTML یا Page Cache
اگر صفحه برای هر Request نیاز به تولید کامل HTML ندارد، Cache می تواند مقدار زیادی از پردازش Backend را حذف کند.
Object Cache و Database Optimization
در سیستم هایی مانند WordPress، تعداد زیاد Query یا Queryهای سنگین می توانند زمان تولید صفحه را بالا ببرند.
CDN
CDN می تواند برخی منابع و در بعضی معماری ها حتی HTML را از نقطه ای نزدیک تر به کاربر ارائه کند.
کاهش Redirectهای غیرضروری
زنجیره Redirect قبل از رسیدن به URL نهایی می تواند شروع Load را عقب بیندازد.
بررسی Hosting
Optimization نرم افزاری نمی تواند همیشه ضعف جدی زیرساخت را جبران کند. اگر Server در زمان ترافیک معمول دائماً تحت فشار است، مسئله باید در سطح منابع و معماری نیز بررسی شود.
مسیر Critical Rendering را سبک کنید
بعد از دریافت HTML، مرورگر باید صفحه را Parse و Render کند.
CSS و JavaScript می توانند این مسیر را به تأخیر بیندازند.
مسئله این نیست که «CSS یا JavaScript بد است»؛ مسئله این است که چه Resourceهایی قبل از نمایش محتوای اصلی واقعاً ضروری هستند.
در Performance خوب باید بین این دو دسته تفاوت بگذاریم:
Critical Resources:
مواردی که برای نمایش اولیه Viewport لازم هستند.
Non-critical Resources:
مواردی که می توانند بعداً Load یا Execute شوند.
برای مثال، JavaScript مربوط به Carousel پایین صفحه معمولاً نباید نمایش Heading و Hero بالای صفحه را متوقف کند.
CSS غیرضروری را از Critical Path خارج کنید
فایل CSS بسیار بزرگ می تواند Rendering را عقب بیندازد.
در پروژه های بزرگ باید بررسی شود:
- چه مقدار CSS واقعاً در صفحه استفاده می شود؟
- آیا Styles مربوط به Componentهای غیرموجود در همه صفحات Load می شوند؟
- آیا Critical CSS باید زودتر در دسترس باشد؟
- آیا فایل های Stylesheet بیش از حد Fragment شده یا برعکس بیش از حد بزرگ شده اند؟
هدف صرفاً Minify کردن نیست. باید مقدار کاری که Browser قبل از اولین Render انجام می دهد کاهش پیدا کند.
تصاویر را براساس نقششان بهینه کنید
تصاویر یکی از اولین جاهایی هستند که در Performance Audit باید بررسی شوند، اما «همه تصاویر را Lazy Load کن» راهکار درستی نیست.
تصویر بالای صفحه با تصویر پایین صفحه یکسان نیست
تصویری که داخل Viewport اولیه و احتمالاً LCP Element است باید زود Load شود.
Lazy Loading کردن تصویر Hero یا LCP می تواند نتیجه معکوس داشته باشد، چون Browser را مجبور می کند بارگذاری مهم ترین تصویر صفحه را دیرتر شروع کند.
در مقابل، تصاویر پایین صفحه معمولاً گزینه های مناسبی برای Lazy Loading هستند.
اندازه فایل را متناسب کنید
اگر تصویر در صفحه با عرض 600px نمایش داده می شود، ارسال نسخه 3000px معمولاً اتلاف Bandwidth است.
استفاده درست از:
srcsetsizes- تصاویر Responsive
- فرمت های مدرن مناسب
- Compression منطقی
باعث می شود کاربر فایلی نزدیک تر به نیاز واقعی Device خود دریافت کند.
ابعاد تصویر را مشخص کنید
width و height فقط برای Performance Loading نیستند. مشخص بودن ابعاد به Browser کمک می کند فضای تصویر را از ابتدا رزرو کند و از ایجاد CLS جلوگیری شود.
بنابراین Optimization تصاویر باید همزمان حجم، Priority، ابعاد و موقعیت تصویر در صفحه را در نظر بگیرد.
JavaScript را فقط کوچک نکنید؛ اجرای آن را مدیریت کنید
ممکن است دو سایت هر دو 500KB JavaScript دانلود کنند اما تجربه Performance کاملاً متفاوتی داشته باشند.
چرا؟
چون هزینه JavaScript فقط Download نیست.
مرورگر باید کد را:
- دانلود کند.
- Parse کند.
- Compile کند.
- Execute کند.
- در بسیاری از موارد باعث تغییر DOM و Rendering شود.
بنابراین حتی فایل JavaScript فشرده نیز می تواند Main Thread را برای مدت زیادی درگیر کند.
web.dev توصیه می کند JavaScript غیرضروری را در صورت امکان Code Split کنیم و اجرای کدی را که برای Load اولیه لازم نیست تا زمان نیاز به تأخیر بیندازیم؛ این کار علاوه بر Bandwidth می تواند فشار CPU و Main Thread را کاهش دهد.
کارهای عملی
بررسی کنید:
- کدام Script در تمام صفحات Load می شود ولی فقط بعضی صفحات به آن نیاز دارند؟
- آیا Bundle شامل کد استفاده نشده است؟
- آیا Componentهای پایین صفحه می توانند بعداً Initialize شوند؟
- آیا Library بزرگی برای قابلیت بسیار کوچکی استفاده شده؟
- آیا Scriptهای Third-party بیش از حد Main Thread را اشغال می کنند؟
- آیا Event Handlerها کار زیادی انجام می دهند؟
اگر مشکل اصلی بعد از Interaction کاربر رخ می دهد، بررسی تخصصی تر Interaction to Next Paint مسیر مناسب تری است.
Third-party Scriptها را بخشی از Budget Performance بدانید
بسیاری از سایت ها کد اصلی نسبتاً مناسبی دارند اما مجموعه ای از ابزارهای خارجی Performance را ضعیف می کنند.
برای مثال:
- Tag Manager
- Analyticsهای متعدد
- Heatmap
- Live Chat
- A/B Testing
- تبلیغات
- ابزار Personalization
- Widgetهای شبکه اجتماعی
- Tracking Scriptهای مختلف
مشکل این نیست که Third-party Script همیشه بد است.
سؤال مهم تر این است:
این Script چه ارزشی ایجاد می کند و هزینه Performance آن چقدر است؟
اگر ابزار Marketing مقدار قابل توجهی JavaScript اجرا می کند اما استفاده واقعی از آن بسیار محدود است، باید Value آن در مقابل Performance Cost بررسی شود.
همچنین بهتر است Third-partyها بدون کنترل به همه صفحات اضافه نشوند.
Cache را براساس نوع Resource تنظیم کنید
Caching یکی از مؤثرترین روش های کاهش Load تکراری است، اما Cache Policy باید منطقی باشد.
فایل هایی مانند:
- JavaScript Versioned
- CSS Versioned
- تصاویر
- Fontها
معمولاً می توانند مدت بیشتری Cache شوند.
اما HTML و داده Dynamic ممکن است سیاست متفاوتی نیاز داشته باشند.
اگر فایل های Static با Hash یا Version جدید منتشر می شوند، می توان Cache طولانی تری در نظر گرفت؛ چون هنگام تغییر فایل، URL آن نیز تغییر می کند.
هدف این است که کاربر در هر Page View دوباره همان Assetهای بدون تغییر را دانلود نکند.
Compression را فراموش نکنید
فایل های Text-based مانند:
- HTML
- CSS
- JavaScript
- JSON
- SVG
معمولاً می توانند با Compression مناسب با حجم کمتری منتقل شوند.
Brotli یا Gzip می توانند Transfer Size را کاهش دهند.
اما Compression جایگزین حذف Code اضافی نیست.
اگر 500KB JavaScript غیرضروری دارید، فشرده کردن آن بهتر از هیچ است؛ ولی راه بهتر این است که ابتدا ببینید آیا آن 500KB اصلاً باید ارسال شود یا نه.
قاعده مناسب:
ابتدا چیزی را که نیاز ندارید حذف کنید؛ سپس چیزی را که لازم است بهینه منتقل کنید.
فونت ها چگونه سرعت سایت را کاهش می دهند؟
Web Font می تواند هم Loading و هم Layout را تحت تأثیر قرار دهد.
مشکلات رایج عبارت اند از:
- تعداد زیاد Font File
- Weightهای متعدد بدون استفاده
- فایل های بزرگ
- Load شدن Font از Domain خارجی
- Preload کردن تعداد زیادی Font
- Font Swap با اختلاف Metric زیاد
در اغلب پروژه ها بهتر است فقط Fontهایی که واقعاً برای View اولیه ضروری هستند با Priority بالا Load شوند.
Preload کردن همه فایل های Font معمولاً ایده خوبی نیست. Preload باید برای Resourceهایی استفاده شود که واقعاً Critical هستند؛ وگرنه خود Preload می تواند Bandwidth را از منابع مهم تر بگیرد.
آیا CDN سرعت سایت را حتماً بهتر می کند؟
نه در همه شرایط، اما در بسیاری از معماری ها می تواند مفید باشد.
CDN معمولاً کمک می کند Static Assetها از Location نزدیک تری به کاربر ارائه شوند و می تواند قابلیت هایی مانند:
- Edge Caching
- Compression
- Image Optimization
- HTTP/2 یا HTTP/3
- TLS Optimization
را فراهم کند.
اما CDN نمی تواند یک Backend بسیار کند، Queryهای ضعیف یا JavaScript سنگین سمت Client را به تنهایی حل کند.
اگر TTFB به دلیل پردازش ۳ ثانیه ای Backend بالا است، قرار دادن یک CDN جلوی Server بدون Cache مناسب ممکن است مشکل اصلی را تغییر ندهد.
Mobile Performance را جداگانه بررسی کنید
یکی از خطاهای جدی در Performance Testing این است که سایت را فقط روی سیستم توسعه دهنده بررسی کنیم.
یک لپ تاپ قدرتمند با اتصال سریع می تواند بسیاری از مشکلات را پنهان کند.
کاربران واقعی ممکن است:
- CPU ضعیف تری داشته باشند.
- حافظه کمتری داشته باشند.
- روی شبکه ناپایدار باشند.
- فاصله بیشتری از Server داشته باشند.
- از Browser یا Device متفاوت استفاده کنند.
همین دلیل یکی از ارزش های Field Data است.
اگر PageSpeed Insights نشان می دهد Mobile ضعیف ولی Desktop مناسب است، باید این اختلاف را جدی بگیرید؛ نه اینکه Desktop را معیار واقعی سایت در نظر بگیرید.
چگونه بفهمیم کدام Optimization اولویت دارد؟
یک روش کاربردی این است که به جای Audit کردن براساس تکنولوژی، براساس علامت مشکل جلو برویم.
| علامت | ابتدا چه چیزی را بررسی کنیم؟ |
|---|---|
| صفحه دیر شروع به Load می کند | TTFB، Server، Redirect، Cache |
| محتوای اصلی دیر ظاهر می شود | LCP Resource، تصاویر، CSS، TTFB |
| صفحه سریع دیده می شود ولی کلیک کند است | JavaScript، Long Task، Main Thread، INP |
| عناصر بعد از Load جابه جا می شوند | Dimensions، Fonts، Ads، Dynamic Content، CLS |
| فقط موبایل کند است | CPU Cost، JS، حجم Asset، Network |
| بازدید اول کند ولی بازدید بعدی سریع است | Cache، Asset Loading، CDN |
| فقط صفحات خاص کند هستند | Template، Query، Component یا Asset همان Page Type |
این جدول به شما کمک می کند به جای «بهینه سازی همه چیز»، مشکل را به یک مسیر مشخص هدایت کنید.
یک سناریوی واقعی نما برای بهبود سرعت
فرض کنیم یک فروشگاه اینترنتی داریم.
PageSpeed Insights نشان می دهد کاربران موبایل تجربه ضعیفی دارند.
در Field Data می بینیم:
- LCP مشکل دارد.
- INP در محدوده قابل قبول است.
- CLS نیز وضعیت خوبی دارد.
پس در این مرحله نیازی نیست وقت اصلی پروژه را روی Event Handlerها یا Layout Shift بگذاریم.
وارد Lab می شویم.
مشخص می شود LCP Element تصویر اصلی محصول است.
بعد Trace را بررسی می کنیم:
- TTFB حدوداً قابل قبول است.
- Browser دیر متوجه تصویر اصلی می شود.
- تصویر نیز حجم زیادی دارد.
- روی همان تصویر
loading="lazy"قرار داده شده است.
اینجا مشکل با نصب «افزونه افزایش سرعت» تعریف نمی شود.
سه Bottleneck مشخص داریم:
- Discovery دیرهنگام Resource
- Lazy Load اشتباه روی تصویر مهم
- حجم بیش از حد فایل
راهکار می تواند شامل خارج کردن Hero Image از Lazy Loading، قابل کشف کردن زودتر Resource و ارائه نسخه Responsive و کم حجم تر تصویر باشد.
بعد از اصلاح، Lab Test را تکرار می کنیم.
اگر نتیجه مناسب بود، تغییر را Deploy می کنیم و سپس Field Data روزها و هفته های بعد را بررسی می کنیم.
این همان چرخه حرفه ای Performance Optimization است:
Measure → Diagnose → Prioritize → Fix → Verify → Monitor
نه:
Install Plugin → Clear Cache → Run Lighthouse → Repeat
اگر سایت WordPress داریم از کجا شروع کنیم؟
در WordPress معمولاً وسوسه زیادی وجود دارد که مشکل Performance را فقط با نصب یک Plugin Cache حل کنیم.
Cache Plugin می تواند بسیار مفید باشد، اما باید ابتدا بدانیم مشکل کجاست.
اگر TTFB بالاست، مواردی مانند این ها را بررسی کنید:
- کیفیت Hosting
- Page Cache
- Object Cache
- Database Queryها
- Pluginهای سنگین
- درخواست های Backend
- Cron Jobها
اگر Front-end سنگین است:
- CSS و JS افزونه ها
- Page Builder
- Third-party Scriptها
- تصاویر
- فونت ها
- Sliderها
- Widgetها
را بررسی کنید.
یکی از مشکلات رایج WordPress این است که Plugin یا Theme یک Asset را روی تمام صفحات Load می کند، حتی زمانی که Component مربوط به آن در صفحه وجود ندارد.
بنابراین سؤال فقط این نیست که «چه Plugin سرعتی نصب کنیم؟»
سؤال بهتر این است:
کدام Resource یا پردازش در این صفحه هزینه ایجاد می کند و چرا؟
آیا باید برای Lighthouse Score 100 تلاش کنیم؟
معمولاً نه به عنوان هدف اصلی.
Lighthouse یک ابزار تشخیصی بسیار مفید است، اما Score آن تجربه تمام کاربران واقعی شما نیست.
ممکن است:
- Lighthouse شما 100 باشد اما کاربران واقعی INP ضعیفی داشته باشند.
- Lab Score متوسط باشد اما کاربران واقعی تجربه مناسبی داشته باشند.
- نتیجه تست بین دو اجرا کمی تغییر کند.
- مشکل فقط روی Device یا Network خاصی ظاهر شود.
Google نیز توصیه نمی کند صرفاً برای SEO دنبال Perfect Score باشید؛ خود Google می گوید داشتن نتایج خوب Core Web Vitals تضمین Ranking بالا نیست و تلاش برای Score کامل صرفاً به دلیل SEO ممکن است بهترین استفاده از زمان نباشد.
هدف باید رفع Bottleneck واقعی باشد.
اگر Performance Score از 92 به 100 برسد اما هیچ تفاوت معناداری برای کاربران واقعی ایجاد نشود، شاید بهتر باشد منابع تیم روی مشکل مهم تری صرف شود.
اشتباهات رایج در افزایش سرعت سایت
نصب چند افزونه Performance بدون تشخیص مشکل
ممکن است دو Plugin هم زمان Minification، Cache یا Lazy Loading انجام دهند و حتی باعث Conflict شوند.
ابزار باید براساس مشکل انتخاب شود، نه برعکس.
Lazy Load کردن همه تصاویر
تصاویر پایین صفحه معمولاً گزینه مناسبی هستند، اما Lazy Load کردن LCP Image یا Hero Image ممکن است Loading اصلی صفحه را بدتر کند.
تمرکز فقط روی حجم صفحه
حجم مهم است، اما تنها عامل Performance نیست.
یک JavaScript کوچک اما CPU-heavy می تواند Interaction را بیشتر از یک تصویر بزرگ پایین صفحه خراب کند.
Minify کردن به جای حذف کردن
کوچک تر کردن کدی که اصلاً لازم نیست، همچنان از حذف آن ضعیف تر است.
تست فقط روی Homepage
ممکن است Homepage سریع باشد ولی:
- Product Page
- Category
- Article
- Search Results
- Checkout
مشکلات متفاوتی داشته باشند.
Performance را در سطح Template و Page Type بررسی کنید.
تست فقط یک بار
یک Run آزمایشگاهی حقیقت مطلق نیست.
Network، Server Load و شرایط اجرای تست تغییر می کنند. برای تصمیم جدی باید چند نمونه و Field Data را در کنار هم دید.
بهینه سازی Metric بدون فهم تجربه کاربر
گاهی تیم فقط می خواهد عدد گزارش سبز شود.
اما Performance خوب باید در نهایت به این منجر شود که کاربر:
- زودتر محتوا را ببیند.
- سریع تر بتواند تعامل کند.
- با Layout پایدار روبه رو شود.
Metric وسیله اندازه گیری است، نه هدف نهایی.
سرعت سایت در استراتژی سئو چه جایگاهی دارد؟
Performance بخشی از سئو تکنیکال است، اما Technical SEO فقط Performance نیست.
سایتی می تواند بسیار سریع باشد ولی مشکلات جدی در:
- Crawling
- Indexing
- Canonicalization
- Redirect
- Internal Architecture
- HTTP Status
- Rendering
داشته باشد.
همین طور یک سایت از نظر Technical SEO سالم می تواند Performance ضعیفی داشته باشد.
بنابراین افزایش سرعت سایت باید بخشی از یک برنامه فنی بزرگ تر باشد، نه جایگزین آن.
یک Workflow عملی برای پروژه های واقعی
اگر قرار باشد فردا Performance یک سایت را Audit کنید، این ترتیب معمولاً منطقی تر از شروع با فهرست ده ها Optimization است:
۱. Search Console را بررسی کنید.
ببینید Core Web Vitals در چه گروهی از صفحات مشکل دارند.
۲. PageSpeed Insights را برای نمونه URLهای هر Template بررسی کنید.
اول Field Data و سپس Lab Data را ببینید.
۳. Metric مشکل دار را مشخص کنید.
LCP، INP، CLS یا TTFB؟
۴. Bottleneck را در DevTools پیدا کنید.
Network، Performance Trace، Main Thread، Resource Priority و Rendering را بررسی کنید.
۵. اصلاح ها را براساس Impact اولویت بندی کنید.
اول بزرگ ترین Bottleneck.
۶. تغییر را در Lab دوباره تست کنید.
۷. بعد از Deploy، Field Data را زیر نظر بگیرید.
چون CrUX تجربه کاربران را در یک پنجره ۲۸ روزه گزارش می کند، نباید انتظار داشته باشید بلافاصله بعد از Deploy تمام Field Metrics تغییر کنند.
جمع بندی
رابطه سرعت سایت و سئو را نباید به یک Score ساده کرد.
Performance واقعی از چند بخش تشکیل می شود: سرعت پاسخ Server، Loading منابع، Rendering، پاسخ گویی به Interaction و ثبات Layout. به همین دلیل قبل از Optimization باید مشخص کنیم دقیقاً کدام بخش مشکل دارد.
اگر LCP ضعیف است، روی Loading محتوای اصلی تمرکز کنید.
اگر INP ضعیف است، Main Thread، JavaScript و Interactionهای کند را بررسی کنید.
اگر CLS بالا است، منبع جابه جایی Layout را پیدا کنید.
اگر TTFB بالا است، از Front-end شروع نکنید؛ Server، Cache و Backend را بررسی کنید.
و مهم تر از همه:
سرعت سایت را با «چه چیزی می توانم Minify کنم؟» شروع نکنید؛ با «کاربر کجا منتظر می ماند و علت آن چیست؟» شروع کنید.
Performance Optimization زمانی حرفه ای می شود که از اجرای Checklist به فرایند اندازه گیری، تشخیص، اولویت بندی، اصلاح و اعتبارسنجی تبدیل شود.

اولین دیدگاه را بنویسید