موتورهای جستجو وقتی میخوان سایت ها رو برای پیدا کردن اطلاعات ، فایل و یا هر چیز دیگه ای بگردن اول از همه در ریشه (root) سایت ها به دنبال فایلی به اسم robots.txt می گردند (مثلا http://www.site.com/robots.txt ). این فایل به روبوت می گوید روبوت کدام فایل یا دایرکتوری ها رو نباید بگردد. به این سیستم محدود سازی در اصلاح The Robots Exclusion Standard می گویند.

نکته : روبوت یا روبات یا spider یا robot یا bot که اینجا بهش اشاره می کنم اونی نیست که تو خبر علمی تلوزیون می بینید و دست و پا دارد و … این روبوت ها برنامه هایی هستن که هوشمندانه کار جستجو رو انجام میدن و موجودیت فیزیکی ندارن.
قالب (format) این فایل مخصوصه و قواعد خاص خودش رو داره. این فایل شامل رکوردهایی میشه که هر رکورد شامل دو فیلده : یه خط به اسم User-agent و یک یا چند خط Disallow. که قالبش اینجوریه:
<filed> “:” <value>
این فایل باید در حالت Unix line ender درست شده باشه(این حالت هیچ کاراکتر نامرئی و کنترلی ته هر خط و اینور و اونور فایل ایجاد نمیذاره ، بهتره اگر خواستید این فایل رو بسازید با یه برنامه ساده که فقط کارش ویرایش متن هستش مثل notepad این کارو کنید).
خط User-agent مشخص کننده روبوتی هستش که باید محدودیت ها رو زمان جستجو درنظر بگیره:
اگر روبوت خاصی رو برای ایجاد محدودیت در نظرنداشتیم و خواستیم همه روبوت ها رو در جستجوی سایت محدود کنیم بجای نوشتن اسم روبوت از “*” استفاده می کنیم ، یعنی:
نکته کنکوری : اگر اسم این روبوت ها رو نداشتید کافیه به فایل log سایتتون یه نگاهی بندازید و درخواست هایی که فایل robots.txt رو میخواستن چک کنید. بیشتر موتورهای جستجو اسم های کوتاه و تابلویی برای روبوت هاشون میذارن.
دومین قسمت رکورد شامل Disallow هستش. این خط ها شامل اسم فایل ها و/یا دایرکتوریهایی هستن که روبوت حق گشتن اونها رو نداره. برای مثال ، خط زیر به روبوت میگه که حق گشتن فایل email.htm رو نداره.
با این دستور میشه جستجوی دایرکتوری ها رو هم محدود کرد:
که خط بالا به روبوت جستجوگر میگه حق گشتن دایرکتوری cgi-bin رو نداره.
نکته: در این خطوط میتونید از wildcardها استفاده کنید. مثلا با نوشتن Dissallow : /b*b/ روبوت دایرکتوریهایی که حرف اول و آخرشون b هستش (مثلا bob ، barb ، bxxb) رو نمیگرده. در ضمن میتونید قسمتی از نام فایل و یا دایرکتوری رو بنویسید ، مثلا با نوشتن Disallow : /bob روبوت فایل و دایرکتوریهایی مثل bob.htm ، /bob/index.htm ، /bobdirectory رو نمیگرده.
اگر خط Disallow رو خالی بذارید ، روبوت فرض میکنه که حق گشتن تمامی فایل ها و دایرکتوریها رو داره. در ضمن هر خط Disallow رو باید برای هر روبوتی که میخواهید محدود کنید به کار ببرید. اگر فایل خالی robots.txt رو خالی بذارید یا اصلا نداشته باشید باعث میشه که روبوت محدودیت جستجو نداشته باشه و همه دایرکتوری و فایل ها رو بگرده.
فضاهای خالی و commentها:
هر خطی که در فایل robots.txt با حرف # شروع بشه یا دارای این حرف باشه باعث میشه روبوت به بقیه اون خط توجهی نکنه و اون متن حالت توضیحی پیدا کنه. مثلا:
# in file baraye mahdood kardane robot ha mibashad
Dissallow : bob #tozihat
نکته : بعضی از روبوت ها بخوبی نمی تونن توضیحات رو از دستورها جدا کنن و ممکنه برداشت های متفاوت و غلطی بکنن مثلا در مورد خط دوم ممکنه روبوت خیال کنه که نباید فایل ها و دایرکتوریهایی که شامل bob#tozihat هستن رو بگرده و در زمان جستجو فایلها و دایرکتوریهایی که شامل کلمه bob هستن رو بگرده.
فضاهای خالی در اول خطوط مجاز هستش ، ولی ضروری نیست. یعنی دو خط زیر هیچ فرقی برای روبوت فرقی ندارن:
Disallow : bob
توسعه استاندارد فایل های روبوت:
تو استاندارهای جدیدی که برای این فایل داره وضع میشه کلمات کلیدی و دستورات دیگه هم داره گذاشته میشه (مثل Allow) که این فایل رو مهمتر و کارآمد تر میکنه.
مثال ها:
دو خط زیر باعث میشن که تمام روبوت ها بدون محدودیت بتونن کل فایلها و دایرکتوریهای سایت رو بگردن :
Disallow :
دو خط زیر هم باعث میشن که روبوت ها نتونن فایلها و دایرکتوریها رو جستجو کنن :
Disallow : /
سه خط زیر باعث میشن که روبوت ها نتونن دایرکتوری های cgi-bin و images رو بگردن :
Disallow : /cgi-bin/
Disallow : /images/
دو خط زیر باعث میشه روبات Roverdog اجازه جستجوی فایلها و دایرکتوریها رو نداشته باشه:
Disallow : /
دو خط زیر باعث میشن که روبوت googlebot نتونه فایل (صفحه) cheese.htm رو بگرده:
Disallow : cheese.htm
نکته : بهترین مثالها رو میتونید از فایل های روبوت سایت های بزرگ و معروف مثل cnn ، yahoo ، msn و … بدست بیارید.