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

آیا به تازگی سرویس میزبانی اشتراکی شما به دلیل اضافه مصرف منابع سرور (CPU و RAM) به حالت تعلیق در آمده ؟ آیا در هنگام کار با وب سایت ورد پرس خود دائما با پیغام Service Unavailable مواجه می شوید ؟ …

آیا به تازگی سرویس میزبانی اشتراکی شما به دلیل اضافه مصرف منابع سرور (CPU و RAM) به حالت تعلیق در آمده ؟ آیا در هنگام کار با وب سایت ورد پرس خود دائما با پیغام Service Unavailable مواجه می شوید ؟ اگر موارد فوق برای شما نیز پیش آمده است، وب سایت شما در حال استفاده از مقدار زیادی از CPU سرور می باشد، بنابراین جهت مرتفع نمودن چنین مشکلی باید یک سرویس اختصاصی یا (VDS) تهیه کنید تا در آن با محدودیتی برای مصرف CPU وجود نداشته باشد که طبعا هزینه بالاتری خواهد داشت و در صورتی که فکر می کنید پرداخت هزینه بالا برای تهیه سرویس های VDS برای شما مقرون به صرفه نیست، باید اقدام به بهینه سازی وب سایت وردپرس خود نمایید تا مقدار مصرف آن از CPU سرور را کاهش دهید.

1 – بهینه سازی دیتابیس

در بسیاری از مواقع دیتابیس های مورد استفاده برای CMS وردپرس بی نظم و تکه تکه (fragmented) می شوند که این موضوع بار اضافی را به سرور ارجاع می دهند. جهت برطرف نمودن چنین مشکلی می توانید از تابع Optimize در PHPMyAdmin برای جداول و Table های خود استفاده نمایید. این روش باعث کاهش اضافه بار در سرور می گردد.

2 – حذف یا غیر فعال نمودن افزونه (Plugin) های غیر ضروری

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

افزونه “مقالات مرتبط” (Related Posts):

تجربه نشان داده است که با حذف این افزونه می توان مصرف وب سایت از CPU سرور را تا حد قابل توجهی کاهش داد. طبعا ممکن است این سوال برای شما نیز به وجود بیاید که پلاگین مقالات مرتبط چگونه می تواند چنین مقدار زیادی از منابع سرور را اشغال کند. دلیل آن کاملا مشخص است، زیرا هر بار که یک پست یا مقاله در وب سایت لود می شود، افزونه مقالات مرتبط در بین تمامی برچسب ها (Tag) و دسته بندی ها  (Category) برای یافتن مقالات مرتبط به پست لود شده، جستجو می کند که این پروسه بار زیادی را روی سرور می گذارد. حالا تصور کنید که وب سایت شما تنها 10 بازدید کننده داشته باشد و هر یک از آن ها نیز در حال خواندن یک مقاله باشند، بنابراین عملیات یافتن مقالات مرتبط برای 10 مقاله به صورت همزمان باید تکرار شوند. لذا با صرف نظر از تاثیر مفید افزونه Related post بر روی SEO، ناچاریم برای در دسترس بودن همیشگی وب سایت خود در میزبانی های اشتراکی، آن را حذف نماییم. همچنین می توان از برخی از افزونه های ثالث مانند Dhiti و LinkWithin نیز به عنوان جایگزین استفاده نمایید.

افزونه های آمار بازدید

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

به عنوان جایگزین چنین افزونه هایی می توانید از ابزارهای قدرتمند دیگری مانند Google Analytic یا پلاگین WordPress Jetpack  استفاده نمایید که مصرف زیادی از منابع سرور ندارند.

به جز پلاگین های مذکور باید توجه کنید که آیا به تمام افزونه هایی که هم اکنون نصب شده اند احتیاج دارید ؟

برای مثال :

–  در صورتی که Theme مورد استفاده شما قابلیت های مناسب برای بهینه سازی موتورهای جستجو (SEO) دارد، در آن صورت دیگر نیازی به افزونه های این چنینی (مخصوصا افزونه All-In-One-SEO Pack که مصرف فوق العاده زیادی از CPU دارد) نخواهید داشت.

–  در صورتی که Permalink یا آدرس اصلی خود را تغییر نداده اید دیگر نیازی به افزونه permalink redirect  نیز نخواهید داشت.

–  در صورتی که برنامه زمان بندی برای بک آپ گرفتن از وب سایت خود ندارید ضرورتی برای استفاده از افزونه های تهیه بک آپ وردپرس وجود ندارد.

به یاد داشته باشید که با حذف هر افزونه در واقع از تعداد درخواست های PHP یا MySQL وب سایت خود نیز می کاهید.

3 –  استفاده از W3 Total Cache

با توجه به تجربیات مرتبط در این زمینه، ثابت شده که هیچ یک از افزونه های دیگر در زمینه Caching به خوبی W3 Total Cache کار نمی کنند. شما به سادگی می توانید مسئولیت فشرده سازی CSS ها و کش نمودن سایر المان ها را بدون هیچ زحمتی به W3 total Cache بسپارید.

توجه نمایید که در صورت عدم اطلاع از چگونگی انجام تنظیمات این افزونه، آن ها را به هم نزنید.

4 – تصاویر وب سایت خود را برون سپاری ((Outsource)) نمایید.

بهترین روش برای محاسبه تصاویر در وب سایت های میزبانی شده در سرور های اشتراکی خارج نمودن تصاویر از سرور مربوطه و آپلود آن ها در یکی از سرورهای ابری رایگان مانند Amazon S3 یا CDN می باشد و تنظیم URL آن ها برای لود شدن در وب سایت می باشد. این کار باعث می شود تا مقدار بار مصرفی CPU برای محاسبه و نمایش تصاویر به مقدار چشم گیری کاهش یابد.

5 – بروز رسانی مداوم وردپرس، افزونه ها و قالب مورد استفاده

وردپرس، افزونه ها و Theme مورد استفاده همواره در هر آپدیت مقادیری از حفره های امنیتی، مشکلات منطقی ، محاسباتی و Bug های نسخه های قبلی را برطرف می نمایند. پس هیچ گاه برای بروزرسانی آن ها معطل نکنید !

6 – استفاده از Theme مناسب

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

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