رفع خطای ۵۰۳ - رفع خطای ۵۰۳، ۴۰۴، White Screen

رفع خطای ۵۰۳، ۴۰۴، White Screen

وقتی سایت وردپرسی ناگهان به‌جای صفحه اصلی، پیام «Service Unavailable» نشان می‌دهد یا کاربر با صفحه سفید و خطای ۴۰۴ روبه‌رو می‌شود، معمولاً مشکل از خود وردپرس به‌تنهایی نیست؛ سرور، افزونه‌ها، قالب، حافظه PHP و حتی تنظیمات کش می‌توانند در...

Picture of هانیه مجللی
هانیه مجللی

وقتی سایت وردپرسی ناگهان به‌جای صفحه اصلی، پیام «Service Unavailable» نشان می‌دهد یا کاربر با صفحه سفید و خطای ۴۰۴ روبه‌رو می‌شود، معمولاً مشکل از خود وردپرس به‌تنهایی نیست؛ سرور، افزونه‌ها، قالب، حافظه PHP و حتی تنظیمات کش می‌توانند در ایجاد این وضعیت نقش داشته باشند. نکته مهم این است که قبل از حذف افزونه‌ها یا تغییرات عجولانه، نوع خطا را درست تشخیص دهید.

در این راهنما مسیر عیب‌یابی خطاهای ۵۰۳، ۴۰۴ و White Screen of Death را مرحله‌به‌مرحله بررسی می‌کنیم؛ از کارهایی که بدون دسترسی فنی می‌توانید انجام دهید تا بررسی لاگ سرور، غیرفعال‌سازی افزونه‌ها از طریق File Manager، افزایش حافظه وردپرس و اصلاح فایل .htaccess. اگر سایت شما فروشگاهی است یا از دسترس خارج شدن آن باعث از دست رفتن سفارش می‌شود، ترتیب اقدامات اهمیت زیادی دارد؛ چون یک تغییر اشتباه ممکن است تشخیص علت اصلی را سخت‌تر کند.

در بسیاری از پروژه‌ها، رفع خطای ۵۰۳ با یک اقدام ساده مثل غیرفعال کردن افزونه‌ای که مصرف CPU را بالا برده انجام می‌شود، اما همیشه ماجرا به همین سادگی نیست. خطای ۴۰۴ گاهی از پیوندهای یکتا می‌آید و صفحه سفید نیز می‌تواند نتیجه ناسازگاری نسخه PHP با یک افزونه قدیمی باشد. بنابراین به‌جای آزمون‌وخطای پراکنده، باید ابتدا نشانه‌ها را کنار هم قرار دهید و سپس سراغ راه‌حل مناسب بروید.

رفع خطای ۵۰۳

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

فهرست مطالب

تفاوت خطای ۵۰۳، خطای ۴۰۴ و White Screen

این سه مشکل از نظر ظاهر ممکن است برای صاحب سایت مشابه باشند، اما منبع آن‌ها یکی نیست. خطای ۵۰۳ در سطح سرویس و سرور رخ می‌دهد، خطای ۴۰۴ به پیدا نشدن آدرس موردنظر مربوط است و White Screen معمولاً به خطای PHP یا توقف اجرای وردپرس ارتباط دارد.

نوع خطامعنیعلت‌های رایجاولین اقدام پیشنهادی
۵۰۳سرویس موقتاً در دسترس نیستمصرف بالای منابع، قطعی سرور، افزونه سنگین، خطای PHPبررسی وضعیت هاست و لاگ سرور
۴۰۴صفحه یا فایل پیدا نشدتغییر URL، حذف محتوا، تنظیم نادرست پیوند یکتاذخیره مجدد پیوندهای یکتا
White Screenصفحه بدون محتوای قابل نمایشخطای Fatal PHP، ناسازگاری افزونه یا کمبود حافظهفعال‌سازی لاگ خطا و غیرفعال‌سازی افزونه‌ها

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

آیا این خطاها همیشه از وردپرس هستند؟

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

اقدامات فوری قبل از تغییرات فنی

وضعیت هاست و سرویس‌های جانبی را بررسی کنید

اولین قدم این است که مطمئن شوید مشکل فقط روی سایت شما رخ داده یا کل سرور دچار اختلال شده است. وارد پنل هاست شوید و بخش‌هایی مانند Resource Usage، Error Log و Service Status را بررسی کنید. اگر شرکت میزبانی صفحه وضعیت سرویس دارد، اطلاعیه‌های مربوط به قطعی یا تعمیرات را ببینید.

در پروژه‌ای که یک فروشگاه وردپرسی با خطای ۵۰۳ از دسترس خارج شده بود، ابتدا تصور شد افزونه پرداخت مشکل دارد؛ اما گزارش مصرف CPU نشان داد یک پردازش تکرارشونده از افزونه جست‌وجوی محصولات، منابع را اشباع کرده است. توقف موقت همان افزونه سایت را برگرداند و بعد از اصلاح تنظیمات، مشکل به‌صورت پایدار حل شد.

از سایت نسخه پشتیبان بگیرید

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

    • فایل‌های وردپرس، قالب، افزونه‌ها و پوشه wp-content
    • پایگاه داده MySQL یا MariaDB

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

کش مرورگر و CDN را نادیده نگیرید

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

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

دلایل اصلی و روش رفع خطای ۵۰۳ در وردپرس

۱. افزایش مصرف CPU و RAM

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

  چگونه فرآیندهای کسب‌وکار را خودکار کنیم؟

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

راهکارهای عملی عبارت‌اند از:

    • غیرفعال کردن افزونه‌های غیرضروری و آزمایش سایت
    • کاهش تعداد افزونه‌های آمارگیر و اسکنر هم‌زمان
    • بررسی درخواست‌های سنگین در لاگ سرور
    • انتقال سایت پرترافیک از هاست اشتراکی به VPS یا سرویس مدیریت‌شده
    • بهینه‌سازی تصاویر، کوئری‌ها و تنظیمات کش

۲. افزونه یا قالب ناسازگار

اگر بلافاصله بعد از نصب، به‌روزرسانی یا تغییر تنظیمات یک افزونه خطا شروع شده است، همان تغییر را جدی بگیرید. برای غیرفعال کردن افزونه‌ها بدون ورود به پیشخوان، از File Manager یا FTP به مسیر wp-content/plugins بروید و نام پوشه افزونه مشکوک را تغییر دهید؛ مثلاً plugin-name-disabled.

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

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

۳. فعال بودن حالت تعمیر یا Maintenance

هنگام به‌روزرسانی وردپرس، فایل موقتی با نام .maintenance در ریشه سایت ایجاد می‌شود. اگر فرایند آپدیت ناقص بماند، این فایل ممکن است حذف نشود و سایت را در وضعیت تعمیر نگه دارد. با اتصال به File Manager، وجود این فایل را بررسی کنید و فقط در صورتی که آپدیت فعالی در جریان نیست، آن را حذف کنید.

۴. اختلال موقت سرویس میزبانی

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

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

بررسی و رفع خطای ۴۰۴ وردپرس

پیوندهای یکتا را دوباره ذخیره کنید

یکی از سریع‌ترین روش‌ها برای اصلاح ۴۰۴های عمومی، ورود به مسیر «تنظیمات ← پیوندهای یکتا» در پیشخوان و کلیک روی دکمه «ذخیره تغییرات» است. حتی اگر هیچ گزینه‌ای را تغییر ندهید، وردپرس قوانین بازنویسی URL را دوباره تولید می‌کند.

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

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

END WordPress

این کد برای همه سرورها مناسب نیست؛ سایت‌های Nginx معمولاً از .htaccess استفاده نمی‌کنند. اگر مطمئن نیستید وب‌سرور شما چیست، پیش از تغییر فایل با پشتیبانی هاست هماهنگ کنید.

آدرس صفحه و ریدایرکت‌ها را کنترل کنید

تغییر نامک، حذف نوشته، جابه‌جایی دسته‌بندی یا تغییر دامنه می‌تواند لینک‌های قدیمی را خراب کند. برای URLهایی که هنوز ورودی گوگل یا لینک خارجی دارند، ریدایرکت ۳۰۱ به نزدیک‌ترین صفحه مرتبط ایجاد کنید. انتقال همه آدرس‌ها به صفحه اصلی راهکار خوبی نیست و تجربه کاربر و کیفیت سئو را کاهش می‌دهد.

همچنین مطمئن شوید آدرس سایت و آدرس وردپرس در مسیر «تنظیمات ← عمومی» صحیح هستند. وجود تفاوت میان http و https یا میان نسخه دارای www و بدون آن، می‌تواند به زنجیره‌ای از ریدایرکت‌ها و آدرس‌های نامعتبر منجر شود.

رفع صفحه سفید وردپرس یا White Screen

حافظه PHP را افزایش دهید

وقتی یک افزونه یا فرایند وردپرس بیشتر از حافظه مجاز PHP مصرف می‌کند، ممکن است صفحه کاملاً سفید نمایش داده شود. برای افزایش حافظه وردپرس، در فایل wp-config.php و پیش از خط مربوط به پایان ویرایش، مقدار زیر را اضافه کنید:

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

این مقدار فقط زمانی مؤثر است که هاست اجازه افزایش حافظه را داده باشد. در برخی سرویس‌ها باید مقدار memory_limit از طریق php.ini یا تنظیمات پنل هاست اصلاح شود. افزایش حافظه، مشکل کدنویسی یا افزونه معیوب را درمان نمی‌کند؛ فقط فضای بیشتری برای اجرای فرایند فراهم می‌سازد.

قالب فعال را موقتاً تغییر دهید

برای تشخیص نقش قالب، پوشه قالب فعال را در مسیر wp-content/themes تغییر نام دهید. وردپرس در صورت وجود یک قالب پیش‌فرض مانند Twenty Twenty-Four می‌تواند آن را فعال کند. اگر سایت برگشت، فایل‌های قالب، نسخه PHP و افزونه‌هایی را که با قالب تعامل دارند بررسی کنید.

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

افزونه‌ها را به‌صورت مرحله‌ای فعال کنید

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

بررسی لاگ‌ها و فعال‌سازی حالت دیباگ

لاگ وردپرس را فعال کنید

برای پیدا کردن خطای دقیق، در فایل wp-config.php تنظیمات زیر را موقتاً فعال کنید:

define('WP_DEBUG', true);

define('WP_DEBUG_LOG', true);

define('WP_DEBUG_DISPLAY', false);

پس از بازتولید خطا، فایل wp-content/debug.log را بررسی کنید. گزینه نمایش خطا روی صفحه عمداً خاموش است؛ چون نمایش مسیر فایل‌ها و اطلاعات فنی به کاربران، از نظر امنیتی مناسب نیست. بعد از پایان عیب‌یابی، دیباگ را خاموش کنید یا مقادیر را به حالت امن برگردانید.

به چه بخش‌هایی از خطا توجه کنیم؟

در لاگ، نام افزونه یا قالب، مسیر فایل، شماره خط و نوع خطا اهمیت زیادی دارد. عبارت‌هایی مانند Allowed memory size exhausted به کمبود حافظه اشاره می‌کنند، Call to undefined function معمولاً از ناسازگاری نسخه PHP یا افزونه ناشی می‌شود و Maximum execution time exceeded از طولانی شدن فرایند خبر می‌دهد.

لاگ وب‌سرور نیز ممکن است اطلاعات بیشتری درباره خطاهای ۵۰۳ بدهد. اگر پیام‌هایی مانند upstream timed out یا PHP-FPM pool exhausted مشاهده کردید، موضوع بیشتر به زمان پاسخ PHP و ظرفیت پردازش مربوط است تا محتوای یک صفحه خاص.

چگونه از تکرار خطاهای وردپرس جلوگیری کنیم؟

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

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

منابع سرور را پایش کنید

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

امنیت و دسترسی‌ها را جدی بگیرید

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

مزایا و معایب راهکارهای رایج

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

«اول علت را ثبت کنید، بعد تغییر دهید؛ در غیر این صورت ممکن است مشکل را حل کنید اما ندانید چرا.»

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

جمع‌بندی

رفع خطای ۵۰۳، ۴۰۴ و صفحه سفید نیازمند یک روش مرحله‌ای است، نه نصب دوباره وردپرس یا حذف تصادفی فایل‌ها. برای خطای ۵۰۳، مصرف منابع، وضعیت هاست و افزونه‌های سنگین را بررسی کنید. در خطای ۴۰۴، پیوندهای یکتا، نامک‌ها، ریدایرکت‌ها و فایل .htaccess اهمیت دارند. برای White Screen نیز لاگ PHP، حافظه وردپرس، قالب فعال و افزونه‌ها معمولاً مسیر اصلی تشخیص را مشخص می‌کنند.

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

پرسش‌های متداول درباره رفع خطاهای وردپرس

آیا خطای ۵۰۳ با رفرش کردن صفحه برطرف می‌شود؟

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

چرا بعد از نصب افزونه جدید صفحه سفید می‌شود؟

افزونه ممکن است با نسخه وردپرس، نسخه PHP، قالب یا افزونه دیگری ناسازگار باشد. پوشه آن را از طریق File Manager تغییر نام دهید تا غیرفعال شود، سپس لاگ debug.log را برای پیام دقیق خطا بررسی کنید.

آیا افزایش حافظه PHP همیشه مشکل White Screen را حل می‌کند؟

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

بهترین راه رفع خطای ۴۰۴ در تمام صفحات چیست؟

ابتدا پیوندهای یکتا را دوباره ذخیره کنید و سپس قوانین بازنویسی، تنظیمات دامنه و فایل .htaccess را بررسی کنید. اگر فقط چند URL خاص خطا دارند، وضعیت حذف یا تغییر نامک آن صفحات و ریدایرکت ۳۰۱ را بررسی کنید.

آیا ارتقای هاست برای خطای ۵۰۳ ضروری است؟

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

بعد از فعال کردن WP_DEBUG چه کاری باید انجام داد؟

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

امتیاز دادن

نظرات با ارزش کاربران

دیدگاهتان را بنویسید

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

فهرست مطالب