رفتن به محتوای اصلی
موتور وردپرس WPMotor.ir
سرعت و بهینه سازی

چرا سایت وردپرسی شما کند است؟ راهنمای کش و افزایش سرعت وردپرس

10 دقیقه مطالعه آخرین به‌روزرسانی:

سرعت یک سایت وردپرسی فقط به قدرت سرور یا تعداد افزونه‌های نصب‌شده بستگی ندارد. گاهی صفحه‌ای که باید در چند لحظه نمایش داده شود، برای هر بازدید دوباره از پایگاه داده اطلاعات می‌گیرد، کدهای PHP را اجرا می‌کند و محتوای صفحه را از ابتدا می‌سازد. همین فرایند می‌تواند زمان انتظار بازدیدکننده را افزایش دهد؛ مخصوصاً زمانی که چند نفر هم‌زمان وارد سایت می‌شوند.

یکی از راه‌های کاهش این پردازش‌های تکراری، استفاده از کش (Cache) است. کش به وردپرس کمک می‌کند تا در شرایط مناسب، به‌جای ساختن دوباره یک صفحه، نسخه‌ای از نتیجه قبلی را سریع‌تر در اختیار بازدیدکننده قرار دهد.

اما فعال‌کردن کش به‌تنهایی همیشه کافی نیست. اگر بدانید کش چگونه کار می‌کند، چه انواعی دارد و کجا ممکن است مشکل ایجاد کند، می‌توانید با انتخاب تنظیمات مناسب، سرعت سایت را به شکل مؤثرتری بهبود دهید.

کش در وردپرس دقیقاً چگونه کار می‌کند؟

وقتی بازدیدکننده وارد یک صفحه از سایت وردپرسی می‌شود، وردپرس معمولاً باید اطلاعات موردنیاز را از پایگاه داده دریافت کند، قالب و افزونه‌های مرتبط را اجرا کند و در نهایت HTML صفحه را بسازد. این فرایند برای صفحات پویا ضروری است، اما اجرای مکرر آن برای محتوایی که تغییر چندانی نمی‌کند، منابع سرور را هدر می‌دهد.

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

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

البته این به معنای آن نیست که همه صفحات باید همیشه از نسخه ذخیره‌شده نمایش داده شوند. صفحات سبد خرید، اطلاعات حساب کاربری و بخش‌هایی که برای هر کاربر متفاوت هستند، به مدیریت دقیق‌تری نیاز دارند.

انواع کش در وردپرس

کش فقط یک قابلیت نیست که با نصب یک افزونه فعال شود. چند لایه مختلف از کش وجود دارد که هرکدام بخش متفاوتی از فرایند بارگذاری سایت را بهینه می‌کنند.

۱. کش صفحه (Page Cache)

این نوع کش نسخه آماده HTML یک صفحه را ذخیره می‌کند. هنگام بازدید مجدد، سرور می‌تواند همان نسخه را ارائه دهد و در بسیاری از موارد از اجرای مجدد PHP و درخواست‌های پایگاه داده برای ساخت آن صفحه جلوگیری کند.

برای وبلاگ‌ها، سایت‌های شرکتی و صفحات محتوایی که مرتب تغییر نمی‌کنند، این نوع کش معمولاً نقطه شروع مناسبی است.

۲. کش مرورگر (Browser Cache)

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

این قابلیت به‌ویژه برای بازدیدکنندگان تکراری مفید است. مدت نگهداری فایل‌ها باید با توجه به نحوه به‌روزرسانی آن‌ها و تنظیمات HTTP تعیین شود.

۳. کش آبجکت (Object Cache)

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

کش آبجکت پیش‌فرض وردپرس به‌طور معمول فقط در طول همان درخواست معتبر است. برای نگهداری داده‌ها میان درخواست‌های مختلف، به یک راهکار پایدار مانند Redis یا Memcached و اتصال مناسب آن به وردپرس نیاز دارید.

۴. کش کد PHP یا OPcache

PHP OPcache کد PHP کامپایل‌شده را نگه می‌دارد تا در اجراهای بعدی، مفسر مجبور نباشد همان فایل‌ها را دوباره کامپایل کند.

این قابلیت در سطح PHP و سرور کار می‌کند و با کش صفحه متفاوت است. حتی اگر کش صفحه فعال باشد، OPcache همچنان می‌تواند برای درخواست‌هایی که باید واقعاً اجرا شوند مفید باشد.

این لایه‌ها جایگزین یکدیگر نیستند. یک سایت ممکن است از کش صفحه برای ارائه سریع محتوا، از کش مرورگر برای فایل‌های ثابت و از OPcache برای کاهش هزینه اجرای PHP استفاده کند. انتخاب لایه‌های دیگر، از جمله کش آبجکت، به ساختار و نیازهای سایت بستگی دارد.

چطور برای سایت وردپرسی کش فعال کنیم؟

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

مرحله اول: وضعیت فعلی هاست را بررسی کنید

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

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

مرحله دوم: یک افزونه مناسب انتخاب کنید

اگر کش صفحه از قبل در سطح سرور فعال نیست، می‌توانید از افزونه‌های کش وردپرس استفاده کنید.

چند گزینه شناخته‌شده عبارت‌اند از:

  • WP Super Cache: گزینه‌ای برای ایجاد نسخه‌های ایستا از صفحات وردپرس.
  • W3 Total Cache: افزونه‌ای با امکانات متعدد برای مدیریت لایه‌های مختلف کش.
  • LiteSpeed Cache: افزونه‌ای با امکانات بهینه‌سازی و کش که قابلیت‌های سمت سرور آن به سازگاری زیرساخت وابسته است.

انتخاب بهترین افزونه به سرور، قالب، افزونه‌های نصب‌شده و نوع سایت بستگی دارد. برای مثال، صرف نصب LiteSpeed Cache به این معنی نیست که همه قابلیت‌های اختصاصی آن روی هر وب‌سروری فعال خواهند بود.

مرحله سوم: تنظیمات را ساده نگه دارید

پس از نصب افزونه، ابتدا کش صفحه را فعال کنید و سایت را با تنظیمات پایه آزمایش کنید. اگر افزونه گزینه‌های جداگانه‌ای برای فشرده‌سازی، ترکیب فایل‌ها، تأخیر در اجرای JavaScript یا بهینه‌سازی تصاویر دارد، لازم نیست همه را هم‌زمان فعال کنید.

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

مرحله چهارم: کش را پاک کنید و سایت را آزمایش کنید

پس از تغییر تنظیمات، کش قبلی را پاک کنید تا نتیجه جدید را ببینید. سپس سایت را در یک پنجره ناشناس مرورگر باز کنید و چند صفحه مهم را بررسی کنید.

به این موارد توجه کنید:

  • آیا صفحه اصلی و نوشته‌ها به‌درستی نمایش داده می‌شوند؟
  • آیا تغییرات جدید پس از انتشار قابل مشاهده هستند؟
  • آیا منوها، فرم‌ها و جست‌وجوی سایت درست کار می‌کنند؟
  • آیا ورود و خروج کاربران و بخش‌های اختصاصی سایت بدون مشکل هستند؟
  • آیا تصاویر و فایل‌های ظاهری سایت به‌درستی بارگذاری می‌شوند؟

پاک‌کردن کش لزوماً به معنای پاک‌شدن اطلاعات اصلی سایت نیست. با این حال، باید بدانید هر ابزار دقیقاً چه نوع کشی را حذف می‌کند و چه اثری بر منابع سایت دارد.

چه صفحاتی نباید به‌صورت معمول کش شوند؟

یکی از اشتباهات رایج این است که تصور کنیم هرچه تعداد صفحات بیشتری کش شوند، سایت حتماً سریع‌تر و بهتر کار می‌کند. در سایت‌هایی که محتوای اختصاصی هر کاربر نمایش داده می‌شود، این کار ممکن است نتیجه معکوس داشته باشد.

برای مثال، در یک فروشگاه اینترنتی ووکامرس، محتوای صفحه محصول معمولاً برای کاربران مختلف یکسان است؛ اما سبد خرید، تسویه‌حساب و اطلاعات حساب کاربری ممکن است برای هر شخص متفاوت باشند.

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

صفحات یا بخش‌هایی که معمولاً به استثناهای کش نیاز دارند عبارت‌اند از:

  • سبد خرید و صفحه تسویه‌حساب فروشگاه.
  • صفحه حساب کاربری و اطلاعات اختصاصی اعضا.
  • صفحاتی که اطلاعات لحظه‌ای یا محتوای شخصی‌سازی‌شده دارند.
  • فرم‌ها و فرایندهایی که به نشست کاربر وابسته‌اند، در صورت ناسازگاری با کش.

این به معنای ممنوع‌بودن هر نوع کش در تمام این بخش‌ها نیست؛ بلکه باید مشخص شود چه داده‌ای ذخیره می‌شود، برای چه کسی قابل استفاده است و چه زمانی باید به‌روزرسانی شود.

اگر کش فعال است اما سایت هنوز کند است، چه کار کنیم؟

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

۱. زمان پاسخ‌گویی سرور را بررسی کنید. اگر سرور حتی برای پاسخ اولیه زمان زیادی صرف می‌کند، ممکن است مشکل از منابع محدود، پردازش‌های سنگین PHP، درخواست‌های پایگاه داده یا تنظیمات سرور باشد.

۲. تصاویر را بهینه کنید. تصاویر بزرگ و فایل‌هایی که بدون نیاز با وضوح بالا بارگذاری می‌شوند، می‌توانند زمان نمایش صفحه را افزایش دهند. کش به‌تنهایی حجم این فایل‌ها را کاهش نمی‌دهد.

۳. افزونه‌ها و قالب را بررسی کنید. تعداد افزونه‌ها به‌تنهایی معیار مناسبی برای تشخیص کندی نیست. یک افزونه می‌تواند درخواست‌های سنگین زیادی ایجاد کند، در حالی که چند افزونه دیگر تقریباً تأثیر محسوسی بر عملکرد نداشته باشند.

۴. فایل‌های CSS و JavaScript را بررسی کنید. اسکریپت‌های سنگین یا فایل‌هایی که بارگذاری محتوای اصلی صفحه را به تأخیر می‌اندازند، ممکن است حتی در سایتی با کش مناسب هم مشکل‌ساز باشند.

۵. نتیجه را اندازه‌گیری کنید. پیش و پس از تغییر تنظیمات، صفحات یکسان را با شرایط تا حد ممکن مشابه بررسی کنید. ابزارهایی مانند PageSpeed Insights می‌توانند به شناسایی مشکلات عملکرد کمک کنند.

گوگل برای ارزیابی تجربه کاربری، معیارهایی مانند LCP برای سرعت نمایش محتوای اصلی، INP برای پاسخ‌گویی به تعاملات و CLS برای پایداری چیدمان را معرفی می‌کند. مقادیر هدف پیشنهادی این معیارها به‌ترتیب حداکثر ۲٫۵ ثانیه، کمتر از ۲۰۰ میلی‌ثانیه و کمتر از ۰٫۱ هستند. این معیارها را باید در کنار سایر نشانه‌های عملکرد بررسی کرد، نه اینکه صرفاً به یک امتیاز آزمایشگاهی تکیه کنیم.

هر چند وقت یک‌بار باید کش را پاک کنیم؟

نیازی نیست کش سایت را مرتب و بدون دلیل پاک کنید. سیستم کش باید بتواند با توجه به تغییر محتوا یا پایان اعتبار نسخه ذخیره‌شده، اطلاعات را به‌روز کند.

معمولاً در این شرایط پاک‌کردن کش منطقی است:

  • پس از تغییر تنظیمات کش یا بهینه‌سازی سایت.
  • وقتی نوشته یا صفحه‌ای را تغییر داده‌اید اما نسخه قدیمی نمایش داده می‌شود.
  • پس از به‌روزرسانی قالب یا افزونه‌ای که خروجی صفحات را تغییر می‌دهد.
  • وقتی به مشکل ناسازگاری کش مشکوک هستید و می‌خواهید آن را بررسی کنید.

توجه داشته باشید که گاهی چند لایه کش هم‌زمان فعال‌اند؛ مثلاً کش افزونه، کش سرور و کش مرورگر. در چنین شرایطی پاک‌کردن یک لایه لزوماً باعث به‌روزرسانی تمام نسخه‌های ذخیره‌شده نمی‌شود.

اگر تغییرات همچنان نمایش داده نمی‌شوند، باید مشخص کنید کدام لایه نسخه قدیمی را ارائه می‌کند.

جمع‌بندی

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

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

هدف این نیست که بیشترین تعداد قابلیت‌های بهینه‌سازی را فعال کنید؛ هدف این است که سایت شما با کمترین پردازش غیرضروری، سریع و درست کار کند.

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

گفت‌وگو را شروع کنید

دیدگاه یا پرسش خود را درباره این مطلب با ما در میان بگذارید.