مقاله

افزایش سرعت سایت وردپرسی؛ از تشخیص علت تا رفع کندی

افزایش سرعت سایت وردپرسی؛ از تشخیص علت تا رفع کندی

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

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

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

تست سرعت سایت با PageSpeed Insights

ابزار رایگان PageSpeed Insights گوگل ساده‌ترین نقطهٔ شروع است. آدرس صفحه را وارد می‌کنید و گزارشی جدا برای موبایل و دسکتاپ می‌گیرید. چند نکته در خواندن این گزارش مهم است:

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

سه شاخص Core Web Vitals به زبان ساده

گوگل برای سنجش تجربهٔ کاربر در صفحه سه شاخص اصلی دارد که در همان گزارش می‌بینید:

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

علت کند بودن سایت وردپرس چیست؟

وقتی می‌پرسید چرا سایت وردپرس دیر لود می‌شود، پاسخ تقریباً همیشه در یکی از این علت‌ها یا ترکیبی از آن‌هاست.

هاست ضعیف یا شلوغ

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

قالب سنگین و صفحه‌ساز

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

افزونه‌های زیاد با کارهای تکراری

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

عکس‌های بهینه‌نشده

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

نبود کش صفحه

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

اسکریپت‌های بیرونی

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

نسخهٔ قدیمی PHP

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

دیتابیس شلوغ

با گذشت زمان، نسخه‌های قبلی نوشته‌ها (revisions)، دیدگاه‌های اسپم، داده‌های موقت (transients) و تنظیماتی که افزونه‌های حذف‌شده جا گذاشته‌اند در دیتابیس جمع می‌شوند.

از نشانه تا علت: جدول تشخیص سریع

نشانه علت احتمالی اولین قدم
صفحه‌ها دیر شروع به بارگذاری می‌کنند، حتی صفحه‌های ساده هاست ضعیف یا نبود کش صفحه بررسی زمان پاسخ سرور در گزارش تست و فعال‌کردن کش صفحه
صفحه زود شروع می‌شود ولی عکس اصلی دیر می‌آید عکس حجیم یا اسلایدر بالای صفحه کم‌کردن حجم و ابعاد عکس اول صفحه
روی موبایل خیلی کندتر از دسکتاپ است قالب یا صفحه‌ساز سنگین و جاوااسکریپت زیاد دیدن فهرست فایل‌های سنگین در بخش پیشنهادهای گزارش
کلیک‌ها با تأخیر جواب می‌دهند اسکریپت‌های بیرونی و جاوااسکریپت سنگین غیرفعال‌کردن آزمایشی چت آنلاین و کدهای اضافه در نسخهٔ آزمایشی
اجزای صفحه هنگام بارگذاری جابه‌جا می‌شوند عکس‌ها و بنرهای بدون ابعاد مشخص، فونت دیررس تعیین طول و عرض برای عکس‌ها و جای ثابت برای بنرها
پیشخوان وردپرس کند است دیتابیس شلوغ، افزونهٔ پرمصرف یا PHP قدیمی تهیهٔ نسخهٔ پشتیبان و بررسی افزونه‌ها و نسخهٔ PHP
سرعت در ساعت‌های مختلف خیلی فرق می‌کند هاست شلوغ یا محدودیت منابع پیگیری با پشتیبانی هاست و بررسی ارتقا

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

کندی پیشخوان وردپرس (wp-admin) با کندی صفحه‌هایی که بازدیدکننده می‌بیند فرق دارد و راه‌حل‌هایش هم فرق دارد. خیلی از سایت‌ها برای بازدیدکننده سریع‌اند، ولی صاحب سایت برای بازکردن فهرست نوشته‌ها یا ذخیرهٔ یک محصول چند ثانیه منتظر می‌ماند. علت‌های رایج کندی پیشخوان را از بیرون سرور تا داخل مرورگر به ترتیب در ادامه آورده‌ایم.

کندی سایت با کندی پیشخوان چه فرقی دارد؟

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

درخواست‌های بیرونی سرور؛ علت پنهان کندی در ایران

وردپرس، قالب و افزونه‌ها هنگام بازشدن پیشخوان بی‌صدا به سرورهای دیگر وصل می‌شوند. هستهٔ وردپرس برای بررسی به‌روزرسانی هسته، افزونه‌ها و قالب‌ها به api.wordpress.org درخواست می‌فرستد؛ ابزارک «رویدادها و اخبار وردپرس» در صفحهٔ اول پیشخوان خبر و رویداد می‌گیرد؛ افزونه‌ها و قالب‌های تجاری اعتبار لایسنس را از سرور سازندهٔ خودشان می‌پرسند؛ بعضی افزونه‌ها هم اطلاعیه، بنر تبلیغاتی یا آمار استفاده را از سرور خودشان می‌گیرند.

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

تشخیص با Query Monitor: افزونهٔ رایگان Query Monitor را موقتاً فعال کنید و در نوار بالای پیشخوان، بخش HTTP API Calls را باز کنید. آنجا فهرست درخواست‌هایی را می‌بینید که در ساختن همان صفحه به بیرون رفته‌اند، همراه با آدرس مقصد، زمان صرف‌شده، خطا و اینکه کدام افزونه یا قالب آن را فرستاده است. درخواستی که خطای timeout دارد یا چند ثانیه طول کشیده، سرنخ اصلی شماست. بعد از تشخیص، خود Query Monitor را هم غیرفعال کنید، چون در صفحه‌هایی که بازمی‌کنید کار اضافه انجام می‌دهد.

بستن درخواست‌های بیرونی با wp-config.php: وردپرس دو ثابت برای این کار دارد. با WP_HTTP_BLOCK_EXTERNAL با مقدار true، همهٔ درخواست‌هایی که از راه HTTP API خود وردپرس به بیرون می‌روند بسته می‌شوند و فقط درخواست به خود سایت و localhost اجازه دارد. با WP_ACCESSIBLE_HOSTS می‌توانید فهرستی از دامنه‌های مجاز را، جداشده با ویرگول انگلیسی، استثنا کنید؛ مثلاً دامنهٔ API درگاه پرداخت یا سرویس پیامک که سایت برای کار روزانه‌اش لازم دارد. علامت ستاره هم برای زیردامنه‌ها پذیرفته می‌شود، مثل *.example.com؛ این الگو خود example.com را شامل نمی‌شود و اگر آن را هم لازم دارید، جدا بنویسید.

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

  • وقتی api.wordpress.org بسته باشد، وردپرس دیگر خبر به‌روزرسانی‌ها، از جمله به‌روزرسانی‌های امنیتی، را نمی‌گیرد و نصب افزونه از داخل پیشخوان هم کار نمی‌کند. پس این ثابت راه‌حل موقت برای دورهٔ قطعی است، نه تنظیم همیشگی؛ بعد از برگشتن اینترنت آن را بردارید یا خطش را غیرفعال کنید. عقب‌ماندن از به‌روزرسانی‌ها چه خطری دارد، در مقالهٔ امنیت سایت وردپرس آمده است.
  • اگر درگاه پرداخت، سرویس پیامک یا هر سرویس دیگری که سایت از سمت سرور صدا می‌زند را در فهرست مجاز نگذارید، آن بخش از کار می‌افتد. پیش از فعال‌کردن، فهرست این سرویس‌ها را دربیاورید و بعد از فعال‌کردن یک سفارش یا ارسال آزمایشی انجام دهید.
  • این ثابت‌ها فقط روی درخواست‌هایی اثر دارند که از HTTP API وردپرس می‌گذرند. افزونه‌ای که مستقیم با cURL به بیرون وصل شود، از آن‌ها پیروی نمی‌کند و باید جداگانه بررسی یا غیرفعال شود.
  • پیش از ویرایش wp-config.php از فایل‌ها و دیتابیس نسخهٔ پشتیبان بگیرید؛ یک ویرگول یا نقل‌قول جاافتاده در این فایل کل سایت را از دسترس خارج می‌کند.

فونت‌ها و فایل‌هایی که مرورگر شما بار می‌کند: بخشی از درخواست‌های بیرونی کار سرور نیست، کار مرورگر شماست. بعضی افزونه‌ها و قالب‌ها در خود پیشخوان هم فونت را از Google Fonts یا فایل‌هایشان را از CDN بیرونی بار می‌کنند. اگر آن سرور در دسترس نباشد، مرورگر تا مدتی منتظر می‌ماند و صفحه نیمه‌کاره نمایش داده می‌شود. در تب Network ابزار توسعه‌دهندهٔ مرورگر ببینید کدام فایل در حالت انتظار مانده است؛ اگر افزونه گزینهٔ خاموش‌کردن فونت گوگل یا بارگذاری محلی دارد، از آن استفاده کنید. تصویر کاربران در فهرست دیدگاه‌ها هم از سرویس Gravatar می‌آید و اگر آن سرویس کند باشد، می‌توانید در تنظیمات ← گفت‌وگو گزینهٔ نمایش آواتارها را خاموش کنید.

رفع کندی پیشخوان وردپرس در دوره‌های اینترنت ملی

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

admin-ajax.php و Heartbeat؛ درخواست‌هایی که پیشخوان باز را مشغول نگه می‌دارند

وقتی پیشخوان در یک تب باز است، وردپرس با Heartbeat API در فاصله‌های منظم از راه فایل admin-ajax.php با سرور تماس می‌گیرد. این تماس‌ها کارهای مفیدی انجام می‌دهند: ذخیرهٔ خودکار نوشته، قفل‌کردن نوشته‌ای که در حال ویرایش است تا دو نفر هم‌زمان رویش کار نکنند، و هشدار تمام‌شدن نشست ورود. مشکل وقتی است که چند تب پیشخوان هم‌زمان باز بماند یا افزونه‌ها کار سنگینی به این تماس‌ها اضافه کنند؛ روی هاست اشتراکی با منابع محدود، این درخواست‌های پشت‌سرهم می‌توانند سهم پردازش حساب را مصرف کنند و همه‌چیز را کند کنند.

راه منطقی، کم‌کردن تکرار Heartbeat است نه خاموش‌کردن کامل آن. افزونه‌های کنترل Heartbeat اجازه می‌دهند فاصلهٔ تماس‌ها را در پیشخوان و صفحه‌های عمومی بیشتر کنید یا آن را در صفحه‌های غیرضروری خاموش کنید. اگر با کد کار می‌کنید، فیلتر heartbeat_settings و کلید interval همین کار را می‌کند؛ مقدار مجاز آن بین ۱۵ تا ۱۲۰ ثانیه است و بیرون از ویرایشگر می‌توانید آن را تا ۱۲۰ ثانیه بالا ببرید. در صفحهٔ ویرایش نوشته و محصول Heartbeat را خاموش نکنید، چون ذخیرهٔ خودکار و قفل ویرایش از کار می‌افتند و ممکن است نوشته‌ای که چند ساعت رویش کار کرده‌اید با یک قطعی اینترنت از دست برود. عادت ساده‌تر: تب‌های پیشخوانی را که لازم ندارید ببندید.

افزونه‌های سنگین، ابزارک‌های پیشخوان و ووکامرس

بعضی افزونه‌ها در هر صفحهٔ پیشخوان کار سنگینی انجام می‌دهند: افزونه‌های آمار که گزارش را در صفحهٔ اول پیشخوان نشان می‌دهند، افزونه‌های امنیتی که در هر بار بازشدن پیشخوان چیزی را بررسی می‌کنند، صفحه‌سازهایی که اسکریپت‌هایشان را در همهٔ صفحه‌های مدیریت بار می‌کنند. در Query Monitor بخش Queries by Component نشان می‌دهد کدام افزونه بیشترین پرس‌وجو و زمان را گرفته است. ابزارک‌هایی را که در صفحهٔ اول پیشخوان لازم ندارید، از «تنظیمات صفحه» بالای همان صفحه پنهان کنید.

در فروشگاه‌های ووکامرس با تعداد زیاد سفارش و محصول، بخش تحلیل‌ها (Analytics) و صفحه‌های wc-admin از سنگین‌ترین بخش‌های پیشخوان‌اند، چون گزارش‌ها از جدول‌های بزرگ سفارش ساخته می‌شوند. اگر از این گزارش‌ها استفاده نمی‌کنید، نسخه‌های جدید ووکامرس اجازهٔ خاموش‌کردن تحلیل‌ها را در ووکامرس ← تنظیمات ← پیشرفته ← امکانات (Features) می‌دهند. یک نقطهٔ پنهان دیگر Action Scheduler است: صفی که ووکامرس و افزونه‌های دیگر کارهای پس‌زمینه را در آن می‌گذارند. در ابزارها ← Scheduled Actions، یا ووکامرس ← وضعیت ← Scheduled Actions، ببینید چه تعداد کار در وضعیت در انتظار یا ناموفق مانده است. اگر هزاران کار در انتظار جمع شده، معمولاً یعنی WP-Cron درست اجرا نمی‌شود یا افزونه‌ای مدام کار ناموفق می‌سازد؛ علت را رفع کنید، نه اینکه فقط جدول را خالی کنید. نکته‌های دیگر نگهداری فروشگاه را در چک‌لیست راه‌اندازی فروشگاه ووکامرس آورده‌ایم.

دیتابیس: گزینه‌های autoload، داده‌های موقت و نسخه‌های نوشته

جدول wp_options جایی است که وردپرس و افزونه‌ها تنظیماتشان را نگه می‌دارند. ردیف‌هایی که autoload دارند در هر درخواست، چه صفحهٔ عمومی و چه پیشخوان، یک‌جا خوانده می‌شوند. افزونه‌ای که داده‌های بزرگ را با autoload ذخیره کند، یا افزونه‌ای که حذف شده ولی تنظیماتش مانده، هر درخواست را سنگین‌تر می‌کند. از نسخهٔ ۶٫۶ وردپرس، بخش «سلامت سایت» در ابزارها اگر حجم این گزینه‌ها زیاد باشد هشدار می‌دهد. برای دیدن حجم کل در phpMyAdmin می‌توانید این پرس‌وجو را اجرا کنید (پیشوند جدول ممکن است در سایت شما فرق داشته باشد):

SELECT SUM(LENGTH(option_value)) FROM wp_options WHERE autoload IN ('yes','on','auto-on','auto');

با مرتب‌کردن همین ردیف‌ها بر اساس طول option_value، بزرگ‌ترین‌ها را پیدا می‌کنید و از روی option_name معمولاً می‌شود فهمید متعلق به کدام افزونه‌اند. ردیف‌ها را دستی پاک نکنید مگر مطمئن باشید افزونه‌اش حذف شده است؛ پاک‌کردن تنظیمات یک افزونهٔ فعال می‌تواند آن را از کار بیندازد.

داده‌های موقت (transients) منقضی‌شده را وردپرس روزانه با WP-Cron پاک می‌کند؛ اگر کرون سایت کار نکند، این داده‌ها جمع می‌شوند. با wp-cli دستور wp transient delete --expired آن‌ها را پاک می‌کند. برای جلوگیری از انباشت نسخه‌های قبلی نوشته‌ها هم ثابت WP_POST_REVISIONS را در wp-config.php با عددی مثل ۵ تعریف کنید؛ این ثابت نسخه‌های قدیمی موجود را پاک نمی‌کند و فقط برای ذخیره‌های بعدی سقف می‌گذارد.

PHP، حافظه، کش آبجکت و OPcache

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

  • نسخهٔ PHP: روی نسخه‌ای باشید که هم پشتیبانی امنیتی می‌گیرد و هم قالب و افزونه‌هایتان با آن سازگارند.
  • حافظه: WP_MEMORY_LIMIT سقف حافظهٔ وردپرس در صفحه‌های عمومی است و WP_MAX_MEMORY_LIMIT سقفی است که وردپرس در پیشخوان، برای کاربر مدیر، و در کارهای سنگینی مثل پردازش عکس به آن بالا می‌رود؛ پس برای کندی پیشخوان دومی مهم‌تر است. بالابردن این عددها فقط وقتی اثر دارد که هاست اجازه بدهد؛ سقف memory_limit خود PHP را هاست تعیین می‌کند. کمبود حافظه بیشتر به شکل خطا و صفحهٔ سفید دیده می‌شود تا کندی.
  • کش آبجکت پایدار: اگر هاست Redis یا Memcached می‌دهد، با افزونهٔ متناسب نتیجهٔ پرس‌وجوهای تکراری دیتابیس بین درخواست‌ها نگه داشته می‌شود. این همان کشی است که برخلاف کش صفحه، به پیشخوان هم کمک می‌کند؛ مخصوصاً در فروشگاه‌ها.
  • OPcache: کد کامپایل‌شدهٔ PHP را در حافظه نگه می‌دارد تا فایل‌ها با هر درخواست از نو پردازش نشوند. معمولاً روی هاست فعال است، ولی ارزش یک سؤال از پشتیبانی را دارد.

سمت مرورگر: منوهای شلوغ، اطلاعیه‌ها و افزونه‌های مرورگر

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

نشانه در پیشخوان ← علت محتمل ← اولین کار

نشانه در پیشخوان علت محتمل اولین کار
همهٔ صفحه‌های پیشخوان چند ثانیه مکث دارند، ولی سایت برای بازدیدکننده سریع است درخواست بیرونی بی‌جواب به سرور به‌روزرسانی یا لایسنس بررسی بخش HTTP API Calls در Query Monitor
کندی فقط در روزهای اختلال یا قطعی اینترنت بین‌المللی سرور در ایران به api.wordpress.org و سرویس‌های خارجی دسترسی ندارد بستن موقت درخواست‌های بیرونی با فهرست مجاز، و برداشتن آن بعد از رفع قطعی
صفحه بالا می‌آید ولی نیمه‌کاره و بدون فونت می‌ماند فونت یا فایل افزونه از سرور خارجی بار می‌شود دیدن فایل در انتظار در تب Network مرورگر و خاموش‌کردن آن در تنظیمات افزونه
هرچه تب‌های بیشتری از پیشخوان باز باشد، همه‌چیز کندتر است تماس‌های مکرر Heartbeat از راه admin-ajax.php بستن تب‌های اضافه و بیشتر کردن فاصلهٔ Heartbeat بیرون از ویرایشگر
صفحهٔ سفارش‌ها یا گزارش‌های ووکامرس خیلی دیر باز می‌شود تحلیل‌های ووکامرس روی جدول‌های بزرگ یا صف شلوغ Action Scheduler بررسی کارهای در انتظار و ناموفق در ابزارها ← Scheduled Actions
هم سایت و هم پیشخوان کندند و با گذشت زمان بدتر شده‌اند گزینه‌های autoload حجیم و دیتابیس انباشته دیدن هشدار «سلامت سایت» و اجرای پرس‌وجوی حجم autoload
فقط صفحهٔ اول پیشخوان کند است ابزارک‌های سنگین آمار و خبر پنهان‌کردن ابزارک‌ها از «تنظیمات صفحه»
پیشخوان فقط روی مرورگر خودتان کند است افزونه‌های مرورگر یا مسیر فیلترشکن آزمایش در پنجرهٔ خصوصی و بدون فیلترشکن

افزایش سرعت لود سایت وردپرسی به ترتیب اولویت

ترتیب مهم است، چون بعضی کارها اثر بقیه را چند برابر می‌کنند و بعضی بدون کارهای قبلی تقریباً بی‌اثرند. این ترتیب برای بیشتر سایت‌ها جواب می‌دهد:

  1. نسخهٔ پشتیبان کامل بگیرید. از فایل‌ها و دیتابیس، پیش از هر تغییری؛ روشش را در مقالهٔ بکاپ سایت وردپرس گفته‌ایم. اگر امکانش هست، تغییرها را اول روی یک نسخهٔ آزمایشی سایت امتحان کنید.
  2. هاست و نسخهٔ PHP را بررسی کنید. اگر سرور کند است، بقیهٔ کارها روی پایهٔ لرزان انجام می‌شود.
  3. کش صفحه را راه بیندازید. بعضی هاست‌ها کش سمت سرور دارند؛ در غیر این صورت یک افزونهٔ کش معتبر کافی است. صفحه‌هایی مثل سبد خرید، تسویه‌حساب و حساب کاربری نباید کش شوند؛ افزونه‌های کش معمولاً این صفحه‌ها را خودشان مستثنا می‌کنند، ولی بعد از فعال‌کردن حتماً یک خرید آزمایشی انجام دهید.
  4. عکس‌ها را بهینه کنید. عکس‌ها را پیش از بارگذاری به ابعاد واقعی نمایش برسانید، از فرمت‌های سبک‌تر مثل WebP استفاده کنید و بگذارید عکس‌های پایین صفحه با تأخیر بار شوند. عکس اول صفحه را با تأخیر بار نکنید، چون LCP را بدتر می‌کند.
  5. افزونه‌ها را بازبینی کنید. فهرستی بنویسید که هر افزونه چه کاری می‌کند. افزونه‌های تکراری را یکی کنید و آن‌هایی را که دیگر استفاده نمی‌شوند، پس از آزمایش حذف کنید.
  6. اسکریپت‌های بیرونی را کم کنید. ببینید کدام واقعاً به کسب‌وکار کمک می‌کند. اگر ابزار چت لازم است، بارگذاری‌اش را به بعد از آماده‌شدن صفحه موکول کنید و فونت‌ها را در صورت امکان روی سرور خود سایت بگذارید.
  7. دیتابیس را تمیز کنید. تعداد نسخه‌های ذخیره‌شدهٔ نوشته‌ها را محدود کنید و داده‌های موقت و اسپم‌ها را پاک کنید؛ باز هم با نسخهٔ پشتیبان.
  8. به قالب فکر کنید. اگر بعد از همهٔ این‌ها سایت روی موبایل هنوز کند است، احتمالاً مشکل در خود قالب و صفحه‌ساز است.

افزونه افزایش سرعت وردپرس؛ چه انتظاری داشته باشید؟

افزونه‌های افزایش سرعت معمولاً چند کار را با هم انجام می‌دهند: کش صفحه، فشرده‌سازی و ادغام فایل‌های CSS و جاوااسکریپت، تأخیر در بارگذاری عکس‌ها و اسکریپت‌ها، و گاهی تمیزکردن دیتابیس. این‌ها مفیدند، اما معجزه نمی‌کنند. افزونهٔ کش نمی‌تواند سرور ضعیف را قوی کند یا قالبی را که چند مگابایت جاوااسکریپت بار می‌کند سبک کند. گزینه‌های پیشرفته مثل تأخیر جاوااسکریپت را یکی‌یکی فعال کنید و بعد از هر کدام فرم‌ها، منو و سبد خرید را امتحان کنید.

بهینه‌سازی و تنظیم سایت وردپرسی

چه کارهایی نکنید

  • چند افزونهٔ کش را هم‌زمان فعال نکنید. دو افزونه که هر دو صفحه را کش یا فایل‌ها را فشرده می‌کنند، با هم تداخل دارند و ممکن است سایت را کندتر یا خراب کنند. یک ابزار کش کافی است.
  • افزونه‌ها را روی سایت اصلی کورکورانه حذف نکنید. بعضی افزونه‌ها بخشی از محتوا یا امکانات سایت را می‌سازند و حذفشان ممکن است صفحه‌ها را به هم بریزد. بدون نسخهٔ پشتیبان و آزمایش، دست به حذف نزنید.
  • دنبال عدد ۱۰۰ نباشید. امتیاز PageSpeed یک تست آزمایشی است، نه هدف کسب‌وکار. سایتی که در دادهٔ واقعی کاربران وضعیت خوبی دارد و بازدیدکننده را معطل نمی‌کند، لازم نیست برای چند امتیاز بیشتر امکانات مفیدش را از دست بدهد.

سرعت سایت و سئو

سرعت روی سئو اثر دارد، اما نه آن‌طور که گاهی گفته می‌شود. گوگل تجربهٔ صفحه، از جمله Core Web Vitals، را یکی از نشانه‌های رتبه‌بندی می‌داند؛ نشانه‌ای در کنار بسیاری عوامل دیگر که مهم‌ترینشان مرتبط و مفیدبودن محتواست. سایت سریع به‌تنهایی رتبه نمی‌آورد و سایت نسبتاً کند هم لزوماً از نتایج حذف نمی‌شود.

اثر مستقیم‌تر سرعت روی آدم‌هاست: بازدیدکننده‌ای که معطل بماند، پیش از دیدن پیشنهاد شما برمی‌گردد. اگر سایت شما با وجود سرعت خوب هنوز در گوگل دیده نمی‌شود، علت را در جای دیگری جست‌وجو کنید؛ چند علت رایج را در مقالهٔ چرا سایت تازه در گوگل دیده نمی‌شود توضیح داده‌ایم. بررسی سرعت در کنار ایندکس، ساختار آدرس‌ها و خطاهای فنی، بخشی از سئوی فنی سایت است.

بهینه‌سازی یا بازسازی؟

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

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

چه زمانی کار را به متخصص بسپارید؟

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

پرسش‌های رایج

چرا سایت وردپرس من دیر لود می‌شود؟

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

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

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

آیا عوض‌کردن هاست سایت را سریع می‌کند؟

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

علت کندی پیشخوان وردپرس چیست؟

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

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

اگر سرور در ایران است، درخواست‌های بیرونی را موقتاً با WP_HTTP_BLOCK_EXTERNAL ببندید و سرویس‌های لازم مثل درگاه پرداخت را در WP_ACCESSIBLE_HOSTS مجاز کنید. بعد از برگشتن اینترنت این تنظیم را بردارید تا به‌روزرسانی‌های امنیتی را از دست ندهید. اگر سرور خارج از ایران است، راه‌حل تنظیمات وردپرس نیست و باید محل هاست را بازبینی کنید.

آیا افزونهٔ کش، پیشخوان وردپرس را سریع می‌کند؟

کش صفحه نه، چون برای کاربرانی که وارد حساب مدیریت شده‌اند نسخهٔ آماده نمی‌فرستد. کش آبجکت پایدار با Redis یا Memcached، اگر هاست پشتیبانی کند، و OPcache روی سرور به سرعت پیشخوان کمک می‌کنند.

سرعت سایت در سایتوپیا

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

برای سایتتان با سایتوپیا مشورت کنید

تماس بگیرید؛ نیاز کسب‌وکارتان را بررسی می‌کنیم و قیمت دقیق را می‌گوییم.

تماس: ۰۹۳۸۰۵۰۱۲۱۴ پیام بگذارید