فایل robots.txt چیست؟
از فایل robots.txt برای مدیریت ترافیک مصرفی توسط ربات ها استفاده می شود بسته به نوع فایل شما می توانید از جدول زیر راهنمایی اولیه را دریافت کنید:
کاربرد robots.txt نسبت به نوع صفحه یا فایل شما | |
صفحه وب (وب سایت) |
برای جلوگیری از کراول صفحات بی اهمیت در سایت یا برخی از موارد مثل یک فایل pdf که ارزشی نداشته باشد می توانید از robots.txt استفاده کنید و دستورات لازم را بنویسید تا گوگل فایل مربوطه را خزش یا کراول نکند این کار کمک می کند ترافیک سایت را مدیریت کنید.
اگر url ای از سایت را با این روش مسدود کرده باشید باز هم در نتایج جستجو خواهد بود این روش برای فایلهای ویدیویی، فایلهای PDF و سایر فایلهای غیر HTML قابل قبول برای گوگل است. |
فایل های چندرسانه ای |
از فایل robots.txt برای مدیریت درست کراول ربات موتور جستجو استفاده کنید مثلا برای جلوگیری از نمایش فایل های تصویری، ویدیویی و صوتی در نتایج جستجوی گوگل استفاده کنید |
فایل منبع | اگر برای نشان دادن یک فایل نیاز به منبعی نیست می توانید آن را از دسترس گوگل با روشی که گفته شد خارج کنید در غیر اینصورت اجازه دهید عملیات خزش انجام شود |
فایل robots.txt چه محدودیت هایی دارد؟
باید بدانید در استفاده از robots.txt محدودیت هایی دارید که باید دقیق آشنا بشید با این محدودیت ها تا دچار اشتباه نشوید این 3 گزینه را دقیق به یاد داشته باشید:
- دستورات robots.txt ممکن است توسط همه موتورهای جستجو پشتیبانی نشود. دستورالعملهای موجود در فایلهای robot.txt نمیتوانند رفتار خزنده را در سایت شما اعمال کنند. این به خزنده بستگی دارد که از آنها اطاعت کند. در حالی که Googlebot و سایر خزندههای وب معتبر از دستورالعملهای این فایل پیروی میکنند، خزندههای دیگر ممکن است این کار را نکنند. بنابراین، اگر میخواهید اطلاعات را از خزندههای مخفی نگه دارید، بهتر است از روشهای مسدودسازی دیگر مانند محافظت از فایلهای خصوصی با رمز عبور روی سرور خود استفاده کنید.
- هر خزنده ای ممکن است سینتکس کد شما را متفاوت تفسیر کند اگرچه خزندههای وب معتبر دستورالعملهای موجود در فایل robots.txt را قبول میکنند، اما هر خزنده ممکن است دستورالعملها را متفاوت تفسیر کند. شما باید سینتکس مناسب برای آدرس دادن به خزنده های وب مختلف را بدانید زیرا ممکن است برخی دستورالعمل های خاصی را درک نکنند.
- url ای که در robots.txt نوایندکس شده است، در صورت لینک به سایت یا urlهای دیگر، همچنان میتواند ایندکس شود. در حالی که Google محتوای مسدود شده توسط یک فایل robots.txt را نمیخزد یا فهرستبندی نمیکند، اما اگر از مکانهای دیگر در وب لینک داده شده باشد، ممکن است URL غیرمجاز را پیدا کرده و فهرستبندی کند. در نتیجه، آدرس URL و احتمالاً سایر اطلاعات عمومی در دسترس مانند متن انکرتکست در پیوندهای صفحه همچنان می توانند در نتایج جستجوی Google ظاهر شوند. برای جلوگیری از نمایش صحیح URL خود در نتایج جستجوی Google، از فایل های سرور خود با رمز عبور محافظت کنید ، باز هم تاکید میکنیم از متای noindex برای حذف کامل استفاده کنید.
آموزش ساخت فایل robots.txt
برای ساخت فایل robots.txt و دسترسی موتورهای جستجو این فایل باید در ریشه اصلی سایت قرار بگیرد یعنی نقطه شروع سایت شما از پوشه ای در هاست یا سرور فعلیتون مثلا سایت jobteam.ir آدرس سایت فعلی ما است که از طریق آدرس jobteam.ir/robots.txt قابل دسترسی خواهد بود. دقت کنید این فقط یک فایل ساده با پسوند txt است.
همه مسیرها در حالت عادی برای ربات ها قابل دسترسی هستند مگر اینکه شما با دستوراتی ساده قوانینی برای دسترسی ایجاد کنید در مثال ذیل فایل robots.txt با دو قانون ساده را مشاهده می کنید:
User-agent: Googlebot
Disallow: /nogooglebot/
User-agent: *
Allow: /
Sitemap: https://jobteam.ir/sitemap.xml
در کد بالا Googlebot (خط 1 و 2) مجاز به خزیدن در url ای که با nogooglebot شروع می شود نخواهد بود در دستور دوم (خط 3 و 4) سایر ربات ها قادر به خزیدن در هر نوع url ای هستند که اگر نوشته نمی شد هم همین تاثیر را داشت خط آخر نیز فایل نقشه سایت را به خزنده ها معرفی می کند.
مراحل ساخت و تست فایل robots.txt
- فایلی به نام robots.txt ایجاد کنید (دقت کنید دقیقا نام باید robots باشد با پسوند فایل txt)
- قوانین مدنظر خود را به فایل اضافه کنید
- این فایل را در مسیر اصلی سایت خود اضافه کنید
- در آخر فایل را تست کنید تا از درستی قوانین خود مطلع شوید
در cms هایی مثل وردپرس و wix این فایل را خود cms میسازد و از طریق خود cms به راحتی قابلیت تغییرات هست اما باز هم می توانید به صورت دستی تغییرات را از طریق هاست به این فایل اعمال کنید.
ساخت فایل robots.txt با پسوند txt
برای ساخت فایل robots.txt می توانید از ویرایشگر های مختلفی استفاده کنید مثل vi،notepad و ... که برای موتورهای جستجو نیز معتبر خواهد بود به هیچ عنوان از برنامه هایی مثل word و دیگر واژه پردازها استفاده نکنید چون این برنامه ها نحوه کدگزاری متفاوتی دارند و در برخی موارد کاراکترهای به فایل اضافه می کنند که ربات ها را دچار مشکل خواهد کرد
حتما دقت کنید که فایل را با کدگزاری UTF-8 ایجاد کنید.
قوانین فایل robots.txt
- نام فایل باید robots.txt باشد.
- فقط یک فایل به این اسم می توانید داشته باشید
- باید در مسیر اصلی سایت قرار داشته باشد
- پورت و ساب دامنه ها می توانند برای خود فایل robots.txt داشته باشند
- فایل شما فقط بر روی پورت فعلی یا ساب دامینی که اعمال کردید قوانین را اعمال خواهد کرد و برای ساب دامین ها و پورت های دیگر بی اثر خواهد بود
- فایل robots.txt باید یک فایل متنی کدگذاری شده UTF-8 باشد (که شامل ASCII است). Google ممکن است نویسههایی را که بخشی از محدوده UTF-8 نیستند نادیده بگیرد، و احتمالاً قوانین robot.txt را نامعتبر میکند.
فرمت فایل robots.txt
فایل robots.txt باید یک فایل متنی ساده با کدگذاری UTF-8 باشد و خطوط باید با CR یا CR/LF یا LF از هم جدا شوند.
Google خطوط نامعتبر را در فایلهای robots.txt، از جمله علامت ترتیب بایت یونیکد (BOM) در ابتدای این فایل نادیده میگیرد و فقط از خطوط معتبر استفاده میکند. به عنوان مثال، اگر محتوای دانلود شده به جای قوانین robots.txt HTML باشد، گوگل سعی می کند محتوا را تجزیه کند و قوانین را استخراج کند و هر چیز دیگری را نادیده بگیرد.
به طور مشابه، اگر رمزگذاری نویسه فایل robots.txt UTF-8 نباشد، Google ممکن است نویسههایی را که بخشی از محدوده UTF-8 نیستند نادیده بگیرد و قوانین این فایل را نامعتبر کند.
Google در حال حاضر محدودیت اندازه فایل robots.txt را 500 کیلوبایت (KiB) اعمال می کند. محتوایی که پس از حداکثر اندازه فایل است نادیده گرفته می شود. میتوانید با ادغام دستورالعملهایی که منجر به ایجاد یک فایل بزرگتر میشود، اندازه فایل را کاهش دهید. به عنوان مثال، مطالب حذف شده را در یک فهرست جداگانه قرار دهید.
سینتکس و قوانین دستورات robots.txt برای ربات گوگل
فایل robots.txt یکسری قوانین در نوشتن دستورات دارد این دستورات برای ربات های موتورهای جستجو قابل هضم و اجراست خطوط معتبر robot.txt از یک فیلد، یک کولون و یک مقدار تشکیل شده است. فضاهای خالی اختیاری هستند، اما برای بهبود خوانایی توصیه می شود. فاصله در ابتدا و انتهای خط نادیده گرفته شود
گوگل از فیلدهای زیر پشتیبانی می کند:
- user-agent: مشخص می کند که قوانین روی کدام خزنده اعمال می شود.
- allow: یک مسیر URL که ممکن است خزیده شود.
- disallow: یک مسیر URL که ممکن است خزیده نشود.
- sitemap: URL کامل نقشه سایت.
دستورالعمل های ذیل را برای این مورد در نظر بگیرید:
- یک فایل robots.txt از یک یا چند مجموعه دستور تشکیل شده است.
- هر مجموعه دستور از چندین قانون یا دستورالعمل (دستورالعمل) تشکیل شده است، یک دستورالعمل در هر خط. هر مجموعه دستور با یک User-agent خط شروع می شود که هدف مجموعه دستور ها را مشخص می کند.
- یک مجموعه دستور اطلاعات زیر را می دهد:
- مجموعه دستور برای چه کسانی اعمال می شود (user-agent).
- کدام دایرکتوری ها یا فایل هایی که user-agent می تواند به آن دسترسی داشته باشد.
- کدام دایرکتوری ها یا فایل هایی که user-agent نمی تواند به آن دسترسی داشته باشد.
- خزنده ها مجموعه دستور ها را از بالا به پایین پردازش می کنند. یک user-agent می تواند تنها با یک مجموعه قوانین مطابقت داشته باشد، که اولین و خاص ترین مجموعه دستوری است که با یک user-agent مشخص مطابقت دارد.
- فرض پیشفرض این است که یک user-agent میتواند هر صفحه یا فهرستی را که توسط یک disallow قانون مسدود نشده است بخزد.
- قواعد دستوری به حروف کوچک و بزرگ حساس هستند. به عنوان مثال، disallow: /file.asp در مورد اعمال می شود https://jobteam.ir/file.asp، اما نه https://jobteam.ir/FILE.asp.
- با علامت # می توانید کامنت بنویسید در واقع شروع کامنت رو نشون میده و هیچ تاثیری برای ربات ها نخواهد داشت
دستوراتی که ربات گوگل در فایل robots.txt پشتیبانی می کند:
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 : [حداقل یک یا چند disallow یا چند allow ورودی در هر مجموعه دستور] دایرکتوری یا صفحه ای، نسبت به دامنه ریشه، که نمی خواهید انجین کاربر آن را بخزد. اگر سینتکس یا کد شما به یک صفحه اشاره دارد، باید نام کامل صفحه همانطور که در مرورگر نشان داده شده است باشد. باید با یک کاراکتر بک اسلش (/) شروع شود و اگر به دایرکتوری اشاره دارد باید با بک اسلش (/) علامت پایان یابد.
- allow : [حداقل یک یا چند disallow یا چند allow ورودی در هر مجموعه دستور] دایرکتوری یا صفحه، نسبت به دامنه ریشه، که ممکن است توسط انجین کاربری که ذکر شد، خزیده شود. این برای نادیده گرفتن یک disallowدستورالعمل استفاده می شود تا اجازه خزیدن یک زیر شاخه یا صفحه در یک فهرست غیر مجاز را بدهد. برای یک صفحه، نام کامل صفحه را همانطور که در مرورگر نشان داده شده است، مشخص کنید. در مورد دایرکتوری، دستور را با /علامت پایان دهید.
- sitemap : [اختیاری، صفر یا بیشتر در هر فایل] آدرس نقشه سایت برای این وب سایت. URL نقشه سایت باید یک URL کاملا واجد شرایط باشد. Google موارد جایگزین http/https/www.non-www را فرض نمیکند یا بررسی نمیکند. نقشه سایت راه خوبی برای نشان دادن محتوایی است که گوگل باید بخزد، بر خلاف محتوایی که می تواند یا نمی تواند بخزد. مثال:
Sitemap: https://jobteam.ir/sitemap.xml
Sitemap: http://www.jobteam.ir/sitemap.xml
همه دستورات، به جز sitemap، از علامت (*) برای پیشوند مسیر، پسوند یا کل رشته پشتیبانی می کنند.
خطوطی که با هیچ یک از این دستورالعمل ها مطابقت ندارند نادیده گرفته می شوند. مثل همان بحث کامنت نویسی در برنامه نویسی.
گروه بندی قوانین robots.txt
اگر چندین گروه در یک فایل robots.txt وجود داشته باشد که مربوط به یک انجین کاربر خاص باشد، خزندههای Google به صورت داخلی گروهها را ادغام میکنند. مثلا:
user-agent: googlebot-news
disallow: /fish
user-agent: *
disallow: /carrots
user-agent: googlebot-news
disallow: /shrimp
خزنده ها به طور داخلی قوانین را بر اساس عامل کاربر گروه بندی می کنند، به عنوان مثال:
user-agent: googlebot-news
disallow: /fish
disallow: /shrimp
user-agent: *
disallow: /carrots
قوانینی غیر از allow, disallow و user-agent توسط تجزیه کننده robots.txt نادیده گرفته می شوند. این بدان معنی است که کد ذیل زیر به عنوان یک گروه در نظر گرفته می شود و بنابراین هر دو user-agent نوع a و b تحت تأثیر دستور disallow: / قرار می گیرند:
user-agent: a
sitemap: https://example.com/sitemap.xml
user-agent: b
disallow: /
هنگامی که خزنده ها قوانین robots.txt را پردازش می کنند، خط sitemap را نادیده می گیرند. برای مثال، خزندهها قطعه کد قبلی را به این ترتیب درک میکنند:
user-agent: a
user-agent: b
disallow: /
آنالیز فایل robots تست درستی آن با ابزار گوگل
برای آزمایش و آنالیز این فایل اول چک کنید که آیا به صورت عمومی می توان به این فایل دسترسی داشت یا نه برای همین بعد از آپلود این فایل در هاست (مسیر اصلی پروژه) مثل این آدرس در جاب تیم می توانید به این فایل دسترسی داشته باشید https://jobteam.ir/robots.txt دقت کنید برای سایت خودتون بجای jobteam.ir از اسم دامنه فعلیتون استفاده کنید. اگر بعد از وارد کردن آدرس گفته شده دسترسی دیده شدن را داشتید می توانید این فایل را از طریق ابزار گوگل بررسی کنید
گوگل دو راه برای آزمایش کدنویسی درست این فایل به شما پیشنهاد کرده است:
- آزمایشگر robots.txt در کنسول جستجو. شما فقط می توانید از این ابزار برای فایل های robots.txt استفاده کنید که از قبل در سایت شما قابل دسترسی هستند. https://support.google.com/webmasters/answer/6062598
- اگر برنامه نویس هستید، کتابخانه منبع باز robots.txt Google را بررسی کرده و بسازید، که در جستجوی Google نیز استفاده میشود. می توانید از این ابزار برای آزمایش فایل هایی از این جنس به صورت محلی در رایانه خود استفاده کنید. github.com/google/robotstxt
بعد از بارگذاری این فایل در هاست خود نیازی به هیچ فعالیت دیگری برای معرفی به گوگل ندارید خود این موتور جستجو در همین مسیر استاندارد آپدیت های شما را نیز دریافت خواهد کرد.
گروه بندی خطوط و قوانین در robots.txt
می توانید قوانینی را که برای چندین انجین اعمال می شود با تکرار user-agent خطوط برای هر خزنده، گروه بندی کنید. مثلا:
user-agent: a
disallow: /c
user-agent: b
disallow: /d
user-agent: e
user-agent: f
disallow: /g
user-agent: h
در این مثال چهار گروه قانون متمایز وجود دارد:
- یک گروه برای انجین کاربر "a".
- یک گروه برای انجین کاربر "b".
- یک گروه برای عوامل کاربر "e" و "f".
- یک گروه برای انجینکاربر "h".
ترتیب تقدم برای انجین های کاربران در فایل robots.txt
فقط یک گروه برای یک خزنده خاص معتبر است. خزندههای Google با یافتن گروهی با خاصترین انجین کاربر که با انجین کاربر خزنده مطابقت دارد، در فایل robots.txt گروه درستی از قوانین را تعیین میکنند. گروه های دیگر نادیده گرفته می شوند. همه متنهای غیر منطبق نادیده گرفته میشوند (به عنوان مثال، هر دو googlebot/1.2 و *googlebot معادل هستند با googlebot). ترتیب گروه ها در این فایل بی ربط است.
اگر بیش از یک گروه خاص برای یک انجین کاربر اعلام شده باشد، همه قوانین از گروه های قابل اعمال برای انجین کاربر خاص به صورت داخلی در یک گروه واحد ترکیب می شوند. گروه های خاص انجین کاربر و گروه های عمومی (*) با هم ترکیب نمی شوند. مثال ها:
تطبیق فیلدهای user-agent در فایل robots.txt
user-agent: googlebot-news
(group 1)
user-agent: *
(group 2)
user-agent: googlebot
(group 3)
به این ترتیب خزنده ها گروه مربوطه را انتخاب می کنند:
گروه دنبال شده در هر خزنده | |
اخبار Googlebot | googlebot-news از گروه 1 پیروی می کند، زیرا گروه 1 خاص ترین گروه است. |
Googlebot (وب) | googlebot گروه 3 را دنبال می کند. |
Googlebot Storebot | Storebot-Google از گروه 2 پیروی می کند، زیرا گروه خاصی وجود ندارد. |
Googlebot News (هنگام خزیدن تصاویر) | هنگام خزیدن تصاویر، googlebot-news گروه 1 googlebot-news را دنبال می کند. تصاویر را برای Google Images نمی خزند، بنابراین فقط گروه 1 را دنبال می کند. |
ربات دیگر (وب) | سایر خزنده های گوگل گروه 2 را دنبال می کنند. |
ربات دیگر (اخبار) | سایر خزندههای Google که محتوای خبری را میخزند، اما بهعنوان گروه 2 دنبالکننده شناسایی نمیشوند googlebot-news. حتی اگر ورودی برای یک خزنده مرتبط وجود داشته باشد، فقط در صورتی معتبر است که بهطور خاص مطابقت داشته باشد. |
قوانین دستوری برای فایل robots.txt
قوانین مفید و کلی در مورد نحوه نوشتن کد در این فایل | |
خریدن کامل سایت را برای ربات ها ممنوع کنیم |
در این کد User-agent برابر با علامت ستاره قرار گرفته که یعنی تمام پلتفرم های مختلف و دستور Disallow برابر اسلش قرار گرفته که یعنی ریشه و تمام مسیرهای دیگر دیگر قابل کراول یا خریدن نباشند
|
خزیدن پوشه (دایرکتوری) و محتویات آن را ممنوع کنید |
یک اسلش رو به جلو به نام پوشه اضافه کنید تا خزیدن کل پوشه و محتویان آن ممنوع شود.
در این کد User-agent برابر با علامت ستاره قرار گرفته که یعنی تمام پلتفرم های مختلف و دستور disallow اول تمام فایل های و خود پوشه /calendar/ و مسیرهای بعد از این پوشه رو برای ربات ممنوع می کند /junk/ هم مثل مثال قبل عمل میکند اما در دستور سوم مسیر بعد از contemporary ممنوع خواهد بود |
اجازه دسترسی به یک خزنده را بدهید |
فقط googlebot-news ممکن است کل سایت را بخزد.
|
اجازه دسترسی به همه خرنده ها به جز یک خزنده خاص را صادر کنید |
Unnecessarybot ممکن است در سایت خزیده نشوند، همه ربات های دیگر ممکن است.
|
خزیدن یک آدرس از سایت را ممنوع کنید |
به عنوان مثال، صفحه jquery.html واقع در مسیر https://jobteam.ir/jquery.html و jquery-new.html در پوشه jquery را مجاز نکنید.
|
ممنوع کردن خزیدن کل سایت بجز مسیر public |
در مثال ذیل خزنده ها فقط می توانند مسیر public شما را کراول کنند
|
یک تصویر خاص را از ربات Google Images مسدود کنید |
به عنوان مثال، جلوی کراول یک تصویر به اسم logo.png را در جاب تیم برای ربات Google Images مسدود می کنیم دقت کنید این فایل در مسیر https://jobteam.ir/img/logo.png قرار دارد پس برای مسدود سازی از کد ذیل استفاده می کنیم
|
مسدود سازی تمام تصاویر برای ربات Google Images |
گوگل نمی تواند تصاویر و ویدیوها را بدون خزیدن در آنها فهرست کند.
|
یک پسوند خاص را برای ممنوع کردن خزیدن مشخص کنید |
به عنوان مثال، خزیدن همه فایل های gif را ممنوع کنید.
|
خزیدن کل سایت را ممنوع کنید، اما اجازه دهید ربات Mediapartners-Google صفحات شما را بخزد |
این پیاده سازی صفحات شما را از نتایج جستجو پنهان می کند، اما خزنده وب Mediapartners-Google همچنان می تواند آنها را تجزیه و تحلیل کند تا تصمیم بگیرد چه تبلیغاتی را به بازدیدکنندگان سایت شما نشان دهد.
|
برای مطابقت با URL هایی که به یک پسوند خاص ختم می شوند، از علامت *و $ استفاده کنید |
به عنوان مثال، همه فایل ها xls را غیر مجاز کنید.
|
مطابقت URL بر اساس مقادیر مسیر در robots.txt
Google از مقدار مسیر در دستورالعملها allow و disallow بهعنوان مبنایی برای تعیین اینکه آیا یک قانون برای یک URL خاص در یک سایت اعمال میشود یا خیر، استفاده میکند. این کار با مقایسه قاعده با مؤلفه مسیر URL که خزنده سعی در واکشی آن را دارد کار می کند.
گوگل، بینگ و سایر موتورهای جستجوی اصلی از شکل محدودی از حروف عام برای مقادیر مسیر پشتیبانی می کنند. این کاراکترهای wildcard عبارتند از:
- * 0 یا بیشتر از هر کاراکتر معتبر را مشخص می کند.
- $ انتهای URL را مشخص می کند.
منطبقات مسیرهای وارد در سایت برای درک بیشتر این موضوع برای شما | |
/ | با ریشه و هر URL سطح پایینتر مطابقت دارد. |
/* | معادل علامت بک اسلش |
/$ | فقط با ریشه مطابقت دارد. هر URL سطح پایین تر برای خزیدن مجاز است |
/fish |
با هر مسیری که با /fish شروع می شود مطابقت دارد. توجه داشته باشید که تطبیق به حروف کوچک و بزرگ حساس است. مطابقات:
مطابقت ندارد:
|
/fish* |
معادل /fish. علامت ستاره آخر نادیده گرفته می شود. مطابقات:
مطابقت ندارد:
|
/fish/ |
با هر چیزی در پوشه /fish/ مطابقت دارد. مطابقات:
مطابقت ندارد:
|
/*.php |
با هر مسیری که حاوی .php مطابقات:
مطابقت ندارد:
|
/*.php$ |
با هر مسیری که به .php ختم می شود مطابقت دارد. مطابقات:
مطابقت ندارد:
|
/fish*.php |
با هر مسیری که حاوی /fishو .php، به ترتیب، مطابقت دارد. مطابقات:
مطابقت ندارد: /Fish.PHP |
ترتیب تقدم برای قوانین فایل robots.txt
هنگام تطبیق قوانین robots.txt با URL ها، خزنده ها از خاص ترین قانون بر اساس طول مسیر قانون استفاده می کنند. در صورت وجود قوانین متناقض، از جمله مواردی که دارای حروف عام (*) هستند، Google از حداقل قانون محدودکننده استفاده می کند.
مثالهای زیر نشان میدهند که خزندههای Google کدام قانون را روی یک URL خاص اعمال میکنند.
نمونه مثال های ترتیب تقدم قوانین در فایل robots.txt | |
http://example.com/page |
دستور قابل اجرا : allow: /p چون خاص تر است. |
http://example.com/folder/page |
دستور قابل اجرا : allow: /folder زیرا در صورت تضاد قوانین، گوگل از حداقل قانون محدودکننده استفاده می کند. |
http://example.com/page.htm |
دستور قابل اجرا : disallow: /*.htm، زیرا مسیر قانون طولانیتر است و با کاراکترهای بیشتری در URL مطابقت دارد، بنابراین مشخصتر است. |
http://example.com/page.php5 |
دستور قابل اجرا : allow: /page زیرا در صورت تضاد قوانین، گوگل از حداقل قانون محدودکننده استفاده می کند. |
http://example.com/ |
دستور قابل اجرا : allow: /$ چون خاص تر است. |
http://example.com/page.htm |
دستور قابل اجرا : disallow: /، زیرا دستور allow فقط در URL ریشه اعمال می شود. |
نحوه دانلود robots.txt
به روش های مختلفی می توانید این فایل را دانلود کنید:
- وارد مسیر فعلی این فایل شوید در سایت جاب تیم این آدرس https://jobteam.ir/robots.txt میشه بعد میتونید با کلید های ctrl + s را بزنید این فایل توسط مرورگر با پسوند txt قابل ذخیره هستش
- با استفاده از دستور ذیل در ترمینال لینوکس اقدام به دانلود این فایل کنید (با ابزار گیت در ویندوز هم می توانید این دستور را اجرا کنید)
curl https://jobteam.ir/robots.txt -o robots.txt
- برای دانلود یک کپی از این فایل از تستینگ robots.txt در سرچ کنسول استفاده کنید .
- روی ارسال در گوشه سمت راست پایین ویرایشگر robots.txt کلیک کنید. این عمل یک گفتگوی ارسال را باز می کند.
- کد خود را از صفحه robots.txt تستر با کلیک روی دانلود در کادر گفتگوی ارسال دانلود کنید.
به روز رسانی robots.txt برای موتورهای جستجو
ربات های گوگل هر 24 ساعت یکبار عملیات خزیدن این فایل را انجام می دهند اگر نیاز دارید سریعتر این فایل توسط گوگل بازبینی شود مراحل ذیل را در robots.txt tester انجام دهید:
- روی مشاهده نسخه آپلود شده (View uploaded version) کلیک کنید تا ببینید robots.txt زنده شما نسخه ای است که می خواهید Google آن را بخزد.
- روی ارسال (Submit) کلیک کنید تا به Google اطلاع دهید که تغییراتی در فایل robots.txt شما ایجاد شده است و از Google درخواست کنید آن را بخزد.
- با بازخوانی صفحه در مرورگر خود برای به روز رسانی ویرایشگر ابزار و دیدن کد این فایل به صورت زنده، بررسی کنید که جدیدترین نسخه شما با موفقیت توسط Google خزیده شده است. پس از بازخوانی صفحه، همچنین میتوانید روی منوی کشویی کلیک کنید تا مُهر زمانی را که Google برای اولین بار آخرین نسخه فایل robots.txt شما را مشاهده کرده است، مشاهده کنید.
محل ذخیره سازی و محدوده اعتبار یک فایل robots.txt
شما باید فایل robots.txt را در دایرکتوری سطح بالای یک سایت، روی یک پروتکل پشتیبانی شده قرار دهید. آدرس این فایل (مانند سایر URL ها) به حروف کوچک و بزرگ حساس است. در مورد جستجوی گوگل، پروتکل های پشتیبانی شده HTTP، HTTPS و FTP هستند. در HTTP و HTTPS، خزنده ها این فایل را با یک درخواست غیرشرطی HTTP واکشی می کنند مثل درخواست از نوع GET. در FTP، خزنده ها از یک استاندارد استفاده می کنند RETR (RETRIEVE).
قوانین فهرست شده در فایل robots.txt فقط برای میزبان، پروتکل و شماره پورتی که این فایل در آن میزبانی می شود اعمال می شود.
نمونه هایی از آدرس های معتبر و غیرمعتبر در فایل robots.txt
جدول زیر شامل نمونههایی از آدرسهای اینترنتی robots.txt و مسیرهای URL است که برای آنها معتبر هستند. ستون یک شامل URL است و ستون دو شامل دامنههایی است که آن برای آنها اعمال میشود و نمیخواهد.
نمونه آدرس های معتبر و غیر معتبر در robots.txt | |
http://example.com/robots.txt |
این حالت کلی برای سایت است. برای سایر زیر دامنهها، پروتکلها یا شمارههای پورت معتبر نیست. برای همه فایلها در همه زیرشاخهها در همان دامنه، پروتکل و شماره پورت معتبر است. معتبر برای:
|
http://www.example.com/robots.txt |
robots.txt در یک زیر دامنه فقط برای آن زیر دامنه معتبر است. معتبر برای: http://www.example.com/ معتبر نیست برای:
|
http://example.com/folder/robots.txt | این فایل معتبر نیست. خزنده ها فایل های robots.txt را در زیر شاخه ها بررسی نمی کنند. |
http://www.exämple.com/robots.txt | معتبر برای:
معتبر نیست برای: http://www.example.com/ |
ftp://example.com/robots.txt |
معتبر برای: ftp://example.com/ معتبر نیست برای: http://example.com/ |
http://212.96.82.21/robots.txt |
یک robots.txt با یک آدرس IP به عنوان نام میزبان فقط برای خزیدن آن آدرس IP به عنوان نام میزبان معتبر است. این به طور خودکار برای همه وبسایتهایی که روی آن آدرس IP میزبانی میشوند معتبر نیست (اگرچه ممکن است فایل robots.txt به اشتراک گذاشته شود، در این صورت تحت نام میزبان مشترک نیز در دسترس خواهد بود). معتبر برای: http://212.96.82.21/ معتبر نیست برای: http://example.com/ (حتی اگر در 212.96.82.21 میزبانی شود) |
http://example.com:80/robots.txt |
شماره پورت های استاندارد ( 80 برای http و 443 برای https و پورت 21 برای ftp ) معادل نام های میزبان پیش فرض آنها است. معتبر برای:
معتبر نیست برای: http://example.com:81/ |
http://example.com:8181/robots.txt |
فایلهای Robots.txt روی شمارههای پورت غیراستاندارد فقط برای محتوایی که از طریق آن شمارههای پورت در دسترس است معتبر هستند. معتبر برای: http://example.com:8181/ معتبر نیست برای: http://example.com/ |
خطاها و کدهای وضعیت http برای فایل robots.txt
هنگام درخواست فایل robots.txt، کد وضعیت HTTP پاسخ سرور بر نحوه استفاده از این فایل توسط خزندههای Google تأثیر میگذارد. جدول زیر نحوه برخورد ربات Googlebot با این فایلها را برای کدهای وضعیت مختلف HTTP خلاصه میکند.
رسیدگی به خطاها و کدهای وضعیت HTTP | |
2xx (success) | کدهای وضعیت HTTP که نشان دهنده موفقیت هستند، از خزندههای Google میخواهند فایل robots.txt را همانطور که توسط سرور ارائه شده است پردازش کنند. |
3xx (redirection) |
گوگل حداقل پنج ریدایرکت را طبق تعریف RFC 1945 قبول می کند و سپس متوقف می کند و آن را به عنوان یک 404 robots.txt در نظر می گیرد. این همچنین برای هر URL غیرمجاز در زنجیره تغییر مسیر اعمال می شود، زیرا خزنده به دلیل تغییر مسیرها نمی تواند قوانین را واکشی کند. Google از تغییر مسیرهای منطقی در فایلهای robots.txt (فریمها، جاوا اسکریپت یا تغییر مسیرهای نوع تازهسازی متا) پیروی نمیکند |
4xx (client errors) |
خزنده های گوگل همه خطاهای 4xx را نادیده می گیرند، به جز خطای 429 ، بهگونهای که گویی این فایل معتبر نیست. این به این معنی است که گوگل فرض می کند که هیچ محدودیتی برای خزیدن وجود ندارد. |
5xx (server errors) |
از آنجایی که سرور نمی تواند پاسخ قطعی به درخواست robots.txt گوگل بدهد، گوگل موقتاً خطاهای سرور را 5xx و 229 تفسیر می کند که گویی سایت کاملاً غیر مجاز است. Google سعی میکند فایل robots.txt را بخزد تا زمانی که کد وضعیت HTTP بدون خطای سرور را دریافت کند. یک 503 (service unavailable) خطا منجر به تلاش مجدد نسبتاً مکرر می شود. اگر این فایل بیش از 30 روز در دسترس نباشد، Google از آخرین نسخه کش شده robots.txt استفاده خواهد کرد. اگر در دسترس نباشد، گوگل فرض می کند که هیچ محدودیتی برای خزیدن وجود ندارد. اگر نیاز به تعلیق موقت خزیدن دارید، توصیه میکنیم برای هر URL در سایت یک کد وضعیت 503 HTTP ارائه دهید. |
سایر خطاها | فایل robots.txt که به دلیل مشکلات DNS یا شبکه قابل واکشی یا خواندن نیست، مانند timeouts، پاسخهای نامعتبر، بازنشانی یا قطع شدن اتصالات، و خطاهای HTTP، به عنوان یک خطای سرور تلقی میشود . |
معمولا صفحاتی که در این فایل قرار میگیرند آدرس هایی هستند که امکان ایجاد آدرس های متفاوتی را ایجاد میکنن، مثل صفحات پنل ادمین، سرچ، فیلتر، utm و...
نکته: یک اشتباه رایج که در پروژه ها تکرار میشود این است که کاراکتر ؟ رو توی فایل برای محدود کردن صفحات سرچ محدود می کنند!
این کار اشتباهه چون خیلی از فایل های css, js توی آدرسشون علامت سوال هست و با این کار اونا هم محدود میشن (البته در هر سایتی هم صدق نمیکنه)
نمونه فایل robots.txt سایت جاب تیم
در سایت جاب تیم بخش هایی رو disallow کردیم مثلا مسیر سبد خرید، که در سایت ما بر چند مورد اضافه شده و ما همه مسیرهای ختم شده به سبد خرید رو disallow کردیم بخش بعدی مسیر جستجو هست و بخش آخر مسیر public که نمیخایم این مسیر هم توسط کراولرها بررسی شود:
user-agent: *
disallow: /Cart
disallow: /Cart/*
disallow: /CartPackage
disallow: /CartPackage/*
disallow: /CartCourse
disallow: /CartCourse/*
disallow: *?*
disallow: /search?q=*
disallow: /public
disallow: /public/*
Sitemap: https://jobteam.ir/sitemap.xml
آخر سر هم حتما فایل robots.txt خودتون رو توی robots.txt tester گوگل تست کنید تا از محدود شدنشون مطمئن بشید.
مثال از feed ها در robots.txt
اگر نگران این مورد هستید که feed ها باعث هدر رفتن بودجه خزش سایت شما میشه این دستور رو توی فایل robots.txt سایتتون بزارین :
Disallow : *feed*
جلوگیری از کراول کل سایت توسط موتورهای جستجو با robots
گاهی نیاز داریم در سایت های تخصصی و یا در سایت هایی که امکان نوایندکس در قالب وجود ندارد جلوی خزش ربات موتور جستجو رو بگیریم در مثال ذیل نمونه کدی برای اینکار برای شما آماده شده است:
User-agent: *
Disallow: /
جلوگیری از کراول یک آدرس صفحه در سایت با فایل robots.txt
گاهی نیاز هست یک آدرس خاص را برای کراول موتورهای جستجوی محدود کنیم این عمل عموما بخاطر عدم دسترسی به حذف یا ریدایرکت صفحه مورد نظر اتفاق خواهد افتاد. که در مثال ذیل این روش به صورت ساده برای شما آماده شده است تا مفهوم کاملتری درک کنید:
user-agent: *
Disallow: /index_test.php
Disallow: /products/test_product.html
برای آشنایی بیشتر فرض کنید همین صفحه robots.txt در جاب تیم را می خواهیم برای موتورهای جستجو غیرقابل کراول کنیم پس به صورت ذیل عمل خواهیم کرد:
User-agent: *
Disallow: ProductUser/752-robots$
جلوگیری از خواندن اطلاعات سایت توسط ربات های چت جی پی تی با robots.txt
با استفاده از robots.txt وب سایتها میتونن از خوانده شدن محتواشون توسط چت جی بی تی (chat gpt) جلوگیری کنند.
User-agent: GPTBot
Disallow: /
از اونجایی که وردپرس کار رو تو همه چیز ساده کرده آیا راهی ساده تر و کم ریسک تر در وردپرس وجود داره
سوالاتون واضح نیست و بهتره دقیقتر بپرسید
آیا میشه بدون ورود به هاست فایل robots.txt تغییر داد ؟
اگر قالبتون در وردپرس اجازه میده بله در غیر اینصورت باید دسترسی از طریق هاست باشد
یه سری صفحات داریم تو سایت که نوایندکس هستن ولی بازم تو قسمت سرچ کنسول نشون داده میشه که کراول میشن. تو قسمت «Excluded by ‘noindex’ tag» سرچ کنسول نشون داده میشن. به نظرتون به صورت disallow در فایل «robots.txt» لازمه وارد بشن؟ به خاطر کم کردن بودجه خزش میپرسم. یا به نظرتون خیلی تاثیری نداره.
بعد اگه بخوام disallow کنم به این صورت صحیح هست؟
disallow: wp-content/uploads/revslider
دقت کنید با robots میتونید اطلاع بدید که موتور جستجو دیگه این مسیر رو نیاز نیست کراول کنه بعد از مدتی کم کم تعداد این صفحات کم خواهد شد ولی میتونید از طریق سرچ کنسول هم ریمو کنید
آیا امکان فعال کردن robot.txt صرفا برای بعضی از مقالات سایت می باشد؟
اگر منظورتون جلوگیری از کراول است بله میشه اما باید دونه به دونه آدرس یکتای مقالات رو بدون آدرس اصلی سایت در فایل robots اضافه کنید
سلام ممنون بابت توضیح خیلی خوبتون
یه سوال داشتم
این کد در فایل روبوتس یکی از سایت هامه. میشه بگید یعنی چی؟
Disallow: /c/
Disallow: /a/
Disallow: /f/
احتمالا در سایت مورد نظر شما دایرکتورهایی به اسم c ، a و f وجود داشته که متاسفانه قابل کراول بوده و الان به ربات ها گفتن که این مسیرها نیازی به کراول ندارن