یکی از دغدغه های هر کسی که سایت وردپرسی دارد باید بهینه سازی دیتا بیس آن باشد. متاسفانه یا خوشبخانه، قالب ها و پلاگین ها وردپرس طوری طراحی شده اند که اثراتی حتی بعد از پاک شدن روی دیتا بیس برجا میگذراند.
به عنوان مثال اگر شما از افزونه product_addone در سایت فروشگاهی استفاده میکنید و بعد تصیمم میگیرید آن را پاک کنید، حتی بعد از پاک کردن آن، رکوردهای آن در دیتا بیس وردپرس باقی می ماند. و این میتواند ۲ اثر منفی برای سایت شما داشته باشد.
- باقی ماندن رکوردهای بلااسفتاده باعث افزایش حجم دیتا بیس شما می شود و شما بی جهت باید پول هاست بیشتری را پرداخت کنید.
- برخی از رکوردهای دیتابیس بصورت autoload هستند، این یعنی هر بار که سایت شما لود میشود، هزاران رکورد نیز باید لود شوند. این باعث کندی سایت می شود و در نتیجه سئو سایت شما را تحت تاثیر قرارمیدهد. لطفا مقاله تاثیر سرعت سایت روی سئو را بخوانید.
درباره wp_options دیتابیس وردپرس
این جدول options یا تنظیمات وردپرس را درخود ذخیره میکند. مثلا اگر شما ووکامرس دارید، برای هر محصول تظیماتی مختلفی فعال است. مثلا :
- تصویر شاخص
- ویژگیها
- قیمت
- موجودی و ده ها آپشن دیگر
هر کدام از این گزینهها یک رکورد را در قسمت wp_options ذخیر میکند. حجم این رکوردها نباید بیش از ۴ مگابایت شود. (در یک سایت معمولی با مثلا ۳۰۰ محصول) . در غیر اینصورت شما باید نگران سرعت سایت خود شوید.
از طرفی نمیشود همه این ها را پاک کرد. وجودشان ضروری است. بعضی مواقع نیز ما دیگر نیازی به برخی رکوردها نداریم و باید از شررشان راحت شویم.
ما برای دسترسی به دیتابیس از برنامه Myphpadmin که در cpanel اکثر هاستها موجود است، استفاده کردیم. شما اگر بنا به هر دلیلی به این نرمافزار دسترسی ندارید، میتوانید از یک پلاگین در داشبرد وردپرس استفاده کنید.
کوئری SQL برای پاکسازی دیتابیس وردپرس
شرت کدهای قدیمی را از پست ها حدف میکند :
UPDATE `wp_posts` SET `post_content` = REPLACE( `post_content`, "http://shailan.com", "https://metinsaylan.com" ) WHERE `post_type`="post";
تاریخچه ویرایشها را پاک میکند، (تاریخچه ویرایش ها به شما اجازه میدهد که نسخه های قدیمیتر نوشته خود را بازیابی کنید.)
DELETE FROM `wp_posts` WHERE `post_type`="revision"
پستهای زباله شده را کامل حذف میکند:
DELETE FROM `wp_posts` WHERE `post_status`="trash"
رکرودهای گذرا یا transient را پاکسازی میکند، همچنین میتواند به جای transient نام option را بدهید و اقدام به شناسایی از سپس پاک کردن آن کنید
DELETE FROM `wp_options` WHERE `option_name` LIKE '%_transient%';
متاهای پلاگین های پاک شده را پاک میکند:
DELETE FROM `wp_postmeta` WHERE `meta_key` LIKE '%aktt%'
ضرورت طراحی قالب اختصاصی برای سایت وردپرسی
قالب های آماده حجم زیادی از رکوردها را آن هم با عناوین مختلف و به درد نخور در دیتا بیس شما ذخیره میکنند. عدم وجود چنین چیزی برای ارائه دهندگان قالب وردپرس غیر ممکن است، چرا که مشتریهای آن ها افراد متفاوتی هستند و هرکدام نیز طالب قابلیتی خاص برای قالب سایت هستند. از طرفی توسعه دهنده قالب نیز دوست دارد محصولش طیف وسیعی از نیازها را پوشش دهد، بنابرین مجبور است قابلب را طوری طراحی کند که این نیازها پوشش داده شوند.
از سویی دیگر با ایجاد حجم وسیعی از متافیلدها و تنظیمات در پست ها، صفحات و محصول ووکامرس و در کل در پست تایپها، انبوهی از رکوردها در دیتابیس ذخیره میشود. نتیجه اش دیگر برای شما که این پست را خوانده اید پوشیده نیست.
حتما در طراحی قالب سایت خود سعی کنید یا از ووکامرس استفاده نکنید و یک پلاگین اختصای طراحی کنید که شامل این همه تنظیمات غیر ضروری نباشد. و یا قالب طوری پیاده شود که فقط بخش مورد نیاز از تنظیمات ووکامرس در دسترس باشد.
هر افزونهای را نصب نکنید
سعی کنید تعداد افزونه را بهینه نگه دارید، چیزی بین ۴ تا ۹ عدد، از روی کنجکاوی یا برطرف کردن نیازی کوچک، افزونه جدید نصب نکنید. سعی کنید با یک توسعه دهنده مشورت کنید، شاید کار شما با چند خط کد ساده حل شود.