شاید شما درباره فایل robot.txt شنیده باشید. ولی احتمالا نمیدانید واقعا چه قدرتی در این فایل به ظاهر ساده نهفته است.
قبل از خواندن این مقاله لطفاً چک کنید چه صفحاتی از سایت شما توسط گوگل ایندکس شده اند. اینکار براحتی با استفاده از کوئری زیر قابل انجام است:
site:yourdomain
نتیجه هر چیزی ممکن است باشد. از نتیجه ناامید کننده زیر:
Your search – site:your domain – did not match any documents.
Suggestions:
- Make sure that all words are spelled correctly.
- Try different keywords.
- Try more general keywords.
که نشان از عدم ایندکس کلی سایت شما دارد تا لیستی از صفحات مهم وب سایت شما.
حالا که متوجه شدید گوگل چه دیدی از سایت شما دارد، شاید بهتر باشد برای اصلاح این دید، دست بکار شوید. پس با آموزش مفاهیم اساسی فایل robots.txt شروع میکنیم.
تعاریف عمومی :
خزنده یا Crawler :
خزنده یا Crawler یک نوع ربات است که با شناخت و دنبال کردن آدرس ها، صفحات جدیدی را شناسایی و برای ایندکس به گوگل معرفی میکند.
کاربر عامل یا user agent :
مفهومی برای شناسایی و دسته بندی انواع خزنده ها
دستورات:
لیست دستورالعمل قابل استفاده برای یک خزنده یا گروهی از خزنده که در فایل robots.txt گنجانده شده است.
خب، بعد از این تعاریف کلی باید دید فایل Robots.txt دقیقاً چیست
فایل روبوتس یک فایل متنی است که در root وب سایت شما قرار میگیرد. در واقع نام این فایل بطور پیش فرض توسط Crawler گوگل در روت سایت جستجو شده و در صورت وجود، کدها و دستورات این فایل با اولویت بالا در نظر گرفته می شود.
در فایل روبوتس می تواند قسمت هایی از وب سایت خود را از دید گوگل یا سایر وب سایتها مخفی کنید.
این فایل نوشتاری، شامل دستوالعمل هایی در یک قالببندی خاص میباشد. رباتهایی که از این دستورالعملها پیروی میکنند، سعی میکنند که قبل از گرفتن فایل دیگری از این وبسایت، این فایل را مرور کرده و دستورالعملها را بخوانند. درصورت موجود نبودن این فایل رباتها بافرض اینکه صاحب سایت قصد ارائهٔ هیچ دستورالعمل خاصی را ندارد، کل سایت را بررسی میکنند.
یک فایل robots.txt مانند یک درخواست عمل میکند که درواقع چشم پوشی از فایلها یا دایرکتوریهای خاص را هنگام خزیدن یک وبسایت برای رباتها مشخص میکند.
لینکها به صفحههایی که در robots.txt لیست شدهاند اگر به صفحههای دیگری که پیمایش شدهاند لینک باشند هنوز هم میتوانند در نتایج جستجو ظاهر شوند.
هر robots.txt فقط میتواند یک منبع (origin) را پوشش دهد.مثلا برای یک وبسایت که دارای چندین زیر دامنه است هر زیر دامنه باید یک robots.txt داشته باشند. در واقع اگر example.com یک robots.txt داشته باشد اما a.example.com نداشته باشد قوانینی که بر روی example.com اعمال میشود روی a.example.com اعمال نخواهد شد همچنین هر پروتکل و پورت به robots.txt خودش نیاز دارد.
نمونه دستورات
این دستور به همهٔ رباتها میگوید که میتوانند از همهٔ فایلها بازدید کنند چون علامت * یه معنی همهٔ رباتها میباشد و چون دستور 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 وب سایت
دستور دیر خزیدن یا crawl-delay، مقداریست که توسط برخی از رباتهای خزنده وب پشتیبانی میشود. از این دستور برای محدود کردن Crawlerها استفاده میشود. از آنجایی که این دستور در استاندارد وب رباتها تعریف نشده است، هر ربات میتواند به شکل خاصی آن را تغبیر کند. برای مثال موتور جستجوی یاندکس، این دستور را به عنوان زمان تاخیر در بین مشاهده و بررسی هر وب سایت تعبیر می کند. موتور جستجوی بینگ نیز این دستور را به عنوان مهلت زمانی تعبیر می کند، مهلت زمانی که طی آن اجازه دسترسی به یک صفحه را دارد.
User-agent: *
Crawl-delay: 10
علاوه بر دستورات فایل robots.txt که در سطح سرور انجام می شوند، دستوراتی وجود دارند که در سطح صفحات وب سایت انجام می شوند. این دستورات از طریق متا تگهای رباتها و تگهای X-Robots اجرا می شوند.
از متا تگهای ربات نمی توان برای فایل های غیر HTML مانند تصاویر، فایل های متنی یا اسناد PDF استفاده کرد. از طرف دیگر از تگ های X-Robots می توان با استفاده از دستورات .htaccess برای فایل های غیر HTML استفاده کرد.
متا تگ noindex:
<meta name="robots" content="noindex" />
مدیریت کدهایHTTP
بطور کلی سه خروجی مختلف از فایل robots استنباط می شود:
1- ربات کاملاً آزاد است.
منابع :
https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt
https://support.google.com/webmasters/answer/6062608?hl=en