خطای “Memory Limit Exceeded” در وردپرس یکی از رایجترین خطاهایی است که بسیاری از کاربران هنگام نصب افزونهها، قالبها یا اجرای عملیات سنگین مانند ایمپورت دمو با آن مواجه میشوند. این خطا معمولاً به شکل زیر نمایش داده میشود:
Fatal error: Allowed memory size of x bytes exhausted
در این آموزش، دلایل بروز این خطا را بررسی کرده و روشهای کاربردی برای رفع آن را مرحله به مرحله توضیح میدهیم.
خطای Memory Limit چیست؟
وردپرس برای اجرای فایلها و پردازش اطلاعات به حافظه (RAM) نیاز دارد. این حافظه توسط تنظیمات PHP محدود شده است. اگر یک پلاگین یا فرآیند از این مقدار فراتر برود، با خطای “Memory Limit Exceeded” مواجه میشوید.این خطا دقیقاً به چه معناست؟
وردپرس برای اجرا به زبان برنامهنویسی PHP متکی است. PHP نیز مانند هر نرمافزار دیگری برای اجرا به میزان مشخصی از حافظه (Memory) نیاز دارد. در سرورهای میزبانی، برای جلوگیری از مصرف بیشازحد منابع، به هر برنامه مقدار محدودی حافظه اختصاص داده میشود.
وقتی بار سایت شما بالا میرود یا تعداد افزونههای نصبشده زیاد میشود، این حافظه ممکن است پر شده و PHP دیگر نتواند پردازش را ادامه دهد. در نتیجه، با خطای Memory Limit مثل زیر مواجه میشوید:

علائم رایج خطای Memory Limit:
- خطای سفید صفحه (White Screen of Death)
- ناتوانی در نصب قالب یا افزونه
- خطا هنگام ورود به پیشخوان وردپرس
- توقف در حین بارگذاری رسانه یا فایلها
روشهای رفع خطای Memory Limit
1. افزایش حافظه از طریق فایل wp-config.php
- وارد هاست شوید و فایل
wp-config.php
را ویرایش کنید. - قبل از خط
/* That's all, stop editing! Happy publishing. */
کد زیر را اضافه کنید:
define('WP_MEMORY_LIMIT', '256M');
مقدار 256M به معنای اختصاص 256 مگابایت حافظه است. اگر مشکل حل نشد، میتوانید آن را به 512M افزایش دهید.
2. افزایش حافظه از طریق فایل .htaccess
اگر هاست شما از Apache استفاده میکند، میتوانید فایل .htaccess
را در ریشه سایت باز کرده و خط زیر را اضافه کنید:
php_value memory_limit 256M
در برخی هاستها این روش غیرفعال است و ممکن است منجر به خطای ۵۰۰ شود؛ پس با احتیاط استفاده کنید.
3. افزایش حافظه از طریق فایل php.ini
در هاستهایی که دسترسی به فایل php.ini
دارید (مخصوصاً در VPS یا سرورهای اختصاصی)، میتوانید این فایل را ویرایش کرده و خط زیر را اضافه یا مقدارش را افزایش دهید:
memory_limit = 256M
در صورتی که فایل php.ini وجود ندارد، میتوانید آن را ایجاد کنید و در دایرکتوری اصلی وردپرس قرار دهید.
4. استفاده از cPanel (در هاستهایی با کنترل پنل)
- وارد cPanel شوید
- به بخش Select PHP Version یا MultiPHP INI Editor بروید
- حافظه PHP را در قسمت
memory_limit
به 256M یا بیشتر افزایش دهید
5. تماس با پشتیبانی هاست
اگر هیچکدام از روشهای بالا مؤثر نبود، احتمالاً دسترسی شما برای تغییر memory محدود شده است. در این صورت:
- با پشتیبانی هاست تماس بگیرید
- درخواست افزایش PHP Memory Limit به مقدار مورد نیاز (مثلاً 512M) را مطرح کنید
نکات مهم برای رفع خطای Memory Limit در وردپرس
رفع خطای “Allowed memory size exhausted” فقط به افزایش حافظه PHP ختم نمیشود. برای جلوگیری از بازگشت مجدد این خطا و حفظ عملکرد بهینه سایت، رعایت نکات زیر بسیار مهم است:
۱. همیشه قبل از هر تغییری، از سایت نسخه پشتیبان تهیه کنید
قبل از ویرایش فایلهایی مانند wp-config.php
یا غیرفعالسازی افزونهها، حتماً یک Backup کامل از فایلها و دیتابیس سایت تهیه کنید.
ابزارهای پیشنهادی برای تهیه نسخه پشتیبان:
- UpdraftPlus
- All-in-One WP Migration
- یا از بخش Backup در کنترل پنل هاست (CPanel یا DirectAdmin)
در صورت بروز خطا یا خراب شدن سایت پس از اعمال تغییرات، بهراحتی میتوانید سایت را به حالت قبل برگردانید.
۲. از قالبها و افزونههای سبک و بهینه استفاده کنید
قالبها و افزونههای سنگین یا ضعیف بهینهسازیشده، یکی از دلایل اصلی مصرف بیش از حد منابع هستند.
پیشنهادات:
- از قالبهای حرفهای، سبک و دارای پشتیبانی فعال استفاده کنید (مثل: Astra، GeneratePress، Hello Elementor)
- افزونههایی با کدنویسی تمیز و سازگار با آخرین نسخه PHP و وردپرس را انتخاب کنید.
- از نصب افزونههای متفرقه، نالشده یا بدون آپدیت خودداری کنید.
۳. مصرف حافظه افزونهها را بررسی کنید
برخی از افزونهها مخصوصاً افزونههای صفحهساز (Page Builder) یا دمو ایمپورترها، حافظه زیادی مصرف میکنند.
ابزارهایی برای بررسی مصرف منابع:
- افزونه Query Monitor (برای مشاهده منابع مصرفی افزونهها)
- بررسی کنسول مرورگر و منابع بارگذاریشده در Network tab
- ابزارهای مانیتورینگ هاست (مثل ابزار Resource Usage در CPanel)
افزونههایی که ممکن است حافظه زیادی مصرف کنند:
- Elementor و ویجتهای افزودنی آن
- WPBakery Page Builder
- Revolution Slider یا LayerSlider
- افزونههای ایمپورت دمو یا بسته نصبی سنگین
- ووکامرس به همراه تعداد زیادی افزودنی
اگر افزونهای بیش از حد حافظه مصرف میکند، بهتر است با گزینه سبکتر جایگزین شود یا تنظیمات آن بهینهسازی شود.
۴. حداقل حافظه پیشنهادی برای سایتهای فروشگاهی و چندزبانه
سایتهایی که افزونههای سنگینی مثل ووکامرس، WPML یا ابزارهای رزرو، ایمیل مارکتینگ و گزارشگیری دارند، به حافظه بیشتری نیاز دارند.
نوع سایت | حداقل حافظه PHP پیشنهادی |
---|---|
سایت شخصی یا شرکتی ساده | 128MB |
سایت وبلاگی با ترافیک متوسط | 256MB |
فروشگاهی یا چندزبانه (WooCommerce + WPML) | 512MB |
سایت با ایمپورتهای سنگین یا گزارشگیری | 768MB یا بیشتر |
تنظیم
WP_MEMORY_LIMIT
وWP_MAX_MEMORY_LIMIT
متناسب با نوع سایت ضروری است. همچنین بررسی کنید هاست شما این سطح از منابع را پشتیبانی کند.
نکات تکمیلی برای پیشگیری از ارور در آینده:
- نسخه PHP هاست را به آخرین نسخه پایدار ارتقا دهید (معمولاً PHP 8.1 یا 8.2).
- از کش کردن صفحات و فایلها برای کاهش بار روی PHP استفاده کنید (افزونههایی مثل LiteSpeed Cache یا WP Rocket).
- سیستم Cron وردپرس را بهینه یا غیرفعال کرده و از سیستم کرون سرور استفاده کنید.
- لاگهای خطای PHP را بررسی و از خطاهای مزمن جلوگیری کنید (
error_log
در روت سایت یا داخل public_html).
جمعبندی
خطای Memory Limit نشاندهنده کمبود حافظه PHP برای اجرای اسکریپتهای وردپرس است. با افزودن چند خط کد به فایلهای اصلی یا تغییر تنظیمات در پنل مدیریت هاست، میتوانید این مشکل را در کمتر از چند دقیقه برطرف کنید. اگر هم وب سایت خود را تازه راه اندازی کرده اید محتوای راهنمای جامع راه اندازی سایت قدم به قدم: حتما بخوانید! را حتما مطالعه کنید.
در صورت نیاز به پشتیبانی یا عدم دسترسی به برخی فایلها، بهترین کار تماس با پشتیبانی هاست و درخواست افزایش حافظه برای عدم ایجاد خطای Memory Limit است.
سؤالات متداول
1. خطای Memory Limit دقیقاً چه معنایی دارد؟
خطای Memory Limit نشان میدهد که اسکریپتهای PHP سایت شما بیش از مقدار مجاز حافظه مصرف کردهاند. در نتیجه، پردازش PHP متوقف شده و خطا نمایش داده میشود.
2. چرا خطای Memory Limit بیشتر در هاستهای اشتراکی اتفاق میافتد؟
در هاستهای اشتراکی، منابع سرور مانند RAM و CPU بین چند سایت تقسیم میشود. بنابراین مقدار حافظهای که به هر سایت تعلق میگیرد محدود است و در صورت فشار بیشازحد روی سایت، این محدودیت نمایان میشود.
3. افزایش حافظه PHP خطری برای سایت ندارد؟
اگر با مقدار منطقی و متناسب انجام شود، خیر. اما اختصاص حافظه بیش از حد (مثلاً بیش از 1GB بدون دلیل فنی) ممکن است باعث اختلال در عملکرد کلی سرور شود. همیشه از اعداد بهینه و تستشده استفاده کنید (مثلاً 256M یا 512M).
4. آیا با افزایش حافظه مشکل برای همیشه حل میشود؟
خیر، اگر علت اصلی مصرف حافظه همچنان باقی بماند (مثلاً افزونهای سنگین یا تنظیمات نادرست)، خطا ممکن است دوباره ظاهر شود. افزایش حافظه یک راهحل فوری است، اما باید علت اصلی مصرف زیاد منابع را نیز شناسایی و رفع کنید.
5. چگونه متوجه شویم کدام افزونه یا قالب مصرف حافظه بالایی دارد؟
میتوانید از افزونههایی مثل Query Monitor استفاده کنید تا پردازشهای سنگین، کوئریهای کند یا افزونههایی با مصرف زیاد منابع را شناسایی کنید.
6. آیا امکان دارد شرکت هاستینگ اجازه افزایش حافظه را ندهد؟
بله. برخی شرکتهای هاستینگ برای حفظ پایداری سرور، سقف مشخصی برای حافظه PHP تعیین میکنند. اگر تغییر دستی مؤثر نبود، باید با پشتیبانی هاست تماس بگیرید و درخواست افزایش حافظه دهید.
7. آیا نسخه PHP روی این خطا تأثیر دارد؟
بله، نسخههای جدیدتر PHP عملکرد بهتری دارند و حافظه را بهینهتر مصرف میکنند. توصیه میشود از آخرین نسخه پایدار (مثلاً PHP 8.1 یا بالاتر) استفاده کنید.
8. چطور بفهمم الان حافظه PHP سایت من چقدر است؟
میتوانید با نصب افزونهای مانند Site Health یا اجرای تابع phpinfo()
در فایل PHP مجزا، مقدار فعلی حافظه (memory_limit
) را مشاهده کنید.