آموزش جامع فایل robots.txt | robots.txt در وردپرس
عناوین مطالب
Toggleسلام خدمت همه کاربران عزیز سایت ویکی دمی. در مقاله امروز به صورت کامل می خواهیم موضوع robots.txt را مورد برسی قرار دهیم و هر چیزی که در این زمینه لازم است را در اختیار شما عزیزان قرار دهیم چون همانطور که قبلا گفتیم robots.txt یکی از فاکتور های مهم در سئو داخلی است.
استاندارد Robots Exclusion در سال 1994 تدوین شد و در واقع مجموعه ای از استانداردهای وب به حساب میاد که صاحبان وب سایت ها میتونن از اونها استفاده کنن و به موتورهای جستجو بگن که چطور وب سایتشون رو کراول (Crawl) کنن. فایل robots.txt بخشی از این مجموعه ست که مشخص می کنه ربات های موتور جستجو چطور باید یک سایت رو پیمایش، محتواهاش رو بررسی و ایندکس کنن و چطور این محتواها رو در دسترس کاربران قرار بدن.
فایل Robots.txt رو باید در مسیر روت دامنه سایتتون قرار بدین تا بتونین مدیریت کنین یک موتور جستجو کدوم فایل یا دایرکتوری ها رو crawl (پیمایش) کنه. به عنوان مثال ممکنه یک آلبوم عکس یا فایل PDF در پوشه مخفی داشته باشین و نخواین گوگل اونها رو کراول کنه. موتورهای جستجوی اصلی مثل گوگل، بینگ، بایدو، یاندکس و … از این استانداردها پیروی می کنن.
خوب حالا که به طور کلی با فایل Robots.txt آشنا شدین و متوجه شدین چه کاربرد مهمی داره، میخوام بهتون نشون بدم چطور یک فایل Robots.txt ایجاد کنین و چطور بعضی از فایل ها و دایرکتوری های وردپرس رو از موتورهای جستجو مخفی نگه دارین. اگه به این موضوع علاقه دارین تو این پست همراه من باشین تا بتونین همراه با من و مرحله به مرحله یک فایل Robots.txt بسازین.
قوانین اصلی استاندارد Robots.txt
میشه یک فایل Robots.txt رو در چند ثانیه ساخت. فقط کافیه ویرایشگر متنی سیستم عاملتون رو باز کنین و یک فایل خالی رو به اسم Robots.txt ذخیره کنین، بعد قوانین لازم رو به این فایل اضافه کنین و تو مسیر روت دامنه تون آپلودش کنین. آدرس این فایل باید به این صورت باشه: www.yourwebsite.com/robots.txt
این فایل باید حتما در مسیر روت قرار بگیره حتی اگر از وردپرس استفاده و در یک مسیر subdirectory نصبش کردین. برای تعیین سطح دسترسی، پیشنهاد من اینه که پرمیشن 644 (سطح دسترسی پیشفرض برای فایل ها ) رو بهش بدین. در ضمن از پلاگین WP Robots Txt وردپرس هم می تونین استفاده کنین، این پلاگین بهتون کمک می کنه فایل های Robots.txt رو مستقیما از طریق پنل ادمین وردپرس ویرایش کنین و دیگه نیازی به دوباره آپلود کردن این فایل نیست.
هر وقت یک موتور جستجو بخواد سایت شما رو پیمایش کنه در مسیر روت به دنبال فایل Robots.txt می گرده. درک کامل این استاندارد خیلی سخت نیست فقط کافیه چند تا قانون ساده رو یاد بگیرین، قوانینی که معمولا directive (دستورالعمل) هستن. دو تا از دستورالعمل های مهم این استاندارد اینها هستن:
- User-agent – برای یک موتور جستجو یک قانون تعریف می کنه
- Disallow – به موتور جستجو میگه که یک فایل، صفحه یا دایرکتوری رو crawl و index نکنه
استفاده از نماد * با user agent به این معنیه که این دستور برای همه موتورهای جستجو نوشته شده. به عنوان مثال، با اضافه کردن کد زیر به فایل روبات وب سایت تون به هیچ موتور جستجویی اجازه نمیدین هیچ صفحه ای از وب سایتتون رو کراول کنه:
User-agent: *
Disallow: /
دستورالعمل بالا برای زمانی مناسبه که در حال توسعه یک وب سایت جدید هستین و نمی خواین موتورهای جستجو صفحاتی که هنوز کامل نشدن رو ایندکس کنن.
کدی که در ادامه می نویسم مشخص می کنه که همه موتورهای جستجو می تونن وب سایت شما رو کراول کنن، البته نوشتن این کد در فایل روبات ضروری نیست و حتی اگر این کد رو ننویسین باز هم موتورهای جستجو سری به سایت شما خواهند زد.
User-agent: *
Disallow:
اگر به مثال زیر دقت کنین متوجه می شین که من با استفاده از /images/ یک پوشه عکس رو مشخص کردم نه با آدرس کامل www.yourwebsite.com/images/، بخاطر اینکه robots.txt از مسیرهای مرتبط استفاده می کنن نه آدرس دقیق URL. علامت / هم اشاره به مسیر روت داره پس بنابراین منظور کل وب سایت شماست. حواستون باشه که URLها حساس به حروف بزرگ و کوچک هستن، پس وقتی که یک آدرس، فایل یا دایرکتوری رو مشخص می کنین به حروف بزرگ و کوچک دقت کنین.
User-agent: *
Disallow: /images/
اگر تصمیم دارین که دستورالعملی رو برای یک موتور جستجوی خاص بنویسین، باید اسم Spider اون موتور جستجو رو حتما بدونین. به عنوان مثال، Googlebot-Image قوانین رو برای اسپایدر Google Images تعریف می کنه.
User-agent: Googlebot-Image
Disallow: /images/
اگر تصمیم دارین از چند تا User Agent خاص استفاده کنین حتما باید در ابتدای فایل Robots.txt اونها رو به صورت یک لیست معرفی کنین.
فقط موتورهای جستجو نیستن که سایت شما رو کراول می کنن، بخاطر همینه که معمولا از اصطلاح user agent، robot یا bot به جای Crawler استفاده می شه. تعداد بات های اینترنت که می تونن سایت شما رو کراول کنن خیلی زیاده. وب سایت Bots vs Browsers به تازگی حدود 1.4 میلیون user agent در دیتابیس خودش لیست کرده و هر روز داره به تعداد این لیست اضافه می شه. این لیست شامل Browser ها، وسایل بازی، سیستم های عامل، بات ها و … می شه.
همونطور که در بالا گفتیم برای اینکه یک دستورالعمل رو بتونین برای یک موتور جستجوی خاص بنویسین باید اسم اسپایدر اون موتور جستجو رو بدونین. اینجا اسم چند تا از اسپایدرهای معروف رو که ممکنه ازشون استفاده کنین براتون می نویسم:
- موتور جستجوی بینگ: Bingbot
- موتور جستجوی گوگل: Googlebot
- موتور جستجوی تصویری گوگل: Googlebot-Image
- موتور جستجوی خبری گوگل: Google-News
- موتور جستجوی Ask: Teoma
مطالعه بیشتر: خدمات سئو و بهینه سازی سایت
قوانین غیراستاندارد Robots.txt
User agent و disallow رو همه کراولرها پشتیبانی می کنن. بجز این دو دستورالعمل های دیگه ای هم هستن که میتونین استفاده کنین. این دستورالعمل ها رو غیر استاندارد می دونن چون همه کراولرها اونها رو پشتیبانی نمی کنن، البته در عمل اکثر موتورهای جستجو این قوانین رو می شناسن.
- Allow – به یک موتور جستجو اعلام میکنه که میتونه یک فایل یا دایرکتوری رو ایندکس کنه
- Sitemap – موقعیت قرار گرفتن فایل سایت مپ شما رو مشخص می کنه
- Crawl-delay – زمان بین ارسال درخواست ها به سرور رو بر حسب ثانیه مشخص می کنه
- Host – در صورت استفاده از Mirror، دامین اصلی رو به موتورهای جستجو معرفی می کنه
برای اینکه یک موتور جستجو بیاد و سایت شما رو پیمایش کنه از دستورالعمل allow استفاده کنین، که به صورت پیش فرض هم این اتفاق میفته. در بعضی شرایط خاص این دستورالعمل خیلی مفیده. مثلا زمانی که با یک سری دستورالعمل همه موتورهای جستجو رو بلاک کردین تا صفحات شما ایندکس نشه، اما میخواین فقط به یک موتور جستجو مثل بینگ اجازه بدین که سایت شما رو پیمایش کنه باید این قانون رو لحاظ کنین. حتی می تونین کل وب سایت رو بلاک کنین و فقط اجازه پیمایش از یک فایل یا دایرکتوری خاص رو بدین.
User-agent: Googlebot-Image
Disallow: /images/
Allow: /images/background-images/
Allow: /images/logo.png
توجه کنین که دو قطعه کد زیر دقیقا یک کار رو انجام میدن:
User-agent: *
Allow: /
و
User-agent: *
Disallow:
همونطور که قبلا هم گفتم ممکنه هیچوقت نیازی به استفاده از allow نداشته باشین که به موتورهای جستجو اعلام کنین که سایت تون رو پیمایش کنن چون به صورت پیش فرض اونها این کار رو انجام میدن. در استفاده از این دستورالعمل ها ممکنه موتورهای جستجوی متفاوت رفتار متفاوتی هم داشته باشن. Ask از Disallow استفاده می کنه تا بتونه یک دایرکتوری خاص رو پیمایش کنه اما گوگل و بینگ فقط با استفاده از allow بخش های خاصی از وب سایت رو کراول می کنن. اگر یک فایل robots.txt رو چک کنین متوجه می شین که دستورالعمل allow همیشه برای subdirectory ها و فایل ها و عکس هایی که در دایرکتوری مخفی هستن استفاده میشه. در این صورت این دو دستورالعمل باید با هم نوشته بشن:
User-agent: Bingbot
Disallow: /files
Allow: /files/eBook-subscribe.pdf/
سایت مپ در robots.txt
مشخص کردن سایت مپ به موتورهای جستجو کمک می کنه تا سریعتر نقشه سایت تون رو دربیارن و بتونن محتواهای سایت رو سریعتر شناسایی و ایندکس کنن. اگر بخواین تو فایل robots.txt چند تا سایت مپ داشته باشین باید از دستورالعمل sitemap استفاده کنین. البته در نظر داشته باشین وقتی که مشخص می کنین فایل سایت مپ شما کجا قرار داره، نیازی به تعریفuser agent ندارین. در حالت کلی، سایت مپ رو در هر جایی از فایل robots.txt از ابتدا تا انتها میشه تعریف کرد.
Sitemap: http://www.yourwebsite.com/sitemap_index.xml
Sitemap: http://www.yourwebsite.com/category-sitemap.xml
Sitemap: http://www.yourwebsite.com/page-sitemap.xml
Sitemap: http://www.yourwebsite.com/post-sitemap.xml
Sitemap: http://www.yourwebsite.com/forum-sitemap.xml
Sitemap: http://www.yourwebsite.com/topic-sitemap.xml
Sitemap: http://www.yourwebsite.com/post_tag-sitemap.xml
بعضی از موتورهای جستجو از دستوالعمل crawl delay پشتیبانی می کنن. این دستور میزان فاصله بین درخواست هایی که به سرور ارسال میشه رو برای یک user agent خاص به ثانیه مشخص میکنه.
User-agent: teoma
Crawl-delay: 15
فقط توجه داشته باشین که گوگل این دستورالعمل رو پشتیبانی نمی کنه. اگر بخواین این زمان رو برای اسپایدر گوگل تغییر بدین باید حتما از ابزار وب مستر گوگل استفاده کنین و در بخش تنظیمات سایت این کار رو انجام بدین.
تو این قسمت می تونین زمان crawl delay رو از 500 تا 0.5 ثانیه تغییر بدین. فیلدی هم برای اینکه عدد موردنظرتون رو مستقیم وارد کنین وجود نداره باید از قسمت اسلایدر استفاده کنین و Crawl rate رو مشخص کنین. علاوه بر این، برای اسپایدرهای مختلف گوگل زمان های متفاوتی رو هم نمی تونین انتخاب کنین. اگر دو تا user agent متفاوت از گوگل مثل Google image و Google news دارین، نمی تونین زمان های متفاوتی برای crawl delay اونها انتخاب کنین و هر زمانی که مشخص کنین برای همه کراولر های گوگل استفاده میشه.
فقط چند تا از موتورهای جستجو مثل گوگل و یاندکس (موتور جستجوی روسی) به شما اجازه استفاده از دستورالعمل Host رو میدن. اگر از چند تا سرور mirror استفاده می کنین با استفاده از این دستور می تونین سرور اصلی تون رو به موتور جستجو معرفی کنین. این موضوع برای وب سایت های خیلی بزرگ مفیده، مثلا وقتی که از mirror برای اضافه کردن پهنای باند برای دانلود فیلم استفاده می کنن. من خودم تا حالا از این دستور استفاده نکردم، اما اگر تصمیم به این کار دارین باید این دستور رو در انتهای فایل robots.txt و بعد از مشخص کردن crawl delay قرار بدین.
Host: www.mypreferredwebsite.com
حتما در نظر داشته باشین قوانینی که در فایل robots.txt تعریف می کنین با قوانین روبات متا تگ مغایرت نداشته باشه، چون موتور جستجو قوانین محدود کننده ای برای سایت تون در نظر می گیره.
تکنیک های پیشرفته Robots.txt
موتورهای جستجوی بزرگ مثل گوگل و بینگ از اپراتور * در فایل robots.txt پشتیبانی می کنن. این اپراتور برای مشخص کردن چند نوع فایل همسان خیلی مفیده. اپراتور * می تونه برای یک دستور که به صورت متوالی باید انجام بشه هم استفاده بشه. مثلا کد زیر همه عکسهایی که اسمشون با logo شروع میشه رو بلاک میکنه:
User-agent: *
Disallow: /images/logo*.jpg
کد بالا همه عکسهایی که در پوشه images هستن و اسمشون ممکنه logo.jpg، logo1.jpg، logo2.jpg، logonew.jpg و logo-old.jpg باشه رو شناسایی می کنه و اجازه پیمایش اونها رو به موتور جستجو نمیده. فقط حواستون باشه که * اگر در انتهای یک دستور نوشته بشه عملا هیچ تاثیری نداره.
به عنوان مثال Disallow: about.html* هیچ تفاوتی با Disallow:about.html نداره. اما مثلا در کد زیر با استفاده از * همه محتواها که در دایرکتوری هایی هستن که اسمشون با test شروع میشه رو می تونین بلاک کنین و دایرکتوری هایی که اسمشون test، testsite، test-123 و … از پیماسش موتورهای جستجو پنهان می شن.
User-agent: *
Disallow: /test*/
اپراتور * برای جلوگیری از پیمایش فایل ها و یا صفحات خاصی که پیشوند یکسانی دارن خیلی مفیده. به عنوان مثال برای اینکه به موتورهای جستجو بگین که فایل های PDF شما رو که در پوشه دانلودها هستن کراول نکنن باید از کد زیر استفاده کنین:
User-agent: *
Disallow: /downloads/*.pdf
این اپراتور رو می شه چند بار در یک دستورالعمل استفاده کرد. در مثال زیر همونطور که می بینین من از * استفاده کردم تا به تمام تصاویری که اسمشون با holiday شروع میشه و تاریخ و ماه آپلودشون هم می تونه هر تاریخی باشه اشاره کنم:
User-agent: *
Disallow: /wp-content/uploads/*/*/holiday*.jpg
همچنین با استفاده از * میشه به بخش خاصی از URL که یک با چند کاراکتر خاص داره هم اشاره کرد. به عنوان مثال میشه هر آدرس URL که شامل علامت سوال ؟ هست رو با کد زیر بلاک کرد:
User-agent: *
Disallow: /*?*
دستورالعمل زیر همه URLهایی که با ” شروع میشن رو از لیست پیمایش موتورهای جستجو خارج می کنه:
User-agent: *
Disallow: /”
درسته که این اپراتور خیلی کاربردی به نظر میاد اما به نظر من استفاده کردن ازش به این شکل ممکنه نتایج خیلی خوبی هم نداشته باشه. مثلا کد زیر رو در نظر بگیرین:
User-agent: *
Disallow: /page.php
همونطور که متوجه شدین کد بالا به موتورهای جستجو میگه که page.php رو کراول نکنن، اگرچه موتورهای جستجو تمامی صفحاتی مثل /page.php?id=25 و /page.php?id=2&ref=google رو هم از لیست پیمایش خارج می کنن. یعنی هر عبارتی که شامل درخواست شما بشه هم حذف میشه. ممکنه بعضی وقت ها اینجور نتایج مطلوب باشن، اما در حالت کلی بهتره انتهای URL رو هم مشخص کنین تا URL های مشابه از این دستورات تاثیر نگیرن. برای این کار می تونین از اپراتور $ استفاده کنین. این علامت وقتی که یک نفر میخواد یک فابل خاص رو بلاک کنه استفاده می شه. حالا اگر در مثال قبلی فقط بخوایم page.php رو بلاک کنیم فقط کافیه به انتهای دستور یک $ اضافه کنیم.
User-agent: *
Disallow: /page.php$
از این اپراتور برای مشخص کردن نوع عکس هایی که Google Image می تونه کراول کنه زیاد استفاده می شه:
User-agent: Googlebot-Image
Disallow:
Allow: /*.gif$
Allow: /*.png$
Allow: /*.jpeg$
Allow: /*.jpg$
Allow: /*.ico$
Allow: /*.jpg$
Allow: /images/
خوب حالا تقریبا یاد گرفتین که چطور از اپراتورهای متفاوت در فایل robots.txt استفاده کنین. فقط یادتون باشه همه کراولرها این اپراتورها رو پشتیبانی نمی کنن، در نتجه حتما باید چک کنین کدوم یکی از موتورهای جستجو با این دستورات کار می کنن. موتورهای جستجویی که این اپراتورها رو نمی شناسن اونها رو بخشی از دستوراتی که می نویسین می دونن و نتایج ممکنه اصلا خوب نباشن. گوگل، بینگ و ASK از این اپراتورها پشتیبانی می کنن و اگر نگاهی به فایل robots.txt گوگل بندازین می بینین که گوگل خودش از این اپراتورها استفاده می کنه.
مطالعه بیشتر: بهترین تکنیک و راهکارهای سئو
برای کدهای فایل Robots.txt توضیحات بنویسین
بهتره عادت کنین که برای کدهاتون توضیح (کامنت) بنویسین. این کار باعث می شه که دستورالعمل هایی که به مرور اضافه کردین رو با استفاده از کامنت ها سریع تشخیص بدین. برای نوشتن کامنت باید از نماد # استفاده کنین:
# Block Google Images from crawling the images folder
User-agent: Googlebot-Image
Disallow: /images/
این کامنت ها رو می تونین در ابتدای یک خط و یا بعد از نوشتن دستورالعمل ها بنویسین:
User-agent: Googlebot-Image # The Google Images crawler
Disallow: /images/ # Hide the images folder
به نظر من نوشتن کامنت در فایل robots.txt رو جدی بگیرین چون این کار بهتون کمک می کنه هر زمانی که این فایل ها رو بررسی می کنین یادتون بیاد که هر دستورالعملی رو به چه منظوری نوشتین.
در موضوعات سئو خیلی از عزیزان بین موضوع فایل robots.txt و meta robot دچار مشکل میشن به همین دلیل توضیه میکنم که حتما مقاله تفاوت meta robot با فایل robots.txt رو مطالعه کنند
فایل robots.txt برای وردپرس
نکته جالب در مورد استاندارد robots exclusion اینه که شما می تونین همه فایل های robots.txt هر وب سایتی (در صورتی که آپلود شده باشه) رو ببینین. برای این کار فقط کافیه به این آدرس برین: www.websitename.com/robots.txt
اگر فایل robots.txt یک سایت وردپرسی رو چک کنین، متوجه می شین که قوانین متفاوتی برای موتورهای جستجو تعریف شده. این سایت ها از کد زیر در فایل روباتشون استفاده می کنن:
User-agent: *
Disallow: /preview/
Disallow: /api/
Disallow: /hostgator
همینطور که می بینین این قالب وردپرسی فقط سه تا از دایرکتوری ها رو برای جلوگیری از ایندکس شدن بلاک میکنه.
Matt Mullenweg بنیانگذار وردپرس از کد زیر در فایل روبات بلاگ شخصی اش استفاده کرده:
User-agent: *
Disallow:
User-agent: Mediapartners-Google*
Disallow:
User-agent: *
Disallow: /dropbox
Disallow: /contact
Disallow: /blog/wp-login.php
Disallow: /blog/wp-admin
Matt پوشه دراپ باکس و پوشه اطلاعات تماس ها رو بلاک کرده و همچنین صفحه ورود و صفحات مدیریتی وردپرس رو هم بلاک کرده تا ایندکس نشن.
سایت WordPress.org کد زیر رو در فایل روباتش داره:
User-agent: *
Disallow: /search
Disallow: /support/search.php
Disallow: /extend/plugins/search.php
Disallow: /plugins/search.php
Disallow: /extend/themes/search.php
Disallow: /themes/search.php
Disallow: /support/rss
Disallow: /archive/
هشت دستور متفاوت در این فایل روبات تعریف شده که شش تا از این دستورات به صفحات جستجو اشاره دارن. صفحات RSS همه مخفی شدن و همینطور صفحه آرشیو که به نظر میاد کلا وجود نداره و سالهاست به روزرسانی نشده. جالب ترین قسمت فایل روبات در سایت وردپرس اینه که مواردی که معمولا باید تو این فایل باشه رو لحاظ نمی کنه و کدهای زیر رو در این فایل داره:
Sitemap: http://www.example.com/sitemap.xml
# Google Image
User-agent: Googlebot-Image
Disallow:
Allow: /*
# Google AdSense
User-agent: Mediapartners-Google
Disallow:
# digg mirror
User-agent: duggmirror
Disallow: /
# global
User-agent: *
Disallow: /cgi-bin/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/cache/
Disallow: /trackback/
Disallow: /feed/
Disallow: /comments/
Disallow: /category/*/*
Disallow: */trackback/
Disallow: */feed/
Disallow: */comments/
Disallow: /*?
Allow: /wp-content/uploads/
کد بالا روی هزاران وبلاگ بازتولید شده و به نظر من بهترین قوانینی نیستن که میتونین به فایل روبات سایت تون اضافه کنین. این کد چندین سال پیش در سایت وردپرس منتشر شده و از اون زمان هیچ تغییری نکرده. مثلا Digg illustrates موضوع جدیدی نیست و سالهاست کسی در موردش نگران نیست تا در کدهای ربات بهش اشاره بشه.
اصول و قوانین استاندارد Robots Exclusion از اولین باری که منتشر شده هیچ تغییری نکرده و همچنان به شما توصیه میشه که به موتورهای جستجو اعلام کنین بعضی از دایرکتوری ها مثل RSS ها رو کراول نکنن. اما همه با این قانون موافق نیستن، Yoast دو سال پیش مقاله ای منتشر کرد و مضمونش این بود که بهتره feed وب سایت تون رو مخفی نکنین چون ممکنه برای گوگل مفهومی شبیه به سایت مپ داشته باشه:
«بلاک کردن /feed/ به نظر ایده خوبی نیست چون یک RSS میتونه نقش یک سایت مپ معتبر برای گوگل رو داشته باشه. بلاک کردن اون باعث میشه گوگل نتونه با استفاده از اون محتواهای جدید روی سایت تون رو پیدا کنه.»
Jeff Starr (نویسنده و توسعه دهنده وردپرس) هم به تازگی به این موضوع اشاره کرده و گفته اگه یک سایت مپ کاربردی روی سایت تون دارین دیگه نیازی نیست که از RSS به عنوان سایت مپ استفاده کنین.
«استفاده از RSS در صورتی منطقیه که فایل سایت مپ نداشته باشین، در غیر اینصورت محتوای feed سایتتون رو از دسترس موتورهای جستجو دور نگه دارین تا روی صفحات واقعی تون تمرکز کنن»
Yoast یک رویکرد مینیمال (حداقلی) نسبت به فایل robots.txt داره و حدود دو سال پیش کد زیر رو بر اساس این رویکرد به کاربران وردپرس پیشنهاد داد:
User-Agent: *
Disallow: /wp-content/plugins/
فایل روبات فعلی این سایت فقط چندخط نسبت به این پیشنهاد اضافه داره. رویکرد میمنیمال این سایت از این باور ناشی میشه که تعدادی از این صفحات مهم باید با استفاده از تگ متا از موتورهای جستجو مخفی بشن نه با استفاده ار فایل روبات. جف استار البته رویکرد کاملا متفاوتی داره. فایل robots.txt آقای استار به این شکله:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /wp-includes/
Disallow: /comment-page-
Disallow: /trackback/
Disallow: /xmlrpc.php
Disallow: /blackhole/
Disallow: /mint/
Disallow: /feed/
Allow: /tag/mint/
Allow: /tag/feed/
Allow: /wp-content/images/
Allow: /wp-content/online/
Sitemap: http://perishablepress.com/sitemap.xml
علاوه بر بلاک کردن wp-admin، wp-content و wp-includes، جف استار صفحات Trackbacks و فایل xmlrpc وردپرس رو هم مسدود کرده که توسط موتورهای جستجو پیمایش نشن و همینطور صفحات نظرات. اگر نظرات رو دسته بندی کردین که در چند صفحه نمایش داده بشن ممکنه لازم باشه همه صفحات رو بلاک کنین.
همچنین آقای استار دسترسی موتورهای جستجو رو به feed و همینطور یک دایرکتوری خصوصی به نام mint مسدود کرده و در پایان لوکیشن سایت مپ رو مشخص کرده که به ترتیب در کد بالا می تونین ببینین.
در فایل Robots.txt چه کدی باید بنویسین
خوب احتمالا بعضی از شما که دارین این پست رو می خونین می خواین به راحتی یه کدی رو کپی کنین تو فایل رباتتون و به بقیه کاراتون برسین. اما به هرحال این قوانینی که دارین برای موتورهای جستجو تعریف می کنین خیلی مهمن و باید یه آشنایی باهاشون داشته باشین. همچنین باید بدونین که هیچ قانونی که مورد توافق همه باشه و مشخص کنه دقیقا چه کدهایی باید تو فایل robots.txt بنویسین وجود نداره. مثلا همونطور که در بالا اشاره کردم توسعه دهنده وردپرس جف استار و جوس د والک (AKA Yoast) رویکردهای متفاوتی در این مورد داشتن، هر دو نفر هم به عنوان کارشناسان وردپرس شناخته شده هستن. همچنین دیدیم که لیست پیشنهاداتی که در سایت وردپرس برای ساخت فایل روبات داده شده بود سالهاست به روز رسانی نشده و فایل robots.txt خود این سایت از این پیشنهادات پیروی نمی کنه و به جای اون روی کنترل کردن بهتر موتورهای جستجو تمرکز کرده.
فایل robots.txt فروشگاه اینترنتی مو تن رو
من خودم محتوای فایل robots.txt وبلاگم رو در طول چند سال گذشته بارها تغییر دادم و فایل نهایی که الان دارم نتیجه تاثیراتیه که از پیشنهادات جف استار و AskApache گرفتم و همینطور چند توسعه دهنده دیگه که بهشون اطمینان دارم. در حال حاضر فایل robots.txt من به این شکله:
# Disallowed and allowed directories and files
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /wp-includes/
Disallow: /comment-page-
Disallow: /trackback/
Disallow: /xmlrpc.php
Disallow: /feed/
Allow: /wp-content/uploads/
# Define website sitemaps
Sitemap: http://www.kevinmuldoon.com/sitemap_index.xml
Sitemap: http://www.kevinmuldoon.com/post-sitemap.xml
Sitemap: http://www.kevinmuldoon.com/page-sitemap.xml
Sitemap: http://www.kevinmuldoon.com/category-sitemap.xml
Sitemap: http://www.kevinmuldoon.com/author-sitemap.xml
فایل robots.txt من هم به همون شکلی که توضیح دادم بعضی دایرکتوری ها مسدود کرده، فقط من اجازه پیمایش پوشه آپلودم رو به موتورهای جستجو دادم چون میخوام تصاویری که آپلود می کنم ایندکس بشن. در ضمن من همیشه فکر می کنم که فایل روبات نباید کد ثابتی داشته باشه و اگه نیازی به تغییر باشه خیلی سریع تغییرش میدم. اگر دایرکتوری جدیدی به سایتم اضافه بشه یا متوجه بشم که یک دایرکتوری اشتباه ایندکس شده فایل رو تغییر میدم و اصلاحش می کنم. این نکته کلیدی و خیلی مهمیه، همیشه باید در نظر داشته باشین که در صورت لزوم فایل robots.txt رو اصلاح و کامل کنین.
پیشنهاد من به شما اینه که یکی از فایل های robots.txt که در این پست معرفی شده رو برای سایت تون انتخاب کنین و با توجه به سایتی که دارین تغییرش بدین. خیلی مهمه که همه قسمت های جدیدی که به فایل روباتتون اضافه می کنین رو کاملا بفهمین. استاندارد Robots Exclusion می تونه برای متوقف کردن موتورهای جستجو از کراول کردن فایل ها و دایرکتوری هایی که تمایلی به ایندکس شدن اونها ندارین استفاده بشه، اما اگر کد اشتباهی رو وارد کنین ممکنه صفحات مهم رو بلاک کنین و از ایندکس شدن اونها جلوگیری کنین.
حداکثر سایز فایل Robots.txt
با توجه به یک مقاله در AskApache، نباید بیشتر از 200 خط دستور disallow در فایل روبات تون داشته باشین. متاسفانه در این مقاله عنوان نشده که چرا بیشتر از 200 خط نمی شه از این دستور استفاده کرد. در سال 2006، بعضی از اعضای Webmaster World دریافت پیامی از گوگل رو گزارش دادن که مربوط به سایز فایل robots.txt بوده، بر اساس این پیام این فایل نباید بیشتر از 5000 کاراکتر باشه. اگر به طور متوسط هر خط کد رو 25 کاراکتر در نظر بگیریم، این تعداد کاراکتر حدود 200 خط دستور میشه که همون محدودیت خطیه که AskApache مشخص کرده بود. چند سال بعد جان مولر (تحلیلگر گوگل) این مسئله رو روشن کرد و در گوگل پلاس نوشت:
«اگر یک فایل robots.txt خیلی بزرگ دارین توجه داشته باشین که بات گوگل فقط 500 کیلوبایت اول اون فایل رو میخونه. اگر فایل روبات شما از این میزان طولانی تره ممکنه بعضی از خطوط به صورت ناخواسته حذف بشن. راه حل ساده اینه که به صورت منطقی فایل روبات تون رو محدود کنین.»
اگر فایل روبات تون چندین سطر داره و بزرگه حتما مطمئن بشین که سایز مناسبی داره و اگر از 500 کیلو بایت بزرگتره باید حتما سایز اون رو کاهش بدین و یا اینکه منتظر یک نتیجه ناقص باشین.
آزمایش فایل Robots.txt
برای آزمایش کردن فایل روبات چندین روش وجود داره. اولین گزینه استفاده از Blocked URLs در بخش Crawl وب مستر گوگل میتونه باشه.
این ابزار محتوای فایل robots.txt وب سایت تون رو نشون میده. کدی که نمایش داده می شه آخرین نسخه فایل روبات شماست که گوگل از وب سایت تون بازیابی کرده. بنابراین اگر بعد از بازیابی گوگل نسخه جدیدی رو آپلود کرده باشین به احتمال زیاد نمی تونین فایل جدید رو ببینین. تو این قسمت می تونین کد جدیدی رو اضافه کنین اما حواستون باشه که این ابزار فقط برای آزمایش این فایله یعنی اگر تصمیم دارین فایل تون رو تغییر بدین باید فایل واقعی روی وب سایت تون رو به روز رسانی کنین.
کد robots.txt را با هر URL ای که مد نظرتونه می تونین آزمایش کنین. به طور پیش فرض از کراولر Googlebot برای این آزمایش استفاده می شه اما شما می تونین از چهار کراولر دیگه (Google Image, Google Mobile, Mediapartners Google و Adsbot Google یا همون Adwords) هم برای این آزمایش استفاده کنین.
نتیجه این آزمایش به صورت هایلایت کردن خطاهایی که در فایل robots.txt وجود داره نمایش داده می شه، مثلا تعریف کردن یک سایت مپ که وجود خارجی نداره میتونه یک خطا در فایل روبات باشه. این راه برای پیدا کردن خطاها و تصحیح اونها خیلی کاربردیه.
Frobee Robots.txt Checker یکی دیگه از ابزارهاییه که میشه از اون برای آزمایش فایل روبات استفاده کرد. این ابزار هم هر خطایی که شناسایی کنه رو هایلایت می کنه.
ابزار دیگه ای که برای تحلیل robots.txt استفاده می شه رو میتونین در سایت Motoricerca پیدا کنین. این ابزار هر دستوری که در فایل نوشته شده باشه و توسط موتورهای جستجو پشتیبانی نشه یا به درستی تعریف نشده باشه رو هایلایت می کنه.
آزمایش کردن کدهای فایل robots.txt با یکی از ابزارهای موجود قبل از اینکه به وب سایت تون اضافه بشه خیلی مهمه، با این آزمایش می تونین مطمئن باشین که هیچ خطی رو اشتباه ننوشتین.
حرف آخر
استاندارد Robots Exclusion یک ابزار قدرتمنده که با استفاده از اون میشه به موتورهای جستجو اعلام کرد کدوم قسمتهای یک سایت رو کراول کنن و با کدوم قسمت ها کاری نداشته باشن. یادگرفتن اصول و قوانین این استاندارد کار سختی نیست و خیلی طول نمی کشه، فقط شاید استفاده از اپراتورها یکم گیج کننده باشه، بنابراین حتما از تحلیلگر Robots.txt استفاده کنین تا مطمئن بشین دستورالعمل ها به شکلی که مدنظر شماست نوشته شده باشه. در ضمن به یاد داشته باشین که این فایل رو در دایرکتوری روت آپلود کنین.
ممکنه از شنیدن اینکه با وجود این دستورالعمل ها، موتورهای جستجو هنوز می تونن URL های بلاک شده رو ایندکس کنن تعجب کنین. این اتفاق زمانی رخ میده که یک وب سایت دیگه به صفحه بلاک شده لینکی داشته باشه. در ویدئوی زیر Matt Cutts توضیح داده که چطور ممکنه این اتفاق رخ بده: لینک ویدئو…
امیدوارم این پست برای شما مفید باشه و بتونین به راحتی یک فایل robots.txt برای وب سایت تون بسازین. پیشنهاد من اینه که بعد از ساخت فایل نتیجه رو حتما با یک ابزار آزمایش کنین تا نتیجه باعث بشه احساس خوبی نسبت به کاری که انجام دادین داشته باشین، یادتون باشه که تمرین باعث تکامل می شه.
سعی کردیم در این مقاله تمامی مباحث مربوط به فایل robots.txt رو براتون پوشش بدیم. اگر هر سوالی داشتید در بخش نظرات بگید تا بتونیم راهنماییتون کنیم.
5 Comments
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
موتور جستجوی بینگ: Bingbot رو چگونه متصل کنیم
متوجه منظور شما نشدم.
بیشتر توضیح میدین لطفا
آیا robots.txt در وردپرس با کد نویسی فرق دارد و میتوان کدهای که در وردپرس استفاده میشود را در کد نویسی استفاده کرد
سلام دوست عزیز
هیچ تفاوتی ندارند
آیا robots.txt در وردپرس با کد نویسی فرق دارد