سایت را باز می‌کنید و به‌جای محتوا، یک صفحه خطا می‌بینید: 503 Service Unavailable. اگر صاحب سایت هستید، این یکی از ناخوشایندترین صحنه‌هاست — به‌خصوص اگر اواسط یک کمپین باشد یا یک روز پرترافیک. اما نگران نباشید؛ این خطا در اکثر موارد موقتی است و با چند قدم مشخص می‌توان علتش را پیدا و برطرف کرد.

در این راهنما از ریشه توضیح می‌دهیم خطای ۵۰۳ چیست، چرا اتفاق می‌افتد، و چطور مرحله‌به‌مرحله آن را رفع کنید.

خطای ۵۰۳ یعنی چه؟

کد وضعیت HTTP 503 Service Unavailable یعنی سرور درخواست را دریافت کرده، اما در حال حاضر قادر به پاسخ‌دهی نیست. این با خطای ۴۰۴ (صفحه پیدا نشد) فرق دارد — آنجا محتوا وجود ندارد؛ اینجا سرور موقتاً در دسترس نیست.

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

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

  • 503 Service Unavailable
  • HTTP Error 503
  • 503 Service Temporarily Unavailable
  • The server is temporarily unable to service your request
  • Service Unavailable – DNS Failure

دلایل رایج خطای ۵۰۳

۱. اضافه‌بار سرور

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

۲. تعمیرات برنامه‌ریزی‌شده یا اضطراری

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

۳. کرش فرایند PHP یا وب‌سرور

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

۴. حمله DDoS

حمله Distributed Denial of Service با فرستادن تعداد بسیار زیادی درخواست از منابع مختلف، منابع سرور را تمام می‌کند. سرور تحت فشار شروع به رد کردن درخواست‌های جدید می‌کند و ۵۰۳ نشان می‌دهد.

۵. محدودیت منابع هاستینگ

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

۶. مشکل Upstream در معماری پراکسی

اگر از Cloudflare یا Nginx به‌عنوان reverse proxy استفاده می‌کنید، ممکن است ارتباط بین این لایه و سرور اصلی قطع یا کند شده باشد. Cloudflare این وضعیت را معمولاً با خطای ۵۲۲ یا ۵۲۳ نشان می‌دهد، اما گاهی ۵۰۳ هم نمایش می‌دهد.

۷. فایل .maintenance وردپرس

وقتی وردپرس را آپدیت می‌کنید یا افزونه‌ای نصب می‌کنید، یک فایل .maintenance در مسیر اصلی می‌سازد. اگر آپدیت به هر دلیلی ناتمام بماند، این فایل می‌ماند و سایت در حالت تعمیر گیر می‌کند — که گاهی به‌صورت ۵۰۳ نمایش داده می‌شود.

رفع مرحله‌به‌مرحله خطای ۵۰۳

مرحله ۱: صبر کنید و دوباره تلاش کنید

اگر دلیل خطا اضافه‌بار گذرا یا تعمیر مقطعی است، ۵ تا ۱۰ دقیقه صبر کنید و با Ctrl+F5 (Hard Refresh) مجدداً تلاش کنید. خیلی اوقات همین کافی است.

مرحله ۲: بررسی از دیدگاه خارجی

با downforeveryoneorjustme.com یا isitdownrightnow.com آدرس سایتتان را بررسی کنید. اگر فقط برای شما خطا دارد، مشکل احتمالاً کش مرورگر یا ISP محلی شماست. اگر برای همه خطا دارد، مشکل از سمت سرور است.

مرحله ۳: بررسی وضعیت سرور

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

مرحله ۴: بررسی لاگ‌های خطا

اگر به cPanel دسترسی دارید، در بخش Advanced > Error Log آخرین خطاها را ببینید. خطاهای PHP مثل «Maximum execution time exceeded» یا «Allowed memory size exhausted» اغلب علت اصلی کرش PHP-FPM را نشان می‌دهند.

مرحله ۵: غیرفعال کردن افزونه‌ها (وردپرس)

اگر سایت وردپرسی دارید و مشکل بعد از نصب یا آپدیت یک افزونه شروع شد، از طریق FTP یا File Manager وارد public_html/wp-content/ شوید. پوشه plugins را به plugins_disabled تغییر نام دهید — این تمام افزونه‌ها را یکجا غیرفعال می‌کند. اگر سایت باز شد، افزونه‌ها را یکی‌یکی دوباره فعال کنید تا مشکل‌ساز را پیدا کنید.

مرحله ۶: بررسی فایل .maintenance

از طریق File Manager یا FTP وارد مسیر public_html شوید. مطمئن شوید گزینه نمایش فایل‌های پنهان فعال است (در FileZilla: Server > Force showing hidden files). اگر فایل .maintenance وجود داشت، آن را حذف کنید.

مرحله ۷: بررسی تنظیمات Cloudflare

اگر از Cloudflare استفاده می‌کنید، به داشبورد Cloudflare بروید. در بخش Overview وضعیت را بررسی کنید. گاهی Cloudflare خودش وضعیت Downtime دارد. همچنین می‌توانید در تنظیمات دامنه، Development Mode را فعال کنید تا ترافیک مستقیماً به سرور اصلی برود — اگر بعد از این خطا رفع شد، مشکل از سمت Cloudflare بود.

چطور لاگ‌های خطا را بخوانیم؟

لاگ‌های خطا اولین و مهم‌ترین ابزار برای تشخیص دلیل ۵۰۳ هستند. در cPanel به مسیر Advanced > Error Log بروید. پیام‌هایی که باید دنبال کنید:

  • PHP Fatal error: Allowed memory size of ... bytes exhausted — اسکریپت PHP حافظه بیشتری از مجاز می‌خواهد. می‌توانید در php.ini یا wp-config.php با define('WP_MEMORY_LIMIT', '256M'); حافظه وردپرس را افزایش دهید.
  • Maximum execution time of 30 seconds exceeded — اسکریپت بیش از حد مجاز طول کشیده. معمولاً نشانه یک کوئری کند یا حلقه معیوب است.
  • connect() to ... failed (111: Connection refused) — PHP نمی‌تواند به دیتابیس MySQL وصل شود. سرویس MySQL ممکن است کرش کرده باشد.
  • [error] 24 worker processes available, considering raising the MaxClients setting — سرور Apache به محدودیت Worker ها رسیده و نمی‌تواند درخواست‌های جدید را پردازش کند.

اگر به SSH دسترسی دارید، با این دستور آخرین خطاهای سرور Apache/Nginx را ببینید:

tail -n 100 /var/log/apache2/error.log

خطای ۵۰۳ و تأثیر آن بر سئو

یک یا دو بار خطای ۵۰۳ موقت معمولاً تأثیر جدی بر سئو ندارد — گوگل می‌داند این وضعیت موقتی است و بعداً دوباره می‌آید. اما اگر خطا مکرر یا طولانی‌مدت باشد:

  • گوگل ممکن است صفحات را از ایندکس خارج کند.
  • اگر ربات گوگل چند بار پشت سر هم ۵۰۳ ببیند، ممکن است فرکانس خزش را کاهش دهد.
  • کاربرانی که سایت کند یا خطادار می‌بینند، بیشتر Bounce می‌کنند — که خودش سیگنال منفی است.

برای تعمیرات برنامه‌ریزی‌شده، صفحه ۵۰۳ مناسب با هدر Retry-After ارائه دهید تا گوگل بداند چه زمانی دوباره بررسی کند:

Retry-After: 3600

جلوگیری از خطای ۵۰۳ در آینده

  • مانیتورینگ Uptime: از سرویس‌هایی مثل UptimeRobot (رایگان) استفاده کنید. به‌محض اینکه سایت خطا بدهد، پیام SMS یا ایمیل دریافت می‌کنید — نه ۲ ساعت بعد که یک مشتری شکایت کرد.
  • کش قوی: با کش فعال، تعداد درخواست‌های پردازشی به سرور کاهش می‌یابد — سرور دیرتر به محدودیت می‌رسد.
  • CDN: محتوای استاتیک از طریق CDN ارائه می‌شود و فشار از سرور اصلی کم می‌شود.
  • ارتقا هاست: اگر خطای ۵۰۳ به‌خاطر اضافه‌بار مکرراً رخ می‌دهد، نشانه‌ای است که سایت رشد کرده و هاست فعلی کافی نیست.

سوالات متداول

آیا خطای ۵۰۳ یعنی سایتم هک شده؟

نه لزوماً. اکثر مواقع دلایل فنی دارد: اضافه‌بار، تعمیرات، یا کرش PHP. اما یک حمله DDoS هم می‌تواند ۵۰۳ ایجاد کند. اگر مشکل ناگهانی بود، ترافیک غیرعادی داشتید، یا لاگ‌ها پر از درخواست از IP های یکسان بود — به حمله DDoS شک کنید و با پشتیبانی هاست تماس بگیرید.

خطای ۵۰۳ چقدر معمولاً طول می‌کشد؟

بستگی به دلیل دارد. اضافه‌بار گذرا: چند دقیقه. تعمیرات برنامه‌ریزی‌شده: چند ساعت. مشکل کد یا افزونه: تا زمانی که رفع شود. اگر بیشتر از ۳۰ دقیقه طول کشید و دسترسی به سرور دارید، بررسی لاگ‌ها ضروری است.

فرق خطای ۵۰۳ و ۵۰۲ چیست؟

هر دو خطاهای سمت سرور هستند. ۵۰۲ (Bad Gateway) معمولاً زمانی رخ می‌دهد که یک سرور میانی (مثل Nginx که به‌عنوان reverse proxy کار می‌کند) پاسخ نامعتبری از سرور پشتی می‌گیرد. ۵۰۳ یعنی سرور اصلاً نمی‌تواند در این لحظه سرویس دهد. در عمل، رفع هر دو مسیر مشابهی دارد.

آیا ۵۰۳ گاهی به خاطر اسکریپت‌های خودم است؟

بله. یک اسکریپت PHP که memory limit را تمام می‌کند، یک Plugin وردپرس که infinite loop دارد، یا یک job در Cron که هر بار خرابی ایجاد می‌کند — همه می‌توانند PHP-FPM را کرش کنند و ۵۰۳ ایجاد کنند. لاگ‌های PHP معمولاً خطای دقیق را نشان می‌دهند.

جمع‌بندی

خطای ۵۰۳ آزاردهنده است اما قابل مدیریت. در اکثر موارد موقتی است و با چند گام مشخص قابل تشخیص و رفع است. مهم‌ترین کاری که می‌توانید بکنید: مانیتورینگ Uptime راه‌اندازی کنید تا به‌جای اینکه از مشتری بفهمید سایت خطا داشته، خودتان اول بفهمید.

اگر خطا مکرراً به دلیل اضافه‌بار رخ می‌دهد، این نشانه رشد سایت است — وقت آن رسیده که به سرور مجازی (VPS) با منابع اختصاصی فکر کنید. صباهاست پلن‌های VPS با منابع اختصاصی ارائه می‌دهد که از مشکلات اشتراک منابع هاست اشتراکی جلوگیری می‌کنند.