
שגיאה 500 (Internal Server Error) אומרת שהשרת נתקל בבעיה בלתי צפויה ולא הצליח להשלים את הבקשה — בדרך כלל באג בקוד, תוסף שהתנגש, הגדרה שגויה או חוסר בזיכרון. שגיאה 503 (Service Unavailable) אומרת שהשרת זמנית לא מוכן לטפל בבקשות — בגלל תחזוקה או עומס. ההבדל המעשי: 500 היא תקלה שצריך למצוא ולתקן; 503 היא מצב זמני שאמור לחלוף, ואפילו אפשר להשתמש בו בכוונה בזמן עבודות תחזוקה.
שגיאה 500: "משהו נשבר בשרת"
לפי MDN, קוד 500 הוא תגובה כללית שהשרת מחזיר כשהוא נתקל במצב לא צפוי ואין קוד שגיאה מדויק יותר. במילים אחרות: השרת יודע שמשהו השתבש, אבל לא אומר לגולש מה. בין הסיבות הנפוצות ש-MDN מונה: הגדרות שרת שגויות, חוסר בזיכרון, שגיאות קוד שלא טופלו ובעיות בהרשאות קבצים.
באתרי וורדפרס, הסיבות הנפוצות בפועל הן:
- תוסף או תבנית שהתעדכנו ואינם תואמים לגרסת PHP או לתוסף אחר.
- קובץ הגדרות פגום — שינוי ב-.htaccess או בקובץ התצורה.
- מגבלת זיכרון של PHP שנחצתה בעמוד כבד או בפעולה גדולה.
- שדרוג PHP שהשבית קוד ישן שהסתמך על פונקציות שהוסרו.
- הרשאות קבצים שהשתנו אחרי מעבר שרת.
איך מאבחנים שגיאה 500
- לבדוק את יומן השגיאות של השרת. העמוד שהגולש רואה כמעט אף פעם לא מספר את הסיבה; היומן כן — עם שם הקובץ ומספר השורה.
- לשאול מה השתנה לאחרונה. עדכון, תוסף חדש, שינוי הגדרות — ברוב המקרים התשובה שם.
- לבודד: אם החשד הוא תוסף, משביתים אותו (גם דרך שינוי שם התיקייה, אם אין גישה לניהול) ובודקים שוב.
- לחזור לגיבוי אם אי אפשר לאתר את הבעיה מהר — עדיף אתר עובד מגרסה קודמת על אתר שבור.
טיפ חשוב: לא מפעילים הצגת שגיאות על המסך באתר החי. ההודעות האלה חושפות נתיבים ופרטים טכניים לכל גולש. כותבים אותן ליומן בלבד.
כשהשגיאה מופיעה רק בחלק מהעמודים
שגיאה 500 שמופיעה בכל האתר מצביעה בדרך כלל על בעיה כללית — הגדרות, תוסף שנטען בכל עמוד, גרסת PHP. שגיאה שמופיעה רק בעמודים מסוימים מספרת סיפור אחר: תבנית עמוד ספציפית, קוד מקוצר בתוכן שמפעיל תוסף שבור, או עמוד כבד שחוצה את מגבלת הזיכרון. וכשהשגיאה מופיעה רק לפעמים, באותו עמוד, הכיוון הוא לרוב עומס או שירות חיצוני שלא עונה בזמן. רישום של אילו כתובות נכשלות, ומתי, מקצר את החיפוש משמעותית.
שגיאה 503: "לא עכשיו, נסו שוב"
לפי MDN, קוד 503 אומר שהשרת לא מוכן לטפל בבקשה, ובדרך כלל הסיבה היא תחזוקה או עומס יתר. זו תקלה זמנית מטבעה, והשרת יכול לצרף כותרת Retry-After שמציינת מתי לנסות שוב. MDN גם מציינת שתגובה כזו בדרך כלל לא צריכה להישמר במטמון, ושכדאי להציג לגולש עמוד ידידותי שמסביר את המצב.
מתי רואים 503:
- מצב תחזוקה — למשל בזמן עדכון וורדפרס, כשהאתר מושבת לכמה שניות.
- עומס — השרת הגיע למכסת התהליכים או החיבורים שלו, למשל בזמן קמפיין או תנועת בוטים.
- מגבלות של חברת האחסון — באחסון משותף, האתר עלול להיחסם זמנית כשהוא חורג מהמשאבים שהוקצו לו. ראו סוגי אחסון.
- שירות שהאתר תלוי בו לא זמין — מסד נתונים או שרת שמאחורי הקלעים.
500 מול 503 בקצרה
| 500 | 503 | |
|---|---|---|
| משמעות | תקלה בלתי צפויה בשרת | השרת זמנית לא זמין |
| סיבה טיפוסית | באג, תוסף, הגדרה, זיכרון | תחזוקה, עומס, מגבלת משאבים |
| יעבור לבד? | בדרך כלל לא — צריך תיקון | לרוב כן, כשהעומס או התחזוקה נגמרים |
| שימוש מכוון | לא | כן — בזמן עבודות מתוכננות |
מה גוגל עושה עם שגיאות שרת
לפי התיעוד של Google Search Central, כשהסורק של גוגל מקבל שגיאות 5xx (וגם 429), הוא מאט את קצב הסריקה של האתר באופן יחסי לכמות השגיאות. כתובות שממשיכות להחזיר שגיאת שרת לאורך זמן עלולות לרדת מהאינדקס, וכשהאתר חוזר להחזיר תשובות תקינות — קצב הסריקה חוזר בהדרגה.
המסקנה המעשית: תקלה קצרה לא תזיק לדירוג. אבל אם צריך להוריד את האתר לתחזוקה, עדיף להחזיר 503 מאשר עמוד "בתחזוקה" עם קוד 200 — כי עמוד כזה עם קוד הצלחה עלול להיכנס לאינדקס במקום התוכן האמיתי. ואם יש שגיאות 500 שחוזרות, צריך לתקן אותן מהר, לפני שהן משפיעות על הסריקה.
איך נראה מצב תחזוקה נכון
כשמורידים אתר לתחזוקה מתוכננת, התשובה של השרת צריכה לומר את האמת: "לא זמין עכשיו, חזרו בעוד זמן מה". בפועל, תחילת התשובה נראית כך:
HTTP/1.1 503 Service Unavailable Retry-After: 3600 Content-Type: text/html; charset=utf-8
הכותרת Retry-After מציינת בשניות מתי כדאי לנסות שוב — כאן, שעה. בגוף התשובה מציגים לגולש עמוד פשוט בעיצוב האתר: מה קורה, מתי האתר יחזור, ואיך אפשר ליצור קשר בינתיים. ואחרי התחזוקה — בודקים שהאתר באמת חזר להחזיר 200, ולא נשאר "תקוע" במצב תחזוקה.
מה לבקש מחברת האחסון
אם אין לכם גישה ליומני השרת, חברת האחסון יכולה לעזור — אבל רק אם השאלה מדויקת. כדאי לשלוח לה את הכתובת המדויקת שהחזירה שגיאה, את השעה, ואת קוד השגיאה. בקשו לבדוק את יומן השגיאות של PHP ושל השרת בשעה הזו, ואם השגיאה היא 503 — האם האתר נחסם בגלל חריגה ממגבלות משאבים. תשובה כמו "הכול תקין אצלנו" בלי בדיקת יומן היא לא תשובה.
איך מונעים
- סביבת בדיקה לעדכונים לפני שהם עולים לאתר החי.
- גיבוי לפני כל עדכון, עם שחזור שנבדק בפועל.
- מטמון עמודים, שמוריד עומס מהשרת ומקטין סיכוי ל-503. ראו מטמון באתר.
- ניטור שמתריע על שגיאות מיד, ולא כשלקוח מתקשר. ראו ניטור זמינות אתר.
- פחות תוספים — כל תוסף הוא עוד נקודה שיכולה להישבר בעדכון. ראו וורדפרס בלי בוני עמודים.
שגיאה אחרת, שנובעת מכתובת ולא מהשרת, היא 404 — עליה כתבתי במאמר דף 404 ושגיאות של כתובות שלא קיימות.
מאמרים קשורים: 502 Bad Gateway: מה השגיאה אומרת ואיך מוצאים את החוליה השבורה.
אבחון ותיקון שגיאות שרת הם חלק מתחזוקת אתרים, ואם השגיאות נובעות מעומס — משיפור ביצועים. האתר שלכם מחזיר 500 או 503? שלחו לי את הכתובת.
אהבתם את המאמר?


