אם האתר שלך מציג 503 Service Unavailable, השרת קיבל את הבקשה אבל לא הצליח לטפל בה באותו רגע. ברוב המקרים הסיבה היא אחת משלוש: וורדפרס נשאר תקוע במצב תחזוקה אחרי עדכון, השרת עמוס מדי או שחברת האחסון מגבילה אותו, או שתוסף מסוים מעמיס עליו יותר ממה שהוא יכול לשאת.
החדשות הטובות הן ששגיאה 503 היא לרוב זמנית, ואפשר לאבחן אותה בסדר קבוע: קודם הדברים שלוקחים דקה, ורק אחר כך הבדיקות שדורשות גישה לקבצים. כאן תמצא את הבדיקות לפי הסדר הזה, ולכל סיבה איך מזהים אותה ואיך מתקנים.
אבל לפני שנוגעים במשהו, צריך גיבוי מלא של הקבצים ושל מסד הנתונים. על זה אין ויכוח.
שלוש הסיבות הנפוצות ל-503 ומה עושים בכל אחת:
| הסיבה | איך מזהים | מה עושים |
|---|---|---|
| וורדפרס תקוע במצב תחזוקה אחרי עדכון | Briefly unavailable for scheduled maintenance. Check back in a minute. | למחוק את הקובץ .maintenance |
| השרת עמוס או שחברת האחסון מגבילה אותו | השגיאה מופיעה לסירוגין: פעם האתר עולה ופעם לא. | לפנות לתמיכה של חברת האחסון |
| תוסף או תבנית שמעמיסים על השרת | השגיאה התחילה אחרי שהתקנת או עדכנת תוסף או תבנית. | משנים את השם של התוסף החשוד |
לפני הכול: גיבוי מלא
חלק מהתיקונים כאן כוללים מחיקת קבצים, שינוי שמות של תיקיות ועריכה של wp-config.php. טעות קטנה באחד מהם יכולה להפוך תקלה זמנית לבעיה גדולה יותר. לכן לפני כל צעד כדאי לגבות שלושה דברים:
- את כל תיקיית האתר (כולל wp-content ו-wp-config.php), דרך מנהל הקבצים של האחסון או ב-FTP.
- את מסד הנתונים, למשל דרך phpMyAdmin או כלי הגיבוי של חברת האחסון.
- עותק של כל קובץ לפני שעורכים אותו, כדי שאפשר יהיה להחזיר אותו בדיוק כמו שהיה.
סיבה 1: וורדפרס תקוע במצב תחזוקה אחרי עדכון
מתחילים מכאן כי זו הבדיקה הכי מהירה. כשוורדפרס מעדכן את הליבה, תוסף או תבנית, הוא יוצר בתיקייה הראשית של האתר קובץ בשם .maintenance. כל עוד הקובץ פעיל, וורדפרס מחזיר למבקרים קוד 503 עם ההודעה:
Briefly unavailable for scheduled maintenance. Check back in a minute.
אם זו ההודעה שמופיעה במסך, וזה קרה מיד אחרי עדכון, כמעט בוודאות זו הסיבה. לפי קוד המקור של וורדפרס, הקובץ שומר את הזמן שבו התחיל העדכון, ואחרי עשר דקות וורדפרס מפסיק להתייחס אליו. אם עדכון נקטע באמצע, או שהאתר עדיין מציג את ההודעה, צריך לטפל בזה ידנית.
התיקון הוא להיכנס ב-FTP או במנהל הקבצים לתיקייה הראשית של האתר (איפה שנמצא wp-config.php), להפעיל הצגה של קבצים מוסתרים ולמחוק את הקובץ .maintenance. זה התיקון שמופיע בתיעוד הרשמי של וורדפרס. אחרי זה נכנסים ללוח הבקרה ובודקים שהעדכון שנקטע הושלם, ואם לא, מריצים אותו שוב.
מי מחזיר את ה-503 Service Unavailable: Cloudflare או השרת
אם האתר שלך עובר דרך Cloudflare, צריך לדעת מאיפה השגיאה מגיעה, כי התיקון שונה לגמרי.
לפי התיעוד של Cloudflare, אם בדף השגיאה (או בקוד שלו) מופיעה המילה cloudflare או cloudflare-nginx, השגיאה נוצרה אצל Cloudflare. אם היא לא מופיעה, השגיאה מגיעה מהשרת שלך, ו-Cloudflare רק מעביר אותה הלאה. מכאן ממשיכים לפי המקור:
- אם השגיאה מהשרת שלך, ממשיכים לסיבות הבאות במאמר.
- אם השגיאה מ-Cloudflare, הם מבקשים לפנות לתמיכה שלהם עם שם הדומיין, השעה ואזור הזמן שבו הופיעה השגיאה, והפלט של הכתובת
/cdn-cgi/traceבאתר שלך, מתוך הדפדפן שבו ראית את השגיאה.
הפרטים המלאים נמצאים בדף השגיאה 503 בתיעוד של Cloudflare.
סיבה 2: השרת עמוס או שחברת האחסון מגבילה אותו
לפי Cloudflare, הסיבה הנפוצה ל-503 Service Unavailable היא ששרת המקור עמוס מדי. ובאחסון משותף, חברת האחסון יכולה גם להגביל כמה בקשות או כמה משאבים האתר שלך מקבל.
כמה סימנים שמצביעים על הסיבה הזו:
- השגיאה מופיעה לסירוגין: פעם האתר עולה ופעם לא.
- היא מופיעה בשעות עומס, אחרי קמפיין, או כשיש הרבה בקשות מבוטים.
- בלוח הבקרה של האחסון רואים שימוש גבוה במעבד או בזיכרון, או הודעה על חריגה ממגבלה.
- בלוג השגיאות של השרת מופיעות הודעות על עומס, על חריגה ממגבלת הזיכרון (memory limit exceeded) או על חיבורים שנדחו.
כאן הצעד הנכון הוא לפנות לתמיכה של חברת האחסון ולשאול שתי שאלות ישירות: האם הם מגבילים בקשות לאתר שלך, והאם האתר חורג ממגבלות המשאבים של החבילה. השאלה הראשונה היא גם ההמלצה של Cloudflare. אם מתברר שהאתר חורג בקביעות, צריך לצמצם את מה שמעמיס עליו (על זה בסיבה הבאה) או לעבור לחבילה שמתאימה לכמות התנועה.
סיבה 3: תוסף או תבנית שמעמיסים על השרת
לפעמים השרת בסדר, אבל תוסף אחד מריץ תהליך כבד, נתקע בלולאה או שולח בקשות רבות, וזה מה שמכניס את השרת לעומס.
הסימן הברור הוא שהשגיאה התחילה אחרי שהתקנת או עדכנת תוסף או תבנית. אם תוסף גרם לשגיאה קריטית של PHP, וורדפרס גם שולח למייל של מנהל האתר הודעה בנושא Your Site is Experiencing a Technical Issue, עם קישור כניסה במצב שחזור (Recovery Mode). במצב הזה התוסף הבעייתי מושהה רק בשבילך, ואפשר להשבית אותו מתוך לוח הבקרה. כדאי לחפש את המייל גם בתיקיית הספאם.
אם אין לך גישה ללוח הבקרה, אפשר לתקן דרך הקבצים:
- נכנסים ב-FTP או במנהל הקבצים לתיקייה
wp-content/plugins. - משנים את השם של התוסף החשוד, למשל מ-
plugin-nameל-plugin-name-off. וורדפרס לא ימצא אותו ולכן לא יטען אותו. - אם אין לך חשוד, משנים את השם של כל תיקיית
plugins. אם האתר חזר, מחזירים את השם המקורי ומשביתים את התוספים אחד אחרי השני עד שמוצאים את האשם. - אם התוספים לא אשמים, עושים אותו דבר עם התבנית הפעילה בתיקייה
wp-content/themes.
שיטת שינוי השם מופיעה בתיעוד הרשמי של Recovery Mode בוורדפרס, והיא עובדת גם כשהמייל לא הגיע.
בדיקת גרסת PHP ולוג השגיאות
אם הסיבות הקודמות לא הסבירו את התקלה, הגיע הזמן לראות מה השרת עצמו אומר.
הדבר הראשון הוא גרסת PHP. אם יש לך גישה ללוח הבקרה, הגרסה מופיעה ב-Tools > Site Health > Info, בחלק Server. וורדפרס ממליצה על PHP 8.3 ומעלה, ומציינת שגרסאות ישנות יותר שעדיין נתמכות כבר הגיעו לסוף חייהן. אם גרסת ה-PHP השתנתה לאחרונה (למשל אחרי שחברת האחסון עדכנה אותה), תוסף ישן עלול להפסיק לעבוד.
הדבר השני הוא לוג השגיאות של וורדפרס. כדי שוורדפרס ירשום שגיאות לקובץ בלי להציג אותן למבקרים, מוסיפים את השורות האלה לקובץ wp-config.php, לפני השורה שמתחילה ב-/* That's all, stop editing!:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );השגיאות יירשמו לקובץ wp-content/debug.log. התיעוד של וורדפרס לא ממליץ להשאיר את כלי הדיבאג פעילים באתר חי, וקובץ הלוג עלול להיות נגיש לכל אחד. לכן כדאי להפעיל אותם רק לזמן הבדיקה, וכשמסיימים למחוק את הקובץ ולהחזיר את WP_DEBUG ל-false.
והדבר השלישי הוא לוג השגיאות של השרת. ברוב לוחות הבקרה של האחסון יש גישה ל-Error Log, ושם כדאי לחפש שגיאות מהשעות שבהן הופיעה השגיאה. אם הוא לא מופיע אצלך, אפשר לבקש אותו מהתמיכה.
מתי שגיאת 503 כבר לא תקלה זמנית
יש רגעים שבהם עדיף להפסיק לנסות לבד:
- עברת על כל הסיבות והשגיאה נשארה.
- אין לך גיבוי עדכני, או שאתה לא בטוח שאתה יודע לשחזר אותו.
- הלוגים מראים שגיאות שאתה לא מבין, או שהתקלה חוזרת כל כמה ימים.
- האתר הוא חנות או מקור לידים, וכל שעה שהוא למטה עולה לך כסף.
שגיאת 503 שנמשכת זמן רב משפיעה גם על גוגל. לפי התיעוד של גוגל, שגיאות שרת גורמות לסורקים שלה להאט, וכתובת שממשיכה להחזיר שגיאת שרת לאורך זמן מוסרת מהאינדקס. אם כבר יש לך בעיה של נראות, כדאי לקרוא גם את המאמר למה האתר שלי לא מופיע בגוגל.
שאלות נפוצות
מה ההבדל בין 503 Service Unavailable לשגיאה 500?
שתיהן שגיאות שרת. 503 אומרת שהשרת לא זמין כרגע לטפל בבקשה, למשל בגלל עומס או תחזוקה, ובדרך כלל זה מצב זמני. שגיאה 500 היא שגיאה כללית שאומרת שמשהו השתבש בשרת, ובוורדפרס היא קשורה לעיתים קרובות לקובץ .htaccess פגום, לתוסף או לזיכרון.
האם שגיאה 503 פוגעת בדירוג בגוגל?
לפי התיעוד של גוגל, שגיאות שרת גורמות לסורקים להאט את קצב הסריקה. תוכן שכבר באינדקס נשמר בהתחלה, אבל URL שממשיך להחזיר שגיאת שרת לאורך זמן מוסר מהאינדקס. תקלה קצרה שתוקנה מהר היא לא אותו דבר כמו אתר שמחזיר 503 ימים שלמים.
מחקתי את הקובץ .maintenance והאתר עדיין לא עולה. מה עכשיו?
נקה את כל שכבות המטמון: תוסף הקאש, Cloudflare והדפדפן, ובדוק שוב. אם השגיאה נשארה, זה כבר לא מצב התחזוקה, ועוברים לבדיקה אם Cloudflare או השרת מחזירים את השגיאה, ומשם לעומס ולתוספים.
לא קיבלתי את המייל של Recovery Mode. מה עושים?
קודם בדוק בתיקיית הספאם. וורדפרס מציינת שאם השגיאה קורית לפני שתוסף המיילים שלך נטען, המייל יוצא ישירות מהשרת ועלול להיחסם. אם הוא לא הגיע, השבת תוספים דרך שינוי שם התיקייה ב-FTP והפעל את WP_DEBUG_LOG כדי לראות את השגיאה.
ניסית את כל הצעדים ושגיאה 503 Service Unavailable עדיין שם? אני מטפל בתקלות כאלה באתרי וורדפרס, כולל הגיבוי לפני התיקון. אפשר לפנות אליי כאן.
