» مرکز آموزش هاست و دامین » بهینه سازی وبسایت » فایل robots.txt چیست؟
در دنیای امروز، سئو یا بهینهسازی برای موتورهای جستجو یکی از ارکان اساسی موفقیت هر وبسایت به شمار میرود. در کنار فاکتورهایی مانند تولید محتوای باکیفیت، سرعت سایت، و ساختار لینکدهی، فایل Robots.txt نیز نقشی مهم و در عین حال پنهان در مدیریت نحوه دسترسی خزندههای موتورهای جستجو به محتوای سایت ایفا میکند. اگرچه این فایل فقط چند خط کد ساده است، اما تصمیمهایی که در آن گرفته میشود، میتواند تأثیر عمیقی در ایندکس شدن صفحات سایت و در نهایت رتبهی سایت در نتایج جستجو داشته باشد.
فایل robots.txt یک فایل متنی ساده است که در ریشه (Root) اصلی سرویس میزبانی وب یا دامنهی سایت قرار میگیرد. این فایل به رباتهای موتورهای جستجو (مانند Googlebot، Bingbot و غیره) میگوید که کدام صفحات یا بخشهای سایت را بررسی (crawl) کنند و کدام بخشها را نادیده بگیرند.
آدرس پیشفرض فایل robots.txt برای هر سایت:
https://example.com/robots.txt
فایل Robots.txt یکی از سادهترین فایلهای یک وبسایت است، اما در عین حال یکی از سادهترین را ها برای تخریب سئو سایت است. فقط یک کاراکتر بی جا می تواند سئو شما را خراب کند و موتورهای جستجو را از دسترسی به محتوای مهم سایت شما باز دارد. به همین دلیل است که پیکربندی نادرست robots.txt بسیار رایج است؛ حتی در بین متخصصان باتجربه سئو!
بسته به اندازه وب سایت شما، استفاده نادرست از robots.txt می تواند یک اشتباه جزئی یا بسیار پرهزینه باشد. این مقاله به شما نشان می دهد که چگونه یک فایل robots.txt ایجاد کنید و از اشتباهات احتمالی جلوگیری کنید.
فایل Robots.txt در وبسایتها نقش همین راهنماها و نگهبانان را دارد اما نه برای کاربرانی که وارد سایت میشوند، بلکه برای رباتهایی که برای بررسی سایت یا هر کار دیگری میخواهند در بخشهای مختلف سایت سرک بکشند.
ساختار این فایل معمولاً ساده است. از دو دستور اصلی تشکیل میشود:
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Allow: /public/
در این مثال همه ربات ها (*) اجازه ندارند وارد مسیرهای /admin و /tmp شوند. اما اجازه دارند وارد مسیر /public شوند.
ربات؟! خب بله دیگه. فقط آدمها بازدید کننده سایت شما نیستند که. رباتهایی هستند که به دلایل مختلفی به سایت شما سر میزنند.
رباتها در واقع نرمافزارهایی هستند که به صورت خودکار صفحههای مختلف را باز و بررسی میکنند.
رباتهای موتور جستجوی گوگل مهمترین رباتهایی هستند که در اینترنت میچرخند. این رباتها هر روز چندین بار صفحههای سایت شما را بررسی میکنند. اگر وبسایت بزرگی داشته باشید، امکان دارد رباتهای گوگل تا چند ده هزار بار در روز صفحههای سایت را بررسی کنند.
هر کدام از این رباتها کار خاصی میکنند. مثلاً مهمترین ربات گوگل یا همان Googlebot کارش پیدا کردن صفحههای جدید در اینترنت و دریافت آن برای بررسیهای بیشتر توسط الگوریتمهای رتبهبندی کننده است، پس رباتها نه تنها ضرری برای سایت شما ندارند، بلکه باید خیلی هم از آنها استقبال کرد.
اما باید حواستان باشد که این رباتها زبان آدمیزاد سرشان نمیشود! یعنی همینطور مثل چی سرشان را میندازند پایین و سر تا پای سایت را بررسی میکنند. بعضی وقتها هم رباتها گوگل چیزهایی را که دوست نداریم هر کسی ببیند را برمیدارند میبرند در سرورهای گوگل ذخیره میکنند و به عالم و آدم نشان میدهند. خب پس باید راهی باشد که جلوی آنها را بگیریم.
خوشبختانه دسترسی رباتها به صفحهها یا فایلها را میتوانیم کنترل کنیم، میتوانید با نوشتن دستورهایی ساده در یک فایل به نام robots.txt جلوی ورود ربات را به بخشهایی از سایت بگیرید، به آنها بگویید اجازه ندارند وارد بخشی از سایت شوند یا دستوراتی خاص بدهید تا سرور میزبان سایت شما الکی مشغول رباتها نشود.
فایل Robots.txt مثل یک مجوز دهنده به رباتها است. وقتی رباتها میخواهند صفحههایی از سایت را بررسی کنند، اول فایل Robots.txt را میخوانند. در این فایل با چند دستور ساده مشخص میکنیم که ربات اجازه بررسی کدام صفحهها را دارد و کدام صفحهها را نباید بررسی کند.
مثل تصویر زیر که در آن اجازه دسترسی به پوشهای به نام photos و اجازه دسترسی به صفحهای به نام files.html را ندادیم:
robots.txt
۱-بلاک کردن کل سایت:
User-agent: *
Disallow: /
این دستور به همه رباتها میگوید هیچ چیزی را بررسی نکنند!
۲-بلاک کردن فایلهای CSS یا JS:
گوگل برای فهمیدن طراحی و عملکرد سایت به CSS و JS نیاز دارد. بلاک کردن آنها میتواند باعث کاهش رتبه در سئو شود.
۳-بلاک کردن صفحات با متا تگ noindex:
برخی افراد اشتباه میکنند که فکر میکنند Disallow باعث میشود صفحه ایندکس نشود. در حالی که برای جلوگیری از ایندکس باید از noindex در meta tag استفاده کرد.
صاحبان وبسایت و وبمسترها میتوانند ورود رباتها به وبسایت را از راههای مختلفی کنترل کنند. کنترل کردن هم دلایل مختلفی دارد.
مثلاً تمام صفحات یک سایت از درجه اهمیت یکسانی برخوردار نیستند. بیشتر وبمسترها علاقهای ندارند تا پنل مدیریت وبسایتشان در موتورهای جستجوگر ایندکس شود و در اختیار عموم قرار گیرد یا اینکه برخی از صفحات سایتشان محتوای قابل قبولی ندارد و به همین دلیل ترجیح میدهند آن صفحات توسط رباتها بررسی نشوند. یا اگر وبسایتی دارید که هزاران صفحه دارد و بازدید کل سایت هم زیاد است، احتمالاً دوست ندارید منابع سرور شما (پهنای باند، قدرت پردازشی و ..) برای بازدیدهای پشت سرهم رباتها مصرف شود.
اینجا است که فایل robots.txt نقشآفرینی میکند.
در حال حاضر، هدف اصلی فایل ربات محدود کردن درخواستهای بیش از حد بازدید از صفحات وبسایت است. یعنی اگر رباتها میخواهند روزی شونصد بار یک صفحه را بررسی کنند، ما با نوشتن یک دستور ساده در فایل Robot جلوی آنها را میگیریم تا بفهمند رئیس کیست!
تا همین چند وقت پیش اگر میخواستید صفحهای را به طور کامل از دید رباتهای گوگل دور کنید و حتی در نتایج جستجو دیده نشود.، با دستور noindex در همین فایل امکانپذیر بود اما حالا کمی داستان پیچیدهتر شده است؛ این فایل برای دور نگهداشتن صفحهها از موتور جستجوی گوگل کمک زیادی به حذف صفحه از نتایج جستجو نمیکند.
گوگل اعلام کرد که برای حذف صفحهها از نتایج جستجو، بهتر است از راههای دیگری به جز فایل robots.txt استفاده کنید. البته در حال حاضر میتوان از این فایل برای خارج کردن فایلهایی مثل تصاویر، ویدیو یا صدا از نتایج جستجو استفاده کنید اما برای صفحات وب مناسب نیست.
راههای دیگر جایگزین برای حذف صفحه از نتایج جستجئی گوگل را در ادامه معرفی میکنیم.
گوگل تعدادی ربات خزنده (Crawler) دارد که به صورت خودکار وبسایتها را اسکن میکنند و صفحهها را با دنبال کردن لینکها از صفحهای به صفحه دیگر پیدا میکنند.
لیست زیر شامل مهمترین رباتهای گوگل است که بهتر است بشناسید:
رباتی برای بررسی صفحهها با هدف نمایش تبلیغات مرتبط
رباتی که تصاویر را پیدا و بررسی میکند.
رباتی برای ایندکس کردن سایتهای خبری
ربات بررسی ویدیوها
این ربات صفحات وب را کشف و ایندکس میکند. دو نوع Desktop و Smartphone دارد.
هر کدام از این رباتها به صورت مداوم، صفحههای وبسایت را بررسی میکنند. شما میتوانید در صورت نیاز هرکدام از رباتها را محدود کنید.
این که رباتهای خزنده هر چند وقت یک بار به سایت شما سر میزنند به چند فاکتور بستگی دارد. هر چه در طول روز تعداد بیشتری محتوا در وبسایتتان قرار بگیرد و تغییرات سایت اهمیت زیادی داشته باشد، رباتهای جستجوگر دفعات بیشتری به سایت شما مراجعه میکنند. برای مثال، در وبسایتهای خبری که همیشه در حال انتشار خبر و بهروزرسانی اخبارشان هستند رباتها با سرعت بیشتری صفحات را بررسی و ایندکس میکنند.
در سرچ کنسول بخشی به نام Crawl Stats وجود دارد که دفعات بررسی صفحههای سایت به صورت روزانه را نمایش میدهد. در همین صفحه، حجم دانلود شده توسط رباتها و همینطور زمان بارگذاری صفحهها را میتوانید ببینید.
فایل robots.txt از بلوکهای متنی تشکیل شده است. هر بلوک با یک رشته User-agent شروع میشود و دستورالعملها(قوانین) را برای یک ربات خاص گروهبندی میکند.
در اینجا نمونهای از فایل robots.txt آمده است:
User-agent: *
Disallow: /admin/
Disallow: /users/
#specific instructions for Googlebot
User-agent: Googlebot
Allow: /wp-admin/
Disallow: /users/
#specific instructions for Bingbot
User-agent: Bingbot
Disallow: /admin/
Disallow: /users/
Disallow:/not-for-Bingbot/
Crawl-delay: 10
Sitemap: https://www.example.com/sitemap.xml
User-agent
صدها خزنده وجود دارند که ممکن است بخواهند به وب سایت شما دسترسی پیدا کنند. به همین دلیل است که ممکن است بخواهید بر اساس اهداف آنها مرزهای مختلفی برای آنها تعریف کنید. در اینجا زمانی است که User-agent ممکن است مفید باشد.
User-agent رشته ای از متن است که یک ربات خاص را شناسایی می کند. موتورهای جستجو همچنین می توانند بیش از یک User-agent داشته باشند. با جستجو در اینترنت میتوانید لیست کاملی از User-agents استفاده شده توسط گوگل و بینگ را پیدا کنید.
User-agent یک خط مورد نیاز در هر گروه از دستورالعملها است. تمام دستورالعملهایی که از یک User-agent پیروی میکنند، تا زمانی که User-agent جدید مشخص نشود، به سمت ربات تعریفشده هدایت میشوند.
شما همچنین میتوانید از یک علامت عام استفاده کنید و به همه رباتها به طور همزمان دستورالعمل بدهید. User-agent موتورهای جست و جوی معروف عبارتند از:
دستورالعملها قوانینی هستند که شما برای رباتهای موتور جستجو تعریف میکنید. هر بلوک متن میتواند یک یا چند دستورالعمل داشته باشد. هر دستورالعمل باید در یک خط جداگانه شروع شود. کلیدواژهها عبارتند از:
توجه: همچنین یک دستورالعمل غیر رسمی noindex وجود دارد که قرار است نشان دهد یک صفحه نباید ایندکس شود. با این حال، اکثر موتورهای جستجو، از جمله گوگل و بینگ، از آن پشتیبانی نمیکنند. اگر نمیخواهید برخی از صفحات ایندکس شوند، از تگ متا روباتهای noindex یا هدر X-Robots-Tag استفاده کنید.
این دستورالعمل مشخص می کند که کدام صفحات نباید خزیده شوند. به طور پیشفرض، رباتهای موتور جستجو میتوانند هر صفحهای را که توسط دستورالعمل Disallow مسدود نشده است، بخزند. برای مسدود کردن دسترسی به یک صفحه خاص، باید مسیر آن را در رابطه با دایرکتوری ریشه تعریف کنید.
User-agent: Googlebot
Disallow: /users/
با اضافه کردن نماد “/” به روش زیر می توانید خزیدن در کل سایت را ممنوع کنید:
User-agent: Googlebot
Disallow: /
Allow
شما میتوانید از دستورالعمل Allow برای اجازه دادن به خزیدن یک صفحه در یک فهرست غیر مجاز استفاده کنید.
در مثال زیز، تمام صفحات داخل دایرکتوری /user/ غیر مجاز هستند به جز یکی به نام /very-important-user.html.
User-agent: Googlebot
Disallow: /users/
Allow: /users/very-important-user.html
ربات های موتور جستجو می توانند بسیاری از صفحات شما را در مدت زمان کوتاهی بخزند. هر خزیدن، بخشی از منبع سرور شما استفاده می کند.
اگر یک وب سایت بزرگ با صفحات زیاد دارید یا باز کردن هر صفحه به منابع سرور زیادی نیاز دارد، ممکن است سرور شما نتواند به همه درخواست ها رسیدگی کند. در نتیجه، بیش از حد بارگذاری می شود و کاربران و موتورهای جستجو ممکن است به طور موقت دسترسی به سایت شما را از دست بدهند. اینجاست که دستورالعمل Crawl-Delay ممکن است مفید باشد و روند خزیدن را کند کند.
مقدار دستور Crawl-Delay بر حسب ثانیه تعریف می شود. می توانید آن را بین ۱ تا ۳۰ ثانیه تنظیم کنید.
کامنت کردن در فایل robots.txt
میتوانید با افزودن علامت # در ابتدای یک خط یا بعد از دستور، نظرات خود را در فایل robots.txt اضافه کنید. موتورهای جستجو هر چیزی را که از # در همان خط پیروی می کند نادیده می گیرند.
کامنت برای انسانها منظور شده است تا توضیح دهند که یک بخش خاص به چه معناست. همیشه ایده خوبی است که آنها را اضافه کنید زیرا به شما امکان میدهند دفعه بعد که فایل را باز میکنید سریعتر بفهمید چه اتفاقی میافتد.
#Blocks access to the blog section
User-agent: Googlebot
Disallow: /blog/
User-agent: Bingbot
Disallow: /users/ #blocks access to users section
Wildcards کاراکترهای خاصی هستند که میتوانند فرآیند ایجاد فایل robots.txt را ساده می کنند. آنها عبارتند از علامتهای:
*
$
ستاره می تواند جایگزین هر رشته ای شود.
* :User-agent
در مثال بالا، ستاره در خط User-agent تمام ربات های موتورهای جستجو را مشخص میکند. بنابراین، هر دستورالعملی که از آن پیروی میکند، تمام خزندهها را هدف قرار میدهد.
Disallow: /*?
همچنین میتوانید از آن برای تعریف مسیر استفاده کنید. مثالهای بالا به این معنی است که هر URL که با “؟” ختم میشود. غیر مجاز است. علامت دلار نشان دهنده عنصر خاصی است که با انتهای URL مطابقت دارد.
Disallow: /*.jpeg$
مثال بالا نشان می دهد که هر URL که با “.jpeg” ختم می شود باید غیرمجاز باشد.
گوگل برای وبمسترها و صاحبان وبسایتها چند راه برای دسترسی به نقشه سایت گذاشته است. یکی از این راهها نوشتن آدرس فایل در فایل است.
Sitemap: https://example.com/sitemap.xml
هیچ الزامی وجود ندارد که آدرس نقشه سایت را از این راه به رباتهای گوگل نمایش دهید. بهترین راه ارائه نقشه سایت به گوگل استفاده از ابزار سرچ کنسول است.
https://digikala.com/robots.txt
همانطور که میبینید دیجیکالا دستور سایت مپ را در فایل robots.txt خود قرار داده است.
گوگل بعد از این که گفت استفاده از دستورات noindex و disallow کمکی به خارج کردن صفحات از نتایج جستجو نمیکند، راهکارهای دیگری برای این کار معرفی کرد.
گوگل میگوید اگر میخواهید صفحههایی از نتایج جستجو به صورت کامل حذف شوند باید دستوران noindex را در همان صفحه قرار دهید.
راحتترین راه حذف کردن صفحهای از نتایج جستجو استفاده از دستورهای به اصطلاح متا تگ(meta tag) در قسمت هد(head) صفحه است.
برای افزودن این کدها یا باید مستقیم کدهای HTML صفحه را ویرایش کنید یا این که از راهای دیگری مثل افزونهها برای نوایندکس کردن استفاده کنید. در واقع افزونهها هم فقط این کد را به صفحه اضافه میکنند.
اگر کمی با کدهای HTML آشنایی داشته باشید پس میدانید که هر صفحه دو قسمت هد(head) و بدنه (body) دارد. دستور نوایندکس را باید در قسمت هد قرار دهید.
بنابراین، کد شما باید این شکلی شود:
meta tag
بعضی تصور میکنند Disallow در فایل robots.txt باعث میشود کسی به آن صفحه دسترسی نداشته باشد، اما این تصور اشتباه است. این فایل فقط به رباتها میگوید که به آن مسیر نروند، اما افراد عادی هنوز میتوانند با دانستن URL به آن صفحه دسترسی پیدا کنند.
برای امنیت واقعی باید از روشهایی مانند احراز هویت، سطح دسترسی، یا htaccess استفاده کرد.
میتوانید با robots.txt tester در کنسول جستجوی Google و ابزار وبمستر بینگ آزمایش کنید. به سادگی URL مورد نظر برای تأیید را تایپ کنید و ابزار، مجاز یا غیرمجاز بودن آن را به شما نشان می دهد. همچنین میتوانید فایل را مستقیماً در robots.txt tester ویرایش کنید و تغییرات را مجدداً آزمایش کنید. به خاطر داشته باشید که تغییرات در وب سایت شما ذخیره نمی شود.شما باید فایل را کپی کرده و در سایت خود آپلود کنید.
در حالی که Robots.txt برای کنترل کلی دسترسی رباتها به مسیرها و دایرکتوریهای سایت استفاده میشود، دو روش دیگر هم برای کنترل دقیقتر ایندکس شدن صفحات خاص وجود دارد:
۱- Robots Meta Tag
تگ متای robots داخل کد HTML صفحه قرار میگیرد و به رباتهای جستجو میگوید چه کاری با محتوای آن صفحه انجام دهد..
مکان قرارگیری :
در <head> هر صفحه مانند مثال زیر:
<meta name=”robots” content=”noindex, nofollow”>
دستورات رایج:
index: اجازه ایندکس شدن
noindex: جلوگیری از ایندکس
follow: اجازه دنبال کردن لینکها
nofollow: جلوگیری از دنبال کردن لینکها
چه زمانی می توان استفاده کرد؟
زمانی که میخواهیم صفحهای در سایت قابل دسترسی باشد اما ایندکس نشود.
برای کنترل سئوی صفحات خاص (مثل صفحات لاگین، تشکر، پرداخت، و…)
۲- X-Robots-Tag (در Header سرور)
برخلاف متا تگ که در HTML هست، X-Robots-Tag در هدر پاسخ HTTP قرار میگیره و برای فایلهایی غیر از HTML مثل PDF، تصاویر، ویدیوها و… هم قابل استفادهست.
مثال:
X-Robots-Tag: noindex, nofollow
نحوه استفاده در Apache (htaccess):
<FilesMatch "\.(pdf|doc|xls)$"
<Header set X-Robots-Tag "noindex, noarchive, nosnippet"
</FilesMatch>
در اینجا برخی از بهترین شیوه ها و نکات هنگام ایجاد یک فایل robots.txt آورده شده است:
در راستای بهبود سئوی وب سایت یکی از گام های حیاتی استفاده از پیکربندی درست فایل robots.txt است. در متن بالا مواردی از نحوه استفاده ، ابزارهای مرتبط و نکات مهم استفاده از این فایل خدمتتان توضیح داده شد.