اگر سایت وردپرستان بهتازگی کند شده و حس میکنید بارگذاری آن بهدلیل دادههای پنهان سنگین میشود، احتمالاً گزینههای autoloaded در جدول wp_options بهحجم غیرقابلقبول رسیدهاند. در این مقاله گام به گام نشان میدهیم چگونه این گزینهها را شناسایی، تحلیل و بهصورت هدفمند حذف یا بهینه کنید تا سرعت بارگذاری بهسرعت قبل بازگردد. ابتدا با ابزارهای خط فرمان یا افزونههای معتبر، فهرستی از کلیدهای autoloaded که بیشترین فضای پایگاه داده را اشغال میکنند استخراج میکنیم. سپس با بررسی نقش هر گزینه، تصمیم میگیریم کدام یک واقعاً ضروری است و کدام میتوانند بهصورت lazy‑load یا غیرفعال شوند. بهدست آوردن این پاکسازی نهتنها زمان پاسخگویی سرور را کاهش میدهد، بلکه پایهای پایدار برای بهینهسازیهای آینده فراهم میکند.
فهرست مطالب
- درک گزینههای autoload در وردپرس
- شناسایی رکوردهای زائد wp_options
- تجزیه و تحلیل بارگذاری خودکار
- ابزارهای بررسی حجم گزینهها
- حذف ایمن دادههای غیر ضروری
- بهینهسازی عملکرد سایت پس از پاکسازی
- سوالات متداول
درک گزینههای autoload در وردپرس
در وردپرس، هر مقدار که با add_option() یا update_option() ذخیره میشود، میتواند با ویژگی autoload فعال یا غیرفعال شود. وقتی مقدار autoload برابر yes باشد، وردپرس در هر بار بارگذاری، تمام این گزینهها را از جدول wp_options به صورت یکباره (با یک پرسوجوی SELECT option_name, option_value FROM wp_options WHERE autoload='yes') میخواند. این رفتار برای تنظیمات ضروری مثل آدرس سایت یا تنظیمات پیشفرض تمها مناسب است، اما اگر تعداد زیادی گزینه «autoload» داشته باشند، سرعت بارگذاری صفحه و مصرف حافظه بهطور چشمگیری کاهش مییابد.
برای شناسایی گزینههای autoloadی که بیش از حد بزرگ یا غیرضروری هستند، میتوانید از پرسوجوی زیر در phpMyAdmin یا WP‑CLI استفاده کنید:
SELECT option_name, LENGTH(option_value) AS size_kb
FROM wp_options
WHERE autoload='yes'
ORDER BY size_kb DESC
LIMIT 10;
این کوئری بزرگترین ۱۰ گزینه را بر حسب اندازه (به بایت) نمایش میدهد. در ادامه، یک جدول نمونه از نتایج محتمل آورده شده است:
| نام گزینه | حجم (KB) | وضعیت |
|---|---|---|
| site_transient_timeout_theme_roots | 120 | yes |
| woocommerce_attribute_taxonomies | 95 | yes |
| wpseo_titles | 80 | yes |
پس از شناسایی گزینههای بزرگ، دو روش اصلی برای بهینهسازی وجود دارد: اول، اگر گزینه برای عملکرد فوری سایت لازم نیست، با استفاده از update_option( $name, $value, 'no' ) ویژگی autoload را به no تغییر دهید؛ دوم، برای گزینههایی که بهصورت موقت استفاده میشوند، میتوانید به جای ذخیره در wp_options از کَشهای Transient یا Object Cache بهره ببرید. این کار باعث میشود دادهها فقط وقتی مورد نیاز باشند بارگذاری شوند و در درخواستهای دیگر در حافظه موقت باقی بمانند.
یک مثال عملی: یک فروشگاه آنلاین با افزونهی WooCommerce ممکن است گزینه woocommerce_sessions را به صورت autoload ذخیره کند؛ این گزینه شامل اطلاعات سشن تمام کاربران است و میتواند به سرعت به چند مگابایت برسد. با تغییر این گزینه به no یا جابجایی به Transient، میتوانید بارگیری اولیه صفحه را تا ۲۰٪ کاهش دهید، بهخصوص در سایتهای پر بازدید.
در نهایت، پس از هر تغییر، حتماً با ابزارهای پروفایلینگ مانند Query Monitor یا Debug Bar بررسی کنید که تعداد ردیفهای autoload کاهش یافته و زمان اجرای SELECT option_name FROM wp_options WHERE autoload='yes' بهبود یافته است. این کار تضمین میکند که بهینهسازی واقعی باشد و هیچ تنظیم مهمی بهصورت ناخواسته از بارگذاری حذف نشود.
شناسایی رکوردهای زائد wp_options
برای شناسایی رکوردهای زائد در جدول wp_options ابتدا باید بهدقت به ستون autoload نگاهی بیندازید. مقدار «yes» نشان میدهد که گزینه در هر بار بارگذاری وردپرس به حافظه کش میرود؛ در نتیجه حتی یک مقدار کوچک اما غیرضروری میتواند زمان اجرا را تحتاثر قرار دهد. میتوانید با یک پرسوجوی ساده در phpMyAdmin یا WP‑CLI تمام گزینههای «autoloaded» را استخراج کنید:
SELECT option_name, option_value FROM wp_options WHERE autoload='yes' ORDER BY option_name;این لیست اولیه بهصورت یک جدول ساده به شما میدهد که کدام گزینهها توسط هسته، افزونه یا قالب بهصورت پیشفرض بارگذاری میشوند. برای فهم بهتر، جدول زیر دستهبندی تقریبی این گزینهها را نشان میدهد:
| دسته | نمونه گزینه | آیا قابل حذف است؟ |
|---|---|---|
| هسته وردپرس | siteurl, home, blogname | خیر |
| افزونههای محبوب | woocommerce_settings, yoast_seo_options | بسته به تنظیمات |
| قالبها | theme_mods_mytheme, custom_logo | معمولاً خیر |
| کش/آمار سفارشی | my_plugin_cache, transient_timeout_xyz | اغلب بله |
پس از استخراج لیست، بهدنبال گزینههایی بگردید که بهنظر میرسد مرتبط با کش یا دادههای موقت هستند؛ اینها معمولاً در نامشان شامل cache، transient یا یک پیشوند اختصاصی افزونه میباشند. برای مثال، اگر افزونهای به نام «My Plugin» یک گزینه به نام my_plugin_cache داشته باشد که مقدار آن چند مگابایت است و هر بار بارگذاری میشود، میتوانید با دستور زیر آن را حذف کنید (پس از تهیه بکاپ):
DELETE FROM wp_options WHERE option_name='my_plugin_cache' AND autoload='yes';در نهایت، برای جلوگیری از بروز مجدد این مشکل، در هر بار نصب افزونه یا قالب جدید، تنظیم autoload را بررسی کنید. اگر افزونه بهطور پیشفرض گزینهای را با autoload='yes' ایجاد میکند اما بهسرعت استفاده نمیشود، میتوانید آن را به no تغییر دهید یا با استفاده از فیلتر add_option در فایل functions.php یا یک پلاگین سفارشی این رفتار را اصلاح کنید. این کار بهصورت مستمر حجم wp_options را بهینه نگه میدارد و سرعت بارگذاری سایت را بهبود میبخشد.
تجزیه و تحلیل بارگذاری خودکار
در وردپرس گزینههای autoload بهصورت خودکار در هر بار بارگذاری سایت از جدول wp_options خوانده میشوند. این رفتار باعث میشود اطلاعاتی که هرگز مورد استفاده قرار نمیگیرند، همچنان بهعنوان بخشی از درخواست اولیه دیتابیس بارگیری شوند و زمان واکنش سرور را افزایش دهند. برای شناسایی این «بار اضافی» ابتدا باید ببینیم کدام گزینهها بهصورت autoload ثبت شدهاند و چه حجمی از حافظه را اشغال میکنند.
سادهترین راه برای استخراج لیست گزینههای autoload، اجرای یک کوئری SQL یا استفاده از WP‑CLI است. کوئری زیر، تمام رکوردهای autoload را بههمراه اندازهٔ تقریباً بایتشان نمایش میدهد:
SELECT option_name, LENGTH(option_value) AS size_bytes
FROM wp_options
WHERE autoload = 'yes'
ORDER BY size_bytes DESC
LIMIT 20;همچنین میتوانید با دستور زیر در خط فرمان وردپرس، خروجی مشابهی دریافت کنید:
wp option list --autoload=yes --format=tableاین دستورات به شما امکان میدهند که بهسرعت گزینههای بزرگ را شناسایی کنید و تصمیم بگیرید آیا میتوانند به autoload = 'no' تغییر یابند یا حذف شوند.
| نام گزینه | حجم (KB) | استفاده معمول |
|---|---|---|
| _site_transient_timeout_theme_roots | 12 | کش تمهای فعال |
| woocommerce_sessions | 85 | دادههای سشن خرید |
| widget_recent_posts | 4 | ویجت پستهای اخیر |
| wpseo_titles | 28 | تنظیمات سئو Yoast |
| _transient_doing_cron | 2 | علامت زمانبندی کرون |
بهعنوان مثال، اگر سایت شما یک فروشگاه ووکامرس داشته باشد، گزینه woocommerce_sessions معمولاً حجم قابلتوجهی دارد؛ اما این دادهها فقط برای کاربرانی که در حال خرید هستند ضروری است. با تغییر مقدار autoload به 'no' میتوانید آن را بهصورت «تقاضایی» (lazy‑load) بارگذاری کنید، بهطوریکه فقط وقتی کاربر وارد صفحه سبد خرید میشود، سشن مربوطه فراخوانی شود. برای انجام این کار، کافیست دستور زیر را اجرا کنید:
wp option update woocommerce_sessions '' --autoload=noپس از بهروزرسانی، زمان واکنش سرور بهخصوص در صفحات ثابت (مثلاً صفحهٔ تماس یا بلاگ) بهطور چشمگیری کاهش مییابد، در حالی که عملکرد فروشگاه تحتالاثر نخواهد بود.
ابزارهای بررسی حجم گزینهها
برای شناسایی گزینههای autoloaded که بهطور غیرضروری فضای wp_options را اشغال میکنند، نخست باید ابزارهای مناسب را بهکار ببندید. این ابزارها به دو دسته تقسیم میشوند: افزونههای گرافیکی که از طریق داشبورد وردپرس قابل دسترسی هستند، و ابزارهای خط فرمان یا پلاگینهای توسعهدهنده که اطلاعات دقیقتری ارائه میدهند. استفاده از ترکیبی از این دو، امکان مقایسه سریع حجم و فراخوانی هر گزینه را میدهد.
یکی از سادهترین راهها، نصب افزونه Query Monitor است. این افزونه پس از فعالسازی، یک منوی کوچک در نوار مدیریت اضافه میکند که در آن میتوانید لیست تمام گزینههای autoloaded به همراه حجم بایتشان را مشاهده کنید. برای گزینههای با حجم بیش از ۱۰۰ KB، یک علامت زرد نمایش میشود تا بلافاصله توجه شما را جلب کند. این روش برای کاربران غیرفنی مناسب است زیرا نیازی به دسترسی SSH یا خط فرمان ندارد.
اگر بهدنبال اطلاعات عمیقتر و امکان حذف یا بهینهسازی انبوهی از گزینهها هستید، ابزارهای خط فرمان مانند WP‑CLI بسیار کارآمدند. فرمان زیر، تمام گزینههای autoloaded را به ترتیب حجم نزولی لیست میکند:
wp option list --autoload=on --format=table --fields=option_name,autoload,sizeخروجی این دستور میتواند بهسرعت نشان دهد که کدام افزونه یا پوسته بیشترین بار را بر روی جدول میگذارد. برای مثال، اگر افزونهای تحت عنوان «سفارشیسازی فرم تماس» حدود 2 MB فضای جدول را اشغال کرده باشد، میتوانید با فرمان زیر مقدار آن را بهصورت موقت غیرفعال کنید:
wp option update my_contact_form_settings autoload noدر ادامه، یک جدول مقایسهای کوتاه بین چهار ابزار رایج برای بررسی حجم گزینهها ارائه میشود. این جدول میتواند بهعنوان یک «چکلیست بصری» برای انتخاب ابزار مناسب بر حسب نیاز شما عمل کند.
| ابزار | نوع | مزایا | معایب |
|---|---|---|---|
| Query Monitor | افزونه داشبورد | نصب آسان، نمایش گرافیکی، مناسب برای مبتدیان | عدم دسترسی به جزئیات دقیق SQL |
| WP‑CLI | خط فرمان | سرعت بالا، امکان اسکریپتنویسی، خروجی قابل فیلتر | نیاز به دسترسی سرور و دانش پایه CLI |
| Advanced Database Cleaner | افزونه مدیریت پایگاه داده | پاکسازی خودکار ردیفهای «غیرقابل استفاده»، گزارشگیری دورهای | ممکن است تنظیمات پیشفرض را بهصورت گسترده حذف کند |
| Health Check & Troubleshooting | افزونه تشخیص سلامت | قابلیت «حالت عیبیابی» برای غیرفعالسازی موقت افزونهها | نمایش محدود به گزینههای autoloaded در حالت عادی |
در عمل، ترکیب Query Monitor برای شناسایی سریع موارد مشکوک و WP‑CLI برای حذف یا تغییر تنظیمات مشکلساز، بهترین نتایج را میدهد. پس از شناسایی گزینههای حجیم، بهراحتی میتوانید با بهروزرسانی یا حذف افزونههای مربوطه، بار wp_options را به حداقل برسانید و سرعت بارگذاری سایت را بهبود بخشید.
حذف ایمن دادههای غیر ضروری
گزینش دادههای غیر ضروری برای حذف همیشه با احتیاط انجام میشود؛ چرا که گزینههای autoload بعضاً برای عملکرد هسته یا افزونههای مهم حیاتی هستند. حذف تصادفی میتواند باعث بروز خطاهای «Undefined index» یا حتی خراب شدن کل سایت شود. بنابراین اولین گام، تهیهٔ یک نسخهٔ کامل از پایگاه داده (با استفاده از wp db export یا ابزارهای پشتیبانگیری) است تا در صورت بروز مشکل بتوانید به سرعت بازگردانید.
برای شناسایی گزینههای «سنگین» و کماستفاده، میتوانید از پرسوجوی زیر در phpMyAdmin یا WP‑CLI استفاده کنید:
SELECT option_name, LENGTH(option_value) AS size
FROM wp_options
WHERE autoload='yes'
ORDER BY size DESC
LIMIT 30;
این لیست ۳۰ گزینهٔ بزرگ را نشان میدهد. سپس میتوانید این موارد را با فهرست زیر مقایسه کنید تا تصمیم بگیرید کدامیک ایمن برای حذف هستند:
| دستهٔ گزینه | مثال | حذف ایمن؟ |
|---|---|---|
| پلاگینهای کش | wp_fastest_cache_options | بله (پس از پاکسازی کش) |
| تنظیمات موقت قالب | theme_mods_mytheme | بله (اگر قالب دیگر استفاده نمیشود) |
| کلیدهای API هسته | siteurl, home | خیر |
| تنظیمات افزونههای امنیتی | wordfence_waf_options | خیر |
قبل از حذف، بهتر است گزینهٔ مورد نظر را موقتاً غیرفعال کنید تا بتوانید اثر آن را ارزیابی کنید. با استفاده از WP‑CLI میتوانید بهصورت زیر autoload را به no تغییر دهید:
wp option update my_unused_option '' --autoload=no
سپس ۲۴-۴۸ ساعت سایت را تحت نظر بگیرید؛ اگر هیچ خطایی مشاهده نشد، میتوانید به مرحلهٔ حذف نهایی پیش بروید.
حذف نهایی با یک پرسوجوی ساده انجام میشود. توجه داشته باشید که قبل از اجرای دستور حذف، همیشه یک نسخهٔ پشتیبان داشته باشید:
DELETE FROM wp_options
WHERE option_name='my_unused_option' AND autoload='no';
پس از حذف، یکبار دیگر جدول wp_options را برای ردیفهای autoload='yes' بررسی کنید و از تمیز شدن دادهها اطمینان حاصل کنید. همچنین پاکسازی transients (دادههای موقت) با افزونهای مانند “Transient Cleaner” میتواند فضای بیشتری آزاد کند و عملکرد پایگاه داده را بهبود بخشد.
بهینهسازی عملکرد سایت پس از پاکسازی
پس از حذف دادههای زائد از wp_options، اولین قدم اطمینان از اینکه تغییرات بهصورت دائم اعمال میشوند، است. برای این کار میتوانید کش شیء (object cache) را فعال کنید؛ این کش تمام نتایج پرسوجوهای پایگاهداده را در حافظه ذخیره میکند و بارگذاری صفحات را بهسرعت میکشد. اگر از سرویسهای میزبانی اشتراکی استفاده میکنید، پلاگینی مثل Redis Object Cache یا WP‑Rocket میتواند بهصورت خودکار این کار را انجام دهد.
در مرحلهٔ بعد، بازبینی نهایی گزینههای «autoload» ضروری است. حتی پس از پاکسازی اولیه، ممکن است برخی افزونهها یا قالبها دوباره دادههای بزرگ را بهصورت خودکار بارگذاری کنند. برای شناسایی این موارد میتوانید از ابزار «Query Monitor» یا افزونهٔ Health Check & Troubleshooting استفاده کنید؛ این ابزارها تمام کلیدهای autoload را نمایش میدهند و امکان غیرفعالسازی سریع آنها را فراهم میآورند. نکتهٔ مهم این است که فقط گزینههای ضروری را باقی بگذارید و بقیه را به no تغییر دهید.
پس از اعمال تنظیمات، عملکرد سایت را با چند معیار کلیدی سنجید. جدول زیر نمونهٔ مقایسهٔ سادهٔ برخی معیارهای مهم قبل و بعد از پاکسازی را نشان میدهد:
| معیار | قبل از پاکسازی | بعد از پاکسازی |
|---|---|---|
| تعداد پرسوجوهای DB در صفحهٔ اصلی | ≈ 45 | ≈ 28 |
| حافظه مصرفی PHP (MB) | ≈ 120 | ≈ 85 |
| زمان بارگذاری (ثانیه) | ≈ 3.2 | ≈ 1.8 |
| امتیاز PageSpeed (Mobile) | ≈ 68 | ≈ 84 |
wp_optionsبه عنوان مثال، در یک سایت فروشگاهی متوسط که حدود ۱۶ ۰۰۰ بازدید ماهانه داشت، حذف ۲۲ ۰۰۰ ردیف autoload منجر به کاهش ۴۰٪ در زمان واکنش سرور شد؛ این بهخصوص برای کاربران موبایل که سرعت اینترنت محدودتر است، تجربهٔ بهتری فراهم میکند. برای حفظ این بهبود، بهتر است هر ماه یک بار با همان ابزارها وضعیت autoload را بررسی کنید و دادههای منقضی یا بیاستفاده را حذف کنید.
سوالات متداول
چگونه میتوان گزینههای autoload شده در wp_options را شناسایی کرد؟
برای یافتن گزینههای autoload شده میتوانید از کوئری مستقیم MySQL یا افزونههای مدیریت پایگاهداده استفاده کنید. مثال کوئری: SELECT option_name, option_value FROM wp_options WHERE autoload=’yes’؛ نتایج را بررسی کنید و گزینههای بزرگ حجم را علامتگذاری کنید.
آیا حذف گزینههای غیرضروری میتواند سایت را تسریع کند؟
حذف گزینههای غیرضروری که autoload دارند باعث کاهش زمان بارگذاری اولیه وردپرس میشود. قبل از حذف، همیشه یک نسخه پشتیبان از جدول wp_options بگیرید. سپس میتوانید با دستور DELETE یا از طریق phpMyAdmin حذف کنید.
چگونه میتوان مقدار autoload یک گزینه را بدون خطر تغییر داد؟
برای تغییر مقدار autoload یک گزینه، در phpMyAdmin یا با WP-CLI گزینه autoload را به ‘no’ تغییر دهید. مثال با WP-CLI: wp option update option_name –autoload=no. پس از تغییر، عملکرد سایت را بررسی کنید تا از عدم بروز خطا مطمئن شوید.
اگر یک افزونه گزینهای با autoload زیاد اضافه کرد چه کاری انجام دهم؟
ابتدا شناسایی کنید که کدام افزونه این گزینه را اضافه کرده است. اگر امکان حذف یا غیرفعالسازی افزونه وجود دارد، آن را انجام دهید. در غیر این صورت میتوانید با فیلترهای wp_options مقدار autoload را به ‘no’ تبدیل کنید یا از افزونههای مدیریت گزینهها استفاده کنید.
چکلیست سریع
- مقدار autoload گزینهها را در wp_options بررسی کنید.
- رکوردهای بزرگ یا نامرتبط را شناسایی کنید.
- از ابزارهای تجزیه و تحلیل حجم برای ارزیابی دقیق استفاده کنید.
- دادههای غیرضروری را بهصورت ایمن حذف کنید.
- پس از پاکسازی، سرعت و کارایی سایت را تست کنید.
- حجم wp_options را بهصورت دورهای نظارت کنید.
- مستندات حذف شده را بهروز نگه دارید.
- یک برنامه منظم برای بررسی گزینههای autoload تنظیم کنید.
پس از حذف گزینههای اضافی، سایت شما با بارگذاری سریعتر و مصرف منابع کمتر کار میکند. این بهبودها میتوانند تجربه کاربری را ارتقاء داده و فشار سرور را کاهش دهند. اگر سؤال یا تجربهای در این زمینه دارید، خوشحال میشویم که بشنویم.

