חיפוש ]

מהו קובץ robots.txt וכיצד להשתמש בו נכון

הקובץ robots.txt מכיל הנחיות למנועי חיפוש לגבי האופן בו עליהם לסרוק את האתר שלכם. הנחיות אלו נקראות בלעז directives, וניתן כאמור להשתמש באלו בכדי להנחות בוטים ולציין למנועי חיפוש מסויימים (או לכולם) כי עליהם להמנע מסריקת כתובות, קבצים, או חלקים מסויימים באתר שלכם.

בפוסט זה ניתן מבט מעמיק על קובץ זה, בין היתר בהקשר של אתרי וורדפרס, ואני מאמין שאם תקראו פוסט זה במלואו תגלו מספר דברים שלא ידעתם בהקשר של קובץ ייחודי זה.

אך לפני שנתחיל בהסברים מעמיקים על קובץ מיוחד זה, רבים המגיעים לפוסט זה מעוניינים אך ורק להבין כיצד להנחות מנועי חיפוש להמנע מסריקה של אתר מסויים וכל הכתובות שלו. זהו הקוד הרלוונטי עבורכם במקרה זה:

User-agent: *
Disallow: /

מה זה בעצם הקובץ robots.txt?

באופן כללי, בוטים וסורקים למינהם הם רעיון מוצלח ואולי אף הכרחי לרשת האינטרנט. עם זאת, אין זה אומר שאתם, או כל בעל אתר מעוניין שאותם בוטים וזחלנים יעשו כאוות נפשם וייסרקו כל כתובת ותוכן שעולה על רוחם ללא שיקול דעת.

הרצון לשליטה על ההתנהגות הבוטים, ועל הדרך בה הם מבצעים אינטראקציה עם אתרים ברשת, הובילה באמצע שנות התשעים ליצירת סטנדרט הנקרא Robots Exclusion Protocol. הקובץ robots.txt הוא למעשה היישום הפרקטי של Robots Exclusion Protocol, וזה מאפשר לכם להנחות בוטים של מנועי חיפוש כיצד לסרוק את האתר שלכם.

עבור מרבית בעלי האתרים, היתרונות של קובץ robots.txt נכון מסתכם ומתחלק לשתי קטגוריות:

  • אופטימיזציה לתקציב הזחילה ולמשאבים שמנועי חיפוש  מקדישים לאתר שלכם. זו נעשית על ידי הנחיה ובקשה להימנע מבזבוז משאבים בסריקת עמודים שאינכם רוצים באינדקס. פעולה זו מבטיחה כי מנועי חיפוש יתמקדו בסריקת העמודים החשובים ביותר באתר שלכם.
  • אופטימיזציה לשרת  עליו יושב האתר ומניעת עומסים בעקבות הסריקה. זו מתבצעת על ידי חסימת בוטים המבזבזים משאבים מיותרים בסריקת כתובות ותוכן שאינו רלוונטי.

robots.txt לא נועד לשליטה ספציפית על  העמודים שיופיעו באינדקס

באמצעות robots.txt ניתן למנוע ממנועי חיפוש לגשת לחלקים מסוימים באתר שלכם, למנוע סריקה של תוכן משוכפל וכזה שאינו רלוונטי, ולספק אינפורמציה למנועי חיפוש על כיצד לסרוק את האתר שלכם בצורה יעילה יותר.

הקובץ מציין למנועי חיפוש אילו עמודים וקבצים ניתן לסרוק באתר שלכם, אך הוא אינו דרך בטוחה ומוחלטת לשליטה באילו עמודים יופיעו באינדקס של גוגל ואילו לא. הגישה שעליכם לקחת בכדי למנוע מעמוד מסויים להופיע בתוצאות החיפוש היא להשתמש בתגית noindex – בין אם ברמת הקוד בעמוד הספציפי או ברמת השרת (קובץ htaccess למשל).

למרות שרוב מקדמי אתרים שמעו לבטח את המונח robots.txt, אין זה אומר כי כי הם מבינים כיצד להשתמש בו נכון. לצערי ראיתי לא מעט הנחיות שגויות בנושא.

כיצד נראה קובץ robots.txt?

לאתר וורדפרס למשל, הקובץ robots.txt יכול להראות משהו בסגנון הבא:

User-agent: *
Disallow: /wp-admin/

בואו נסביר את האנטומיה של קובץ robots.txt בהקשר של דוגמה זו:

  • User-agent – מציין לאילו מנועי חיפוש ההנחיה המופיעה רלוונטית.
  • כוכבית (*) – מציין כי ההנחיה רלוונטית עבור כל מנועי החיפוש ללא יוצא מן הכלל.
  • Disallow – הנחיה זו המציינת איזה תוכן לא יהיה נגיש עבור ה user-agent שציינתם.
  • /wp-admin/ – זהו הנתיב (path) שלא יהיה נגיש לאותו user-agent שציינתם.

ובמשפט אחד: הקובץ בדוגמה מעלה מציין לכל מנועי החיפוש לא לגשת לתיקייה /wp-admin/. בואו נתאר בהרחבה את הקומפוננטות השונות של קבצי robots.txt…

1. User-agent בקובץ robots.txt

על כל מנוע חיפוש להזדהות עם user-agent מסויים. הבוט של גוגל מזוהה כ Googlebot למשל, יאהו מזוהה כ Slurp, ובינג מזוהה כ BingBot.

השורה user-agent מציינת את תחילתה של קבוצת הנחיות. כל ההנחיות הנמצאות בין ה user-agent הראשון שמופיע עד לזה שאחריו, מתייחסות ל user-agent הראשון.

2. ההנחיה Disallow בקובץ robots.txt

ניתן להנחות מנועי חיפוש לא לגשת לקבצים ולעמודים ספציפיים, או אף לחלקים שלמים באתר שלכם.  ניתן לבצע זאת באמצעות ההנחיה Disallow.

על ההנחיה Disallow להופיע עם נתיב כלשהו אחריה, אותו נתיב שלא יהיה נגיש למנועי החיפוש. אם לא מוגדר נתיב, מנועי חיפוש יתעלמו מהנחייה זו.

User-agent: *
Disallow: /wp-admin/

3. ההנחיה Allow בקובץ robots.txt

ההנחייה Allow משמשת לנטרול ספציפי של ההנחיה Disallow. שימוש בשתי אלו יחדיו מאפשר למנועי חיפוש גישה לקובץ או עמוד ספציפי שאחרת יהיה לא נגיש עבורם (לא נגיש ע״י ההנחיה Disallow כמובן).

על ההנחיה Allow גם כן להופיע עם נתיב כלשהו אחריה אליו אתם מעוניינים לספק גישה. אם לא מוגדר נתיב, ההנחיה לא רלוונטית ומנועי חיפוש יתעלמו ממנה.

User-agent: *
Allow: /media/terms-and-conditions.pdf
Disallow: /media/

בדוגמה מעלה ההנחיה מציינת לכל מנועי החיפוש כי אין לגשת לספרייה /media/ למעט קובץ ה PDF המצויין בהנחיה Allow.

חשוב: כאשר משתמשים בהנחיות אלו יחדיו רצוי לא להשתמש ב wildcards מאחר וזה יכול להוביל להנחיות סותרות.

דוגמה להנחיות סותרות

User-agent: *
Allow: /directory
Disallow: *.html

בסיטואציה זו מנועי חיפוש כנראה ויתבלבלו לגבי הכתובת http://domain.co.il/file.html למשל. אין זה ברור עבורם אם יש לסרוק קובץ זה או לא.

אם הנחיות מסויימות אינן ברורות מנועי חיפוש, או לפחות גוגל  יתייחסו להנחיה הפחות מחמירה מבין השתיים, ובמקרה זה, הם יגשו לסרוק את הקובץ המדובר.

4. שורה נפרדת עבור כל הנחיה

על כל הנחיה להופיע בשורה נפרדת משל עצמה, אחרת מנועי חיפוש עלולים להתבלבל בהבנת ההנחיות בקובץ robots.txt, ולכן, המנעו מכתיבה בסגנון הבא:

User-agent: * Disallow: /directory-1/ Disallow: /directory-2/ Disallow: /directory-3/

5. שימוש ב wildcards*

מעבר לשימוש של wildcards ב user-agent, ניתן להשתמש באלו גם עבור כתובות URL. למשל:

User-agent: *
Disallow: *?

בדוגמה זו קיימת הנחיה למנועי החיפוש במציינת לא לגשת לשום כתובת URL בה קיים סימן שאלה (?).

6. שימוש בסיומת של כתובת URL ($)

ניתן להשתמש בסימן דולר ($) בכדי לציין סיומת של כתובת URL לאחר הנתיב. לדוגמה:

User-agent: *
Disallow: *.php$

ההנחיה בדוגמה זו היא לא לגשת ולסרוק אף כתובת URL בעלת הסיומת .php. לעומת זאת, לכתובות עם פרמטרים לאחר מכן תתאפשר גישה.  לכתובת http://example.co.il/page.php?lang=he למשל תתאפשר גישה מאחר והיא אינה מסתיימת ב .php.

7. הצבעה למפת האתר ע״י קובץ robots.txt

למרות שקובץ robots.txt נועד להנחות מנועי חיפוש לאילו עמודים אין עליהם לגשת, הוא משמש גם בכדי לציין לאלו היכן יושב קובץ ה XML Sitemap של האתר.

למרות שלבטח כבר הוספתם את אותה מפת אתר באמצעות Google Search Console או על ידי Bing Webmaster Tools, מומלץ לספק רפרנס לקובץ זה גם בקובץ robots.txt. ניתן כמובן לספק רפרנס למספר קבצי Sitemap שונים. הנה דוגמה:

User-agent: *
Disallow: /wp-admin/
Sitemap: http://example.co.il/sitemap1.xml
Sitemap: http://example.co.il/sitemap2.xml

ההנחיה למנועי חיפוש בדוגמה זו היא לא לגשת לתיקייה /wp-admin/ ומעבר לכך מציינת להם כי קיימים שני קבצי Sitemap הנמצאים בכתובות שצויינו.

על הרפרנס לכתובת של קובץ ה Sitemap להיות אבסולוטי. מעבר לכך נציין כי הכתובת אינה חייבת להיות באותו שרת בו נמצא הקובץ robots.txt.

8. הוספת הערות בקובץ robots.txt

ניתן לכתוב הערות על ידי שימוש בסולמית (#). הערות אלו יכולות להופיע בתחילתה של שורה או לאחר ההנחיה באותה שורה בה היא מופיעה. מנועי חיפוש יתעלמו מכל מה שמופיע לאחר סולמית זו והערות אלו כמובן מיועדות לבני אדם בלבד. הנה דוגמה:

# Don't allow access to the /wp-admin/ directory for all robots.
User-agent: *
Disallow: /wp-admin/

והנה דוגמה בה ההערה מופיעה באותה שורה של ההנחיה:

User-agent: * #Applies to all robots
Disallow: /wp-admin/ # Don't allow access to the /wp-admin/ directory.

9. שימוש בהנחיה Crawl-delay בקובץ robots.txt

ההנחיה Crawl-delay אינה הנחיה רשמית וקיימת בכדי למנוע עומס על השרת במהלך הסריקה עקב ריבוי בקשות. אם אתם נתקלים בסיטואציה זו דעו כי השימוש ב Crawl-delay הינו פתרון זמני בלבד.

מצב זה אומר כנראה כי השרת עליו יושב האתר שלכם הוא שרת חלש ואינו מתאים לצרכי האתר, לחילופין ייתכן שהאתר אינו מוגדר כראוי ועליכם למצוא פתרון לכך בהקדם האפשרי.

מנועי החיפוש השונים מתייחסים להנחיה זו בצורה שונה והבוט של גוגל אינו מתייחס להנחיה זו כלל. עם זאת, גוגל מאפשרת לכם לקבוע את אותה השהייה בסריקה באמצעות גוגל סרץ׳ קונסול.

האפשרות לקבוע את השהיית הסריקה באמצעות סרץ׳ קונסול אינה קיימת יותר כך שהמשך החלק הזה כבר לא רלוונטי.

בכדי להגדיר זאת ב Search Console התחברו לגירסה הישנה של סרץ׳ קונסול, בחרו את הנכס עבורו אתם רוצים להגדיר את תדירות הסריקה ושנו זו כראות עיניכם. ברירת מחדל כפי שאתם רואים היא לאפשר לגוגל עצמה להחליט מהי תדירות הסריקה הנכונה ביותר עבור האתר שלכם.

קביעת תדירות סריקה באמצעות Google Search Console

לעומת זאת, מנועי החיפוש Yahoo ו Bing מתייחסים להנחיה זו אך עושים זאת באופן שונה אחד מהשני, תנו מבט בדוקומנטציה שלהם לגבי הנושא. על כל מקרה, הנחיה זו יכולה להראות משהו בסגנון הבא:

User-agent: BingBot
Disallow: /private/
Crawl-delay: 10

כיצד ליצור ולערוך את הקובץ robots.txt באתרי וורדפרס?

וורדפרס מייצרת אוטומטית קובץ robots.txt וירטואלי לאתר שלכם, כך שגם אם אינכם מבצעים שום פעולה, כנראה ולאתר שלכם קיים קובץ דיפולטיבי זה. אתם יכולים לבדוק אם זה המצב על ידי הוספת /robots.txt לאחר שם הדומיין שלכם.

למשל, https://savvy.co.il/robots.txt יציג את קובץ ה robots.txt של סאבי בלוג. במידה והקובץ אכן וירטואלי ואינו קיים בפועל אז לא תוכלו לערוך אותו. אם תרצו לבצע שינויים לקובץ זה עליכם ליצור קובץ פיזי בשרת שלכם. ניתן לעשות זאת במספר דרכים…

1. יצירת קובץ robots.txt באמצעות FTP

באפשרותכם כמובן ליצור ולערוך קובץ באמצעות תוכנת FTP כלשהי, אך בתור התחלה, השתמשו בכל עורך טקסט שבא לכם וצרו קובץ ריק בשם robots.txt.

לאחר מכן, התחברו לשרת שלכם ב FTP והעלו קובץ זה לתיקייה הראשית של האתר (root folder). כעת תוכלו לבצע מודיפיקציות נוספות לקובץ על ידי עריכתו בתוכנת ה FTP איתה אתם עובדים.

2. יצירה ועריכת הקובץ robots.txt באמצעות Yoast SEO

אם אתם משתמשים בתוסף WordPress SEO by Yoast, תוכלו ליצור (ואח״כ לערוך) את הקובץ robots.txt ישירות דרך ממשק התוסף. בכדי לעשות זאת גשו לממשק הניהול של וורדפרס ולאחר מכן ל SEO > כלים ולחצו על עריכת קבצים.

אם לא קיים קובץ robots.txt תופיע לכם האפשרות ליצור כזה. אם הקובץ קיים, תופיע בפניכם אפשרות עריכה של קובץ זה יחד עם האפשרות לעריכת הקובץ .htaccess לו אקדיש בקרוב מאמר נפרד.

עריכת robots.txt בממשק של Yoast SEO

קובץ robots.txt אופייני לאתרי וורדפרס

הקוד הבא נועד ספציפית לאתרי וורדפרס, שימו לב כי הוא בגדר המלצה בלבד, ורלוונטי רק אם אתם:

  • לא מעוניינים שממשק הניהול של וורדפרס (admin) ייסרק.
  • אינכם רוצים שעמודי תוצאות החיפוש הפנימיים ייסרקו.
  • אינכם מעוניינים כי עמודי התגיות (tags) ועמודי המחבר (author) ייסרקו .
  • אתם משתמשים ב pretty permalinks כפי שרצוי שתעשו…
User-agent: *
Disallow: /wp-content/plugins/ #block access to the plugins folder
Disallow: /wp-login.php #block access to admin section
Disallow: /readme.html #block access to readme file
Disallow: /search/ #block access to internal search result pages
Disallow: *?s=* #block access to internal search result pages
Disallow: *?p=* #block access to pages for which permalinks fails
Disallow: *&p=* #block access to pages for which permalinks fails
Disallow: *&preview=* #block access to preview pages
Disallow: /tag/ #block access to tag pages
Disallow: /author/ #block access to author pages

Sitemap: https://www.example.com/sitemap_index.xml

אז למרות שקוד זה יהיה ורלוונטי עבור מרבית אתרי הוורדפרס, עליכם תמיד לבצע התאמות ובדיקות לקובץ ולוודא כי הוא מתאים לסיטואציה ולצורך הספציפי של האתר שלכם.

ביצוע בדיקות לקובץ robots.txt

ניתן לבדוק את קובץ robots.txt דרך Google search Console בקישור זה בכדי לוודא שהוא מוגדר כראוי. באפשרותכם להכניס כתובת URL כלשהי באתר שלכם, ואם היא אינה חסומה לגישה יופיע לכם בירוק המילה ״מורשית״ בצבע ירוק.

לעומת זאת, אם כתובת מסויימת חסומה על ידי robots.txt תופיע בפניכם באדום המילה ״חסומה״.

בדיקת קובץ robots.txt ע״י Google Search Console

מגבלות הקובץ robots.txt

עליכם לדעת את המגבלות הקיימות לפני שיוצרים או עורכים את הקובץ robots.txt. אז הנה מספר מגבלות ונקודות שחשוב לדעת:

  • לא כל מנועי החיפוש מצייתים להנחיות המופיעות בקובץ robots.txt. לכן, אם אתם מעוניינים לחסום גישה לכתובת URL או קבצים כלשהם בצורה מוחלטת, נכון יהיה אולי להשתמש בסיסמה.
  • סורקים שונים מפרשים את ההנחיות בצורה שונה כפי שראינו במאמר. עליכם להשתמש בסינטקס הרלוונטי והמתאים עבור הסורקים השונים.
  • עמוד החסום ב robots.txt עדיין יכול להופיע באינדקס אם קיים קישור לזה מאתרים אחרים ברשת.
  • קובץ robots.txt בדרך כלל נשמר בזכרון (cache) לכ – 24 שעות.
  • גוגל תומכת בקובץ עד ל 512KB (קילובייטס) וייתכן שאינה תתייחס להנחיות מעבר לכך.

מספר שאלות ונקודות חשובות בהקשר של robots.txt

הנה מספר שאלות נפוצות בהן אני נתקל לא פעם ברשת וברשתות החברתיות השונות:

1. האם אני צריך קובץ robots.txt? כן. עליכם לדאוג כי קובץ זה קיים מכיוון והוא משחק תפקיד חשוב מנקודת המבט של קידום אתרים ו SEO. מבחינה זו, הקובץ מספק מידע למנועי חיפוש על הדרך הטובה ביותר לסרוק את האתר שלכם.

2. האם האתר שלי יסרק ללא קובץ robots.txt? כן. אם מנועי חיפוש לא מוצאים קובץ זה בתיקייה הראשית של האתר הם יניחו כי שלא קיימות הנחיות והגבלות כלל ויסרקו את כל האתר.

3. האם זה חוקי לסרוק אתר ולהתעלם מההנחיות? מנקודת מבט טכנית, כן. הקובץ כפי שציינו מהווה הנחיה בלבד ואינכם יכולים לבוא לאף אחד שסורק את האתר שלכם בטענות (לפחות לא כאלו הקשורות להנחיות המופיעות ב robots.txt).

4. יש להיזהר כשמבצעים שינויים לקובץ robots.txt. לקובץ פונטנציאל לגרום לחלקים מסוימים או אף לכל האתר שלכם להיות בלתי נגיש למנועי חיפוש.

5. מנועי חיפוש שונים מתייחסים להנחיות המופיעות בו בצורה שונה. כברירת מחדל, ההוראה הראשונה לה נמצאה התאמה מנצחת (first matching directive). אך מבחינת גוגל ו Bing ספציפית, הייחודיות מנצחת (specificity).

6. המנעו משימוש בהוראה crawl-delay ככל שניתן. 

7. הזהרו מ UTF-8 DOM. אותו BOM הוא בעצם אות אינה נראית כלשהי הנוספת לעיתים על ידי עורכי טקסט כאלו ואחרים. אם אותו character בלתי נראה קיים בקובץ ייתכן ומנועי חיפוש לא יפרשו את ההנחיות הנמצאות בו כראוי.

פעולות נפוצות עם הקובץ robots.txt

הנה טבלה (בדסקטופ בלבד) המתארת מספר פעולות נפוצות שניתן לבצע עם הקובץ robots.txt. הטבלה נלקחה היישר מהדוקומנטציה של גוגל.

Useful rules
Disallow crawling of the entire websiteKeep in mind that in some situations URLs from the website may still be indexed, even if they haven't been crawled.

User-agent: *
Disallow: /
Disallow crawling of a directory and its contentsAppend a forward slash to the directory name to disallow crawling of a whole
directory. The disallowed string may appear anywhere in the path, so Disallow: /junk/ matches https://example.com/junk/ and https://example.com/for-sale/other/junk/.Caution:
Remember, don't use robots.txt to block access to private content; use proper authentication instead. URLs disallowed by the robots.txt file might still be indexed without being crawled, and the robots.txt file can be viewed by anyone, potentially disclosing the location of your private content.

User-agent: *
Disallow: /calendar/
Disallow: /junk/
Disallow: /books/fiction/contemporary/
Allow access to a single crawlerOnly googlebot-news may crawl the whole site.

User-agent: Googlebot-news
Allow: /

User-agent: *
Disallow: /
Allow access to all but a single crawlerUnnecessarybot may not crawl the site, all other bots may.

User-agent: Unnecessarybot
Disallow: /

User-agent: *
Allow: /
Disallow crawling of a single web pageFor example, disallow the useless_file.html page.

User-agent: *
Disallow: /useless_file.html
Block a specific image from Google ImagesFor example, disallow the dogs.jpg image.

User-agent: Googlebot-Image
Disallow: /images/dogs.jpg
Block all images on your site from Google ImagesGoogle can't index images and videos without crawling them.

User-agent: Googlebot-Image
Disallow: /
Disallow crawling of files of a specific file typeFor example, disallow for crawling all .gif files.

User-agent: Googlebot
Disallow: /*.gif$
Disallow crawling of an entire site, but allow Mediapartners-GoogleThis implementation hides your pages from search results, but the Mediapartners-Google web crawler can still analyze them to decide what ads to show visitors on your site.

User-agent: *
Disallow: /

User-agent: Mediapartners-Google
Allow: /
Use $ to match URLs that end with a specific stringFor example, disallow all .xls files.

User-agent: Googlebot
Disallow: /*.xls$

לסיכום

ולסיכום המדריך על robots.txt אזכיר  כי שימוש בהנחייה Disallow בקובץ זה אינה כשימוש בתגית noindex. ייתכן והקובץ robots.txt ימנע סריקה של כתובת מסויימת, אך לא ימנע בהכרח קיומה באינדקס והופעתו בתוצאות החיפוש.

ניתן להשתמש בו להוספת חוקים ספציפיים ולבצע מודיפקציה לדרך בה מנועי חיפוש מקיימים אינטראקציה עם האתר שלכם, אך הוא אינו מאפשר שליטה מדויקת על איזה תוכן יאונדקס ואיזה לא.

לרוב בעלי האתרים אין צורך מיוחד להתעסק עם קובץ זה, ובעלי אתר וורדפרס כנראה ולא צריכים לשנות את הקובץ הוירטואלי הדיפולטיבי. אך אם אתם נתקלים בבעיה ספציפית עם בוט מסוים, או שאתם רוצים לשנות כיצד אותם מנועי חיפוש ניגשים לתוסף או לתבנית מסוימת בה אתם משתמשים, כנראה ותרצו להוסיף לקובץ זה מספר חוקים ייעודיים.

 

  • רוב 6 אפריל 2020, 14:56

    כל התיקיות של הניהול לא אמורות להיות חסומות אוטומטית? הרובוטים גם לא חייבים לפעול לפי מה שכתוב בקובץ? זה לא בסדר

  • ענת חנסוב 24 יולי 2022, 11:21

    תודה על המאמר, מחכים וכתוב יפה

תגובה חדשה

הוסיפו קוד באמצעות הכפתורים מטה. למשל, בכדי להוסיף PHP לחצו על הכפתור PHP והוסיפו את הקוד בתוך השורטקוד. מצאתם שגיאה בפוסט? עדכנו אותנו...

Savvy WordPress Development