راهنمای جامع 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 مسدود شده باشد، با صفحه زیر مواجه خواهید شد:
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 فایلی ساده و در عین حال قدرتمند است. اگر به طور صحیح از آن استفاده کنید، تاثیر مثبتی بر سئو خواهد داشت. اگر به درستی از آن استفاده نکنید، سئوی شما به طور نامطلوبی تحت تاثیر قرار خواهد گرفت.