آموزش وردپرس | بلاگ وب‌داده

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

سایت وردپرسی‌تان کند شده و نمی‌دانید مقصر کجاست؟ بخش زیادی از این کندی از دیتابیسِ شلوغ می‌آید؛ جایی که ریویژن‌ها، ترنزینت‌ها و داده‌های زائد روی هم انباشته می‌شوند. در این راهنما دو مسیر پاکسازی (افزونه و دستی) را با هم مقایسه می‌کنیم و گام‌به‌گام یاد می‌گیرید چطور بی‌خطر دیتابیس را سبک و سایت را سریع‌تر کنید.
بهینه سازی دیتابیس وردپرس یعنی حذف داده‌های زائد و فشرده‌سازی جدول‌ها تا وردپرس برای هر صفحه، اطلاعات کمتری از دیتابیس بخواند. با گذر زمان جدول‌هایی مثل wp_posts و wp_options پر از ریویژن، ترنزینت منقضی و متادیتای یتیم می‌شوند و همین‌ها زمان پاسخ سرور و سرعت بارگذاری را بالا می‌برند. در این مقاله دو رویکرد پاکسازی را کنار هم می‌گذاریم و کد و مراحل دقیق هرکدام را می‌بینید تا خودتان بی‌خطر اجرا کنید.
  • دو روش اصلی: افزونه‌ی آماده مثل WP-Optimize (ساده) یا پاکسازی دستی با SQL و WP-CLI (سریع و دقیق).
  • چه چیزی پاک می‌شود: ریویژن‌ها، پیش‌نویس خودکار، سطل زباله، نظرات اسپم، ترنزینت منقضی و متادیتای یتیم.
  • چرا سرعت بالا می‌رود: جدول کوچک‌تر و کاهش داده‌ی autoload یعنی کوئری سریع‌تر و TTFB کمتر.
  • قدم حیاتی: پیش از هر پاکسازی، بکاپ کامل دیتابیس بگیرید؛ عملیات SQL برگشت‌ناپذیر است.
  • گام تکمیلی: با ثابت WP_POST_REVISIONS جلوی انباشت دوباره‌ی ریویژن را بگیرید.

در یک نگاه

برای پاکسازی دیتابیس دو انتخاب دارید: افزونه (بدون کدنویسی، مناسب مبتدی) یا روش دستی با SQL و WP-CLI (سبک‌تر و دقیق‌تر). اگر تازه‌کارید با یک افزونه شروع کنید؛ اگر با کد راحتید و کنترل کامل می‌خواهید، روش دستی بهتر است. در هر دو حالت اول بکاپ بگیرید. بستر هاست وردپرس سریع را هم می‌توانید از وب‌داده تهیه کنید.
حتماً این مقاله را باز کرده‌اید چون سایتتان کندتر از قبل شده و شنیده‌اید که «دیتابیس را بهینه کنید» ولی نمی‌دانید دقیقاً چه‌کار کنید و نگرانید چیزی خراب شود. این نگرانی درست است؛ برای همین به‌جای یک دستور کلی، هر دو راه را با کد واقعی، مزایا و معایب صادقانه و نکات ایمنی مرور می‌کنیم تا با خیال راحت پیش بروید.

بهینه سازی دیتابیس وردپرس چیست و چرا سرعت را بالا می‌برد؟

دیتابیس وردپرس مثل یک انبار است که همه‌چیز سایت (نوشته‌ها، تنظیمات، نظرها و متادیتاها) در آن نگهداری می‌شود. مشکل اینجاست که این انبار به‌مرور پر از اقلام بی‌مصرف می‌شود: هر بار که نوشته‌ای را ذخیره می‌کنید یک ریویژن ساخته می‌شود، افزونه‌ها ترنزینت (داده‌ی موقت) می‌سازند و افزونه‌های حذف‌شده آشغال جا می‌گذارند. هرچه انبار شلوغ‌تر باشد، پیدا کردن جنس درست کندتر می‌شود.
برای اینکه تصویر روشن‌تری داشته باشید، دیتابیسِ شلوغ مثل یک کمد لباسِ به‌هم‌ریخته است؛ لباس‌ها هستند اما پیدا کردنشان طول می‌کشد. پاکسازی و مرتب‌سازی این کمد باعث می‌شود وردپرس برای ساختن هر صفحه سریع‌تر داده‌ها را پیدا کند. حالا ببینیم چه چیزهایی انبار را شلوغ می‌کنند:
  • ریویژن پست‌ها: هر ذخیره یک نسخه‌ی جدید در جدول wp_posts می‌سازد؛ یک نوشته می‌تواند ده‌ها ریویژن داشته باشد.
  • ترنزینت‌های منقضی: داده‌های موقتِ افزونه‌ها که تاریخشان گذشته اما در جدول wp_options باقی مانده‌اند.
  • نظرات اسپم و زباله: صدها نظر اسپم که هرگز تأیید نمی‌شوند ولی جا اشغال می‌کنند.
  • متادیتای یتیم: ردیف‌هایی در wp_postmeta که پست والدشان حذف شده و بی‌صاحب مانده‌اند.
  • داده‌ی autoload زیاد: آپشن‌هایی که در هر بار بارگذاری صفحه در حافظه لود می‌شوند، حتی وقتی لازم نیستند.

گلوگاه واقعی: داده‌ی autoload

طبق مستندات وردپرس، آپشن‌هایی که در جدول wp_options با پرچم autoload=’yes’ علامت خورده‌اند، در هر بار بارگذاری هر صفحه در حافظه لود می‌شوند؛ چه به آن‌ها نیاز باشد چه نباشد. اگر حجم این داده‌ها زیاد شود (بیشتر از حدود ۱ مگابایت)، زمان پاسخ سرور یا همان TTFB و مصرف CPU و RAM بالا می‌رود. از وردپرس 6.6 حتی یک بررسی در «سلامت سایت» برای هشدار درباره‌ی حجم زیاد autoload اضافه شده است.
ChatGPT Image Aug 31 2026 09 33 54 AM بهینه سازی دیتابیس وردپرس برای سرعت 2026

افزونه یا روش دستی؟ مقایسه‌ی دو رویکرد

پیش از ورود به مراحل، بیایید دو مسیر را روی معیارهای مهم کنار هم بگذاریم تا بدانید کدام به شما نزدیک‌تر است:
معیارافزونه (مثل WP-Optimize)روش دستی (SQL / WP-CLI)
سطح مهارت لازممبتدیمتوسط تا پیشرفته
نیاز به دسترسی SSHنداردبرای WP-CLI بله (SQL از phpMyAdmin هم می‌شود)
سرعت اجرا روی سایت بزرگمتوسطبسیار سریع
ریسک خطای انسانیکممتوسط تا زیاد (کوئری اشتباه)
زمان‌بندی خودکار پاکسازیداردبا کرون‌جاب باید خودتان بسازید
کنترل دقیق روی داده‌هامتوسطکامل
بار اضافه روی سایتیک افزونه‌ی نصب‌شدهبدون افزونه‌ی دائمی

جمع‌بندی مقایسه

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

روش اول: پاکسازی با افزونه (ساده و بدون کد)

اگر با کدنویسی راحت نیستید، افزونه امن‌ترین و سریع‌ترین راه است. یکی از محبوب‌ترین گزینه‌ها افزونه‌ی WP-Optimize است که ریویژن‌ها، پیش‌نویس‌های خودکار، آیتم‌های سطل زباله، نظرات اسپم و ترنزینت‌های منقضی را پاک می‌کند و می‌تواند روی جدول‌ها بهینه‌سازی هم اجرا کند. مراحل کار ساده است:
  • ابتدا از دیتابیس بکاپ کامل بگیرید (این مهم‌ترین قدم است).
  • از پیشخوان وردپرس به «افزونه‌ها ← افزودن» بروید و WP-Optimize را جست‌وجو، نصب و فعال کنید.
  • به منوی «WP-Optimize ← Database» بروید؛ فهرست موارد قابل پاکسازی را می‌بینید.
  • فقط تیک موارد مطمئن (ریویژن، ترنزینت منقضی، اسپم) را بزنید و در ابتدا از پاکسازی‌های علامت‌گذاری‌شده با هشدار پرهیز کنید.
  • روی «Run optimization» بزنید و در پایان می‌توانید پاکسازی خودکار هفتگی را زمان‌بندی کنید.

همیشه اول بکاپ بگیرید

پاکسازی دیتابیس، چه با افزونه و چه دستی، عملیاتی است که داده‌ها را برای همیشه حذف می‌کند. اگر تنظیمات یا افزونه‌ای به داده‌ای که پاک کرده‌اید وابسته باشد، ممکن است به مشکل بخورید. پس پیش از هر پاکسازی یک بکاپ کامل از دیتابیس تهیه کنید تا در صورت بروز مشکل، سایت را به حالت قبل برگردانید. هاست‌های خوب ابزار بکاپ یک‌کلیکی دارند.
مزیت بزرگ افزونه، امکان زمان‌بندی خودکار است: یک بار تنظیمش کنید تا هر هفته دیتابیس را تمیز نگه دارد. عیبش هم این است که یک افزونه‌ی دائمی روی سایت می‌ماند؛ اگر نگران تعداد افزونه‌ها هستید، می‌توانید بعد از پاکسازی آن را غیرفعال کنید و فقط هنگام نیاز فعال کنید.
پنل بخش Database افزونه‌ی WP-Optimize و گزینه‌های پاکسازی دیتابیس وردپرس

روش دوم: پاکسازی دستی با SQL و WP-CLI

اگر با کد راحتید و کنترل کامل می‌خواهید، روش دستی سریع‌ترین راه برای سایت‌های بزرگ است. دو مسیر دارید: اجرای کوئری SQL از طریق phpMyAdmin در کنترل‌پنل هاست، یا استفاده از WP-CLI اگر به SSH دسترسی دارید. اگر از سی‌پنل استفاده می‌کنید، برای دسترسی به دیتابیس می‌توانید راهنمای جعبه‌ابزار وردپرس در هاست سی‌پنل را ببینید.

گام ۱: پاکسازی داده‌های زائد با SQL

کوئری‌های زیر رایج‌ترین داده‌های زائد را حذف می‌کنند. آن‌ها را در phpMyAdmin و در تب «SQL» اجرا کنید. دقت کنید که پیشوند جدول‌ها اینجا wp_ فرض شده؛ اگر سایت شما پیشوند دیگری دارد آن را جایگزین کنید:
-- پیش از اجرا، حتماً از دیتابیس بکاپ کامل بگیرید (این دستورها برگشت‌ناپذیرند)
-- پیشوند جدول‌ها اینجا wp_ فرض شده؛ اگر سایت شما پیشوند دیگری دارد، آن را جایگزین کنید

-- ۱) حذف همه‌ی ریویژن‌های پست‌ها
DELETE FROM wp_posts WHERE post_type = 'revision';

-- ۲) حذف پیش‌نویس‌های خودکار (auto-draft)
DELETE FROM wp_posts WHERE post_status = 'auto-draft';

-- ۳) خالی‌کردن سطل زباله (پست‌ها و برگه‌های حذف‌شده)
DELETE FROM wp_posts WHERE post_status = 'trash';

-- ۴) حذف نظرات اسپم و نظرات در سطل زباله
DELETE FROM wp_comments WHERE comment_approved = 'spam';
DELETE FROM wp_comments WHERE comment_approved = 'trash';

-- ۵) حذف متادیتای یتیم (postmeta بدون پست والد)
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON p.ID = pm.post_id
WHERE p.ID IS NULL;

-- ۶) حذف ترنزینت‌های منقضی و موقتِ جامانده در جدول options
DELETE FROM wp_options WHERE option_name LIKE '\_transient_%';
DELETE FROM wp_options WHERE option_name LIKE '\_site_transient_%';

یک کوئری اشتباه، دردسر بزرگ

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

گام ۲: فشرده‌سازی جدول‌ها (OPTIMIZE TABLE)

بعد از حذف ردیف‌ها، فضای خالی (overhead) داخل جدول‌ها باقی می‌ماند. دستور OPTIMIZE TABLE این فضا را آزاد و داده را یکپارچه می‌کند. در phpMyAdmin کافی است جدول‌ها را انتخاب کنید و از منوی پایین گزینه‌ی «Optimize table» را بزنید. طبق مستندات رسمی MySQL، این دستور برای جدول‌های InnoDB به بازسازی جدول نگاشت می‌شود و به فضای دیسک آزاد حداقل هم‌اندازه‌ی جدول نیاز دارد.

گام ۳: پاکسازی سریع با WP-CLI

اگر به SSH دسترسی دارید، WP-CLI کل کار را در چند خط انجام می‌دهد؛ هم امن‌تر از SQL خام است و هم سریع. دستورهای زیر ریویژن‌ها را حذف، ترنزینت‌های منقضی را پاک و بهینه‌سازی جدول‌ها را اجرا می‌کنند:
# اگر به SSH و WP-CLI دسترسی دارید، پاکسازی خیلی سریع‌تر و امن‌تر انجام می‌شود
# ابتدا وارد پوشه‌ی اصلی وردپرس شوید
cd /home/user/public_html

# حذف تمام ریویژن‌ها
wp post delete $(wp post list --post_type=revision --format=ids) --force

# حذف ترنزینت‌های منقضی‌شده
wp transient delete --expired

# اجرای بهینه‌سازی (OPTIMIZE TABLE) روی کل جدول‌های دیتابیس
wp db optimize
دستور wp transient delete --expired طبق مستندات رسمی WP-CLI فقط ترنزینت‌های منقضی را حذف می‌کند و به داده‌ی سالم دست نمی‌زند. دستور wp db optimize هم معادل اجرای OPTIMIZE روی همه‌ی جدول‌های دیتابیس است.

گام ۴: جلوگیری از انباشت دوباره‌ی ریویژن

پاکسازی یک‌بار کافی نیست؛ باید جلوی پرشدن دوباره را هم بگیرید. با افزودن ثابت WP_POST_REVISIONS به فایل wp-config.php تعداد ریویژن هر نوشته را محدود کنید. طبق مستندات وردپرس، ریویژن‌های قدیمیِ مازاد هنگام آپدیت بعدیِ همان نوشته خودکار حذف می‌شوند:
// محدود کردن تعداد ریویژن‌ها تا جدول wp_posts دوباره شلوغ نشود
// این خط را در فایل wp-config.php، بالای خط "That's all, stop editing!" اضافه کنید

// نگه‌داشتن فقط ۵ ریویژن آخر برای هر نوشته
define( 'WP_POST_REVISIONS', 5 );

// برای غیرفعال‌کردن کامل ریویژن‌ها (فقط یک autosave می‌ماند):
// define( 'WP_POST_REVISIONS', false );

// فاصله‌ی ذخیره‌ی خودکار (autosave) را هم می‌توانید بیشتر کنید (بر حسب ثانیه)
define( 'AUTOSAVE_INTERVAL', 120 );

این تنظیم فقط روی آینده اثر دارد

نکته‌ی مهمی که در مستندات رسمی وردپرس آمده: تعیین WP_POST_REVISIONS فقط ذخیره‌های آینده را محدود می‌کند و ریویژن‌های موجودِ مازاد را خودکار پاک نمی‌کند. پس این خط را در کنار یک پاکسازی اولیه (گام ۱ یا روش افزونه) استفاده کنید تا هم انبار فعلی خالی شود و هم دوباره پر نشود.

محدودیت‌ها و نکات صادقانه‌ای که باید بدانید

پاکسازی دیتابیس مفید است، اما معجزه نمی‌کند. برای اینکه انتظار درستی داشته باشید، این نکات را صادقانه بدانید:
  • سود همیشه چشمگیر نیست: اگر دیتابیس شما تازه است یا سایت کوچکی دارید، تفاوت سرعت پس از پاکسازی ممکن است ناچیز باشد.
  • OPTIMIZE بی‌هزینه نیست: طبق مستندات MySQL، این عملیات به فضای دیسک آزاد نیاز دارد و در لحظه‌ای کوتاه جدول را قفل می‌کند؛ روی سایت پرترافیک آن را در ساعت کم‌بازدید اجرا کنید.
  • حذف ریویژن یعنی از دست دادن تاریخچه: اگر عادت دارید نسخه‌های قبلی نوشته را بازیابی کنید، حذف کامل ریویژن‌ها این امکان را می‌گیرد؛ محدودکردن بهتر از حذف کامل است.
  • ریشه‌ی کندی جای دیگری است: اگر مشکل از قالب سنگین، افزونه‌ی بد یا هاست ضعیف باشد، پاکسازی دیتابیس آن را حل نمی‌کند.

نقل‌قول از مستندات رسمی MySQL

«OPTIMIZE TABLE می‌تواند برای بازپس‌گیری فضای بلااستفاده و یکپارچه‌سازی فایل داده به کار رود.» این دقیقاً همان کاری است که پس از حذف ردیف‌های زائد لازم است. منبع: راهنمای رسمی MySQL؛ دستور OPTIMIZE TABLE.
یک نکته‌ی تکمیلی درباره‌ی فضای هاست: دیتابیسِ متورم و جدول‌های پرشده، هم فضای دیسک و هم تعداد فایل (inode) بیشتری مصرف می‌کنند. اگر با محدودیت inode در هاست سی‌پنل روبه‌رو شده‌اید، راهنمای مدیریت میزان مصرف inode در سی‌پنل کمکتان می‌کند.

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

بخش زیادی از سرعت واقعی سایت، حتی با دیتابیسِ تمیز، به بستر هاست برمی‌گردد: سرور قدرتمند، دیسک سریع و ابزار بکاپی که پاکسازی را بی‌خطر کند. ما در وب‌داده تلاش کرده‌ایم این بستر را فراهم کنیم:
✅ زیرساخت سرورهای نسل جدید HPE (Gen11 و Gen10) با دیسک‌های سریع برای اجرای سریع‌تر کوئری‌های دیتابیس.
✅ دیتاسنترهای متنوع در ایران، هلند و آلمان برای انتخاب نزدیک‌ترین لوکیشن به کاربران شما.
✅ دسترسی به phpMyAdmin و ابزار بکاپ برای پاکسازی امن دیتابیس و بازگشت سریع در صورت خطا.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در اجرای کوئری، تنظیم WP-CLI و رفع مشکلات دیتابیس.

تجربه‌ی پشتیبانی وب‌داده

در تیم پشتیبانی وب‌داده بارها پیش آمده که سایتی با شکایت «کندی ناگهانی» مراجعه کرده و در بررسی، جدول wp_options پر از ترنزینت منقضی یا wp_posts پر از هزاران ریویژن بوده است. الگوی حل تقریباً همیشه یکی است: اول از دیتابیس بکاپ می‌گیریم، سپس داده‌های زائد را پاک و جدول‌ها را OPTIMIZE می‌کنیم و در پایان با WP_POST_REVISIONS جلوی تکرار مشکل را می‌گیریم. داشتن هاستی با ابزار بکاپ و phpMyAdmin، همین کار را از یک ریسک به یک عملیات چنددقیقه‌ای امن تبدیل می‌کند.
اگر به‌دنبال بستری سریع و پایدار برای وردپرس هستید، می‌توانید هاست سی‌پنل وب‌داده را ببینید که برای همین سایت‌ها بهینه شده است.

پرسش‌های پرتکرار درباره‌ی پاکسازی دیتابیس وردپرس

جمع‌بندی و قدم بعدی

دیدیم که دیتابیسِ شلوغ یکی از دلایل پنهان کندی سایت وردپرسی است و برای تمیزکردن آن دو راه دارید: افزونه که ساده و قابل زمان‌بندی است، و روش دستی با SQL و WP-CLI که برای سایت‌های بزرگ سریع‌تر و دقیق‌تر است. مهم نیست کدام راه را انتخاب می‌کنید؛ سه اصل ثابت است: اول بکاپ بگیرید، بعد داده‌های زائد را پاک و جدول‌ها را OPTIMIZE کنید، و در آخر با محدودکردن ریویژن جلوی انباشت دوباره را بگیرید. با همین چند قدم، انبار سایتتان مرتب و پاسخ‌دهی‌اش سریع‌تر می‌شود.
در صورتی که سوالی داشتید می‌توانید در بخش نظرات با ما در ارتباط باشید.
وب داده
وب داده

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

مقاله‌ها: 57
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *