در این پست سعی کردیم که صفر تا صد فایل ربات تی اکس تی (robots.txt) را برای شما توضیح بدیم. از robots.txt برای یاد دادن نحوه خزیدن به خزندههای موتورهای جستجو استفاده میکنیم، به این معنی که با دستوراتی که در این فایل مینویسیم به خزندهها اعلام میکنیم چه URLهایی را کراول کنند و آنها را ایندکس کنند و کدام یک از URLها را ایندکس نکنند.
این فایل مخصوص مدیریت بودجه خزیدنی که موتورهای جستجو برای سایت ما در نظر گرفتهاند است و با استفاده درست از آن میتوان مطمئن شد که خزندههای موتور جستجو وقت خود را در صفحات مهم میگذرانند و تغییرات آنها را به سرعت بررسی خواهند کرد. در ادامه با ما همراه باشید تا آموزش کامل فایل robots.txt را به شما یاد دهیم.
کاربرد فایل robots.txt چیست؟
کاربرد فایل robots.txt برای مشخص و جدا کردن URLهایی که موتورهای جستجو باید ببینند از URLهایی است که ما لازم نداریم آنها را به موتورهای جستجو نمایش دهیم. خیلی مهم است که به خزنده کمک کنیم تا صفحاتی که اهمیت ندارند را مشاهده نکنند و همچنین از ایندکس کردن بخشهایی که بینهایت URL تولید میکنند جلوگیری کنیم.
برای مثال سایت فروشگاهی را در نظر بگیرید که دارای فیلتر محصول است. با اعمال تغیراتی در فیلتر مانند انتخاب رنگ و سایز URL جدیدی به طور خودکار تولید میشود که به ایندکس شدن در موتورهای جستجو نیازی ندارد. صفحات نتایج جستجو درون سایت نیز به همین شکل هستند و هیچ وبسایتی نمیخواهد تا موتورهای جستجو این صفحات را در دیتابیس خود ایندکس کنند.
موتور جستجوی گوگل در راهنمای robots.txt خود توضیح داده است که فرمت این فایل باید (.txt) و رمزگذاری شده به وسیله UTF-8 باشد.
همچنین باید به اندازه فایل robots.txt توجه داشته باشید، زیرا موتورهای جستجو حداکثر اندازهای برای این فایلها در نظر گرفتهاند. حداکثر اندازه برای فایل ربات مورد تایید گوگل 500KB است.
فایل robots.txt در کجا قرار گرفته است؟
فایل ربات هر وبسایتی باید در روت (root) آن قرار گرفته باشد. برای مشاهده فایل میتوانید به هاست خود بروید و در قسمت روت آن را جستجو کنید یا اینکه به صورت زیر در مرورگر با دامنه خود آن را جستجو کنید:
Https://yoursitedomain.com/robots.txt
این فایل بر روی پروتکل امنیتی و کل دامنه شما تاثیر گذار است. به این معنی که اگر دامنه شما به شکل Https://example.com است این فایل بر روی http://example.com یا https://subdomain.example.com اثر نخواهد کرد و هر یک از این URLها نیاز به یک فایل ربات جداگانه دارند.
چه زمانی باید از قوانین robots.txt استفاده کرد؟
به طور کلی توصیه شده است که تا حد امکان کمترین استفاده را از فایل robots.txt انجام دهیم. بهبود معماری وبسایت و اجازه دادن به خزندهها برای داشتن دسترسی راحت به وبسایت شما بهترین کار ممکن است. اگرچه استفاده از این فایل برای جلوگیری از ورود خزندهها به جاهایی که محتوای بیکیفیت یا بخشهایی که بیشمار URL برای سایت ایجاد میکنند لازم است.
گوگل توصیه کرده است که فقط robots.txt را هنگام بروز مشکلات مربوط به سرور یا ایجاد ایرادات مربوط به بازده خزیدن استفاده کنید، برای مثال وقتی که ربات Googlebot زمان زیادی را صرف خزیدن در بخشی از سایت که قابلیت ایندکس شدن را ندارد صرف کند باید با استفاده از فایل ربات این مشکل را برطرف کرد.
در ادامه چند نمونه از صفحاتی که ممکن است نخواهید توسط خزندهها دیده شوند را به شما معرفی میکنیم:
- صفحات دستهبندی که بر روی آنها فیلتر خاصی اعمال میگردد، زیرا این امر باعث ایجاد کپی از صفحه اصلی خواهد شد.
- محتوای تولید شده توسط کاربر که قابل مدیریت نیست
- صفحاتی با اطلاعات حساس
- صفحات نتایج جستجو درون وبسایت، چون تعداد نامحدودی از این صفحات نتیجه وجود دارد که میتوانند تجربه کاربری ضعیفی را برای بازدید کننده فراهم کنند و بودجه خزیدن سایت را نیز هدر میدهند.
در چه مواردی نباید از robots.txt استفاده کرد؟
فایل robots.txt اگر به درستی مورد استفاده قرار بگیرد ابزاری مفید خواهد بود، اما مواردی وجود دارد که استفاده از این فایل میتواند باعث بروز مشکلاتی در سایت شود. در اینجا چند نمونه از جاهایی که نباید از فایل ربات برای کنترل خزیدن مورد استفاده قرار گیرد را برای شما شرح خواهیم داد:
1- مسدود کردن Javascript / CSS
موتورهای جستجو باید به تمام منابع موجود در وبسایت شما دسترسی داشته باشند تا بتوانند صفحات را به درستی نمایش دهند. نمایش درست صفحه سایت برای کسب رتبهبندی نیز الزامی است. بعضی از فایلهای جاوا اسکریپت به طور چشمگیری در تجربه کاربری دخیل هستند، اما زمانی که با استفاده از فایل ربات، دسترسی خزندههای موتور جستجو را به آنها ممنوع کنید، ممکن است منجر به از دست دادن رتبه و پنالتی برای وبسایت گردد.
به عنوان مثال، اگر شما از یک سرویس تبلیغاتی بینابینی استفاده کنید یا با JavaScript کاربران را بوسیله ریدایرکت به مسیری جدید هدایت کرده باشید و موتور جستجو نتواند به این فایلها دسترسی پیدا کند، ممکن است این عمل شما را اشتباها به عنوان پنهان سازی محتوا یا کلاکینگ (cloaking) تشخیص دهد و رتبه بندی محتوای شما را بر همین اساس تعیین کند.
2- مسدود سازی پارامترهای URL
برای مسدود کردن URLهای دارای پارامترهای خاص میتوانید از robots.txt استفاده کنید، اما استفاده غیر درست باعث به وجود آمدن دردسر خواهد شد. بهتر است این موارد را در کنسول جستجوی گوگل کنترل کنید تا مشاهده کنید که با این کار بر روی پارامتر دیگری که ایندکس شدن آن ضروری است تاثیر نگذاشته باشید.
شما همچنین میتوانید اطلاعات مورد نیاز خود را در یک قطعه با استفاده از (#) در URL خود قرار دهید، برای مثال میتوان به قطعه URL زیر اشاره کرد:
/page#sort=price
این روش بسیار کاربردی است زیرا موتورهای جستجو این بخش را ایندکس نمیکنند. علاوه بر این، اگر باید حتما از یک پارامتر در URL استفاده شود، لینکهای مربوط به آن میتوانند دارای ویژگی rel = nofollow باشند تا از دسترسی خزندهها به آن جلوگیری شود.
3- مسدود سازی URLهای دارای بک لینک
مسدود سازی URLها در robots.txt از انتقال اعتبار لینک به وب سایت جلوگیری میکند. به این معنی که اگر موتورهای جستجو به دلیل اینکه URL وبسایتی را در فایل ربات غیر مجاز قلمداد کردهاید و به همین دلیل آنها نتوانند بک لینکهای بدست آمده از آنسایتها را دنبال کنند، وبسایت شما از این بک لینکها اعتباری کسب نخواهد کرد و در نتیجه ممکن است این امر بر روی رتبه بندی شما هم تاثیرگذار باشد.
4- استفاده جهت خارج کردن صفحات ایندکس شده از ایندکس موتور جستجو
با استفاده از دستور Disallow ایندکس صفحات از بین نمیرود. حتی اگر URL مسدود شده باشد و موتورهای جستجو دیگر هرگز آن صفحه را کراول نکنند، صفحات Disallow شده همچنان ایندکس باقی میمانند. دلیل این امر این است که فایل robots.txt برای کنترل خزندهها کاربرد دارد و فرآیند خزیده شدن URL و ایندکس شدن آنها دو عمل کاملا مجزا هستند.
5- تنظیم قوانینی که فقط خزندههای شبکههای اجتماعی را نادیده میگیرند
در بعضی از مواقع شاید مایل نباشید که موتورهای جستجو صفحات شما را کراول کنند و آنها را در دیتا بیس خود ایندکس کنند، ولی ممکن است بخواهید که شبکههای اجتماعی بتوانند به آن صفحات دسترسی پیدا کنند تا برای آن صفحه، اسنیپت تولید کنند. به عنوان مثال، فیس بوک سعی خواهد کرد از هر صفحهای که در اینترنت ارسال شده است بازدید کند، به این ترتیب آنها میتوانند یک اسنیپت مربوطه به هر صفحه تولید و ارائه کنند. این موضوع را هنگام تنظیم robots.txt به خاطر داشته باشید.
6- مسدود کردن دسترسی سایتهای در حال توسعه
استفاده از robots.txt برای مسدود کردن کل سایت staging راه درستی نیست. گوگل توصیه میکند که به این صفحات رل noindex را اضافه کنید ولی اجازه کراول شدن را به آنها بدهید.
7- وقتی چیزی برای مسدود کردن ندارید
برخی از وبسایتها دارای معماری بسیار تمیزی هستند و نیازی به جلوگیری از خزندههای موتورهای جستجو ندارند. در صورت حاکم بودن همچین شرایطی، نداشتن فایل robots.txt و بازگشت وضعیت 404 در صورت لزوم کاملاً قابل قبول خواهد بود.
نحوه کار با robots.txt و فرمت مورد استفاده در آن
در بالا یاد گرفتیم که فایل robots.txt کلا چی هست و کجاها باید از آن استفاده کرد و همینطور کجاها نباید از آن استفاده کرد. در ادامه میخواهیم نحوه کار با این فایل را با هم بررسی کنیم و علایم نوشتاری مورد استفاده در این فایل را با به شما آموزش دهیم.
کامنتها
کامنتها خطوطی هستند که به طور کامل توسط موتور جستجو نادیده گرفته شده و با استفاده از یک (#) در اول آنها قابل تشخیص هستند. کامنتها به شما کمک میکنند تا در مورد قانونی که در فایل ربات مینویسید توضیح مختصری بدهید و دلیل و زمان استفاده از آن قانون را در فایل ذکر کنید. هر زمانی که دیگر به این کامنتها نیاز نداشتید میتوانید با خیال راحت آنها را پاک کنید بدون اینکه تغییری در فایل ربات صورت بگیرد.
مشخص کردن User-agent در فایل ربات
با مشخص کردن User-agent میتوانید مجموعهای از دستورات را به ربات خاص مدنظر خود بدهید. به شکلی که این دستورات برای رباتهای دیگر غیر فعال باشند. هر کراولر برای خود توکن مشخص و مجزایی دارد که میتوانید با مشخص کردن ربات، دستورات خاصی را برای آن درنظر بگیرید.
خزندهها به ترتیب خاص ترین قوانینی را که برای User-agent آن مشخص شده باشد را دنبال میکنند و اگر مطابقت دقیقی پیدا نشود، به قوانین عمومی تر باز میگردند. به عنوان مثال Googlebot News به دنبال تطبیق “googlebot-news” ، سپس “googlebot” و در آخر “*” خواهد بود.
در پایین User-agentهای پر استفاده در فایل robots.txt را برای شما نمایش دادهایم:
- * – با استفاده از این نشانه قوانین بر روی تمامی رباتها اعمال خواهند شد مگر اینکه در ادامه User-agent خاصی را مشخص کرده باشید
- Googlebot – تمام خزندههای گوگل
- Googlebot-news – خزنده اخبار گوگل
- Googlebot-image – خزنده تصاویر گوگل
- Mediapartners-Google – خزنده تبلیغات گوگل
- Bingbot – خزنده بینگ
- Yandex – خزنده یاندکس
- Baiduspider – خزنده بایدو
- Facebot – خزنده فیسبوک
- Twitterbot – خزنده توئیتر
این لیست شامل تمامی رباتهای موجود در وب نیست و برای شناسایی تک تک رباتها برای هر پلتفرم بهتر است که به سایتهای آنها سر بزنید.
همچنین توکن User-agentها به حروف کوچک و بزرگ حساس نیستند و هر دو کلمه “googlebot” و “Googlebot” به یک User-agent اشاره دارد.
جلوگیری از خزیده شدن URLهایی با رشته حروف مشخص
احتمالا URLهایی در سایت شما وجود دارند که نمیخواهید کراول شوند و همگی دارای یک رشته حروف ثابت هستند. برای این کار بهتر است که بیاید URLهایی که دارای این رشته حروف هستند را یکجا ببندید تا اینکه لیست بلندی از URLهایی که دارای این رشته حروف هستند را تهیه کرده و در فایل ربات بارگزاری کنید. برای این کار باید از دو نماد * و $ استفاده کنید که در زیر طرز کار هر یک را جداگانه بررسی کردهایم:
*- از این نماد برای مشخص کردن بخشی از URL استفاده میشود. بخش مورد نظر میتواند در اول یا وسط URL آمده باشد. برای مثال با وارد کردن “Disallow: */products?sort=” در فایل ربات به خزندهها اعلام میکنید که در هر URL که عبارت “products?sort=” در اول یا وسط آن آمده است، خزیده نشود و آن را نادیده بگیرند.
$- این نماد برای مشخص کردن رشته حروفی که در آخر URL قرار دارند مورد استفاده قرار میگیرد. برای مثال “Disallow: */dress$” را در نظر بگیرید، این دستور به این معنی است که رباتها URLهایی که با “dress/” در آخر آنها تمام شده است را کراول نکند، حتی اگر بعد از کلمه dress یک حرف در URL قرار بگیرد آن URL دیگر شامل این دستور نخواهد شد.
فایل ربات بر روی پروتکلهای امنیتی SSL و دامنه تاثیر گذار نیست و فقط میتواند هر چیزی را که بعد از نام کامل دامنه در URL قرار میگیرد را تحت تاثیر قرار بدهد. با قرار دادن یک اسلش قبل از حروف مورد نظر به خزندهها اعلام میکنیم هر URL که بعد از نام کامل دامنه با این حروف شروع شود را کراول نکند.
مثلا “Disallow: /news” را در نظر بگیرید، این دستور به این معنی است که هر URL که به شکل “https://example.com/news” باشد و یا در ادامه آن چیزی نوشته شده باشد را کراول نکند.
اگر به قبل از حروف مدنظر خود یکی از دو کارکتر * یا / را اضافه نکنید، قانونی که در فایل ربات نوشتهاید کار نخواهد کرد.
لینک سایت مپ در فایل robots.txt
با اشاره کردن به URL نقشه وبسایت در فایل robots.txt به موتورهای جستجو اعلام کنید که نقشه سایت XML را از کجا میتوانند پیدا کنند. این کار به آنها کمک میکند تا همه URL های وبسایت را کشف کنند.
هنگام قرار دادن نقشهای سایت در فایل ربات، باید از URL های مطلق (به عنوان مثال https://www.example.com/sitemap.xml) به جای URL های نسبی استفاده کنید (به عنوان مثال /sitemap.xml).
همچنین لازم به ذکر است که نقشههای سایت الزاما نباید بر روی دامنه ریشه قرار داشته باشند، بلکه آنها میتوانند در یک دامنه خارجی میزبانی شوند.
موتورهای جستجو نقشههای سایت ذکر شده در فایل robots.txt شما را کشف کرده و شروع به کراول کردن آنها میکنند، با این حال، بدون ارسال دستی نقشههای سایت در ابزار کنسول موتورها جستجو، در Google Search Console یا Bing Webmaster Tools این نقشهها ظاهر نخواهند شد.
بلوکهای Robots.txt
قانون “Disallow” در فایل ربات را میتوان به روشهای مختلفی برای User-agentهای مختلف استفاده کرد. در این بخش، ما چندین روش مختلف برای قالب بندی ترکیب بلوکها بیان خواهیم کرد.
لازم به یادآوری است که دستورالعملهای موجود در فایل robots.txt فقط یک سری فرمان هستند. خزندههای مخرب در نت فایل ربات شما را نادیده میگیرند و هر بخشی از سایت شما را که عمومی است خواهند خزید، بنابراین Disallow نباید به عنوان یک اقدام امنیتی در نظر گرفته شود.
بلوک User-agent چندگانه
میتوانید قبل از اعمال مجموعهای از قوانین، یک لیست از User-agentهایی که میخواهید این دستورات را اجرا کنند مشخص کنید. به عنوان مثال، برای اعمال قوانین مشترک در User-agentهای Googlebot و bing میتوان به جای اینکه این قوانین را جداگانه به هر یک نسبت داد، در اول کار هر دو ربات را مشخص کرده و یک بار نوشتن فرمانها، قوانین را برای هر دو ربات بنویسیم. برای مثال:
“User-agent: googlebot
User-agent: bing
Disallow: /a”
قرار دادن فاصله بین دستورالعملها
گوگل فاصله بین دستورالعملها و بلوکها را نادیده میگیرد. در مثال اول، قانون اتخاذ شده دوم انتخاب خواهد شد:
“[code]
User-agent: *
Disallow: /disallowed/ Disallow: /test1/robots_excluded_blank_line
[/code]”
در بالا فقط فرمان “Disallow: /test1/robots_excluded_blank_line” در نظر گرفته میشود و رباتها فرمان قبل از آن را نمیخوانند. در مثال پایین نیز ربات Googlebot-mobile همان قوانینی را که برای ربات Bingbot مشخص شدهاند را به خود میگیرد:
“[code]
User-agent: googlebot-mobile User-agent: bing
Disallow: /test1/deepcrawl_excluded
[/code]”
ترکیب بلوکهای جداگانه با هم
شرایطی که چندین بلوک با User-agent یکسان با هم ترکیب شوند. بنابراین در مثال زیر، بلوکهای بالا و پایین با هم ترکیب شدهاند و Googlebot از خزیدن “/b” و “/a” منع شده است.
“User-agent: googlebot
Disallow: /b User-agent: bing
Disallow: /a User-agent: googlebot
Disallow: /a”
دستور Allow در Robots.txt
قانون “Allow” در robots.txt به صراحت اجازه میدهد تا URLهای مشخص شده توسط رباتها خزیده شوند. اگرچه برای همه URLها این پیش فرض در نظر گرفته شده است، اما این فرمان میتواند برای نوشتن یک قانون جدید بر روی دستور “Disallow” مورد استفاده قرار گیرد. به عنوان مثال، اگر “/location” را در فایل ربات تی اکس تی به صورت “Disallow” تعریف کرده باشید، میتوانید با اضافه کردن قانون “Allow: /location/london” اجازه دهید که موتورهای جستجو URL دارای بخش “/location/London” را بخزند.
نمونهای از فایل Robots.txt برای سایت وردپرسی
خیلی از وبلاگهای محبوب در وب از فایل ربات سادهای استفاده میکنند. در این بخش ما برای شما یک نمونه از فایل ربات که برای سایتهای وردپرسی توصیه شده است را معرفی میکنیم. اگر در روت سایت خود فایل ربات تی اکس تی ندارید کافیست یک فایل text document در کامپیوتر خود ایجاد کنید و متن زیر را کپی و داخل فایل ایجاد شده پیست کنید. سپس فایل را ذخریه کرده (توجه کنید که فایل خود را بر روی UTF-8 تنظیم کرده باشید) و آن را بر روی روت سایت خود آپلود کنید.
“User-Agent: *
Allow: /wp-content/uploads/
Disallow: /wp-content/plugins/
Disallow: /wp-admin/
Disallow: /readme.html
Disallow: /refer/
Allow: /wp-admin/admin-ajax.php
Sitemap: http://www.example.com/post-sitemap.xml”
نتیجهگیری
Robots.txt یک فایل کاملا ساده اما بسیار قدرتمند و تاثیرگذار است. اگر از این فایل به شکل اصولی استفاده شود میتواند تأثیر مثبتی در سئو سایت داشته باشد. ولی اگر بخواهید در سایتهای مختلف بگردید و ربات آنها را کپی کنید و در سایت خود استفاده کنید مطمئنا در آینده پشیمان خواهید شد. این نکته را فراموش نکنید که هر سایت ربات مخصوص به خود را دارد.