فایل robots.txt چیست - نام این فایل را برنامهنویسان وب و وبمستران بسیار زیاد میشوند. یک فایل متنی ساده که در ریشه سایت قرار میگیرد و یک سری دستور در آن نوشته شده است. آیا تاکنون برایتان سوال شده است که این فایل متنی ساده چه کاربردی دارد و چه اطلاعاتی در آن ذخیره میشود؟
فرض کنید وارد یک بیمارستان بزرگ شدهاید (البته امیدواریم هیچوقت پایتان به بیمارستانها باز نشود) که تاکنون آنجا نبودهاید و به دنبال قسمت خاصی از بیمارستان هستید و همچنین به دنبال اطلاعات دیگری مانند نحوه نوبت گیری، اطلاعات پزشکها و... هستید. در چنین شرایطی که شما با این مکان آشنایی ندارید، از کجا این اطلاعات را بدست میآورید؟ بله! احتمالا به بخش اطلاعات یا پذیرش رجوع میکنید و سپس سوالات خود را مطرح میکنید تا با بخشهای مختلف، نحوه پذیرش و... آشنا بشوید.
احتمالا از نام این فایل حدسهایی را زده باشید. بله! این فایل برای رباتها نوشته شده است. در واقع یک راهنما برای رباتهایی است که وقتی به وب سایت سر میزنند، حکم یک راهنما را بازی میکند و اطلاعات کلی را برای پیمایش مسیرهای مختلف سایت به آنها میدهد و به آنها میگوید چه مسیرهایی را بروند و چه مسیرهایی نباید مراجعه شود.
در ادامه با کاربرد و دستورات این فایل بیشتر آشنا خواهیم شد.
فهرست مطالب
فایل robots.txt چیست؟
robots.txt یک فایل است که به رباتها یا خزندگان موتورهای جستوجو میگوید که چه مسیرهایی را نباید خزش کنند و چه مسیرهایی را در سایت پیمایش کنند.
بسیاری از موتورهای جستوجو (مانند گوگل و بینگ) اطلاعات این فایل را میخوانند و بر اساس آن اقدام به خزش در سایت ما میکنند.
چرا فایل robots.txt مهم است؟
به صورت کلی، بیشتر وبسایتها احتمالا حتی به فایل robots.txt نیاز ندارند. زیرا ربات گوگل میتواند صفحات مهم وب سایت را تشخیص دهد و آنها را خزش کند و حتی میتواند محتوای تکراری (Duplicate Content) را تشخیص دهد و آنها را ایندکس نکند.
به طور کلی در سه حالت است که ما به این فایل نیاز خواهیم داشت
1. مسدود کردن صفحات غیر عمومی
گاهی اوقات صفحاتی در سایت ما وجود دارند که ما نمیخواهیم موتورهای جستوجو آنها را ایندکس کنند.
برای مثال صفحه پنل مدیریت وب سایت. این صفحه عمومی نیست و فقط صاحبان سایت و مدیران وب سایت باید به آن دسترسی داشته باشند. بنابراین لزومی ندارد که چنین صفحهای در گوگل ایندکس شود و بنابراین این صفحه را میتوانیم مسدود کنیم تا رباتها آن را در نظر نگیرند.
یک مثال هم برای توسعه دهندگان وب بزنیم. فرض کنید یک لینک در کدهای شما وجود دارد که وظیفه لایک کردن یک مقاله را دارد. اگر یک درخواست POST ارسال کنید ولی لینک را به صورت کامل در کد قرار دهید، باید بدانید که موتورهای جستجو قادر به یافتن آن آدرس هستند. آیا چنین آدرسی که برای API است، باید توسط موتورهای جستجو شناسایی و ایندکس شود؟ قطعا خیر! این محتوا برای رباتها نیست که آن را خزش کنند. بنابراین باید جلوی خواندن این آدرس را توسط باتها بگیرید. یکی از روشها، استفاده از فایل robots.txt است تا چنین مسئلهای را مدیریت کنید.
آیا همه APIها باید در robots.txt باشند؟ طبیعتا خیر! فقط آنهایی که رباتها به واسطه کدها میتوانند به لینکهای آنها دسترسی داشته باشند، باید مدیریت شوند.
2. افزایش بودجه خزش
یکی از دلایل دیگری که به وجود چنین فایلی در ساختار سایت خود نیاز داریم، افزایش بودجه خزش است. اگر به موتورهای جستوجو اجازه دهیم که به همه صفحات دسترسی داشته باشند و حتی بتوانند صفحاتی که مهم نیستند را هم ببینند، قطعا با مسئله کاهش بودجه خزش (Crawl) مواجه خواهیم شد. زیرا در چنین شرایطی رباتها زمان خود را صرف صفحات بیهوده خواهند کرد و همین امر باعث میشود که صفحات بی ارزش و زامبی پیج خزش شوند و این باعث کاهش بودجه خزش شما خواهد شد.
بنابراین به کمک این فایل صفحاتی که از لحاظ محتوایی ارزش خزش را ندارند، به robots.txt میتوانید معرفی کنید و یا میتوانید آنها را noindex کنید.
3. جلوگیری از ایندکس شدن منابع
یکی از راههای جلوگیری از ایندکس شدن صفحات، استفاده از روش متا تگ robots است. به کمک این روش میتوان جلوی ایندکس شدن صفحاتی که ارزش ایندکس شدن را ندارند، گرفت اما برای منابعی مانند تصاویر، فایلهای PDF، ویدیوها و... نمیتوانیم از روش meta tag استفاده کنیم. در چنین شرایطی میتوانیم به کمک فایل robots.txt جلوی چنین منابعی را از ایندکس شدن گرفت.
آموزش فایل robots.txt
اولین قدم این است که واقعا یک فایل robots.txt بسازید. این فایل باید در ریشه سایت شما قرار داشته باشد. یعنی باید از مسیر yourdomain.com/robots.txt قابل دسترس باشد. برای ساخت این فایل کافیست یک فایل متنی ساده با پسوند .txt بسازید و محتوای آن را خالی قرار بدهید.
robots.txt User-agent
User-agent درباره رباتی است که به صورت مشخص برای آن تنظیمات را قرار میدهید.
برای مثال اگر بخواهید فقط تنظیمات برای ربات گوگل باشد، باید این خط کد را در این فایل قرار دهید:
در صورتی که تنظیمات برای همه رباتها باشد:
robots.txt Disallow
به کمک این دستور میتوانید یک مسیر یا مسیرهایی را مسدود کنید تا ربات موتور جستجو آن مسیرها را خزش نکند.
در دستور بالا تمام فایلها و مسیرهایی که در مسیر images هستند، مسدود میشوند.
robots.txt Allow
به کمک این دستور میتوانید یک مسیر را اجازه دهید که رباتهای خزش آن مسیر/مسیرها را خزش کنند. به صورت پیشفرض همه مسیرها قابل خزش هستند ولی اگر بخواهید این کار را به صورت صریح به موتورهای جستجو اعلام کنید، میتوانید از این دستور استفاده کنید.
robots.txt Sitemap
به کمک این دستور میتوانید مسیر نقشه سایت را برای رباتهای خزش مشخص کنید. این فایل شامل یک نقشه کامل از مسیرهای سایت شماست که به موتورهای جستجو کمک میکند که ساختار سایت شما را بهتر درک کنند.
برای مشخص کردن یک نقشه سایت در فایل robots.txt میتوانید چنین خطی از کد را در این فایل قرار دهید: