استاندارد استثناء کردن ربات‌ها

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

فایل robots.txt یا استاندارد استثنا کردن ربات‌ها که همچنین به پروتکل استثنا کردن ربات‌ها شناخته می‌شود، معیاری برای ارتباط با خزنده‌های وب و روبات‌های وب است. این استاندارد توسط وبسایت‌ها استفاده می‌شود تا چگونگی آگاهی دادن به web robotها دربارهٔ اینکه کدام قسمت از صفحات وب نباید مورد پیمایش قرار گیرد را مشخص کند. ربات‌ها اغلب برای دسته‌بندی کردن وبسایت‌ها توسط موتورهای جستجو مورد استفاده قرار می‌گیرند البته همهٔ ربات‌ها از این معیارها پیروی نمی‌کنند حتی email harvesters، spambots malware و ربات‌هایی که آسیب‌پذیری‌های امنیتی را چک می‌کنند ممکن است کار خود را از قسمت‌هایی از وبسایت شروع کنند که به آنها اجازهٔ ورود داده نشده.

تاریخچه[ویرایش]

این استاندارد توسط فردی به نام Martijn Koster در فوریه سال ۱۹۹۴ در حالیکه مشغول به کار برای Nexor بر روی لیست پستی www-talk بود ارائه شد که درواقع اصلی‌ترین کانال ارتباط برای فعالیت‌های WWW-related در آن زمان محسوب می‌شد. Charles Stross ادعا می‌کند که او بعد از نوشتن یک خزندهٔ وب مخرب که موجب قطع ارتباط سهوی (denial of service)برای سرورهای Koster شد باعث شد تا koster این پیشنهاد را بدهد.

این موضوع به سرعت به یک استاندارد غیررسمی تبدیل شد که انتظار می‌رفت خزنده‌های وب حال و آینده از آن پیروی کنند البته اکثر آنها از جمله دسته‌ای که به کمک موتورهای جستجو کار می‌کردند مانند Lycos و AltaVista پیرو این استاندارد بودند.

دربارهٔ استاندارد[ویرایش]

زمانی که صاحب سایت قصد دادن دستورالعمل‌ها به یک web robots را دارد آن‌ها یک فایل متنی درواقع robots.txt را در ریشه یک وبسایت قرار می‌دهند مانند https://www.example.com/robots.txt این فایل نوشتاری، شامل دستوالعمل در یک قالب‌بندی خاص می‌باشد (مثال زیر را ببینید) ربات‌هایی که از این دستورالعمل‌ها پیروی می‌کنند، سعی می‌کنند که قبل از گرفتن فایل دیگری از این وبسایت، این فایل را بگیرند و دستورالعمل‌ها را بخوانند. درصورت موجود نبودن این فایل ربات‌ها بافرض اینکه صاحب سایت قصد ارائهٔ هیچ دستورالعمل خاصی را ندارد، کل سایت را می‌خزند.

یک فایل robots.txt مانند یک درخواست عمل می‌کند که درواقع چشم پوشی از فایل‌ها یا دایرکتوری‌های خاص را هنگام خزیدن یک وبسایت برای ربات‌ها مشخص می‌کند.

لینک‌ها به صفحه‌هایی که در robots.txt لیست شده‌اند اگر به صفحه‌های دیگری که پیمایش شده‌اند لینک باشند هنوز هم می‌توانند در نتایج جستجو ظاهر شوند.

هر robots.txt فقط می‌تواند یک منبع (origin) را پوشش دهد برای یک وبسایت که دارای چندین زیر دامنه است هر زیر دامنه باید یک robots.txt داشته باشند مثلاً اگر example.com یک robots.txt داشته باشد اما a.example.com نداشته باشد قوانینی که بر روی example.com اعمال می‌شود روی a.example.com اعمال نخواهد شد همچنین هر پروتکل و پورت به robots.txt خودش نیاز دارد.

http://example.com/robots.txt برای https://example.com:8080/ یا https://example.com/ کار نمی‌کند.

تعداد زیادی از موتورهای جستجو از جمله Ask، AOL، Baidu، Bing، Google، Yahoo! و Yandex از این استانداردها پیروی می‌کنند.

مثال‌ها[ویرایش]

این دستور به همهٔ ربات‌ها می‌گوید که می‌توانند از همهٔ فایل‌ها بازدید کنند چون علامت * یه معنی همهٔ ربات‌ها می‌باشد و چون دستور disallow هیچ مقداری ندارد به این معنی است که هیچ صفحه‌ای disallowed نشده.

User-agent: *
Disallow:

این نتیجه را می‌توان از یک فایل robot.txt خالی و یا حتی بدون فایل robot.txt به دست آورد.

این دستور به همه ربات‌ها می‌گوید که وارد وب‌سایت نشوند:

User-agent: *
Disallow: /

این مثال به همه ربات‌ها می‌گوید که وارد سه دایرکتوری نشوند:

User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /junk/

این مثال به همهٔ ربات‌ها می‌گوید که وارد یک پوشه خاص نشوند:

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

توجه کنید که همه فایل‌های دیگر در این دایرکتوری، پیموده می‌شوند.

این مثال به یک ربات خاص می‌گوید که وارد وبسایت نشود:

User-agent: BadBot # replace 'BadBot' with the
actual user-agent of the bot
Disallow: /

این مثال به دو ربات خاص می‌گوید که وارد یک دایروکتوری خاص نشوند:

User-agent: BadBot # replace 'BadBot' with the
actual user-agent of the bot
User-agent: Googlebot
Disallow: /private/

این مثال نشان می‌دهد که چطور کامنت‌ها مورد استفاده قرار می‌گیرند.

# Comments appear after the "#" symbol at the
start of a line, or after a directive
User-agent: * # match all bots
Disallow: / # keep them out

همچنین می‌توان چندین ربات را همراه با قوانین خودشان لیست کرد.

تعدادی کمی از سایت‌ها مانند google از چندین user-agent پشتیبانی می‌کند که با استفاده از رشته‌های user-agent خاص به اپراتور اجازه قطع دسترسی از زیرمجموعهٔ سرویس‌های آن‌ها را می‌دهد.

User-agent: googlebot # all Google
services Disallow: /private/ # disallow this
directory

User-agent: googlebot-news # only the news
service
Disallow: / # disallow
everything

User-agent: * # any robot
Disallow: /something/ # disallow this
directory

افزونه‌های غیر استاندارد[ویرایش]

دستور دیر خزیدن
دستور دیر خزیدن یا crawl-delay، ارزشی است که توسط برخی از ربات‌های خزنده وب پشتیبانی می‌شود. از این دستور برای محدود کردن Crawlerها استفاده می‌شود. از آنجایی که این دستور در استاندارد وب ربات‌ها تعریف نشده است، هر ربات می‌تواند به شکل خاصی آن را تغبیر کند. برای مثال موتور جستجوی یاندکس، این دستور را به عنوان زمان تاخیر در بین مشاهده و بررسی هر وب سایت تعبیر می کند. موتور جستجوی بینگ نیز این دستور را به عنوان مهلت زمانی تعبیر می کند، مهلت زمانی که طی آن اجازه دسترسی به یک صفحه را دارد.

User-agent: *
Crawl-delay: 10

دستور اجازه
برخی از موتورهای جستجو، مانند گوگل؛ می‌توانند از یک دستور دیگر به نام اجازه یا Allow نیز پیروی کنند. این دستور زمانی کاربرد دارد که وب مستر به ربات خزنده دستور می دهد که یک صفحه را به طور کل نادیده بگیرد، اما بخشی از آن را ایندکس و در نتایج جستجو ثبت کند. به این ترتیب، ربات خزنده تنها قسمتی از یک صفحه مانند برخی از کدهای HTML یا تصاویر سایت را در موتور جستجو ثبت می کند، بدون اینکه صفحه مورد نظر ایندکس شود.

Allow: /directory1/myfile.html
Disallow: /directory1/

در مثال بالا تمام محتویات دایرکتوری directory1/ نادیده گرفته می شود، به جز /directory1/myfile.html

دستور نقشه سایت
برخی از موتورهای جستجو از دستور نقشه سایت پیروی می کنند. این دستور اجازه می دهد چند نقشه سایت را در یک فایل robots.txt مدیریت کرد.

متا تگ ها[ویرایش]

علاوه بر دستورات فایل robots.txt که در سطح سرور انجام می شوند، دستوراتی وجود دارند که در سطح صفحات وب سایت انجام می شوند. این دستورات از طریق متا تگ‌های ربات‌ها و تگ‌های X-Robots اجرا می شوند.
از متا تگ‌های ربات نمی توان برای فایل های غیر HTML مانند تصاویر، فایل های متنی یا اسناد PDF استفاده کرد. از طرف دیگر از تگ های X-Robots می توان با استفاده از دستورات .htaccess برای فایل های غیر HTML استفاده کرد.

متا تگ noindex:

<meta name="robots" content="noindex" />

منابع[ویرایش]

  1. نوین، رامین محمودی، 6 اردیبهشت 1396، آموزش ساخت فایل robots.txt