קובץ robots.txt הוא קובץ טקסט פשוט שנמצא בשורש האתר ומאפשר לתת לזחלנים הוראות לגבי הכתובות והאזורים שהם רשאים או אינם רשאים לסרוק. למשל, אפשר לבקש מזחלן של מנוע חיפוש לא לסרוק אזור מסוים, לאפשר לו לגשת לאזור אחר או לתת הוראות שונות לבוטים שונים.
חשוב להדגיש כבר בהתחלה: robots.txt מנהל בעיקר סריקת אתר, ולא משמש כמנגנון אבטחה. ההוראות בקובץ הן כללים שזחלנים תקינים אמורים לכבד, אבל הן לא מונעות ממשתמש או מבוט שמתעלם מהן לגשת לכתובת. בנוסף, חסימת עמוד לסריקה אינה מבטיחה שהכתובת עצמה לא תופיע בתוצאות Google.
איפה נמצא robots.txt?
הקובץ נמצא בשורש האתר, בכתובת /robots.txt.
לדוגמה, אם כתובת האתר היא:
https://www.example.co.il/
קובץ ה-robots.txt שלו אמור להימצא בכתובת:
https://www.example.co.il/robots.txt
אפשר לפתוח את הכתובת הזאת בדפדפן ולראות את הקובץ. לכן robots.txt אינו מקום להכניס מידע סודי או כתובות שמנסים להסתיר מהציבור.
איך קוראים את ההוראות בקובץ?
למרות שקובץ robots.txt יכול להיראות מסובך, רוב הקבצים מבוססים על כמה הוראות פשוטות:
הוראה | מה היא אומרת? | דוגמה |
User-agent | לאיזה זחלן מיועדות ההוראות | User-agent: * מתייחס לכל הזחלנים הרלוונטיים |
Disallow | איזה נתיב מבקשים לא לסרוק | Disallow: /private/ |
Allow | איזה נתיב מותר לסרוק | Allow: /private/public/ יכול ליצור חריג באזור חסום |
Sitemap | איפה נמצאת מפת האתר | Sitemap: https://example.com/sitemap.xml |
לדוגמה:
User-agent: *
Disallow: /private/
הכוכבית אחרי User-agent אומרת שהכללים מיועדים לכל הזחלנים הרלוונטיים. השורה הבאה מבקשת מהם לא לסרוק את הנתיבים שנמצאים תחת /private/.
לעומת זאת, אפשר לתת הנחיות למנועי חיפוש או לזחלנים מסוימים בנפרד:
User-agent: Googlebot
Disallow: /example/
כאן הכלל מיועד ספציפית ל-גוגלבוט, הזחלן המרכזי של Google Search.
למה לפעמים רואים Allow: / אם ממילא מותר לסרוק?
לא מעט קבצים כוללים משהו כזה:
User-agent: *
Allow: /
המשמעות פשוטה: מותר לסרוק את האתר.
זה תקין, אבל ברוב המקרים גם מיותר. ברירת המחדל היא שאין מגבלת סריקה, ולכן אם לא הגדרנו Disallow, אין צורך לתת לזחלן "אישור" נוסף.
Allow הופך לשימושי יותר כאשר רוצים ליצור חריג בתוך אזור שחסמנו. למשל:
User-agent: *
Disallow: /example/
Allow: /example/public/
כאן ביקשנו לא לסרוק את /example/, אבל כן אפשרנו לסרוק את /example/public/.
ומה לגבי:
User-agent: *
Disallow:
גם Disallow ריק לא חוסם דבר. לכן בדרך כלל אין צורך לכתוב אותו רק כדי לציין שהסריקה מותרת.
שימו לב להבדל מתו אחד קטן:
Disallow:
לא חוסם נתיב, ואילו:
Disallow: /
מבקש מהזחלן לא לסרוק את האתר כולו.
מה עושים הכוכבית והסולמית?
בקבצים אמיתיים אפשר לפגוש סימנים כמו * ו-#.
כבר ראינו ש:
User-agent: *
מתייחס לכל הזחלנים הרלוונטיים. אבל בתוך נתיב הכוכבית יכולה לשמש להתאמה רחבה יותר.
לדוגמה:
Disallow: /*?filter=
כלל כזה יכול להתאים לכתובות שונות שמכילות את הפרמטר ?filter=, למשל:
/category/?filter=red
במקום לרשום בנפרד כל כתובת אפשרית, אפשר ליצור כלל שמתאים לקבוצה של כתובות.
כאן גם צריך להיזהר: ככל שהכלל רחב יותר, כך הוא עלול להשפיע על יותר כתובות. כלל שנועד למנוע סריקה של עמודי סינון, למשל, עלול לתפוס גם כתובות שכן רצינו שייסרקו אם הוא הוגדר בצורה רחבה מדי.
ומה עושה #?
# לא לסרוק את אזור הניהול
Disallow: /admin/
השורה שמתחילה ב-# היא הערה למי שקורא או מתחזק את הקובץ. היא לא הוראה לזחלן. אפשר להשתמש בה כדי להסביר למה הוספנו כלל מסוים או פשוט כדי לעשות סדר בקובץ.
האם אפשר לחסום חלק מהבוטים ולא אחרים?
כן. אחת היכולות השימושיות של robots.txt היא ליצור קבוצות כללים שונות עבור זחלנים שונים.
לדוגמה:
User-agent: ExampleBot
Disallow: /
בדוגמה הזאת מבקשים מהזחלן שנקרא ExampleBot לא לסרוק את האתר. אין צורך להוסיף קבוצה מיוחדת ל-Googlebot רק כדי לומר לו שמותר לסרוק, אם ממילא לא הגדרנו עבורו חסימה.
זו רק המחשה של יכולת הקובץ, ולא המלצה לחסום זחלן כזה או אחר. לפני שמבצעים חסימת בוטים לסריקה, צריך להבין מי הבוט, למה הוא מגיע לאתר ומה תהיה המשמעות של ההגבלה.
robots.txt גם אינו חומת אש. בוט זדוני יכול להתעלם מהקובץ לחלוטין, ולכן הוא אינו פתרון להגנה על מידע פרטי.
איך נראה קובץ robots.txt שמחבר את כל מה שלמדנו?
אחרי שמכירים את החלקים בנפרד, קל יותר להבין איך הם מתחברים בתוך קובץ אחד:
# כללים לכל הזחלנים
User-agent: *
# לא לסרוק את אזור example
Disallow: /example/
# לא לסרוק כתובות עם פרמטר סינון
Disallow: /*?filter=
# חריג בתוך האזור החסום
Allow: /example/public/
# מיקום מפת האתר
Sitemap: https://www.example.co.il/sitemap.xml
מה קורה כאן?
- # – מוסיף הערה לבני אדם שקוראים את הקובץ. הזחלן לא מתייחס אליה כאל הוראה.
- User-agent: * – אומר שהכללים בקבוצה מיועדים לכל הזחלנים הרלוונטיים.
- Disallow: /example/ – מבקש מהם לא לסרוק את הנתיבים שנמצאים באזור הזה.
- Disallow: /*?filter= – מדגים כלל שיכול להתאים לקבוצה של כתובות המכילות פרמטר מסוים.
- Allow: /example/public/ – יוצר חריג ומאפשר לסרוק נתיב מסוים בתוך האזור שהוגבל.
- Sitemap – מציין את הכתובת שבה נמצאת מפת האתר.
זו דוגמה שממחישה את היכולות של הקובץ, לא תבנית שמומלץ להעתיק. כלל שמתאים לחנות עם אלפי עמודי סינון יכול להיות מיותר לחלוטין באתר תדמית קטן.
אילו טעויות ב-robots.txt כדאי להכיר?
- חסימה רחבה מדי: Disallow: /blog/ מבקש לא לסרוק את כל הנתיבים שמתחת לתיקיית הבלוג. אם התכוונו להגביל רק כתובת אחת, הכלל רחב מדי.
- חסימת משאבים חשובים: חסימת קבצים שדרושים להצגת העמוד עלולה להקשות על Google לרנדר ולהבין אותו כפי שמשתמש רואה אותו.
- שימוש בקובץ לצורך אבטחה: אם עמוד מכיל מידע פרטי, Disallow אינו הגנה. צריך להגביל את הגישה עצמה באמצעות פתרון מתאים.
- בלבול בין סריקה לאינדוקס: כתובת שנחסמה ב-robots.txt עדיין עשויה להופיע בתוצאות אם Google גילתה אותה בדרך אחרת. מניעת סריקה ומניעת אינדוקס הן שתי פעולות שונות.
- העתקת כללים מאתר אחר: כלל עם כוכבית או התאמה רחבה יכול להשפיע על מספר גדול של כתובות. מה שמתאים לאתר אחד לא בהכרח מתאים לאחר.
ומה הקשר בין robots.txt לבוטים של AI?
העלייה בשימוש ב-מודלי ai הפכה את השאלה "מי סורק את האתר ולמה?" לרלוונטית גם מעבר למנועי החיפוש הקלאסיים.
חברות שונות מפעילות זחלנים למטרות שונות. לדוגמה, Google מפעילה User-agent בשם Google-Extended, שמאפשר לבעלי אתרים לנהל שימושים מסוימים בתוכן שלהם עבור מוצרי Gemini ומערכות AI של Google. הוא נפרד מהזחלנים שמשמשים את Google Search, ולכן הגבלה שלו אינה זהה להגבלת Googlebot.
מבחינת קידום במנועי ai, חשוב להבדיל בין ניהול הגישה של זחלנים לבין אופטימיזציה של התוכן לנראות במערכות מבוססות AI. אלה נושאים קשורים, אבל הם אינם אותו דבר.
האם קובץ llms.txt מחליף את robots.txt?
לא. קובץ llms.txt הוא רעיון חדש יחסית שמציע דרך להציג למערכות שפה מידע מרכזי על האתר בפורמט נוח לקריאה, למשל באמצעות Markdown וקישורים למשאבים חשובים.
נכון להיום הוא אינו תקן מבוסס כמו Robots Exclusion Protocol שעליו מבוסס robots.txt, ואין להניח שמנועי AI שונים בהכרח משתמשים בו.
אפשר לחשוב על ההבדל בצורה פשוטה: robots.txt עוסק בעיקר בכללים לגבי סריקה, בעוד llms.txt מציע דרך לארגן ולהציג מידע שעשוי להיות שימושי למערכות שפה.
קובץ פשוט שיכול להשפיע על חלק גדול מהאתר
robots.txt אינו קובץ שצריך לפחד ממנו, אבל כן צריך להבין אותו לפני שמשנים אותו. כמה שורות פשוטות יכולות להנחות זחלנים אילו אזורים לסרוק, ליצור חריגים, לתת כללים שונים לבוטים שונים ולהפנות למפת האתר.
דווקא בגלל הפשטות שלו, כדאי להימנע מהעתקה אוטומטית של כללים מאתרים אחרים. לפני שמוסיפים Allow, Disallow או כלל עם wildcard, השאלה החשובה היא לא רק "מה כתוב בשורה?", אלא "על אילו כתובות באתר שלי היא באמת תשפיע?".
שאלות ותשובות נפוצות
האם כל אתר חייב קובץ robots.txt?
לא חובה שיהיה קובץ robots.txt כדי שמנועי חיפוש יוכלו לסרוק אתר. אם הקובץ לא קיים, אין בו כללים שמגבילים את הסריקה.
עם זאת, ברוב האתרים כן הגיוני שיהיה קובץ robots.txt מסודר, אפילו אם אין צורך לחסום שום דבר. אחת הסיבות היא שאפשר לציין בו את הכתובת של מפת האתר.
כך זחלנים שתומכים בהוראה יכולים לגלות בקלות את מפת האתר. את ה-Sitemap אפשר להגיש גם בדרכים נוספות, למשל דרך Google Search Console, ולכן robots.txt אינו תנאי לקיומה או לגילויה של מפת אתר.
לכן הקובץ יכול להיות שימושי גם באתר שאין בו אפילו Disallow אחד.
האם robots.txt יכול להסתיר עמוד מגוגל?
לא באופן אמין. חסימת הסריקה אינה זהה למניעת אינדוקס, וכתובת חסומה עדיין יכולה להופיע בתוצאות.
האם robots.txt יכול להגן על מידע פרטי?
לא. הקובץ ציבורי והכללים שבו אינם מנגנון אבטחה. תוכן פרטי צריך להיות מוגן באמצעות בקרת גישה מתאימה.
האם אפשר לתת הוראות שונות לבוטים שונים?
כן. באמצעות User-agent אפשר ליצור קבוצות כללים עבור זחלנים שונים. עם זאת, עצם האפשרות אינה אומרת שכדאי לחסום זחלן מסוים בלי להבין קודם את ההשלכות.







