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

بهینه‌سازی دیتابیس وردپرس با حذف رونوشت‌ها و ریویژن‌ها

با گذشت زمان، دیتابیس سایت وردپرسی پر می‌شود از رونوشت‌ها، ذخیره‌های خودکار و داده‌های اضافه‌ای که کندش می‌کنند. در این راهنما دو روش امن و پیشرفته برای پاک‌سازی و سبک‌کردن دیتابیس را قدم‌به‌قدم یاد می‌گیرید.
بهینه‌سازی دیتابیس وردپرس یعنی پاک‌سازی و مرتب‌کردن جدول‌های پایگاه‌داده از داده‌های زائدی مثل رونوشت‌ها (revisions)، ذخیره‌های خودکار، محتوای زباله‌دان و کش‌های منقضی؛ کاری که حجم دیتابیس را کم می‌کند و کوئری‌ها را سریع‌تر می‌سازد. در این مقاله می‌بینید چه چیزهایی دیتابیس شما را سنگین می‌کنند، تأثیر آن بر سرعت و سئو چیست، و با دو روش (افزونه و کوئری دستی) چطور آن را ایمن پاک‌سازی کنید.
  • ریشه‌ی سنگینی: رونوشت‌ها و ذخیره‌های خودکار که وردپرس به‌صورت پیش‌فرض بی‌نهایت نگه می‌دارد و هر کدام یک کپی کامل از پست است.
  • روش امن و پیشنهادی: استفاده از افزونه‌ای مثل WP-Optimize با پیش‌نمایش، زمان‌بندی و امکان بازگشت.
  • روش پیشرفته: اجرای کوئری SQL در phpMyAdmin یا دستور WP-CLI، فقط پس از گرفتن بکاپ کامل.
  • پیشگیری: محدودکردن تعداد رونوشت‌ها با یک خط در فایل wp-config.php.
  • واقعیت صادقانه: این کار برای سایت‌های قدیمی و پرمحتوا سود محسوس دارد؛ روی سایت کوچک تأثیر سرعت کم است.

در یک نگاه

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

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

پایگاه‌داده (دیتابیس) قلب هر سایت وردپرسی است؛ همه‌چیز از نوشته‌ها و برگه‌ها گرفته تا نظرها، تنظیمات و اطلاعات کاربران در جدول‌های آن ذخیره می‌شود. اما وردپرس در کنار محتوای اصلی، مقدار زیادی داده‌ی جانبی هم تولید می‌کند که به‌مرور انباشته می‌شوند و جدول‌ها را سنگین می‌کنند. مهم‌ترین این داده‌ها عبارت‌اند از:
  • رونوشت‌ها (Revisions): هر بار که یک نوشته را ذخیره می‌کنید، وردپرس یک نسخه‌ی کامل از آن را به‌عنوان رونوشت نگه می‌دارد. این رونوشت‌ها در جدول wp_posts با نوع revision ذخیره می‌شوند و به‌صورت پیش‌فرض هیچ محدودیتی روی تعدادشان نیست.
  • ذخیره‌های خودکار (Autosave): وردپرس حین ویرایش، تقریباً هر ۶۰ ثانیه یک‌بار نسخه‌ی خودکار می‌سازد.
  • محتوای زباله‌دان و اسپم: نوشته‌ها و نظرهای پاک‌شده تا مدتی در زباله‌دان می‌مانند و جا اشغال می‌کنند.
  • ترنزینت‌های منقضی (Transients): کش‌های موقتی که افزونه‌ها می‌سازند و بعضی‌شان پس از انقضا در جدول wp_options باقی می‌مانند.
  • جدول‌های یتیم: داده‌هایی که از افزونه‌های حذف‌شده جا مانده‌اند.

چرا رونوشت‌ها این‌قدر جا می‌گیرند؟

نکته‌ی کلیدی اینجاست که هر رونوشت یک «کپی کامل» از محتوای پست است، نه فقط تفاوت‌های آن نسخه. یعنی اگر یک مقاله‌ی بلند را ۴۰ بار ذخیره کرده باشید، ۴۰ نسخه‌ی کامل از آن در دیتابیس دارید. برای سایتی با صدها نوشته، این عدد به‌سرعت به هزاران ردیف اضافه می‌رسد.
حالا سؤال مهم: این سنگینی چه ربطی به سرعت و سئو دارد؟ وقتی جدول‌ها بزرگ و شلوغ باشند، هر درخواستی که به دیتابیس زده می‌شود کمی کندتر پاسخ می‌گیرد؛ این یعنی زمان بارگذاری بالاتر. از سوی دیگر، سرعت و تجربه‌ی کاربری بخشی از سیگنال‌های رتبه‌بندی گوگل است. گوگل معیارهای Core Web Vitals (مثل LCP زیر ۲.۵ ثانیه) را از سال 2021 به‌عنوان یکی از فاکتورهای رتبه معرفی کرده است. پس دیتابیس سبک‌تر، به‌طور غیرمستقیم به سئوی بهتر هم کمک می‌کند.
مفهوم بهینه‌سازی دیتابیس وردپرس و انباشته‌شدن رونوشت‌ها و داده‌های زائد در جدول‌های پایگاه‌داده

مقایسه‌ی سه روش پاک‌سازی: افزونه، کوئری SQL و WP-CLI

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

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

اگر تازه‌کار هستید یا نمی‌خواهید ریسک کنید، روش افزونه بهترین انتخاب است: امن، بصری و قابل‌زمان‌بندی. روش SQL و WP-CLI سریع و قدرتمندند اما یک اشتباه کوچک می‌تواند به داده‌ها آسیب بزند، پس فقط با بکاپ سالم سراغشان بروید.

روش امن و پیشنهادی: پاک‌سازی با افزونه به‌صورت گام‌به‌گام

قبل از شروع: یک بکاپ سالم بگیرید

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

قدم اول: افزونه‌ی بهینه‌ساز را نصب و فعال کنید

از پیشخوان وردپرس به بخش «افزونه‌ها ← افزودن» بروید و یکی از افزونه‌های معتبر بهینه‌سازی دیتابیس را نصب کنید. گزینه‌های شناخته‌شده عبارت‌اند از WP-Optimize، Advanced Database Cleaner و Optimize Database after Deleting Revisions. در این آموزش WP-Optimize را مبنا می‌گیریم چون رایگان، پرکاربرد و ساده است، اما مراحل در بقیه هم مشابه است.

قدم دوم: پیش از حذف، پیش‌نمایش بگیرید

بعد از فعال‌سازی، به منوی افزونه (در WP-Optimize بخش «Database») بروید. اینجا فهرستی از موارد قابل پاک‌سازی می‌بینید: رونوشت‌ها، ذخیره‌های خودکار، نوشته‌ها و نظرهای زباله‌دان، اسپم و ترنزینت‌های منقضی. کنار هر مورد تعداد ردیف‌های قابل حذف نشان داده می‌شود. تیک موارد دلخواه را بزنید و روی دکمه‌ی اجرای بهینه‌سازی کلیک کنید. مزیت مهم این افزونه‌ها این است که می‌توانید فقط بخشی از داده‌ها را پاک کنید و مثلاً رونوشت‌های چند هفته‌ی اخیر را نگه دارید.
پیش‌نمایش و انتخاب رونوشت‌ها و داده‌های زائد برای پاک‌سازی در افزونه WP-Optimize

قدم سوم: پاک‌سازی را زمان‌بندی کنید

به‌جای اینکه هر بار دستی این کار را انجام دهید، می‌توانید یک زمان‌بندی خودکار (روزانه، هفتگی یا ماهانه) تنظیم کنید تا افزونه به‌طور مرتب دیتابیس را تمیز نگه دارد. برای بیشتر سایت‌ها یک پاک‌سازی هفتگی کافی است و نیازی به دخالت دستی نخواهید داشت.

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

پاک‌سازی خوب است، اما بهتر آن است که اصلاً اجازه ندهید رونوشت‌ها بی‌حساب زیاد شوند. با افزودن یک خط ساده به فایل wp-config.php می‌توانید تعداد رونوشت‌های هر نوشته را محدود کنید. این فایل را از طریق مدیر فایل هاست یا FTP باز کنید و کدهای زیر را پیش از خط «That’s all, stop editing!» قرار دهید:
// محدودکردن تعداد ریویژن‌ها به ۵ نسخه‌ی اخیر برای هر پست
// این خط را پیش از خط «That's all, stop editing!» در فایل wp-config.php قرار دهید
define( 'WP_POST_REVISIONS', 5 );

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

// افزایش فاصله‌ی زمانی ذخیره‌ی خودکار از ۶۰ به ۱۸۰ ثانیه
define( 'AUTOSAVE_INTERVAL', 180 );

نکته درباره‌ی این تنظیم

محدودکردن رونوشت‌ها فقط روی ذخیره‌های «آینده» اثر دارد و رونوشت‌های قدیمیِ موجود را پاک نمی‌کند؛ آن‌ها را باید یک‌بار با افزونه یا کوئری SQL پاک کنید. عدد ۵ یک انتخاب متعادل است؛ اگر به تاریخچه‌ی ویرایش نیاز چندانی ندارید می‌توانید آن را کمتر بگذارید.

روش پیشرفته: حذف رونوشت‌ها با کوئری SQL در phpMyAdmin

اگر با دیتابیس راحت هستید یا افزونه‌ی اضافه نمی‌خواهید، می‌توانید مستقیم با یک کوئری SQL رونوشت‌ها را پاک کنید. این روش سریع است اما ریسک بیشتری دارد، پس دوباره تأکید می‌کنیم: اول بکاپ. به phpMyAdmin (معمولاً از طریق کنترل‌پنل هاست مثل سی‌پنل) وارد شوید، دیتابیس سایت را انتخاب کنید، به تب SQL بروید و کوئری زیر را اجرا کنید:
-- پیش از اجرا حتماً از دیتابیس بکاپ بگیرید
-- پیشوند wp_ را با پیشوند واقعی جدول‌های سایت خود جایگزین کنید

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

-- ۲) پاک‌سازی متادیتای یتیمِ باقی‌مانده
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON p.ID = pm.post_id
WHERE p.ID IS NULL;

-- ۳) بازپس‌گیری فضای آزادشده و بهینه‌سازی جدول
OPTIMIZE TABLE wp_posts;

پیشوند جدول را فراموش نکنید

در بسیاری از نصب‌ها پیشوند جدول‌ها wp_ است، اما به‌دلایل امنیتی ممکن است چیز دیگری (مثل wpxy_) باشد. حتماً پیشوند واقعی سایت خود را در کوئری جایگزین کنید؛ اجرای کوئری با پیشوند اشتباه یا روی دیتابیس اشتباه می‌تواند دردسرساز شود.
دستور OPTIMIZE TABLE در انتهای کوئری، فضای خالی‌شده پس از حذف ردیف‌ها را بازپس می‌گیرد و جدول را مرتب می‌کند. اگر ترجیح می‌دهید همه‌چیز را از خط فرمان مدیریت کنید و به سرور دسترسی SSH دارید، ابزار رسمی WP-CLI هم همین کار را ساده‌تر انجام می‌دهد:
# شمارش ریویژن‌های موجود پیش از حذف
wp post list --post_type=revision --format=count

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

# بهینه‌سازی و بازپس‌گیری فضای دیتابیس
wp db optimize

اشتباهات رایج و معایبی که باید صادقانه بدانید

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

نقل‌قول از مستندات گوگل درباره‌ی سرعت و رتبه

گوگل در مستندات رسمی Search Central تأکید می‌کند که تجربه‌ی صفحه و معیارهای Core Web Vitals جزو سیگنال‌های رتبه‌بندی هستند، اما یادآوری می‌کند که محتوای مرتبط و باکیفیت همچنان مهم‌ترین عامل است و سرعت بیشتر نقش «تعیین‌کننده در شرایط برابر» را دارد. منبع: Google Search Central — Core Web Vitals

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

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

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

در تیم پشتیبانی وب‌داده بارها پیش آمده که کاربری از کندشدن سایت قدیمی‌اش شکایت کرده و بعد از بررسی دیده‌ایم دیتابیسش پر از هزاران رونوشت انباشته‌شده در طول سال‌هاست. راه‌حل همیشه ساده بوده: اول یک بکاپ کامل می‌گیریم، بعد رونوشت‌های اضافه را پاک و جدول‌ها را بهینه می‌کنیم و در نهایت با یک خط در wp-config جلوی انباشت دوباره را می‌گیریم. همین تجربه نشان می‌دهد چرا «پیشگیری» مهم‌تر از پاک‌سازی مکرر است.
اگر به‌دنبال بستری سریع و مطمئن برای وردپرس هستید، می‌توانید هاست سی‌پنل وب‌داده را ببینید که با ابزارهای مدیریت دیتابیس ارائه می‌شود. اگر هم تازه می‌خواهید شروع کنید، مطلب آموزش نصب وردپرس روی سی‌پنل کمک‌کننده است.

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

جمع‌بندی و چک‌لیست نهایی

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

چک‌لیست سریع بهینه‌سازی دیتابیس

✅ پیش از هر کاری یک بکاپ کامل و سالم از دیتابیس بگیرید.
✅ برای شروع امن، از افزونه‌ای مثل WP-Optimize با پیش‌نمایش استفاده کنید.
✅ رونوشت‌ها، ذخیره‌های خودکار، زباله‌دان و ترنزینت‌های منقضی را پاک کنید.
✅ پاک‌سازی را هفتگی یا ماهانه زمان‌بندی خودکار کنید.
✅ با WP_POST_REVISIONS در wp-config.php جلوی انباشت دوباره را بگیرید.
✅ روش SQL/WP-CLI را فقط با بکاپ و پیشوند درست جدول اجرا کنید.
در صورتی که سوالی داشتید می‌توانید در بخش نظرات با ما در ارتباط باشید.
وب داده
وب داده

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

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

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