فایل robots.txt چیست؟

فایل robots.txt یک فایل متنی ساده است که می توان آن را با هر ویرایشگری ایجاد و با فرمت txt ذخیره نمود، این فایل در ریشه سایت قرار می گیرد (یعنی به طور مستقیم در فولدر wwwroot یا همان public_html و در بالاترین سطح) به طوری که اگر بعد از آدرس سایت، عبارت robots.txt را تایپ کنیم، این فایل در دسترس باشد:

کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
از فایل robots.txt برای مواردی استفاده می شود که نمی خواهیم صفحاتی از سایتمان توسط موتورهای جستجو (ربات های خزنده) بررسی و ایندکس شود، یا ممکن است قبلا این کار صورت گرفته باشد و اکنون می خواهیم آن صفحات را به هر دلیل حذف کنیم، البته استفاده از فایل robots.txt برای حذف لینک ها از نتایج موتورهای جستجو، تنها یک پیش شرط است (شرط لازم است نه کافی!) و برای تکمیل کار، شاید ناچار باشید به ابزار وبمستر سایت هایی مثل گوگل در آدرس:

کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
مراجعه کنید.
با این تفاسیر استفاده از این فایل همیشه هم ضروری نیست و همانطور که گفتیم، در موارد مسدود کردن دسترسی ربات ها به صفحات خاص (لینک های خاص) کاربرد دارد، اما به دلیل اینکه اکثر ربات های جستجوگر همواره این فایل را از سرور شما درخواست می کنند، بهتر است برای اجتناب از افزایش خطاهای 404 که در بخش log ها و آمار سایت جلوه خوبی ندارند، حتی شده یک فایل خالی با این نام در ریشه سایت خود قرار دهید.


نحوه تنظیم فایل robots.txt

یک فایل robots.txt معمولا از دو قانون ساده پیروی می کند، User-agent یا واسط کاربری (نوع خزنده یا ربات) و Disallow یا لینکی که دسترسی به آن را مسدود (یا مجاز) می کنیم؛ علاوه بر این، به یاد داشته باشید که در ابتدای آدرس دایرکتوری ها، باید از یک اسلش (/) نیز استفاده شود و در استفاده از حروف بزرگ یا کوچک نیز دقت کنید (به فرض دایرکتوری Image در مقایسه با image از دید ربات ها، معمولا دو آدرس متفاوت هستند).
به طور مثال اگر در فایل خود کد زیر را قرار دهیم:

کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
ربات ها با پیروی از این قانون، دیگر محتوای فولدر image را بررسی نکرده و در نتایج جستجو آن را نمایش نمی دهند، هنگامی که از علامت * برای واسط کاربری استفاده می کنیم، در واقع منظور ما تمام ربات ها هستند، البته ذکر این نکته لازم است که تنها خزنده های برخی سایت ها و شرکت های معروف و معتبر به این قوانین احترام می گذارند و در مقابل برخی حتی برای ارسال اسپم یا نفوذ به صفحات حساس سایت ها، از این فایل، سوء استفاده نیز می کنند، لذا این نکته دارای اهمیت زیادی است که هیچ گاه برای محافظت از دایرکتوری های حساس، مانند دایرکتوری مدیریت سایت، به این فایل بسنده نکنید (بلکه یک سیستم ورود و خروج مطمئن برای آن در نظر بگیرید) و بهتر است آدرس دایرکتوری مدیریت را نیز در آن قرار ندهید، بهترین روش برای جلوگیری از ایندکس شدن دایرکتوری های حساس، این است که هیچ لینک خروجی و در معرض دید و دسترس ربات در صفحات خود نداشته باشید و از طرف دیگر دسترسی به محتوای این نوع صفحات را با ایجاد سیستم دریافت نام کاربری و کلمه عبور، محدود کنید.


مثال از نحوه استفاده از فایل robots.txt

برای آشنایی بیشتر و کاربردی تر، در زیر چند مثال با تنظیمات متفاوت را آورده ایم.
استفاده از فایل robots.txt و مسدود کردن یک فولدر برای تمام ربات ها:

کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند

استفاده از فایل robots.txt و مسدود کردن یک فایل برای تمام ربات ها:
کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
استفاده از فایل robots.txt و مسدود کردن یک فایل در ریشه سایت برای تمام ربات ها:
کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
استفاده از فایل robots.txt و مسدود کردن یک فولدر برای یک ربات خاص:
کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
برای دیدن لیست کامل واسط های کاربری (User-agent) می توانید به دیتابیس موجود در آدرس زیر مراجعه کنید:
کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
مسدود بودن تمام صفحات برای تمام ربات ها:

کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
دسترسی دادن تمام صفحات برای تمام ربات ها:

کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
تنظیم فایل robots.txt با استفاده از الگو یا Pattern

علاوه بر ایجاد تنظیمات معمولی، برخی ربات ها (از جمله ربات گوگل) از قوانین پیچیده تری نیز پشتیبانی می کنند، این قوانین بی شباهت به عبارات با قاعده یا Regular Expressions نیستند، با این تفاوت که در اینجا فقط از چند علامت خاص (* ? $) استفاده می شود.
- برای تطبیق توالی از عبارات، از علامت * استفاده می شود، به طور مثال اگر ما چند دایرکتوری داشته باشیم که با عبارت فرضی book شروع شده باشند و بخواهیم با یک دستور، دسترسی ربات را به تمام آنها مسدود کنیم، خواهیم نوشت:
کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
همچنین می توان برای ساب دایرکتوری ها (دایرکتوری های زیر مجموعه) نیز این قابلیت را ایجاد کرد و از این نظر هیچ محدودیتی نیست:
کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
افزودن نقشه سایت به فایل robots.txt

علاوه بر مجاز و مسدود کردن لینک ها، دایرکتوری ها و فایل ها، فایل robots.txt یک قابلیت دیگر نیز دارد، از طریق این فایل می توانید نقشه xml سایت خود را به تمام ربات های خزنده معرفی کنید، برای انجام این کار کافی است با یک فاصله، آدرس کامل نقشه سایت خود را وارد نمائید، به فرض:
کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
سایر روش های مسدود سازی لینک ها برای ربات جستجوگر

در پایان این مطلب، بد نیست اشاره ای نیز داشته باشیم به سایر روش های مسدود سازی لینک ها و صفحات، بر روی ربات های جستجوگر، علاوه بر استفاده از فایل robots.txt جهت کنترل رفتار خزنده های با اصل و نسب وب، دو روش دیگر نیز برای این کار وجود دارد، روش اول استفاده از متاتگ noindex است که در قسمت head صفحه قرار می گیرد، به فرض:

کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند
روش دوم نیز ارسال یک سربرگ HTTP برای ربات ها در هنگامی که صفحه را درخواست می کنند است، انجام این کار در php با استفاده از توابع header و به شکل زیر صورت می گیرد:

کد:
فقط کاربران عضو میتوانند لینک ها را مشاهده کنند