فهرست مطالب

رفع خطای 500 Internal Server Error در وردپرس

رفع خطای 500 Internal Server Error در وردپرس؛ آموزش کامل عیب‌ یابی و رفع مشکل

اگر هنگام ورود به پیشخوان وردپرس یا باز کردن صفحات سایت با پیام 500 Internal Server Error روبه‌رو شده‌اید، به این معنا نیست که سایت شما از بین رفته است. این خطا یکی از رایج‌ ترین خطا های وردپرس است و معمولاً به دلیل تنظیمات نادرست سرور، افزونه‌های ناسازگار، قالب کرک شده، فایل htaccess یا محدودیت منابع هاست ایجاد می‌شود.

مشکل اصلی اینجاست که برخلاف بسیاری از خطاهای وردپرس، خطای 500 دلیل مشخصی را نمایش نمی‌دهد. به همین دلیل بسیاری از مدیران سایت نمی‌دانند باید از کجا عیب‌ یابی را شروع کنند. در این آموزش در جتی سایت، تمام علت‌های رایج ایجاد این خطا را بررسی می‌کنیم و روش رفع هر کدام را به صورت مرحله‌ به‌ مرحله توضیح می‌دهیم تا بتوانید بدون حدس زدن، دلیل اصلی مشکل را پیدا و برطرف کنید.

خطای 500 Internal Server Error چیست؟

خطای 500 Internal Server Error یکی از کدهای وضعیت (HTTP Status Code) است که نشان می‌دهد درخواست کاربر به سرور رسیده، اما سرور به دلیل یک خطای داخلی نتوانسته پاسخ مناسبی تولید کند.

به زبان ساده، مرورگر و اینترنت مشکلی ندارند. مشکل از سمت سرور یا اجرای برنامه است.

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

گاهی فقط صفحه اصلی سایت با این خطا روبه‌رو می‌شود و گاهی نیز:

  • ورود به پیشخوان امکان‌پذیر نیست.
  • فقط صفحه مدیریت باز نمی‌شود.
  • صفحات خاصی خطای 500 دارند.
  • هنگام آپلود فایل خطا نمایش داده می‌شود.
  • هنگام انتشار نوشته خطا مشاهده می‌شود.
  • درخواست‌های Ajax با خطای 500 مواجه می‌شوند.

نکته مهم این است که خطای 500 یک خطای کلی است، نه یک علت مشخص. برای رفع آن باید ابتدا منبع ایجاد خطا را پیدا کنید.

انواع نمایش خطای 500

بسته به وب‌سرور، هاست و تنظیمات امنیتی، ممکن است این خطا با متن‌های متفاوتی نمایش داده شود، از جمله:

  • 500 Internal Server Error
  • HTTP Error 500
  • Internal Server Error
  • The server encountered an internal error
  • HTTP 500
  • Error 500
  • 500 That’s an error
  • Temporary Error (500)

تمام این پیام‌ها به یک مفهوم اشاره دارند: سرور در پردازش درخواست با یک خطای داخلی مواجه شده است.

مهم‌ترین دلایل بروز خطای 500 Internal Server Error در وردپرس

مهم‌ترین دلایل بروز خطای 500 Internal Server Error در وردپرس

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

1. خراب شدن فایل .htaccess

فایل .htaccess تنظیمات مهمی مانند پیوندهای یکتا (Permalinks)، قوانین بازنویسی URL و برخی تنظیمات امنیتی را در وب‌سرور Apache مدیریت می‌کند. اگر این فایل به‌دلیل نصب افزونه، تغییر دستی یا خطای نگارشی خراب شود، احتمال نمایش خطای 500 بسیار زیاد است. این مورد یکی از رایج‌ترین دلایل بروز این خطا در وردپرس محسوب می‌شود.

نشانه‌ ها

  • خطا بلافاصله بعد از نصب یا حذف یک افزونه ایجاد شده است.
  • بعد از تغییر ساختار پیوندهای یکتا سایت از دسترس خارج شده است.
  • صفحه اصلی و پنل مدیریت هر دو خطای 500 نمایش می‌دهند.

روش رفع

  1. وارد File Manager هاست یا FTP شوید.
  2. فایل .htaccess را به نامی مانند .htaccess_old تغییر دهید.

سایت را مجدداً باز کنید.

اگر سایت باز شد، وارد تنظیمات → پیوندهای یکتا شوید و بدون تغییر، روی ذخیره تغییرات کلیک کنید تا فایل جدید ساخته شود.

2. ناسازگاری افزونه‌ها

بخش قابل توجهی از خطاهای 500 بعد از نصب یا به‌روزرسانی افزونه‌ها رخ می‌دهد. اگر افزونه‌ای با نسخه PHP، هسته وردپرس یا افزونه دیگری ناسازگار باشد، ممکن است اجرای PHP متوقف شده و سرور خطای 500 برگرداند.

نشانه‌ ها

  • خطا پس از نصب یا بروزرسانی یک افزونه ایجاد شده است.
  • فقط بخش مدیریت یا فقط بخشی از سایت دچار مشکل شده است.
  • در فایل debug.log نام افزونه دیده می‌شود.

روش رفع

  1. اگر به پیشخوان دسترسی دارید، همه افزونه‌ها را غیرفعال کنید.
  2. اگر دسترسی ندارید، پوشه plugins را به نام دیگری تغییر دهید.
  3. سپس افزونه‌ها را یکی‌یکی فعال کنید تا افزونه معیوب مشخص شود.

3. مشکلات قالب وردپرس

قالبی که دارای خطای برنامه‌نویسی، فایل ناقص یا ناسازگاری با نسخه PHP باشد نیز می‌تواند باعث بروز خطای 500 شود.

این مشکل معمولاً بعد از بروزرسانی قالب یا اعمال تغییر در فایل‌هایی مانند functions.php مشاهده می‌شود.

روش رفع

  1. پوشه قالب فعال را تغییر نام دهید.
  2. وردپرس به‌صورت خودکار یکی از قالب‌های پیش‌فرض را فعال می‌کند.
  3. اگر مشکل برطرف شد، علت از قالب بوده است.

4. کمبود حافظه PHP (PHP Memory Limit)

هر درخواست وردپرس برای اجرا به مقدار مشخصی حافظه نیاز دارد. اگر افزونه‌ها یا قالب حافظه بیشتری مصرف کنند، PHP اجرای برنامه را متوقف می‌کند و در بسیاری از موارد خطای 500 نمایش داده می‌شود. در لاگ‌ها معمولاً پیام Allowed memory size exhausted دیده می‌شود.

روش رفع

در فایل wp-config.php مقدار حافظه را افزایش دهید:

define('WP_MEMORY_LIMIT', '256M');

در برخی هاست‌ ها باید مقدار memory_limit را نیز از طریق تنظیمات PHP یا کنترل‌ پنل افزایش دهید.

5. خطا های Fatal در PHP

گاهی یک اشتباه کوچک در کدنویسی، فراخوانی تابعی که وجود ندارد یا ناسازگاری نسخه PHP باعث ایجاد PHP Fatal Error می‌شود. در این حالت مرورگر فقط خطای 500 را نمایش می‌دهد، اما علت دقیق در فایل‌های لاگ ثبت می‌شود.

روش رفع

ابتدا حالت دیباگ وردپرس را فعال کنید تا جزئیات خطا در فایل wp-content/debug.log ذخیره شود:


define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

سپس فایل debug.log را بررسی کنید تا نام فایل و شماره خطی که خطا در آن رخ داده مشخص شود. پس از پایان عیب‌یابی، این تنظیمات را غیرفعال کنید تا اطلاعات فنی سایت برای کاربران نمایش داده نشود.

6. نادرست بودن سطح دسترسی فایل‌ (File Permissions)

وردپرس برای خواندن و اجرای فایل‌ها به سطح دسترسی مناسب نیاز دارد. اگر مجوز فایل‌ها یا پوشه‌ها اشتباه تنظیم شده باشد، وب‌سرور ممکن است نتواند فایل‌های موردنیاز را اجرا کند و در نتیجه خطای 500 نمایش داده شود. این مشکل معمولاً بعد از انتقال سایت، بازیابی بکاپ یا تغییرات دستی روی فایل‌ها رخ می‌دهد.

سطح دسترسی پیشنهادی

نوعPermission
پوشه‌ها755
فایل‌ها644
wp-config.php440 یا 400 (در صورت پشتیبانی هاست)

از قرار دادن Permission روی 777 خودداری کنید. این کار علاوه بر ایجاد ریسک امنیتی، در بسیاری از سرورها باعث بروز خطا می‌شود.

7. ناسازگاری نسخه PHP

یکی از دلایل رایج خطای 500، استفاده از نسخه PHP نامناسب است. برای مثال ممکن است قالب یا افزونه شما با PHP 8.3 سازگار نباشد یا برعکس، نسخه بسیار قدیمی PHP باعث اجرای نشدن توابع جدید وردپرس شود.

نشانه‌ ها

خطا بعد از تغییر نسخه PHP ایجاد شده است.
در لاگ‌ها پیام‌های Fatal Error یا Deprecated دیده می‌شود.
سایت روی نسخه قبلی PHP بدون مشکل اجرا می‌شود.

روش رفع

  1. نسخه PHP را از کنترل‌پنل هاست تغییر دهید.
  2. حداقل نسخه پیشنهادی وردپرس و سازگاری افزونه‌ها را بررسی کنید.
  3. اگر پس از ارتقای PHP مشکل ایجاد شده، ابتدا افزونه‌ها و قالب را به آخرین نسخه بروزرسانی کنید.

8. خراب شدن فایل‌ های هسته وردپرس

گاهی به‌دلیل بروزرسانی ناقص، انتقال ناموفق فایل‌ها یا حذف تصادفی برخی فایل‌ها، هسته وردپرس دچار مشکل می‌شود.

روش رفع

  1. آخرین نسخه وردپرس را دانلود کنید.
  2. پوشه‌های wp-admin و wp-includes را مجدداً روی هاست آپلود کنید.
  3. فایل‌ های موجود را جایگزین کنید.
  4. پوشه wp-content و فایل wp-config.php را تغییر ندهید. این روش در مستندات رسمی وردپرس نیز به‌عنوان یکی از راهکارهای رفع خطای 500 توصیه شده است.

9. محدودیت زمان اجرای PHP (Maximum Execution Time)

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

این مشکل معمولاً هنگام موارد زیر رخ می‌دهد:

  • درون‌ ریزی فایل‌های حجیم
  • بروزرسانی وردپرس
  • تهیه نسخه پشتیبان
  • اجرای افزونه‌های سنگین

روش رفع

  1. مقدار max_execution_time را از طریق php.ini یا تنظیمات PHP هاست افزایش دهید.
  2. اگر از هاست اشتراکی استفاده می‌کنید، در صورت عدم دسترسی با شرکت هاستینگ خود تماس بگیرید.

10. پر شدن منابع هاست

در هاست‌های اشتراکی، اگر مصرف CPU، RAM، I/O یا تعداد پردازش‌ها از حد مجاز عبور کند، سرور ممکن است درخواست‌های جدید را با خطای 500 پاسخ دهد.

نشانه‌ ها

  • سایت فقط در ساعات پرترافیک از دسترس خارج می‌شود.
  • خطا موقتی است و پس از چند دقیقه برطرف می‌شود.
  • سایر سایت‌های روی همان هاست نیز کند هستند.

روش رفع

  1. میزان مصرف منابع را در کنترل‌پنل هاست بررسی کنید.
  2. افزونه‌های سنگین را غیرفعال کنید.
  3. کش سایت را فعال کنید.
  4. در صورت تداوم مشکل، ارتقای سرویس هاست را بررسی کنید.

تجربه عملی تیم جتی سایت

در بسیاری از پروژه‌های پشتیبانی وردپرس، مشاهده می‌شود که کاربران در ابتدا تصور می‌کنند خطای 500 به خرابی کامل سایت مربوط است، در حالی که علت اصلی معمولاً یکی از این موارد است:

  • بروزرسانی ناقص افزونه
  • تغییر نسخه PHP بدون بررسی سازگاری
  • فایل .htaccess معیوب
  • کمبود حافظه PHP
  • خطای Fatal در فایل functions.php

به همین دلیل، توصیه می‌کنیم قبل از هرگونه تغییر، ابتدا فایل‌های Error Log و debug.log را بررسی کنید. این کار زمان عیب‌یابی را به‌شدت کاهش می‌دهد و از انجام تغییرات غیرضروری جلوگیری می‌کند. این رویکرد با توصیه رسمی وردپرس برای عیب‌یابی نیز هم‌راستا است.

آموزش مرحله‌ به‌ مرحله پیدا کردن علت اصلی خطای 500 در وردپرس

آموزش مرحله‌ به‌ مرحله پیدا کردن علت اصلی خطای 500 در وردپرس

یکی از اشتباهات رایج این است که کاربران بدون بررسی علت اصلی، شروع به غیرفعال کردن افزونه‌ها یا نصب مجدد وردپرس می‌کنند. این کار علاوه بر اتلاف وقت، ممکن است باعث ایجاد مشکلات جدید شود.

بهتر است مراحل زیر را به ترتیب انجام دهید تا در کوتاه‌ترین زمان، منبع خطا را پیدا کنید.

مرحله اول: بررسی Error Log هاست

اولین و مهم‌ترین قدم، بررسی فایل‌های Error Log است. تقریباً تمام شرکت‌های هاستینگ، خطاهای PHP و وب‌سرور را در فایل‌های لاگ ثبت می‌کنند.

در بسیاری از موارد، نام فایل، شماره خط و نوع خطا (Fatal Error، Parse Error یا Memory Exhausted) در این گزارش‌ها مشخص است و شما را مستقیماً به علت مشکل می‌رساند. مستندات وردپرس نیز بررسی لاگ‌ها را قبل از هر اقدام دیگری توصیه می‌کند.

محل Error Log در کنترل‌ پنل‌

  • cPanel → Errors
  • DirectAdmin → Error Log
  • Plesk → Logs
  • یا فایل error_log در ریشه هاست

مرحله دوم: فعال کردن حالت Debug وردپرس

اگر در Error Log اطلاعات کافی وجود ندارد، قابلیت Debug وردپرس را فعال کنید.

در فایل wp-config.php کد زیر را قبل از عبارت:


/* That's all, stop editing! Happy publishing. */

قرار دهید.

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

پس از باز کردن صفحه‌ای که خطای 500 دارد، فایل wp-content/debug.log ایجاد یا به‌روزرسانی می‌شود.

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

مرحله چهارم: غیرفعال کردن همه افزونه‌ها

اگر به پیشخوان دسترسی ندارید پوشه wp-content/plugins را به نام دیگری مانند plugins_old تغییر دهید. اگر سایت دوباره در دسترس قرار گرفت، یعنی یکی از افزونه‌ها باعث ایجاد خطا شده است.

سپس پوشه را به نام اصلی برگردانید و افزونه‌ها را یکی‌یکی فعال کنید تا افزونه معیوب مشخص شود. این روش یکی از راهکارهای رسمی عیب‌یابی وردپرس است.

مرحله پنجم: بررسی قالب

اگر غیرفعال کردن افزونه‌ها نتیجه‌ای نداشت، قالب را بررسی کنید.

برای این کار: wp-content/themes را باز کنید و پوشه قالب فعال را تغییر نام دهید.

در صورتی که یکی از قالب‌های پیش‌فرض وردپرس مانند Twenty Twenty-Five روی سایت موجود باشد، وردپرس به‌صورت خودکار آن را فعال می‌کند. اگر مشکل برطرف شد، علت از قالب یا تغییرات سفارشی آن بوده است.

مرحله ششم: بررسی نسخه PHP

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

گاهی افزونه یا قالب هنوز با نسخه جدید PHP سازگار نیست و باعث ایجاد Fatal Error می‌شود. این موضوع در انجمن‌های پشتیبانی وردپرس نیز از رایج‌ترین دلایل خطای 500 پس از ارتقای PHP گزارش شده است.

تاثیر خطای 500 Internal Server Error بر سئو سایت

بسیاری از مدیران سایت تصور می‌کنند خطای 500 فقط باعث از دسترس خارج شدن صفحات برای کاربران می‌شود، اما این خطا مستقیماً روی نحوه خزش (Crawling)، ایندکس شدن صفحات و حتی رتبه سایت در نتایج جستجوی گوگل نیز تأثیر می‌گذارد.

وقتی ربات گوگل هنگام بررسی صفحات با کد وضعیت 500 Internal Server Error مواجه می‌شود، متوجه می‌شود که سرور در پردازش درخواست دچار مشکل شده است. در این شرایط، گوگل به‌صورت موقت سرعت خزش سایت را کاهش می‌دهد تا فشار بیشتری به سرور وارد نشود. اگر این وضعیت ادامه پیدا کند، URLهایی که دائماً خطای 500 برمی‌گردانند به‌تدریج از ایندکس گوگل حذف خواهند شد.

خطای 500 چه تأثیری بر Crawl Budget دارد؟

هر سایت بودجه مشخصی برای خزش (Crawl Budget) دارد. زمانی که تعداد زیادی از صفحات سایت خطای 500 برگردانند، گوگل بخش زیادی از بودجه خزش را صرف بررسی همین صفحات ناموفق می‌کند.

در نتیجه:

  • صفحات جدید دیرتر ایندکس می‌شوند.
  • بروزرسانی صفحات قدیمی با تأخیر انجام می‌شود.
  • سرعت کشف محتوای جدید کاهش پیدا می‌کند.
  • ربات گوگل دفعات کمتری به سایت مراجعه می‌کند.

آیا یک بار مشاهده خطای 500 خطرناک است؟ خیر.

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

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

جمع‌ بندی

خطای 500 Internal Server Error یکی از رایج‌ ترین خطا های وردپرس است، اما برخلاف ظاهر نگران‌کننده آن، معمولاً با یک فرآیند عیب‌یابی اصولی قابل رفع است. بررسی لاگ‌های سرور، فعال کردن حالت Debug، تست افزونه‌ها و قالب، کنترل فایل .htaccess، بررسی نسخه PHP و منابع هاست، مهم‌ترین اقداماتی هستند که باید به‌ترتیب انجام شوند.

اگر این خطا در مدت کوتاهی برطرف شود، معمولاً تأثیر ماندگاری بر سئو سایت نخواهد داشت. اما تداوم خطا می‌تواند باعث کاهش نرخ خزش گوگل و حذف تدریجی صفحات از نتایج جستجو شود؛ بنابراین، رسیدگی سریع به آن برای حفظ سلامت فنی سایت ضروری است.