چقدر از ترافیک سایتها ربات است؟
۴۰٫۸٪ درخواستهای ایران به سایتها از ربات است.
و ۵۹٫۲٪ از آدمها؛ ۷ روز گذشته، با دستهبندی خود منبع.
بهروز شده ۱ ساعت پیش
کدام خزندهها میآیند در کل دنیا، ۷ روز گذشته.
سهم هر خزنده از درخواستهای خزندههای جستجو و هوش مصنوعی که منبع میبیند. این بخش جهانی است، نه فقط ایران.
منبع: Cloudflare Radar · CC BY-NC 4.0 · خزندههای هوش مصنوعی و جستجو، جهانی
برای چه میخزند
سایتهای بزرگ چه کسانی را بستهاند از فایل robots.txt.
از ۴٬۲۴۲ فایل robots.txt سایتهای پربازدید دنیا، این خزندهها بیشتر از همه بسته شدهاند. عدد، تعداد سایتهاست.
- بستهی کامل
- بستهی بخشی از سایت
منبع: Cloudflare Radar · CC BY-NC 4.0 · robots.txt سایتهای پربازدید
سوالهایی که میپرسند.
- خزنده گوگل چیست؟
- رباتی (Googlebot) که صفحههای سایتها را میخواند تا در جستجوی گوگل نشانشان دهد؛ مثل کتابداری که همهی کتابها را ورق میزند تا فهرست بسازد.
- GPTBot و ClaudeBot چه میکنند؟
- خزندههای شرکتهای هوش مصنوعیاند؛ بعضی برای آموزش مدلها میخوانند، بعضی برای جواب دادن به جستجوی کاربر. هدف هر کدام در همین صفحه آمده است.
- با robots.txt جلوی خزندهها را بگیرم؟
- تصمیمش با صاحب سایت است. robots.txt یک خواهش است، نه قفل: خزندههای معتبر رعایتش میکنند. در همین صفحه میبینید سایتهای بزرگ کدام خزندهها را بیشتر بستهاند.
- چرا اینقدر از ترافیک ربات است؟
- ربات فقط خزندهی جستجو نیست: برنامههای پایش، سرویسهای خودکار و ابزارهای دیگر هم درخواست میفرستند. منبع درخواستها را از روی رفتارشان ربات یا آدم دستهبندی میکند.
بیشتر
رباتها و خزندههای وب: خزنده گوگل چیست، رباتهای هوش مصنوعی مثل GPTBot و ClaudeBot، و فایل robots.txt به زبان ساده
خزندهی وب برنامهای است که خودش، بی آنکه آدمی پشتش نشسته باشد، صفحههای سایتها را یکییکی باز میکند و میخواند؛ خزندهی گوگل (Googlebot) معروفترینشان است. در صفحهی رباتها و خزندههای وب در رادار سفید میبینید چه سهمی از درخواستهایی که از ایران به سایتها میرسد کار رباتهاست، در کل دنیا کدام خزندهها بیشتر سر میزنند و برای چه، و سایتهای بزرگ در فایل robots.txt کدامها را بستهاند. در این راهنما با مثال کتابدار میگوییم خزنده چیست، گوگل و بینگ و خزندههای هوش مصنوعی چطور کار میکنند، و robots.txt را خط به خط با نمونه باز میکنیم.
این صفحه دقیقا چه چیزی را نشان میدهد؟
پیش از هر توضیحی بهتر است بدانید عددهای این صفحه از کجا آمدهاند، چون عددی که منبع و بازهاش معلوم نباشد بیشتر گیج میکند تا کمک.
دادهها از Cloudflare Radar میآید، با مجوز CC BY-NC 4.0. Cloudflare شرکتی است که بخش بزرگی از سایتهای دنیا از شبکهاش رد میشوند، و Radar بخش عمومی آن است که عددهای اینترنت را منتشر میکند. رادار سفید این عددها را از راه رابط عمومی Radar (یعنی همان دری که برنامهها از آن داده میگیرند) سر ساعتهای مشخص میگیرد؛ عددهای این صفحه هر ۶ ساعت یک بار تازه میشوند و ۳۰ روز نگه داشته میشوند. هر عدد فقط دربارهی درخواستهایی است که از شبکهی Cloudflare گذشتهاند، نه کل اینترنت.
وقتی صفحه را باز میکنید، مرورگرتان به Cloudflare وصل نمیشود؛ صفحه از روی نسخهای ساخته میشود که رادار سفید پیشتر گرفته است. اگر یک بار Cloudflare در دسترس نباشد، صفحه این را میگوید: «دسترسی به کلادفلر به دلیل اختلال قطع است و ممکن است به خاطر قطعی اینترنت بینالملل باشد». آن وقت آخرین داده را نشان میدهد و با زمان گذشته دربارهاش حرف میزند.
در این صفحه چهار چیز میبینید:
- سهم ربات و آدم در درخواستهای ایران در ۷ روز گذشته. یعنی از همهی درخواستهایی که در این یک هفته از ایران به سایتهای پشت Cloudflare رسیده، چند درصد را Cloudflare ربات دانسته و چند درصد آدم.
- سهم هر خزنده در دنیا. این یکی مال ایران نیست، مال همهی دنیاست: از درخواستهای خزندههای جستجو و هوش مصنوعی، چه سهمی مال Googlebot است، چه سهمی مال ClaudeBot، GPTBot و بقیه.
- هدف خزیدن در دنیا. همان درخواستها، این بار بر اساس اینکه برای چه آمدهاند: آموزش هوش مصنوعی، جستجو، کار کاربر، یا اعلامنشده.
- robots.txt سایتهای بزرگ. Cloudflare فایل robots.txt چند هزار سایت پربازدید را خوانده و شمرده که هر خزندهی هوش مصنوعی در چند تا کامل یا بخشی بسته شده است.
چرا بخش دوم تا چهارم «دنیا» است و نه «ایران»؟ چون خزندهها از هر جای دنیا سراغ هر سایتی میروند و معنی «ایران» در دادهی خزندههای Cloudflare روشن نیست؛ رادار سفید عددی را که معنایش روشن نیست به اسم ایران نشان نمیدهد. عدد امروز هر بخش بالای همین صفحه است؛ این راهنما عدد را تکرار نمیکند، چون عدد هر روز عوض میشود و نوشتهی امروز فردا کهنه است.
ربات و خزنده یعنی چه؟ کتابداری که همهی کتابها را میخواند
فرض کنید کتابخانهای دارید با میلیونها کتاب، و هر روز هزاران کتاب تازه به قفسهها اضافه میشود. یک نفر میآید و میپرسد «کتابی دربارهی پرورش گل رز دارید؟». کتابدار نمیتواند همان لحظه همهی قفسهها را بگردد. پس کار دیگری میکند: از قبل، هر روز، کتابها را یکییکی برمیدارد، ورق میزند، میفهمد هر کدام دربارهی چیست و در یک دفتر بزرگ مینویسد. وقتی کسی سوالی میپرسد، کتابدار سراغ دفترش میرود، نه سراغ قفسهها.
موتور جستجو دقیقا همین کار را با وب میکند. آن کتابدارِ ورقزن، خزنده (crawler) است: برنامهای که صفحهای را باز میکند، میخواند، پیوندهای داخلش را برمیدارد و سراغ صفحههای بعدی میرود. به این رفتنِ پیوند به پیوند «خزیدن» میگویند، چون برنامه مثل عنکبوتی روی تار وب جلو میرود. آن دفتر بزرگ هم نمایه (index) است: فهرستی که میگوید کدام صفحه دربارهی چیست.
ربات (bot) اسم کلیتری است: هر برنامهای که خودکار، بی دخالت آدم، با سایتها کار میکند. خزنده یک نوع ربات است. رباتهای دیگری هم هستند: برنامهای که هر چند دقیقه سر میزند ببیند سایت بالاست یا نه، برنامهای که قیمتها را جمع میکند، برنامهای که پیشنمایش پیوند را در یک پیامرسان میسازد. بعضی رباتها مفیدند و بعضی مزاحم، و همهشان در ترافیک یک سایت دیده میشوند.
یک نکتهی مهم: در اینترنت، هر برنامهای که صفحهای را میخواهد، خودش را با یک برچسب معرفی میکند که به آن user agent میگویند؛ یعنی «من کیام». مرورگر شما میگوید «من فلان مرورگر روی فلان سیستمعامل هستم»، و خزندهی گوگل میگوید «من Googlebot هستم». این برچسب را خود برنامه مینویسد و هر کسی میتواند هر برچسبی بنویسد. پایینتر میبینیم چرا همین نکته اهمیت دارد.
خزنده گوگل چیست و چطور کار میکند؟
Googlebot اسم کلی خزندههایی است که گوگل برای جستجو به کار میبرد. طبق راهنمای Google Search Central دربارهی Googlebot، دو نوع دارد: Googlebot Smartphone که مثل یک گوشی صفحه را میخواند، و Googlebot Desktop که مثل یک کامپیوتر رومیزی. گوگل در همین راهنما میگوید برای بیشتر سایتها نسخهی گوشی صفحه را نمایه میکند، پس بیشتر درخواستهای Googlebot از نوع گوشی است. هر دو نوع در robots.txt یک اسم دارند (Googlebot)، پس نمیشود با robots.txt یکی را راه داد و دیگری را نه.
کار Googlebot سه مرحله دارد که بهتر است از هم جدا ببینید:
- خزیدن. Googlebot نشانی صفحهها را از پیوندهای صفحههای دیگر، یا از نقشهی سایت (sitemap، یعنی فهرستی از صفحهها که صاحب سایت خودش میسازد) پیدا میکند و صفحه را میگیرد.
- نمایه کردن. گوگل محتوای صفحه را میخواند، میفهمد دربارهی چیست و آن را در نمایهاش نگه میدارد.
- نشان دادن در نتیجهها. وقتی کسی جستجو میکند، گوگل از نمایه، نه از خود سایتها، نتیجهها را بیرون میکشد.
خزیدن برای سایت شما هزینه دارد: هر بار که Googlebot صفحهای را میخواهد، سرور شما باید جواب بدهد. گوگل در همان راهنما میگوید برای بیشتر سایتها Googlebot به طور میانگین بیشتر از هر چند ثانیه یک بار سراغ سایت نمیآید، هرچند ممکن است گاهی کمی بیشتر شود.
خزندههای دیگر گوگل
گوگل فقط یک خزنده ندارد. در فهرست خزندههای گوگل اسمهای دیگری هم هست، مثل Googlebot-Image برای عکسها، Googlebot-Video برای ویدیو و GoogleOther برای کارهای دیگر گوگل. یکی از این اسمها برای بحث ما مهم است: Google-Extended. پایینتر، در بخش خزندههای هوش مصنوعی، سراغش میرویم.
از کجا بفهمم این واقعا Googlebot است؟ وارسی با DNS معکوس
یادتان هست که گفتیم user agent را خود برنامه مینویسد؟ پس هر رباتی میتواند بنویسد «من Googlebot هستم» و نباشد. اگر در گزارشهای سرورتان (log، یعنی دفتری که سرور در آن هر درخواست را ثبت میکند) Googlebot زیادی میبینید، از کجا بدانید واقعی است؟
گوگل در راهنمای وارسی Googlebot روشی میدهد که به آن DNS معکوس (reverse DNS) میگویند. اول دو کلمه را باز کنیم. DNS دفترچهی تلفن اینترنت است: اسم سایت را میگیرد و آدرس IP (یعنی شمارهی دستگاه در اینترنت) را میدهد. DNS معکوس برعکس است: آدرس IP را میدهید و میپرسید «این شماره مال چه اسمی است؟».
قدمها این است:
- آدرس IP درخواست را از گزارش سرور بردارید و با DNS معکوس بپرسید اسمش چیست. در خط فرمان (ترمینال) این کار را با دستور host و بعد آدرس IP میکنند.
- ببینید اسمی که برمیگردد به googlebot.com، google.com یا googleusercontent.com ختم میشود یا نه. اگر نه، آن درخواست از خزندهی گوگل نبوده است.
- حالا برعکس کنید: همان اسم را با DNS معمولی بپرسید و ببینید آیا همان آدرس IP اول برمیگردد.
چرا قدم سوم لازم است؟ چون صاحب هر آدرس IP میتواند برای DNS معکوس آن هر اسمی بنویسد، حتی اسمی شبیه گوگل. ولی نمیتواند در DNS خود گوگل اسمی بسازد که به آدرس او اشاره کند. پس وقتی رفت و برگشت با هم جور درآمد، درخواست واقعا از گوگل بوده است.
گوگل راه دومی هم دارد: فهرست آدرسهای IP خزندههایش را در چند فایل JSON (یعنی فایل متنی ساختاریافته که برنامهها راحت میخوانند) منتشر میکند، و میشود آدرس هر درخواست را خودکار با آن فهرست سنجید. نشانی این فایلها در همان راهنمای وارسی آمده است.
Bingbot، خزندهی بینگ
موتور جستجوی بینگ هم خزندهی خودش را دارد که اسمش Bingbot است. کارش مثل Googlebot است: صفحهها را میخزد تا در نتیجههای بینگ نشانشان بدهد. بینگ هم مثل گوگل روش وارسی با DNS معکوس را پیشنهاد میکند؛ طبق راهنمای وارسی Bingbot، اسمی که از DNS معکوس یک Bingbot واقعی برمیگردد به search.msn.com ختم میشود، و بعد با DNS معمولی رفت و برگشت را میسنجید. بینگ برای این کار ابزاری هم در بخش ابزارهای مدیران سایتش دارد.
خزندههای هوش مصنوعی: GPTBot، ClaudeBot، PerplexityBot، CCBot و Google-Extended
چند سال است که نوع تازهای از خزنده پیدا شده: خزندههایی که شرکتهای هوش مصنوعی میفرستند. اینها هم مثل کتابدار کتابها را میخوانند، ولی همهشان برای ساختن دفتر نمایه نیستند. بعضی متنها را جمع میکنند تا با آن یک مدل زبانی (یعنی برنامهای که با خواندن متن زیاد یاد گرفته متن بنویسد و جواب بدهد) را آموزش بدهند؛ بعضی برای جستجوی داخل یک دستیار هوش مصنوعیاند؛ و بعضی فقط وقتی سر میزنند که یک کاربر چیزی خواسته است.
بهترین منبع دربارهی هر خزنده، نوشتهی خود شرکتی است که آن را میفرستد. پس هر کدام را از زبان صاحبش میگوییم.
خزندههای OpenAI: GPTBot، OAI-SearchBot و ChatGPT-User
طبق صفحهی خزندههای OpenAI، این شرکت سه اسم جدا دارد:
- GPTBot برای جمع کردن محتوایی است که ممکن است در آموزش مدلهای پایهی هوش مصنوعیاش به کار برود.
- OAI-SearchBot برای نشان دادن سایتها در نتیجههای جستجوی ChatGPT است.
- ChatGPT-User وقتی سر میزند که کاربری در ChatGPT کاری خواسته که به باز کردن یک صفحه نیاز دارد. OpenAI میگوید چون این کار را کاربر شروع کرده، ممکن است قاعدههای robots.txt دربارهاش اجرا نشود.
OpenAI در همان صفحه میگوید این تنظیمها از هم جدا هستند؛ مثلا صاحب سایت میتواند OAI-SearchBot را راه بدهد تا در جستجو دیده شود و GPTBot را نه.
خزندههای Anthropic: ClaudeBot، Claude-SearchBot و Claude-User
Anthropic، سازندهی Claude، در راهنمای خزندههایش سه ربات معرفی میکند:
- ClaudeBot برای جمع کردن داده برای آموزش و ساختن مدلها.
- Claude-SearchBot برای نمایه کردن محتوا تا نتیجههای جستجو بهتر شود.
- Claude-User برای وقتی که کاربری از Claude سوالی میپرسد و Claude باید صفحهای را بخواند.
Anthropic میگوید رباتهایش قاعدههای robots.txt را رعایت میکنند و از خط Crawl-delay (یعنی «بین دو درخواست این قدر صبر کن») هم پشتیبانی میکنند. همچنین یادآوری میکند که robots.txt را برای هر زیردامنه جدا باید گذاشت.
خزندههای Perplexity: PerplexityBot و Perplexity-User
طبق صفحهی رباتهای Perplexity، PerplexityBot برای نشان دادن و پیوند دادن سایتها در نتیجههای جستجوی Perplexity است و به گفتهی خود شرکت برای آموزش مدلهای پایه به کار نمیرود؛ این ربات robots.txt را رعایت میکند. Perplexity-User وقتی سر میزند که کاربری سوالی پرسیده، و Perplexity میگوید چون درخواست را کاربر شروع کرده، این ربات معمولا robots.txt را در نظر نمیگیرد.
CCBot، خزندهی Common Crawl
CCBot خزندهی Common Crawl است، یک بنیاد غیرانتفاعی که از وب نسخهبرداری میکند و این نسخهها را رایگان در اختیار همه میگذارد، از پژوهشگران دانشگاه تا شرکتها. CCBot خودش شرکت هوش مصنوعی نیست، ولی دادهای که جمع میکند در دسترس همه است و هر کسی میتواند از آن استفاده کند. Common Crawl میگوید CCBot قاعدههای robots.txt را رعایت میکند، و هشدار میدهد که رباتهایی هستند که به دروغ خودشان را CCBot معرفی میکنند؛ برای وارسی، فهرست آدرسهایش را منتشر کرده است.
Google-Extended: اسمی که خزنده نیست
Google-Extended با بقیه فرق دارد. طبق فهرست خزندههای گوگل، این یک «نشانهی جدا» برای robots.txt است که صاحب سایت با آن میگوید آیا محتوایی که گوگل از سایتش خزیده، میتواند در آموزش نسلهای بعدی مدلهای Gemini و در پشتیبانی جوابهایشان به کار برود یا نه. Google-Extended رباتی جدا با user agent خودش نیست؛ خزیدن با همان خزندههای همیشگی گوگل انجام میشود و فقط این اسم در robots.txt معنا دارد.
نکتهی مهمی که گوگل در همان صفحه صریح گفته: Google-Extended روی بودن سایت در جستجوی گوگل اثری ندارد و نشانهای برای رتبه در جستجوی گوگل هم نیست. یعنی بستن Google-Extended با بستن Googlebot یکی نیست.
آموزش، جستجو یا کار کاربر؟ سه نوع خزیدن
حالا که اسمها را دیدید، الگو روشن میشود. بیشتر شرکتهای هوش مصنوعی برای هر هدف اسم جدایی دارند. Cloudflare هم در نوشتهای دربارهی هدف خزندههای هوش مصنوعی خزیدن را به چهار دسته تقسیم کرده، و صفحهی رادار سفید همین چهار دسته را نشان میدهد:
- آموزش (Training). خزنده متنها را جمع میکند تا مدل هوش مصنوعی با آنها آموزش ببیند. مثل کسی که کتابخانه را میخواند تا خودش باسواد شود. نمونهها: GPTBot، ClaudeBot.
- جستجو (Search). خزنده نمایه میسازد تا دستیار هوش مصنوعی بتواند در جوابهایش به صفحهها اشاره کند و پیوند بدهد. مثل کتابداری که دفتر نمایه مینویسد. نمونهها: OAI-SearchBot، Claude-SearchBot، PerplexityBot.
- کار کاربر (User action). ربات فقط وقتی صفحهای را باز میکند که یک آدم همان لحظه چیزی پرسیده یا خواسته. مثل کسی که کتابدار را میفرستد یک کتاب مشخص را بیاورد. نمونهها: ChatGPT-User، Claude-User، Perplexity-User.
- اعلامنشده (Undeclared). خزندههایی که Cloudflare به گفتهی خودش نه از صاحبشان و نه از منبع دیگری اطلاعی دربارهی هدفشان پیدا نکرده است.
این تقسیم برای صاحب سایت مهم است، چون هر کدام معاملهی متفاوتی است. خزندهی جستجو معمولا در عوض، پیوندی به سایت شما در نتیجهها میگذارد. خزندهی آموزش متن را برای ساختن مدل میخواند و لزوما پیوندی برنمیگرداند. ربات کار کاربر جای یک آدم واقعی کار میکند، و همین است که بعضی شرکتها میگویند robots.txt شاید دربارهاش اجرا نشود.
یک احتیاط: هدف هر خزنده چیزی است که صاحبش اعلام کرده. رادار سفید و Cloudflare نمیتوانند ببینند داده بعدا واقعا کجا به کار رفته؛ فقط میدانند سازنده گفته برای چیست.
Cloudflare از کجا میفهمد درخواستی ربات است یا آدم؟
حالا برسیم به عدد اول صفحه: سهم ربات و آدم در درخواستهای ایران. Cloudflare نمیتواند پشت هر درخواست را ببیند، پس حدس میزند، ولی حدسی حسابشده.
Cloudflare به هر درخواست یک امتیاز ربات (bot score) میدهد، عددی از ۱ تا ۹۹. طبق راهنمای امتیاز ربات Cloudflare، هرچه عدد پایینتر باشد، Cloudflare مطمئنتر است که درخواست خودکار بوده: امتیاز ۱ یعنی تقریبا مطمئن است ربات است، ۲ تا ۲۹ یعنی احتمالا ربات، و ۳۰ تا ۹۹ یعنی احتمالا آدم.
Cloudflare Radar از همین امتیاز دو دسته میسازد. طبق توضیح دستههای ربات در Cloudflare Radar، درخواستی با امتیاز ۱ تا ۲۹ «احتمالا خودکار» یا ربات حساب میشود و درخواستی با امتیاز ۳۰ و بالاتر «احتمالا آدم». عدد ربات و آدم در صفحهی رادار سفید همین دو دسته است.
این عدد را درست بخوانید:
- سهم درخواستهاست، نه سهم آدمها یا رباتها. یک ربات میتواند در یک دقیقه هزار درخواست بفرستد و یک آدم در همان مدت چند تا. پس سهم بالای ربات یعنی رباتها درخواست زیادی فرستادهاند، نه اینکه تعدادشان بیشتر است.
- حدس است، نه قطعیت. کلمهی «احتمالا» در اسم دستهها از خود Cloudflare است. بعضی رباتها خوب ادای آدم را درمیآورند و گاهی آدمی رفتاری شبیه ربات دارد.
- فقط سایتهای پشت Cloudflare. درخواستی که به سایتی بیرون از شبکهی Cloudflare رفته، در این عدد نیست.
- رباتهای داخل ایران هم رباتاند. این عدد میگوید درخواست از کجا آمده، نه اینکه ربات مال کیست یا خوب است یا بد. ربات پایش سایت یک شرکت ایرانی هم در همین سهم شمرده میشود.
ربات تأییدشده (verified bot) یعنی چه؟
همهی رباتها در یک سطح نیستند. Cloudflare فهرستی از رباتهای تأییدشده دارد. طبق راهنمای رباتهای تأییدشدهی Cloudflare، رباتی در این فهرست میآید که دو شرط داشته باشد: صادقانه بگوید کیست، و رفتارش آزاردهنده نباشد. «صادقانه گفتن» یعنی هویتش را با یکی از این راهها ثابت کند: امضای رمزنگاریشده، فهرست منتشرشدهی آدرسهای IP با user agent ثابت، یا همان DNS معکوس که بالاتر برای گوگل گفتیم. «آزاردهنده نبودن» یعنی robots.txt را رعایت کند، با سرعت معقول درخواست بفرستد و از خواستهی صاحب سایت طفره نرود. Cloudflare میگوید رباتی که این قاعدهها را بشکند از فهرست بیرون میرود.
ربات تأییدشده یعنی Cloudflare میداند این ربات واقعا همان است که میگوید. معنیاش این نیست که حتما باید راهش بدهید؛ آن تصمیم با صاحب سایت است.
فایل robots.txt چیست؟ تابلوی دم در کتابخانه
برگردیم به کتابخانه. فرض کنید بخشی از کتابخانه انبار است یا کتابهایش هنوز آماده نیست. دم در آن بخش تابلویی میزنید: «لطفا وارد نشوید». کتابدار مؤدب تابلو را میخواند و وارد نمیشود.
robots.txt همان تابلوست. فایلی متنی و ساده است که صاحب سایت در ریشهی سایتش میگذارد و در آن به خزندهها میگوید کجاها را بخوانند و کجاها را نه. این قرارداد از سال ۱۹۹۴ در وب بوده، ولی سالها فقط یک عرف بود. در سپتامبر ۲۰۲۲، IETF (گروهی که استانداردهای اینترنت را مینویسد) آن را با نام RFC 9309 به صورت استاندارد منتشر کرد. هرچه پایینتر دربارهی قاعدههای robots.txt میگوییم، از همین سند است، مگر جایی که منبع دیگری آورده باشیم.
فایل کجا مینشیند؟
فایل باید دقیقا در نشانی /robots.txt در ریشهی سایت باشد، مثلا example.com/robots.txt. اگر آن را در پوشهی دیگری بگذارید، خزندهها پیدایش نمیکنند. فایل باید متن ساده با رمزگذاری UTF-8 باشد (یعنی همان شکل استاندارد ذخیرهی متن که حروف همهی زبانها را میشناسد).
یک نکته که زیاد فراموش میشود: طبق راهنمای robots.txt گوگل، قاعدههای هر فایل فقط برای همان میزبان، همان پروتکل و همان درگاه است. یعنی فایلی که در www.example.com هست، برای example.com بدون www یا برای blog.example.com کاری نمیکند؛ هر کدام فایل خودشان را میخواهند.
ساختار فایل: گروهها و قاعدهها
robots.txt از چند گروه درست میشود. هر گروه با یک یا چند خط User-agent شروع میشود که میگوید این گروه برای کدام خزنده است، و بعد خطهای Disallow (یعنی «این مسیر را نخوان») و Allow (یعنی «این مسیر را بخوان»). علامت ستاره (*) به جای اسم خزنده یعنی «همهی خزندههایی که گروه مخصوص خودشان را ندارند».
سادهترین فایل، فایلی است که به همه اجازه میدهد همه جا را بخوانند. این دو خط را تصور کنید:
- User-agent: *
- Disallow:
Disallow خالی یعنی هیچ جایی بسته نیست. حالا برعکسش، فایلی که به همه میگوید هیچ جا را نخوانند:
- User-agent: *
- Disallow: /
علامت / یعنی ریشهی سایت، و چون هر نشانی سایت با / شروع میشود، این یعنی همهی سایت. تفاوت این دو فایل فقط یک علامت است، پس پیش از گذاشتن فایل، دوباره نگاهش کنید.
نمونه فایل robots.txt برای یک خزندهی مشخص
فرض کنید صاحب سایتی تصمیم گرفته یک خزندهی مشخص، مثلا GPTBot، هیچ جای سایتش را نخواند ولی بقیه آزاد باشند. فایلش دو گروه دارد. گروه اول:
- User-agent: GPTBot
- Disallow: /
و گروه دوم، با یک خط خالی فاصله:
- User-agent: *
- Disallow:
طبق RFC 9309، خزنده اسم خودش را در گروهها میگردد (بزرگی و کوچکی حروف مهم نیست) و اگر گروهی با اسم خودش پیدا کرد، فقط قاعدههای همان گروه را اجرا میکند. اگر پیدا نکرد، سراغ گروه ستاره میرود. پس GPTBot گروه اول را میخواند و بقیه گروه دوم را.
همین الگو برای هر اسم دیگری کار میکند: ClaudeBot، CCBot، PerplexityBot یا Google-Extended. این نمونه برای نشان دادن روش است، نه پیشنهاد اینکه کدام را ببندید.
بستن بخشی از سایت با Disallow و باز کردن با Allow
لازم نیست همهی سایت را ببندید. فرض کنید بخش مدیریت سایت در مسیر /admin/ است و نمیخواهید خزندهها آنجا بروند، ولی یک صفحهی عمومی در همان پوشه هست:
- User-agent: *
- Disallow: /admin/
- Allow: /admin/help.html
وقتی دو قاعده با یک نشانی جور درمیآیند، کدام برنده است؟ RFC 9309 میگوید قاعدهای که دقیقتر است، یعنی مسیرش طولانیتر است. اینجا /admin/help.html طولانیتر از /admin/ است، پس آن صفحه باز میماند و بقیهی پوشه بسته. اگر دو قاعدهی Allow و Disallow دقیقا هماندازه باشند، Allow برنده است.
دو علامت دیگر هم هست. ستاره (*) وسط مسیر یعنی «هر چند حرفی، حتی هیچ». علامت دلار ($) در آخر مسیر یعنی «نشانی همینجا تمام شود». مثلا خط Disallow: /*.pdf$ یعنی هر نشانیای که به .pdf ختم شود. علامت # هم یادداشت است؛ هرچه بعدش بیاید، خزنده نادیده میگیرد و فقط برای آدمهایی است که فایل را میخوانند.
خطهای دیگر: Sitemap و Crawl-delay
RFC 9309 فقط User-agent، Allow و Disallow را تعریف میکند و میگوید خزندهها میتوانند خطهای دیگر را هم بفهمند. دو تا معروفاند:
- Sitemap. نشانی نقشهی سایت را به خزندهها میدهد، مثلا Sitemap: و بعد نشانی کامل فایل نقشه. گوگل طبق راهنمای robots.txt خودش این خط را میخواند.
- Crawl-delay. از خزنده میخواهد بین درخواستها چند ثانیه صبر کند. همه این را نمیفهمند: گوگل در همان راهنما صریح گفته از crawl-delay پشتیبانی نمیکند، در حالی که Anthropic گفته ClaudeBot آن را رعایت میکند. پس نتیجهی این خط به خزنده بستگی دارد.
اگر فایل نباشد یا سرور خطا بدهد
RFC 9309 این را هم روشن کرده:
- اگر فایل نباشد (سرور خطای ۴۰۴ بدهد، یعنی «پیدا نشد»)، خزنده میتواند همه جا را بخواند.
- اگر سرور خطای خودش را بدهد (خطاهای ۵۰۰ به بالا، یعنی «سرور گرفتار است»)، خزنده باید فرض کند همه جا بسته است.
- خزنده باید دستکم ۵۰۰ کیبیبایت اول فایل را بخواند، و نسخهای که از فایل نگه میدارد نباید بیشتر از ۲۴ ساعت کهنه شود. یعنی اگر امروز فایل را عوض کنید، ممکن است تا یک روز طول بکشد تا همهی خزندهها ببینند.
فایل robots.txt در وردپرس
اگر سایتتان وردپرسی است و خودتان فایل robots.txt نساختهاید، باز هم وقتی نشانی /robots.txt سایت را باز کنید چیزی میبینید. طبق مستندات وردپرس دربارهی do_robots، وردپرس خودش یک robots.txt مجازی میسازد (یعنی فایلی که روی دیسک نیست و هر بار ساخته میشود) که در آن /wp-admin/ بسته است و /wp-admin/admin-ajax.php باز. اگر فایل واقعی robots.txt در ریشهی سایت بگذارید، معمولا سرور همان فایل را نشان میدهد و نسخهی مجازی کنار میرود. برای اطمینان، بعد از هر تغییر نشانی /robots.txt سایت را در مرورگر باز کنید و ببینید دقیقا چه چیزی نشان داده میشود.
robots.txt خواهش است، نه قفل
این مهمترین نکتهی این راهنماست. تابلوی «لطفا وارد نشوید» کتابدار مؤدب را بیرون نگه میدارد، ولی در را قفل نمیکند. هر کسی که بخواهد میتواند تابلو را نادیده بگیرد.
RFC 9309 خودش صریح میگوید این قرارداد جای ابزارهای واقعی امنیت را نمیگیرد. چند پیامد عملی دارد:
- خزندههای بیادب. robots.txt فقط روی خزندههایی اثر دارد که بخواهند رعایتش کنند. رباتی که برای سوءاستفاده آمده، اهمیتی نمیدهد. گوگل هم در معرفی robots.txt یادآوری میکند که همهی خزندهها این قاعدهها را رعایت نمیکنند.
- فایل عمومی است. هر کسی میتواند robots.txt شما را بخواند. اگر در آن بنویسید Disallow: /secret-reports/، در عمل به همه گفتهاید چنین مسیری هست. چیز محرمانه را با رمز عبور ببندید، نه با robots.txt.
- بسته بودن خزیدن با بیرون ماندن از نتیجهها یکی نیست. گوگل در همان معرفی میگوید صفحهای که در robots.txt بسته شده، اگر سایتهای دیگر به آن پیوند داده باشند، ممکن است باز هم در نتیجهها بیاید، فقط بدون توضیح. برای بیرون ماندن از نتیجههای گوگل، راهنمای گوگل noindex (دستوری که در خود صفحه یا در پاسخ سرور میگذارند و میگوید «این را در نمایه نیاور») یا رمز عبور را پیشنهاد میکند.
- رباتهای کار کاربر. همانطور که دیدیم، OpenAI و Perplexity گفتهاند رباتهایی که از طرف کاربر کار میکنند ممکن است robots.txt را در نظر نگیرند.
- ادعای اسم. robots.txt بر اساس اسمی کار میکند که ربات خودش میگوید. رباتی که اسم دیگری بگوید، گروه دیگری را میخواند. وارسی با DNS معکوس یا فهرست آدرسها راهی است برای اینکه بفهمید ربات راست میگوید یا نه.
پس robots.txt را مثل یک قرار مؤدبانه ببینید که خزندههای شناختهشده و خوشرفتار معمولا به آن پایبندند، نه دیوار.
سایتهای بزرگ در robots.txt چه کردهاند؟
بخش چهارم صفحهی رادار سفید جواب همین سوال است. Cloudflare فایل robots.txt چند هزار سایت پربازدید دنیا را خوانده و برای هر خزندهی هوش مصنوعی شمرده در چند فایل بسته شده است. طبق واژهنامهی Cloudflare Radar، فهرست اسمهایی که شمرده میشود از مخزنی عمومی به نام ai.robots.txt میآید که اسم خزندههای هوش مصنوعی را جمع کرده، و هر سایت در یکی از این حالتها قرار میگیرد:
- کاملا بسته (fully disallowed): مثل نمونهی بالا، Disallow: / برای آن خزنده.
- بخشی بسته (partially disallowed): بعضی مسیرها برای آن خزنده بسته است.
- کاملا باز یا بخشی باز: برعکس دو حالت بالا.
وقتی این بخش را میخوانید، سه چیز را در نظر داشته باشید:
- robots.txt نشاندهندهی خواسته است، نه رفتار. این عدد میگوید سایتها چه خواستهاند، نه اینکه خزنده واقعا چه کرده.
- سایتهای پربازدید با سایت شما فرق دارند. سایتی خبری با میلیونها بازدید دلیلهای خودش را دارد؛ اینکه بیشترشان کاری کردهاند، دلیل نمیشود سایت شما هم همان کار را بکند، و برعکس.
- اسمها عوض میشوند. شرکتها هر از گاهی خزندهی تازه با اسم تازه میسازند. اسمی که امروز در robots.txt نیست، روی خزندهی تازه اثری ندارد.
خزندههای هوش مصنوعی را ببندم یا نه؟
این سوالی است که بیشتر صاحبان سایت با آن به این صفحه میآیند، و جواب رادار سفید ساده است: تصمیم با صاحب سایت است. رادار سفید پیشنهاد نمیکند ببندید یا باز بگذارید. کارش این است که عدد را با منبعش نشان بدهد و روش را توضیح دهد.
چیزی که میتواند کمک کند، این است که پیش از تصمیم این سوالها را از خودتان بپرسید:
- این خزنده برای چه میآید؟ آموزش، جستجو یا کار کاربر؟ هر کدام معاملهی دیگری است. جوابش را در نوشتهی صاحب خزنده بخوانید، نه در گفتهی دیگران.
- چه چیزی را میخواهم ببندم؟ فقط آموزش؟ فقط یک بخش سایت؟ چون بیشتر شرکتها اسم جدا برای هر هدف دارند، میشود دقیق تصمیم گرفت. مثلا بستن Google-Extended طبق گفتهی گوگل روی جستجوی گوگل اثری ندارد.
- سرورم چقدر بار میکشد؟ خزیدن هزینهی سرور دارد. گزارشهای سرورتان را ببینید کدام رباتها بیشتر سر میزنند، و با DNS معکوس یا فهرست آدرسها وارسی کنید که واقعا هماناند که میگویند.
- چیز محرمانه دارم؟ اگر بله، robots.txt جای حفاظتش نیست؛ رمز عبور بگذارید.
هر تصمیمی گرفتید، بعدا هم میتوانید عوضش کنید. robots.txt یک فایل متنی است و تغییرش چند دقیقه کار دارد، هرچند ممکن است تا یک روز طول بکشد تا خزندهها نسخهی تازه را ببینند.
چند پرسش کوتاه
خزنده گوگل چیست، در یک جمله؟
برنامهای از گوگل به اسم Googlebot که صفحههای وب را پیوند به پیوند باز میکند و میخواند تا گوگل بتواند آنها را در نتیجههای جستجو نشان دهد.
رباتهای خزنده همه بدند؟
نه. خزندهی موتورهای جستجو همان چیزی است که سایت شما را در نتیجهها میآورد. رباتهای پایش، پیشنمایش پیوند و خیلی رباتهای دیگر هم مفیدند. بعضی رباتها مزاحماند، و robots.txt فقط روی رباتهای خوشرفتار اثر دارد.
GPTBot و ChatGPT-User چه فرقی دارند؟
طبق OpenAI، GPTBot برای جمع کردن محتوایی است که ممکن است در آموزش مدلها به کار برود، و ChatGPT-User وقتی سر میزند که کاربری در ChatGPT کاری خواسته. این دو در robots.txt اسم جدا دارند.
اگر Googlebot را ببندم چه میشود؟
گوگل نمیتواند محتوای صفحهها را بخواند. ولی طبق راهنمای گوگل، صفحهای که بسته شده ممکن است باز هم بدون توضیح در نتیجهها بیاید اگر جای دیگری به آن پیوند داده باشند. برای بیرون ماندن از نتیجهها، راهنمای گوگل noindex را پیشنهاد میکند.
چرا سهم ربات در ایران با گزارش سرور من فرق دارد؟
چون عدد رادار سفید فقط درخواستهایی است که از ایران به سایتهای پشت Cloudflare رسیده، در ۷ روز گذشته، با حدس Cloudflare. گزارش سرور شما فقط سایت خودتان است، از همه جای دنیا، با روش شمارش خودتان.
چرا بخش خزندهها مال ایران نیست؟
چون خزندهها از هر جای دنیا سراغ هر سایتی میروند و معنی «ایران» در دادهی خزندههای Cloudflare روشن نیست. رادار سفید این بخش را برای کل دنیا نشان میدهد و این را روی صفحه میگوید.
این صفحه کی تازه میشود؟
عددهای این صفحه هر ۶ ساعت یک بار از Cloudflare Radar گرفته و ۳۰ روز نگه داشته میشوند. هر صفحه میگوید آخرین بهروزرسانی کی بوده است.
خلاصه در چند خط
- خزنده برنامهای است که مثل یک کتابدار صفحهها را پیوند به پیوند میخواند؛ ربات اسم کلیتر هر برنامهی خودکار است.
- Googlebot و Bingbot برای جستجو میخزند. برای اطمینان از اینکه ربات واقعی است، DNS معکوس و بعد DNS معمولی را بسنجید.
- خزندههای هوش مصنوعی سه هدف دارند: آموزش (GPTBot، ClaudeBot)، جستجو (OAI-SearchBot، Claude-SearchBot، PerplexityBot) و کار کاربر (ChatGPT-User، Claude-User، Perplexity-User). CCBot دادهی عمومی Common Crawl را جمع میکند و Google-Extended فقط یک اسم در robots.txt است که روی جستجوی گوگل اثری ندارد.
- Cloudflare به هر درخواست امتیاز ۱ تا ۹۹ میدهد؛ زیر ۳۰ ربات حساب میشود و ۳۰ به بالا آدم.
- robots.txt طبق RFC 9309 در ریشهی سایت مینشیند، با گروههای User-agent و قاعدههای Allow و Disallow، و قاعدهی دقیقتر برنده است.
- robots.txt خواهش است، نه قفل. چیز محرمانه را با رمز عبور ببندید.
- بستن یا باز گذاشتن خزندههای هوش مصنوعی تصمیم صاحب سایت است؛ رادار سفید پیشنهادی نمیدهد.
برای دیدن عددهای امروز، به صفحهی رباتها و خزندههای وب بروید و برای بقیهی عددهای اینترنت ایران، صفحهی اصلی رادار سفید را ببینید. دادهها از Cloudflare Radar میآید، با مجوز CC BY-NC 4.0.