میخواید بعضی صفحات رو از گوگل مخفی کنید؟ یا بگید کجا رو نگرده؟ Robots.txt همین کار رو میکنه! این فایل کوچک یکی از اولین چیزیه که موتورهای جستجو وقتی به سایت شما میرسن میخونن. بنابراین اگه اشتباه نوشته شده باشه، میتونه آسیب جدی به سئوی سایتتون بزنه؛ و اگه درست باشه، کمک میکنه خزندهها هوشمندانهتر از منابعشون استفاده کنن.
در این مقاله با نحوه کارکرد robots.txt، دستورات اصلیاش، بهترین روشهای استفاده، اشتباهات رایج، و نکات امنیتی آشنا میشید.
Robots.txt چیه؟
یه فایل متنی ساده که توی ریشه سایت قرار میگیره (مثلاً example.com/robots.txt) و به خزندهها دستور میده. این فایل بر اساس استاندارد REP (Robots Exclusion Protocol) کار میکنه و تمام موتورهای جستجوی معتبر مثل Google، Bing، Yandex و غیره اون رو رعایت میکنن.
خزندهها قبل از هر کاری این فایل رو میخونن تا بدونن کجا مجاز به رفتن هستن و کجا نیستن. اگه این فایل وجود نداشته باشه، خزنده فرض میکنه همه جای سایت باز است.
دستورات اصلی
User-agent: *
Disallow: /admin/
Disallow: /private/
Allow: /public/
Sitemap: https://example.com/sitemap.xml
- User-agent: کدوم خزنده — ستاره (*) یعنی همه خزندهها
- Disallow: نرو به این مسیر
- Allow: برو به این مسیر (اولویت بالاتر از Disallow)
- Sitemap: آدرس نقشه سایت
سینتکس کامل robots.txt
هر بلوک دستوری با User-agent شروع میشه و یه یا چند قانون Disallow/Allow داره. میتونید بلوکهای جداگانه برای خزندههای مختلف بنویسید:
# همه خزندهها
User-agent: *
Disallow: /wp-admin/
Disallow: /cart/
Disallow: /checkout/
Allow: /wp-admin/admin-ajax.php
# فقط Googlebot
User-agent: Googlebot
Disallow: /no-google/
# مسدود کردن یه خزنده مزاحم
User-agent: BadBot
Disallow: /
Sitemap: https://example.com/sitemap.xml
نکته مهم: خطوط شروع با # کامنت هستن و خزندهها اونها رو نادیده میگیرن.
نام خزندههای معروف
اگه میخواید قانون خاصی فقط برای یه موتور جستجوی خاص باشه، باید نام دقیق خزندهاش رو بدونید:
- Googlebot — خزنده اصلی گوگل برای صفحات
- Googlebot-Image — خزنده گوگل برای تصاویر
- Googlebot-Video — خزنده گوگل برای ویدیو
- Bingbot — خزنده Bing
- Slurp — خزنده Yahoo
- DuckDuckBot — خزنده DuckDuckGo
- YandexBot — خزنده Yandex
Wildcards — کارتهای وایلد
میتونید از دو کاراکتر خاص در مسیرها استفاده کنید:
- * (ستاره): یعنی هر رشتهای — مثلاً
Disallow: /*.pdf$یاDisallow: /search?* - $ (دلار): انتهای URL — مثلاً
Disallow: /page$فقط /page رو مسدود میکنه نه /page/sub
نکات مهم و هشدارها
- Robots.txt امنیت نیست! این فقط یه پیشنهاده، نه یه دیوار امنیتی. موتورهای جستجوی معتبر رعایتش میکنن ولی رباتهای مخرب ممکنه نادیده بگیرنش.
- صفحات حساس رو با این مخفی نکنید — آدرس صفحات secret در robots.txt عملاً به همه اعلام میشه! برای محتوای محرمانه از احراز هویت استفاده کنید.
- اشتباه ننویسید وگرنه کل سایت از ایندکس میره! یه خط اشتباه مثل
Disallow: /کل سایت رو از گوگل پنهان میکنه. - فضای خالی مهمه — بین User-agent و Disallow نباید فضای اضافی باشه
- حساس به بزرگی و کوچکی حروف نیست (Case-insensitive) برای نام خزنده، ولی مسیرها حساسه
اشتباهات رایج که سایت رو از گوگل میندازه
این اشتباهات رو حتماً اجتناب کنید:
Disallow: /— این کل سایت رو مسدود میکنه!- Disallow کردن فایل CSS و JS — گوگل برای رندر صفحات به اونها نیاز داره
- Disallow کردن صفحاتی که در Sitemap هستن — تناقض ایجاد میکنه
- فراموش کردن / در انتهای پوشهها —
Disallow: /adminفرق داره باDisallow: /admin/ - استفاده از robots.txt به جای noindex برای مخفی کردن صفحات از نتایج
تفاوت Robots.txt و Meta Robots
گاهی اوقات مردم robots.txt و تگ Meta Robots رو با هم اشتباه میگیرن. تفاوت مهمیه:
- Robots.txt: از خزیدن (Crawling) جلوگیری میکنه. اگه مسیری Disallow باشه، خزنده اصلاً به اون URL نمیره.
- Meta Robots (noindex): از ایندکس شدن جلوگیری میکنه. خزنده میره ولی صفحه رو نمایش نمیده.
نکته ظریف: اگه یه URL در robots.txt مسدود باشه ولی از جای دیگهای لینک داشته باشه، گوگل ممکنه اون URL رو در نتایج نشون بده — بدون محتوا! این یکی از دامهای رایجه. برای مطمئن شدن از عدم نمایش، باید هم robots.txt و هم noindex با هم استفاده بشن، یا فقط noindex.
بهترین روشها برای robots.txt وردپرس
در وردپرس، بعضی مسیرها معمولاً بهتره مسدود بشن:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /?s=
Disallow: /search/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://yoursite.com/sitemap.xml
دقت کنید که /wp-admin/admin-ajax.php رو Allow کردیم چون گوگل برای بعضی عملکردهای سایت به این نیاز داره.
تست Robots.txt
توی Google Search Console، بخش Robots.txt Tester هست که میتونید تست کنید. این ابزار نشون میده که آیا Googlebot به یه URL دسترسی داره یا نه. همچنین میتونید از این URL مستقیم وضعیت robots.txt سایتتون رو ببینید: yoursite.com/robots.txt
ابزار دیگهای که میتونید استفاده کنید Bing Webmaster Tools هست که هم robots.txt تستر داره.
robots.txt و Crawl Budget
برای سایتهای بزرگ، مدیریت Crawl Budget اهمیت داره. وقتی صفحات بیارزش (مثل صفحات فیلتر، URL پارامترها، صفحات جستجوی داخلی) رو با robots.txt مسدود میکنید، گوگل وقت بیشتری برای خزیدن صفحات مهم صرف میکنه.
Robots.txt و امنیت سایت
یه سوءتفاهم رایج اینه که robots.txt یه لایه امنیتیه. در واقع robots.txt بیشتر شبیه تابلوی "ورود ممنوع" هست — کسی که میخواد بره داخل، میره. رباتهای مخرب، scraperها، و هکرها اصلاً توجهی به robots.txt ندارن.
مهمتر از این، robots.txt یه فایل عمومیه. یعنی هر کسی میتونه بره yoursite.com/robots.txt رو ببینه. اگه یه مسیر حساس مثل /admin-secret-panel/ یا /internal-docs/ رو Disallow کنید، عملاً همین مسیر رو به همه اعلام کردید!
برای محافظت واقعی از بخشهای حساس سایت:
- احراز هویت (Authentication) اضافه کنید
- IP Whitelist تنظیم کنید
- از HTTPS استفاده کنید
- فایروال برنامه تحت وب (WAF) داشته باشید
robots.txt برای سایتهای مختلف
بسته به نوع سایت، robots.txt نیازهای متفاوتی داره:
فروشگاه آنلاین (WooCommerce)
User-agent: *
Disallow: /wp-admin/
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /add-to-cart/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://yourshop.com/sitemap.xml
صفحات سبد خرید، تسویه، و حساب کاربری نباید ایندکس بشن — ارزش سئویی ندارن و اطلاعات کاربری هستن.
سایت خبری
User-agent: *
Disallow: /search/
Disallow: /tag/
Disallow: /author/
Disallow: /page/
Sitemap: https://yournews.com/news-sitemap.xml
Sitemap: https://yournews.com/sitemap.xml
صفحات صفحهبندی (pagination) و جستجوی داخلی معمولاً ارزش ایندکس ندارن.
ارتباط robots.txt با Crawl Budget
Crawl Budget یعنی تعداد صفحاتی که گوگل در یه بازه زمانی مشخص از سایت شما میخزه. این بودجه برای سایتهای بزرگ اهمیت خیلی زیادی داره. اگه صفحات بیارزش زیادی داشته باشید، گوگل وقتش رو صرف اونا میکنه و به صفحات مهم کمتر میرسه.
با Disallow کردن مسیرهای بیارزش در robots.txt میتونید Crawl Budget رو بهینه کنید. مثالهایی از صفحاتی که معمولاً Disallow میکنن:
- صفحات نتایج جستجوی داخلی (
Disallow: /?s=) - صفحات فیلتر و مرتبسازی در فروشگاهها
- صفحات صفحهبندی بیپایان (infinite scroll)
- صفحات print-friendly (نسخه چاپی)
- URL پارامترهای session یا tracking
آینده robots.txt
با وجود اینکه robots.txt یه استاندارد قدیمیه (از ۱۹۹۴)، هنوز پابرجاست و گوگل رسماً از آن پشتیبانی میکنه. در سال ۲۰۱۹ گوگل اعلام کرد که استانداردسازی robots.txt رو تحت نظر دارد و آن را به یه استاندارد رسمی اینترنتی تبدیل کرده. پس این فایل کوچک همچنان بخش جداییناپذیر سئو فنی خواهد بود.
ابزارهای مفید برای robots.txt
- Google Search Console → Robots.txt Tester: تست خزیدن به URLهای خاص
- Screaming Frog: آنالیز robots.txt سایت و شناسایی صفحات مسدود
- robots.txt Validator: ابزارهای آنلاین برای بررسی صحت فایل
- Bing Webmaster Tools: تستر robots.txt برای Bing
سوالات متداول
آیا Disallow در robots.txt صفحه رو از نتایج گوگل پاک میکنه؟
نه لزوماً. robots.txt از خزیدن جلوگیری میکنه، نه از ایندکس شدن. اگه صفحهای از جایی لینک داشته باشه، گوگل ممکنه اون رو بدون محتوا در نتایج نشون بده. برای پاک کردن از نتایج، باید از Meta Robots noindex استفاده کنید.
robots.txt رو کجا آپلود کنم؟
باید در ریشه اصلی دامنه باشه: https://yoursite.com/robots.txt. اگه سایتتون در یه زیرپوشه هست (مثل yoursite.com/blog/)، robots.txt هنوز باید در ریشه اصلی دامنه باشه.
آیا همه رباتها robots.txt رو رعایت میکنن؟
رباتهای معتبر مثل موتورهای جستجو رعایت میکنن. ولی رباتهای مخرب یا scraperها ممکنه نادیده بگیرن. robots.txt برای کنترل موتورهای جستجوی معتبر طراحی شده، نه برای امنیت.
برای زیردامنهها چی؟
هر زیردامنه robots.txt خودش رو داره. robots.txt مربوط به example.com روی blog.example.com تأثیر نداره. باید برای هر زیردامنه جداگانه robots.txt بسازید.
جمعبندی
Robots.txt ابزار قدرتمندیه برای کنترل نحوه خزیدن موتورهای جستجو در سایتتون. با استفاده درست، میتونید Crawl Budget رو بهینه کنید، از ایندکس شدن محتوای بیارزش جلوگیری کنید، و سرعت ایندکس شدن محتوای مهم رو بالا ببرید. ولی باید با دقت استفاده بشه — یه اشتباه کوچیک میتونه کل سایت رو از گوگل بندازه. همیشه قبل از اعمال تغییرات، در Search Console تست کنید.