می توانیl تقریباً از هر ویرایشگر متنی برای ایجاد یک فایل robots.txt استفاده کنیم. اما در برخی از سیستمها این فایل به صورت خودکار ایجاد میشوند. ما فرض میکنید که در سیستم مورد نظر شما این فایل به صورت دستی ایجاد شده است. در این حالت، به عنوان مثال، Notepad، TextEdit، gedit و nano می توانند فایل های robots.txt معتبر ایجاد کرد. اما نکتهای که باید خیلی به ان توجه کرد کدینگ فایل است: کدینگ باید UTF8 باشد. مطمئن شوید که فایل را با UTF-8 ذخیره شده است. حتی در مواردی که این فایل به صورت خودکار و برخط تولید میشود باید این کدینگ رعایت شود.
قوانین قالب و مکان فایل
نام فایل باید robots.txt باشد. در حقیقت ممکن است فایلی هم وجود نداشته باشد، اما آدرسی که برای آن در نظر گرفته شده است اینگونه است.
سایت شما می تواند تنها یک فایل robots.txt داشته باشد. اگر فایلهای دیگری برای این کار ایجاد کردهاید و در مسیرهای دیگری قرار دادهاید عملا فایدهای ندارد.
فایل robots.txt باید در ریشه میزبان سایتی باشد که برای آن اعمال می شود. به عنوان مثال، برای کنترل خزیدن در دامنه www.example.com، فایل robots.txt باید در مسیر https://www.example.com/robots.txt قرار گیرد. نمی توان آن را در یک زیر شاخه قرار داد (به عنوان مثال، در https://example.com/pages/robots.txt). برای اینکه بتوانید فایل رو در این مسیر قرار دهید احتمالا دسترسیهایی به سرور خود نیاز دارید.
فایل robots.txt باید یک فایل متنی کدگذاری شده UTF-8 باشد (که شامل ASCII است). Google ممکن است فایلهایی را که بر اساس UTF-8 کد گذاری نشدهاند را نادیده بگیرد، و در نتیجه آنچه مد نظر شما است حاصل نخواهد شد.
نحوه نوشتن قوانین در فایل Robots.txt
قوانین، دستورالعمل هایی برای خزنده ها هستند که تعیین میکنند چه بخشهایی از سایت شما باید مورد بررسی و کاوش قرار گیرد. هنگام افزودن قوانین به فایل robots.txt خود، باید این دستورالعمل ها را دنبال کنید:
یک فایل robots.txt از یک یا چند گروه (مجموعه قوانین) تشکیل شده است. هر گروه از قوانین متعدد (همچنین به عنوان دستورالعمل ها شناخته می شود) تشکیل شده است، یک قانون در هر خط. هر گروه با یک خط User-agent شروع می شود که هدف گروه ها را مشخص می کند. مثلا شما حداقل باید دو گروه داشته باشید، یکی برای رباتها و یکی برای سایر.
در هر گروه باید اطلاعات زیر را تعیین کنید:
- گروه برای چه کسانی اعمال می شود (عامل کاربر).
- کدام دایرکتوری ها یا فایل هایی که نماینده می تواند به آن دسترسی داشته باشد.
- کدام دایرکتوری ها یا فایل هایی که عامل نمی تواند به آنها دسترسی داشته باشد.
خزنده ها گروه ها را از بالا به پایین پردازش می کنند. زمانی که به یکی از این گروهها تطابق داشته باشن، قوانین گروه رو برداشته و در کارهای خودشون در نظر میگیرن.
خزندهها به صورت پیش فرض تمام مسیرها و لینکهایی که توی سایت وجود داشته باشه رو پردازش میکنند مگر اینکه در این فایل شما محدودیتهایی برای آنها در نظر گرفته باشید.
قوانین به حروف کوچک و بزرگ حساس هستند. اما ممکن هست که سرور شما حروف بزرگ و کوچک را در نظر نگیرد و همه را به صورت یکسان پردازش کند. به هر حال شما باید برای حالتهای متفاوت قوانین را گذاشته باشید.
کاراکتر # شروع یک نظر و یا یک نکته را نشان می دهد. نظرات در طول پردازش نادیده گرفته می شوند. یعنی اینکه این نوع نظرها تنها برای خود شما است که در آیند بتوانید قوانین را راحتتر درک کنید.
user-agent
[لازم است، یک یا چند در هر گروه] قانون نام مشتری خودکاری را که به عنوان خزنده موتور جستجو شناخته میشود، مشخص میکند که این قانون برای آن اعمال میشود. این اولین خط برای هر گروه قانون است. نامهای عامل کاربر گوگل در لیست نمایندگیهای کاربر گوگل فهرست شدهاند. استفاده از یک ستاره (*) با تمام خزنده ها به جز خزنده های مختلف AdsBot که باید به صراحت نامگذاری شوند مطابقت دارد. به عنوان مثال:
# Example 1: Block only Googlebot
User-agent: Googlebot
Disallow: /
# Example 2: Block Googlebot and Adsbot
User-agent: Googlebot
User-agent: AdsBot-Google
Disallow: /
# Example 3: Block all crawlers except AdsBot (AdsBot crawlers must be named explicitly)
User-agent: *
Disallow: /
Disallow
حداقل یک یا چند ورودی به ازای هر قانون را غیر مجاز میداند. به عبارت دیگر این قانون تعیین میکند که مسیرهای تعیین شده برای کاوش و خزیدن ممنوع هستند. این مسیرها باید با کاراکتر / شروع شود و اگر به دایرکتوری اشاره دارد باید با علامت / ختم شود.
Allow
حداقل یک یا چند ورودی به ازای هر قانون را مجاز نمیداند یا اجازه میدهد. یک فهرست یا صفحه، نسبت به دامنه ریشه، که ممکن است توسط عامل کاربر که ذکر شد، خزیده شود. این برای اضافه کردن استثنا به قوانین disallow استفاده میشود. به این معنی که شما ممکن است با قانون disallow یک مجموعه از صفحهات را غیر مجاز کرده باشید اما در میان آنها استثنا وجود دارد. در این حالت از این قانون استفاده میشود. در اینجا نیز مسیرها باید با کاراکتر / شروع شود و اگر به دایرکتوری اشاره دارد باید با علامت / ختم شود.
sitemap
این قانون اختیاری است. مکان نقشه سایت را تعیین میکند و میتواند چندین مسیر متفاوت را تعیین کند. استفاده از این قانون بسیار جذاب است و میتواند به خزنده این امکان را بدهد که بدون پردازش سایت مسیرهای خاص را پیدا کند. یک نمونه از این قوانین به صورت زیر است:
Sitemap: https://example.com/sitemap.xml
Sitemap: https://www.example.com/sitemap.xml
نحوه نوشتن آدرسها
در قوانین allow و disallow نوشتن آدرسها بسیار مهم است. در بالا برخی از قوانین مربوط به نوشتن آدرسها را گفتیم اما در اینجا هم آنها را مرور میکنیم و هم قوانین ویژهتر آنها را خواهیم گفت:
اولین و مهمترین نکته این است که این مسیرها هم با علامت / شروع میشوند.
دومین نکته اینکه اگر مسیری که تعیین کردهای آدرس یک پوشه است و مشا میخواهید آن پوشه به صورت کامل در قانون شما استفاده شود باید آدرس به علامت / ختم شود.
سومین نکته: از این فایل برای محدود کردن دسترسی رباتها به صفحههای خصوصی و امنیتی سایت استفاده نکنید. این فایل به صورت عمومی در دسترس همه است، این کار شما باعث میشود که مهاجمها هم از آدرسهای خصوصی شما مطلع شوند. بنابر این دسترسی به این مسیرها را حتما با روشهای امنیتی مسدود کنید و بعد آنها را با regex به سیستم اضافه کنید.
چهارمین نکته: به صورت پیشفرض عبارتهای منظم برای تعیین آدرس صفحهها regex قابل استفاده در این فایل نیست، اما برخی از خزندهها مانند گوگل و بینگ برخی از این قواعد را پذیرفتهاند. از علامت $ برای تعیین انتهای آدرس و از علامت * به عنوان wildcard یا عبارت عام استفاده میشود. برای نمونه اگه بخواهیم تمام آدرسهایی که در آن پارامتر آدرس redirect وجود نداشته باش، میتوانید به صورت زیر عمل کنید:
User-agent: *
Disallow: *?*redirect=*