خطای ۵۰۰ وردپرس معمولاً بدون توضیح دقیق ظاهر میشود و کل سایت، پیشخوان یا فقط یک صفحه را از دسترس خارج میکند. این خطا یعنی سرور هنگام پردازش درخواست با یک وضعیت پیشبینینشده روبهرو شده است؛ اما برخلاف تصور رایج، لزوماً به معنی خرابی هاست نیست. تداخل افزونه، کد معیوب قالب، محدودیت حافظه PHP، فایل .htaccess نامعتبر یا خطای دیتابیس از علتهای متداول آن هستند. در این راهنما یک مسیر عیبیابی امن و مرحلهای ارائه میکنیم تا بدون آزمونوخطای خطرناک، منشأ خطا را پیدا کنید.
خطای ۵۰۰ وردپرس چیست؟
کد 500 Internal Server Error یک پاسخ عمومی سمت سرور است. مرورگر درخواست را ارسال کرده، اما PHP، وبسرور یا یکی از اجزای وردپرس نتوانسته پاسخ صحیح بسازد. چون پیام ۵۰۰ علت واقعی را نشان نمیدهد، باید سرنخ را از زمان وقوع خطا، محدوده خرابی و گزارش خطاهای سرور به دست آورد.
گاهی سایت عمومی باز میشود اما ورود به پیشخوان یا ذخیره صفحه در المنتور خطای ۵۰۰ میدهد. گاهی نیز فقط درخواستهای AJAX، سبد خرید ووکامرس یا REST API خراب میشوند. همین تفاوتها برای محدودکردن دامنه بررسی بسیار مهماند.
قبل از هر تغییری این سه کار را انجام دهید
- نسخه پشتیبان بگیرید: حداقل از فایلها و دیتابیس یک بکاپ قابلبازیابی داشته باشید.
- زمان شروع خطا را ثبت کنید: آیا پس از آپدیت، نصب افزونه، تغییر نسخه PHP یا ویرایش قالب ایجاد شد؟
- دامنه خطا را مشخص کنید: کل سایت، پیشخوان، یک برگه، المنتور، تسویهحساب یا فقط کاربران واردشده؟
اگر سایت فروشگاهی فعال دارید، تغییرات را در ساعات کمترافیک یا محیط Staging انجام دهید. غیرفعالکردن تصادفی افزونه پرداخت، عضویت یا چندزبانه میتواند داده یا سفارش واقعی را تحت تأثیر قرار دهد.
جدول تشخیص سریع علت خطای ۵۰۰
| نشانه | علت محتمل | اولین بررسی |
|---|---|---|
| خطا بلافاصله بعد از آپدیت | تداخل افزونه یا قالب | غیرفعالسازی مورد آخر |
| خطا هنگام ذخیره با المنتور | حافظه PHP، ModSecurity یا تداخل افزودنی | لاگ PHP و Site Health |
| فقط یک صفحه خطا میدهد | شورتکد، کوئری یا داده همان صفحه | لاگ همزمان با بازکردن صفحه |
| بعد از تغییر پیوند یکتا | قواعد نادرست .htaccess | بازسازی Permalink |
| خطای متناوب در ترافیک بالا | کمبود منابع یا Timeout | CPU، RAM، PHP workers و slow log |
| فقط REST API یا AJAX | فایروال، افزونه امنیتی یا خطای PHP | Network مرورگر و لاگ سرور |
روش مرحلهبهمرحله رفع خطای ۵۰۰ وردپرس
۱. کش مرورگر، وردپرس و سرور را پاک کنید
ابتدا یک پنجره ناشناس باز کنید و همان URL را آزمایش کنید. سپس کش افزونه، LiteSpeed یا Nginx، CDN و Object Cache را پاک کنید. کش معمولاً علت اصلی خطای پایدار ۵۰۰ نیست، اما ممکن است پاسخ خطای قدیمی را نگه دارد یا پس از رفع مشکل، نتیجه را مخفی کند. پاکسازی کش باید قبل و بعد از هر تست انجام شود تا تشخیص اشتباه نشود.
۲. فایل گزارش خطا را بخوانید
سریعترین مسیر حرفهای، بررسی Error Log در پنل هاست است. خطی را پیدا کنید که دقیقاً در زمان بازکردن صفحه ثبت شده باشد. عبارتهایی مانند PHP Fatal error، Allowed memory size exhausted، Maximum execution time و نام فایل افزونه یا قالب، سرنخ مستقیم هستند.
برای ثبت موقت خطاهای وردپرس میتوان تنظیمات زیر را پیش از خط «That’s all» در wp-config.php قرار داد:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );سپس فایل wp-content/debug.log را بررسی کنید. نمایش خطا روی سایت زنده را فعال نکنید؛ این کار ممکن است مسیر فایلها و اطلاعات حساس را به بازدیدکننده نشان دهد. پس از پایان عیبیابی، Debug را غیرفعال یا محدود کنید.
۳. افزونهها را بدون حذف اطلاعات آزمایش کنید
اگر به پیشخوان دسترسی دارید، افزونهای را که درست پیش از خطا نصب یا آپدیت شده موقتاً غیرفعال کنید. اگر پیشخوان باز نمیشود، از File Manager نام پوشه همان افزونه را در wp-content/plugins تغییر دهید. در حالت ناشناخته میتوان پوشه plugins را موقتاً تغییر نام داد تا همه افزونهها غیرفعال شوند؛ سپس آنها را یکییکی فعال کرد.
هدف حذف افزونه نیست. با فعالسازی مرحلهای مشخص میشود کدام ترکیب مشکل دارد. در سایت ووکامرسی، بعد از هر مرحله صفحه محصول، سبد خرید، پرداخت و ایمیل سفارش را هم تست کنید.
۴. قالب فعال را بررسی کنید
اگر خطا پس از ویرایش functions.php، نصب قالب یا بروزرسانی آن ایجاد شده، موقتاً یک قالب پیشفرض سالم را فعال کنید. اگر سایت باز شد، مشکل در قالب، Child Theme یا تابع سفارشی است. خطای Syntax، فراخوانی تابع حذفشده در نسخه جدید PHP و اجرای کوئری سنگین از موارد رایجاند.
در سایتهای ساختهشده با المنتور، تغییر قالب میتواند ظاهر را موقتاً به هم بزند؛ بنابراین این تست را ترجیحاً روی Staging انجام دهید و نتیجه را فقط برای تشخیص استفاده کنید.
۵. فایل .htaccess را بازسازی کنید
در سرور Apache یا LiteSpeed، قواعد خراب .htaccess میتوانند خطای ۵۰۰ ایجاد کنند. نام فایل را موقتاً به .htaccess-old تغییر دهید و سایت را تست کنید. اگر مشکل رفع شد، در پیشخوان به «تنظیمات ← پیوندهای یکتا» بروید و بدون تغییر گزینهها، ذخیره را بزنید تا قواعد پایه وردپرس بازسازی شوند.
قواعد امنیتی، ریدایرکت، کش و انتخاب نسخه PHP را کورکورانه کپی نکنید. بعضی دستورها مخصوص Apache هستند و روی LiteSpeed یا پیکربندی هاست دیگر رفتار متفاوتی دارند. نسخه قبلی فایل را تا تأیید کامل نگه دارید.
۶. حافظه و محدودیتهای PHP را کنترل کنید
پیام Allowed memory size exhausted نشان میدهد یک پردازش بیش از حافظه مجاز مصرف کرده است. افزایش منطقی حافظه میتواند سایت را موقتاً بالا بیاورد، اما اگر افزونهای نشتی حافظه یا کوئری بیپایان دارد، افزایش چند گیگابایتی فقط مشکل را پنهان میکند.
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );اعداد باید با محدودیت واقعی هاست هماهنگ باشند. همچنین max_execution_time، max_input_vars و تعداد PHP Workerها را بررسی کنید. اگر تمرکز شما روی عملکرد کلی است، راهنمای افزایش سرعت وردپرس و مقاله Core Web Vitals وردپرس مسیر کاملتری ارائه میدهند.
۷. نسخه PHP و سازگاری افزونهها را بررسی کنید
تغییر نسخه PHP میتواند توابع قدیمی یا کد ناسازگار را به Fatal Error تبدیل کند. نسخه فعلی، نیازمندی وردپرس، قالب و افزونههای کلیدی را مقایسه کنید. برگشت موقت به نسخه قبلی برای تأیید علت مفید است، اما راهحل بلندمدت باید بروزرسانی یا جایگزینی کد ناسازگار باشد؛ ماندن روی PHP منقضیشده ریسک امنیتی دارد.
۸. فایلهای هسته وردپرس را راستیآزمایی کنید
فایل ناقص پس از آپدیت، تغییر غیرمجاز یا آلودگی میتواند پاسخ ۵۰۰ بسازد. از ابزار بررسی Checksum استفاده کنید و پوشههای wp-admin و wp-includes را با نسخه رسمی تطبیق دهید. بازنصب هسته از پیشخوان معمولاً محتوای سایت را حذف نمیکند، اما بکاپ همچنان ضروری است. اگر فایلهای ناشناس، پوشههای تودرتو یا PHP داخل Uploads مشاهده شد، موضوع را صرفاً خطای فنی تلقی نکنید و چکلیست امنیت وردپرس را اجرا کنید.
۹. دیتابیس و درخواستهای سنگین را بررسی کنید
خطای اتصال دیتابیس معمولاً پیام اختصاصی دارد، اما کوئری خراب، جدول آسیبدیده یا Timeout دیتابیس ممکن است به ۵۰۰ منجر شود. سلامت جدولها، فضای دیسک، تعداد Autoloadها و لاگ MySQL را بررسی کنید. تعمیر دیتابیس بدون شناخت ساختار افزونهها خطرناک است؛ ابتدا بکاپ بگیرید و از اجرای دستورهای عمومی «بهینهسازی همهچیز» خودداری کنید.
رفع خطای ۵۰۰ در المنتور
اگر خطا فقط هنگام «بهروزرسانی» صفحه رخ میدهد، ابتدا همان درخواست را در بخش Network مرورگر بررسی کنید. پاسخ ۵۰۰ در admin-ajax.php یا REST API معمولاً با لاگ PHP قابل ردیابی است. افزودنیهای المنتور را موقتاً غیرفعال، حافظه را بررسی و قابلیت Safe Mode را برای جداسازی تداخل آزمایش کنید. قالبهای بسیار بزرگ، ویجتهای تودرتو و Dynamic Queryهای سنگین نیز میتوانند زمان پردازش را بالا ببرند.
پاککردن CSS تولیدشده و بازسازی فایلها پس از رفع علت مفید است، اما بهتنهایی Fatal Error را حل نمیکند. اگر قصد ساخت ساختار استاندارد دارید، مقاله طراحی هدر و فوتر با المنتور را نیز ببینید.
اشتباهاتی که مشکل را بدتر میکنند
- ویرایش همزمان چند فایل و از بینبردن امکان تشخیص علت
- حذف افزونه بهجای غیرفعالسازی و تست مرحلهای
- فعالگذاشتن نمایش خطا در سایت عمومی
- جایگزینی کامل
.htaccessبدون نگهداری نسخه قبلی - افزایش افراطی Memory Limit بدون خواندن لاگ
- بازگردانی بکاپ قدیمی روی دیتابیس فروشگاه فعال
- پاککردن فایلهای مشکوک بدون بستن مسیر نفوذ
چکلیست نهایی پس از رفع خطا
- صفحه اصلی، پیشخوان و صفحهای که خطا داشت دوباره تست شود.
- فرمها، ورود کاربر، جستجو و عملیات AJAX بررسی شوند.
- در ووکامرس، افزودن به سبد و پرداخت آزمایشی انجام شود.
- کش همه لایهها پاک و لاگ خطا مجدداً خوانده شود.
- Debug Display خاموش شود و فایل لاگ عمومی نباشد.
- علت، تغییر انجامشده و نسخه افزونه یا PHP مستند شود.
- یک بکاپ سالم تازه پس از تثبیت سایت تهیه شود.
چه زمانی به متخصص نیاز دارید؟
اگر سایت درآمدزا است، خطا تکرار میشود، لاگ به فایل ناشناس اشاره دارد یا پس از هر بروزرسانی دوباره برمیگردد، ادامه آزمونوخطا هزینه بیشتری ایجاد میکند. در چنین شرایطی باید لاگ PHP و وبسرور، منابع هاست، سلامت هسته، افزونهها، دیتابیس و امنیت بهصورت یک زنجیره بررسی شوند.
تکوبیت خدمات پشتیبانی و نگهداری وردپرس را با تمرکز بر عیبیابی ریشهای ارائه میدهد. اگر سایت شما با خطای ۵۰۰ از دسترس خارج شده، میتوانید برای بررسی فنی و برنامه جلوگیری از تکرار مشکل درخواست مشاوره ثبت کنید.
پرسشهای متداول
آیا خطای ۵۰۰ وردپرس همیشه از هاست است؟
خیر. سرور این پاسخ را ارسال میکند، اما علت میتواند کد افزونه، قالب، محدودیت PHP، قواعد .htaccess، دیتابیس یا تنظیم امنیتی باشد. لاگ خطا مرجع اصلی تشخیص است.
آیا با افزایش حافظه PHP خطا حل میشود؟
فقط وقتی علت واقعاً کمبود حافظه باشد. افزایش حافظه بدون بررسی مصرف غیرعادی ممکن است مشکل افزونه یا کوئری سنگین را پنهان کند.
اگر به پیشخوان دسترسی نداشته باشیم چه کنیم؟
از File Manager یا FTP میتوان افزونه مشکوک را با تغییر نام پوشه غیرفعال کرد، .htaccess را موقتاً کنار گذاشت و لاگ PHP را خواند. قبل از تغییر فایلها بکاپ بگیرید.
چرا خطای ۵۰۰ فقط در المنتور رخ میدهد؟
معمولاً درخواست ذخیره با محدودیت حافظه یا زمان اجرا، ModSecurity، افزونه جانبی ناسازگار یا داده سنگین صفحه روبهرو میشود. پاسخ همان درخواست و Error Log باید همزمان بررسی شوند.
آیا خطای ۵۰۰ به سئو آسیب میزند؟
اگر کوتاهمدت باشد معمولاً اثر پایدار ندارد؛ اما تکرار یا ادامه آن باعث میشود رباتها صفحه را دریافت نکنند، نرخ خزش کاهش یابد و کاربران خارج شوند. رفع سریع و پایش پس از آن ضروری است.
