راهنمای جامع Robots.txt و سئو

Robots.txt یکی از ساده­ ترین فایل­های وب­سایت شماست و در عین حال یکی از فایل ­هایی است که به راحتی ممکن است منجر به اختلال شود. اشتباه در یک کاراکتر می­تواند سئوی سایت شما را با مشکل مواجه کرده و مانع از دسترسی موتورهای جستجو به محتوای مهم وب­سایت شما گردد.

بدین دلیل است که ایرادات فایل­ های robots.txt بسیار رایج است و حتی باتجربه­ترین کارشناسان سئو نیز ممکن است در زمینه این فایل­ ها با مشکل مواجه شوند.

در این راهنما با موارد زیر آشنا خواهید شد:

  • فایل txt چیست؟
  • فایل txt چگونه است؟
  • عوامل کاربری txt و مشتقات
  • نیاز به فایل txt
  • نحوه پیدا کردن فایل txt
  • نحوه ایجاد فایل txt
  • بهترین اقدامات در زمینه فایل txt
  • مثال­های فایل txt
  • نحوه بررسی فایل txt نسبت به مشکلات

فایل robots.txt چیست؟

فایل robots.txt مکان­ هایی که موتورهای جستجو اجازه دسترسی دارند را تعیین می­کند. شما می­توانید برخی از محتوای خود را با استفاده از فایل robots.txt از دید موتور های جستجو نظیر گوگل پنهان کنید. شما همچنین می­توانید به موتورهای جستجو (به استثنای گوگل) نحوه بررسی اطلاعات وب­سایت خود را تحمیل کنید.

توجه:

بسیاری از موتورهای جستجو مطیع دستورات شما هستند. آن ها نمی­توانند بدون اجازه شما به محتوای وب­سایتتان دسترسی داشته باشند. با این حال، برخی از موتورهای جستجو می­توانند از موانع موجود عبور کرده و محتوای سایت شما را مورد بررسی قرار دهند.

گوگل از جمله این وب­سایت­ ها نبوده و از دستورالعمل­ های موجود در فایل robots.txt پیروی می­کند.

اما به این موضوع توجه داشته باشید که برخی از وب­سایت­ ها این اصول را به طور کامل نادیده می­گیرند.

فایل robots.txt چگونه است؟

قالب اصلی فایل robots.txt بدین صورت است:

اگر پیشتر این فایل را مشاهده نکرده­ باشید، ممکن است ظاهر آن برایتان عجیب باشد. با این حال، این فایل­ ها ساختار بسیار ساده ­ای دارند. شما در این فایل­ها قوانینی را با استفاده از user-agent و دستورالعمل به بوت­ها ارائه می­دهید.

عوامل کاربری

هر یک از موتورهای جستجو خود را با استفاده از عامل کاربری متفاوتی شناسایی می­کند. شما می­توانید دستورالعمل دلخواهی را به هر یک از فایل­های robots.txt اضافه کنید. صدهای عامل کاربری وجود دارد، اما برخی از کاربردی­ترین آنها برای سئو به شرح زیر هستند:

  • گوگل: Googlebot
  • تصاویر گوگل: Google-bot-Image
  • بینگ: Bingbot
  • یاهو: Slurp
  • بایدو: Baiduspider
  • DuckDuckGo: DuckDuckGo

شما همچنین می­توانید از (*) برای ارائه دستور به تمام عوامل کاربری استفاده کنید.

فرض کنید قصد دارید تمام بات ها  به استثنای Googlebot را از دسترسی به وب­سایت خود محروم کنید. باید از دستور زیر استفاده نمایید:

به خاطر داشته باشید که فایل robots.txt شما می­تواند دستورالعملی برای تعداد بیشماری عامل کاربری داشته باشد. هر بار که عامل کاربری جدیدی معرفی می­کنید، robots.txt همانند یک صفحه خالی عمل می­کند. به عبارت دیگر، اگر دستورالعمل­هایی را برای چندین عامل کاربری اضافه کنید، دستورالعمل ارائه شده برای عامل کاربری اول برای عامل کاربری دوم صادق نخواهد بود.

یک استثنا به اصل فوق وجود دارد و آن استفاده از یک عامل کاربری بیش از یک بار است. در این صورت، دستورات مربوطه برای آن عامل کاربری نیز اعمال خواهند شد.

توجه

موتورهای جستجو صرفا به قوانینی توجه می­کنند که برای خودشان قابل تعمیم است. بدین دلیل است که robots.txt تمام بوت­ها به جز Googlebot (و سایر بوت­های گوگل) را از بررسی سایت محروم می­کند. Googlebot عامل کاربری را رد می­کند.

دستورالعمل

دستورالعمل­ها دستوراتی هستند که شما برای عوامل کاربری تعیین می­کنید و قصد دارید آنها از این قوانین پیروی کنند.

Disallow

از این دستور برای عدم دسترسی موتورهای جستجو به فایل­های و صفحات موجود در یک صفحه استفاده کنید. برای مثال، اگر قصد دارید تمام موتورهای جستجو را از دستیابی به وبلاگ و محتوای آن محروم کنید، robots.txt شما به شکل زیر خواهد بود:

Allow

از این دستورالعمل برای اجازه دادن به موتورهای جستجو برای دسترسی به یک صفحه استفاده کنید. اگر قصد دارید موتورهای جستجو به تمام مطالب وب­سایت شما به استثنای یک مطلب دسترسی نداشته باشند، فایل robots.txt شما بدین صورت خواهد بود:

در این مثال، موتورهای جستجو می­توانند به /blog/allowed-post دسترسی داشته باشند. اما اجازه دسترسی به موارد زیر را ندارند:

/blog/another-post

/blog/yet-another-post

/blog/download-me.pdf

گوگل و بینگ از این دستورالعمل پیروی می­کنند.

نکته­ای در مورد قوانین متناقض

اگر مراقب نباشید، دستورالعمل­های allow و disallow می­توانند به آسانی با هم تداخل ایجاد کنند. در مثال زیر، ما اجازه دسترسی به /blog/ را نداده و به /blog اجازه دسترسی می­دهیم.

در این صورت، آدرس /blog/post-title/ هم اجازه دسترسی و هم عدم اجازه دسترسی دارد. کدامیک پیروی می­شود؟

دستوری که بیشترین کاراکتر را دارد در Google و Bing پیروز می­شود. دستور عدم دسترسی به صورت زیر است:

Disallow: /blog/ (6 کاراکتر)

Allow: /blog (5 کاراکتر)

اگر دستورالعمل ­های allow و disallow طول یکسانی داشته باشند، دستورالعملی که کمترین محدودیت را دارد، پیروز می­شود. در این صورت، allow پیروز خواهد شد.

این موضوع صرفا در مورد گوگل و بینگ صادق است. سایر موتورهای جستجو به اولین دستورالعمل واکنش می­دهند. در این صورت، disallow پیروز خواهد شد.

نقشه سایت (Sitemap)

از این دستور برای تعیین موقعیت سایت­مپ­های خود برای موتورهای جستجو استفاده کنید. اگر با سایت­ مپ­ ها آشنا نیستید، آنها شامل صفحاتی هستند که قصد دارید موتورهای جستجو آنها را بررسی کنند.

در زیر مثالی از robots.txt را مشاهده می­کنید که حاوی دستورالعمل سایت­مپ است:

میزان اهمیت سایت­مپ­ها در فایل robots.txt چقدر است؟ اگر از طریق کنسول جستجو اقدام کرده ­اید، برای گوگل زاید خواهد بود. با این حال، به سایر موتورهای جستجو نظیر Bing اطلاع می­دهد که از کجا سایت­مپ شما را پیدا کنند.

به این موضوع توجه داشته باشید که نیازی به تکرار دستورالعمل سایت­ مپ برای هر عامل کاربری وجود ندارد. این دستور فقط به یک مورد اعمال نمی­شود. بنابراین، بهتر است دستورالعمل سایت­ مپ را در ابتدا یا انتهای فایل robots.txt قرار دهید. برای مثال:

گوگل همانند Ask، بینگ و یاهو از دستورالعمل سایت ­مپ پشتیبانی می­کند.

دستورالعمل­های پشتیبانی نشده

در زیر به مجموعه­ای از دستورالعمل ­ها اشاره خواهیم کرد که در حال حاضر توسط گوگل پشتیبانی نمی­شوند و برخی هرگز توسط گوگل پشتیبانی نشده­ اند.

Crawl-delay

 در گذشته، شما می­توانستید از این دستور برای تعیین تاخیر جستجو بر حسب ثانیه استفاده کنید. برای مثال، اگر قصد داشتید Googlebot بعد از هر جستجو 5 ثانیه توقف کند، crawl-delay را به این صورت تنظیم می­کردید:

گوگل دیگر از این دستور پشتیبانی نمی­کند، اما Bing و Yandex از آن پشتیبانی می­کنند.

بنابراین، در تنظیم این دستور، به ویژه اگر سایت بزرگی دارید، مراقب باشید. اگر تاخیر جستجو را 5 ثانیه تعیین کنید، میزان بیشینه جستجو توسط بات ها را به 17280 سایت محدود می­کنید. اگر وب­سایت شما میلیون­ ها صفحه داشته باشد، این روش به هیچ عنوان مناسب نخواهد بود.

Noindex

این دستور هرگز به صورت رسمی توسط گوگل پشتیبانی نشده است. با این حال، به نظر می­رسد که گوگل کدهایی دارد که قوانین منتشرنشده و پشتیبانی نشده از جمله noindex را پشتیبانی می­کند. بنابراین، اگر قصد دارید مانع از بررسی تمام پست­های وب­سایت خود توسط گوگل شوید، می­توانید از دستور زیر استفاده کنید:

با این حال، در اول سپتامبر سال 2019، گوگل به طور رسمی اعلام کرد که از این دستور پشتیبانی نمی­کند. اگر قصد دارید صفحه­ای را از موتور جستجو حذف کنید، از تگ­ روبات یا x-robots HTTP استفاده کنید.

Nofollow

دستور دیگری نیز وجود دارد که گوگل هرگز به طور رسمی از آن پشتیبانی نکرده است و به منظور عدم بررسی صفحات و فایل­ها در مسیری مشخص به کار برده می­شود. برای مثال، اگر قصد دارید گوگل نتواند لینک ­های وب­سایت شما را بررسی کنید، شما می­توانید از دستور زیر استفاده کنید:

گوگل اعلام کرد که این دستور از اول سپتامبر 2019 پشتیبانی نمی­شود. اگر قصد دارید تمام لینک­ های موجود در صفحه ­ای را نوفالو کنید، شما باید از تگ روبات­ها یا هدر x-robot استفاده کنید. اگر می­خواهید گوگل لینک­ های خاصی را در صفحه دنبال نکند، از دستور rel=”nofollow” استفاده کنید.

آیا به فایل robots.txt نیاز دارید؟

داشتن فایل robots.txt برای بسیاری از وب­سایت­ ها به ویژه وب­سایت­ های کوچک ضروری نیست.

اما دلیلی نیز برای عدم استفاده از این فایل وجود ندارد. شما با استفاده از این فایل می­توانید کنترل بیشتری بر موتورهای جستجو داشته باشید. فایل­های robots.txt برای موارد زیر نیز مفید هستند:

  • جلوگیری از بررسی محتوای تکراری
  • حفظ حریم خصوصی در برخی از صفحات وب­سایت
  • جلوگیری از بررسی صفحات داخلی توسط موتورهای جستجو
  • جلوگیری از افزایش بار سرور
  • جلوگیری از اتلاف بودجه جستجو
  • جلوگیری از نمایش تصاویر، ویدئوها و فایل­های منابع در نتایج جستجوی گوگل

توجه داشته باشید که اگرچه گوگل وب­­سایت ­هایی که در robots.txt مسدود شده ­اند را مورد بررسی قرار نمی­دهد، روشی برای تضمین عدم بررسی آنها با استفاده از فایل robots.txt وجود ندارد.

نحوه پیدا کردن فایل robots.txt؟

اگر فایل robots.txt را در وب­سایت خود دارید، می­توانید از طریق domain.com/robots.txt به آن دسترسی داشته باشید. آدرس را در مرورگر خود وارد کنید. اگر دستورهایی همانند تصویر زیر مشاهده کنید، فایل robots.txt دارید:

نحوه ایجاد فایل robots.txt

اگر فایل robots.txt ندارید، ایجاد آن بسیار آسان است. کافی است یک فایل .txt باز کرده و دستورها را تایپ کنید. برای مثال، اگر قصد دارید هیچ یک از موتورهای جستجو به بخش /admin/ وب­سایت شما دسترسی نداشته باشند، باید دستور زیر را در فایل txt  خود تایپ کنید:

ایجاد دستورات را تا زمان رضایت از شرایط ادامه دهید. فایل robots.txt را ذخیره کنید.

شما همچنین می­توانید از سایت­های ایجادکننده فایل ­های robots.txt استفاده کنید.

مزیت استفاده از این ابزارها این است که خطاها را به طور قابل­ توجهی کاهش می­دهند، بنابراین بسیار ارزشمند هستند. یک مشکل می­تواند منجر به عواقب بسیار نامناسبی در زمینه سئو گردد.

ایرادی که این ابزارها دارند این است که امکان تغییر و شخصی­ سازی کمتری دارند.

محل قرارگیری فایل rotos.txt

فایل را در آدرس روت دامنه قرار دهید. برای مثال، به منظور کنترل بررسی در وب­سایت domain.com، فایل باید در آدرس domain.com/robots.txt قرار داده شود.

اگر قصد دارید زیردامنه ­ای را کنترل کنید، فایل robots.txt را در آدرس blog.domain.com/robots.txt قرار دهید.

بهترین اقدامات فایل robots.txt

موارد زیر را در نظر داشته باشید تا از بروز مشکلات رایج جلوگیری کنید.

استفاده از خطی جدید برای هر دستور

هر دستور باید در خط جدید نوشته شود. در غیر این صورت، منجر به سردرگمی موتورهای جستجو می­شود.

نادرست:

User-agent: * Disallow: /directory/ Disallow: /another-directory/

درست:

User-agent: * Disallow: /directory/ Disallow: /another-directory/

استفاده از wildcard ها برای تسهیل دستورها

نه تنها شما می­توانید از (*) برای اعمال دستورالعمل­ ها برای تمام عوامل کاربری استفاده کنید، بلکه می­توانید از آن ها برای تطبیق الگوهای URL در طی اعلام دستور استفاده کنید. برای مثال، اگر قصد دارید موتور جستجو به URL­های مربوط به محصولات دسترسی نداشته باشد، شما می­توانید دستورات را به صورت زیر بنویسید:

User-agent: * Disallow: /products/t-shirts?Disallow: /products/hoodies?Disallow: /products/jackets?…

اما این روش بازده چندانی ندارد. بهتر است از یک wildcard استفاده کنید:

User-agent: * Disallow: /products/*?

این مثال، موتور جستجو را از بررسی تمام URL­  ها در پوشه /product/ منع می­­کند.

استفاده از “$” برای نشان دادن انتهای URL

از نشان $ برای نمایش انتهای URL استفاده کنید. برای مثال، اگر قصد دارید موتورجستجو تمام فایل­ های .pdf موجود در وب­سایت شما را بررسی نکند، فایل robot.txt شما بدین صورت خواهد بود:

User-agent: * Disallow: /*.pdf$

در این مثال، موتورهای جستجو نمی­توانند به URL­هایی که انتهای آن .pdf است دسترسی داشته باشند. این بدین معناست که آنها نمی­توانند به /file.pdf دسترسی داشته باشند، اما می­توانند به file.pdf?id=68937586 دسترسی داشته باشند، زیرا با .pdf به پایان نرسیده است.

فقط یکبار استفاده از هر عامل کاربری

اگر یک عامل کاربری را چندین بار استفاده کنید، گوگل متوجه آن نخواهد شد. گوگل صرفا تمام دستورات را به یک دستور تلفیق کرده و از آنها پیروی می­کند. برای مثال، اگر شما عامل کاربری و دستورات زیر را در فایل robots.txt داشته باشید…

User-agent: GooglebotDisallow: /a/ User-agent: Googlebot Disallow: /b/

Googlebot نمی­توانید هیچ یک از این پوشه­ها را بررسی کند.

این بدین معناست که بهتر است هر عامل کاربری فقط یکبار به کار برده شود تا منجر به سردرگمی نشود. به عبارت دیگر، با این روش می­توانید همه موارد را ساده و مرتب نگه داشته و احتمال خطا را به حداقل برسانید.

جلوگیری از خطاهای ناخواسته

عدم استفاده از دستورات مناسب می­تواند منجر به خطاهایی شود که تاثیر مخربی بر سئوی شما دارند. برای مثال، فرض کنید شما یک سایت چندزبانه دارد و بر روی نسخه آلمانی وب­سایت خود کار می­کنید که از طریق زیرمجموعه /de/ قابل دسترسی خواهد بود.

از آنجایی که هنوز این نسخه کامل نشده است، شما ترجیح می­دهید که موتورهای جستجو به آن دسترسی نداشته باشند.

فایل robots.txt زیر مانع از دسترسی موتورهای جستجو به این صفحه از وب­سایت شما خواهند شد:

User-agent: *Disallow: /de

اما این دستور همچنین تمام صفحات یا فایل ­هایی که با /de آغاز شده­اند را نیز از دسترس موتورهای جستجو خارج می­کند.

برای مثال:

در این مورد، راه ­حل ساده است: یک / اضافه کنید.

User-agent: *Disallow: /de/

ارائه توضیحات در فایل robots.txt به افراد

توضیحات به سایر توسعه ­دهندگان کمک می­کنند تا فایل robots.txt را بهتر درک کنند. این توضیحات برای خود شما نیز مفید هستند. برای قراردادن توضیحات، خط را با (#) آغاز کنید.

# This instructs Bing not to crawl our site.User-agent: BingbotDisallow: /

موتورهای جستجو تمام مواردی که با # آغاز می­شوند را بررسی نخواهند کرد.

از فایل robots.txt برای هر زیردامنه استفاده کنید

Robots.txt فقط رفتار بررسی در زیردامنه را کنترل می­کند. اگر قصد دارید بررسی را در زیردامنه دیگری نیز کنترل کنید، به فایل robots.txt دیگری نیاز خواهید داشید.

برای مثال، اگر سایت شما بر روی domain.com قرار داشته و وبلاگ شما بر روی blog.domain.com است، در این صورت شما به دو فایل robots.txt نیاز خواهید داشت. یکی از آنها باید در روت دامنه اصلی و دیگری در روت وبلاگ قرار گیرد.

مثال فایل­های robots.txt

در زیر به چند نمونه از فایل­های robots.txt اشاره خواهیم کرد. این­ها فقط نمونه هستند، اما در صورتی که با نیازمندی شما سازگاری دارند، می­توانید آنها را به یک فایل .txt کپی کرده و با عنوان robots.txt ذخیره کرده و در مسیر صحیح آپلود کنید.

دسترسی کامل برای تمام بوت­ها

User-agent: *Disallow:

عدم دسترسی تمام بوت­ها

User-agent: *Disallow: /

مسدودکردن یک زیرمجموعه برای تمام بوت­ها

User-agent: *Disallow: /folder/

مسدود کردن یک زیرمجموعه برای تمام بوت­ها (با اجازه برای یک فایل)

User-agent: *Disallow: /folder/Allow: /folder/page.html

مسدودکردن یک فایل برای تمام بوت­ها

User-agent: *Disallow: /this-is-a-file.pdf

مسدود کردن یک نوع فایل (PDF) فقط برای Googlebot

User-agent: GooglebotDisallow: /*?

نحوه بازبینی فایل robots.txt نسبت به خطاها

خطاهای فایل robots.txt به آسانی ایجاد می­شوند، بنابراین، این مشکلات باید همواره مورد توجه قرار گیرند. بدین منظور، مشکلات مربوط به robots.txt را در بخش گزارش Coverage موجود در کنسول جستجو بررسی کنید. در زیر به برخی از خطاهایی که ممکن است با آنها مواجه شوید، اشاره خواهیم کرد.

آیا قصد دارید خطاهای مربوط به برخی از صفحات را بررسی کنید؟

URL را در ابزار URL Inspection گوگل در کنسول جستجو کپی کنید. اگر توسط robots.txt مسدود شده باشد، با صفحه زیر مواجه خواهید شد:

فایل-robots.txt
فایل-robots.txt

URL ثبت شده توسط robots.txt مسدود شده است

این بدین معناست که حداقل یکی از URLها در سایت­مپ شما توسط robots.txt مسدود شده است.

اگر سایت­ مپ را به درستی طراحی کرده و صفحات noindex و redirect را حذف کرده باشد، در این صورت هیچ صفحه ­ای نباید توسط robots.txt مسدود شود. در صورت مسدودی، صفحاتی که مسدود شده ­اند را بررسی کرده و سپس فایل robots.txt را بر اساس آنها تنظیم نموده و آنها را از مسدود بودن خارج کنید.

شما همچنین می­توانید از robots.txt tester گوگل نیز استفاده کرده و دستورالعمل مسدودکننده را تعیین کنید. در استفاده از این ابزار دقت کنید. زیرا ممکن است اشتباه کرده و سایر صفحات و فایل­ها را نیز مسدود کنید.

مسدود شده توسط robots.txt

این بدین معناست که شما محتوایی را توسط robots.txt مسدود کرده­اید که در حال حاضر در گوگل ثبت نشده است.

اگر این محتوا مهم بوده و باید در گوگل ثبت شود، دستور مسدودی را از robots.txt حذف کنید. اگر محتوایی را با هدف جلوگیری از ثبت آن توسط گوگل در robots.txt مسدود کرده­اید، مسدودیت را حذف کرده و از meta tag یا هدر x-robots استفاده کنید. این تنها روش موجود برای جلوگیری از ثبت محتوا توسط گوگل است.

ثبت شده اما مسدودشده توسط robots.txt

این بدین معناست که برخی از محتوای مسدودشده توسط robots.txt همچنان در گوگل ثبت شده است.

اگر قصد دارید این محتوا را از نتایج جستجوی گوگل حذف کنید، robots.txt راه­حل مناسب نیست. مسدودیت را حذف کرده و به جای آن از تگ meta robots یا هدر x-robots-HTTP استفاده کنید.

اگر این محتوا را به طور تصادفی مسدود کرده و قصد دارید آن را در گوگل حفظ کنید، دستور مسدودی را از robots.txt حذف کنید. این امر می­تواند قابلیت مشاهده محتوای شما در جستجوی گوگل را افزایش دهد.

سوالات متداول

در اینجا به برخی از سوالات رایج اشاره خواهیم کرد که در این راهنما به آنها اشاره نشده است.

بیشینه حجم فایل robots.txt چقدر است؟

در حدود 500 کیلوبایت.

Robots.txt در وردپرس کجاست؟

در آدرس: domain.com/robots.txt

چگونه می­توانم robots.txt را در وردپرس ویرایش کنم؟

این اقدام را می­توانید به صورت دستی یا با استفاده از یکی از پلاگین­ها WordPress SEO نظیر Yoast انجام دهید که امکان ویرایش robots.txt را فراهم می­آورد.

اگر اجازه دسترسی به محتوای ثبت نشده را در robots.txt ندهم چه اتفاقی می­افتد؟

گوگل هرگز دستورات noindex را نمی­بیند، زیرا قادر به بررسی صفحه نمیست.

کلام آخر

Robots.txt فایلی ساده و در عین حال قدرتمند است. اگر به طور صحیح از آن استفاده کنید، تاثیر مثبتی بر سئو خواهد داشت. اگر به درستی از آن استفاده نکنید، سئوی شما به طور نامطلوبی تحت تاثیر قرار خواهد گرفت.