در دنیای امروز، سئو یا بهینهسازی برای موتورهای جستجو یکی از ارکان اساسی موفقیت هر وبسایت به شمار میرود. در کنار فاکتورهایی مانند تولید محتوای باکیفیت، سرعت سایت، و ساختار لینکدهی، فایل 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 ایجاد کنید و از اشتباهات احتمالی جلوگیری کنید.
فایل Robots.txt در وبسایتها نقش همین راهنماها و نگهبانان را دارد اما نه برای کاربرانی که وارد سایت میشوند، بلکه برای رباتهایی که برای بررسی سایت یا هر کار دیگری میخواهند در بخشهای مختلف سایت سرک بکشند.
ساختار این فایل معمولاً ساده است. از دو دستور اصلی تشکیل میشود:
User Agent مشخص می کند این دستور برای کدام خزنده است.
Disallow مشخص می کند کدام مسیرها نباید بررسی شوند.
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Allow: /public/
در این مثال همه ربات ها (*) اجازه ندارند وارد مسیرهای /admin و /tmp شوند. اما اجازه دارند وارد مسیر /public شوند.
استفاده از robots.txt
ربات؟! خب بله دیگه. فقط آدمها بازدید کننده سایت شما نیستند که. رباتهایی هستند که به دلایل مختلفی به سایت شما سر میزنند.
رباتها در واقع نرمافزارهایی هستند که به صورت خودکار صفحههای مختلف را باز و بررسی میکنند.
رباتهای موتور جستجوی گوگل مهمترین رباتهایی هستند که در اینترنت میچرخند. این رباتها هر روز چندین بار صفحههای سایت شما را بررسی میکنند. اگر وبسایت بزرگی داشته باشید، امکان دارد رباتهای گوگل تا چند ده هزار بار در روز صفحههای سایت را بررسی کنند.
هر کدام از این رباتها کار خاصی میکنند. مثلاً مهمترین ربات گوگل یا همان Googlebot کارش پیدا کردن صفحههای جدید در اینترنت و دریافت آن برای بررسیهای بیشتر توسط الگوریتمهای رتبهبندی کننده است، پس رباتها نه تنها ضرری برای سایت شما ندارند، بلکه باید خیلی هم از آنها استقبال کرد.
اما باید حواستان باشد که این رباتها زبان آدمیزاد سرشان نمیشود! یعنی همینطور مثل چی سرشان را میندازند پایین و سر تا پای سایت را بررسی میکنند. بعضی وقتها هم رباتها گوگل چیزهایی را که دوست نداریم هر کسی ببیند را برمیدارند میبرند در سرورهای گوگل ذخیره میکنند و به عالم و آدم نشان میدهند. خب پس باید راهی باشد که جلوی آنها را بگیریم.
خوشبختانه دسترسی رباتها به صفحهها یا فایلها را میتوانیم کنترل کنیم، میتوانید با نوشتن دستورهایی ساده در یک فایل به نام robots.txt جلوی ورود ربات را به بخشهایی از سایت بگیرید، به آنها بگویید اجازه ندارند وارد بخشی از سایت شوند یا دستوراتی خاص بدهید تا سرور میزبان سایت شما الکی مشغول رباتها نشود.
فایل Robots.txt مثل یک مجوز دهنده به رباتها است. وقتی رباتها میخواهند صفحههایی از سایت را بررسی کنند، اول فایل Robots.txt را میخوانند. در این فایل با چند دستور ساده مشخص میکنیم که ربات اجازه بررسی کدام صفحهها را دارد و کدام صفحهها را نباید بررسی کند.
مثل تصویر زیر که در آن اجازه دسترسی به پوشهای به نام photos و اجازه دسترسی به صفحهای به نام files.html را ندادیم:
robots.txt
robots.txt
اشتباهات رایج در استفاده از Robots.txt:
۱-بلاک کردن کل سایت:
User-agent: *
Disallow: /
این دستور به همه رباتها میگوید هیچ چیزی را بررسی نکنند!
۲-بلاک کردن فایلهای CSS یا JS:
گوگل برای فهمیدن طراحی و عملکرد سایت به CSS و JS نیاز دارد. بلاک کردن آنها میتواند باعث کاهش رتبه در سئو شود.
۳-بلاک کردن صفحات با متا تگ noindex:
برخی افراد اشتباه میکنند که فکر میکنند Disallow باعث میشود صفحه ایندکس نشود. در حالی که برای جلوگیری از ایندکس باید از noindex در meta tag استفاده کرد.
چرا باید فایل robots.txt داشته باشیم؟
صاحبان وبسایت و وبمسترها میتوانند ورود رباتها به وبسایت را از راههای مختلفی کنترل کنند. کنترل کردن هم دلایل مختلفی دارد.
مثلاً تمام صفحات یک سایت از درجه اهمیت یکسانی برخوردار نیستند. بیشتر وبمسترها علاقهای ندارند تا پنل مدیریت وبسایتشان در موتورهای جستجوگر ایندکس شود و در اختیار عموم قرار گیرد یا اینکه برخی از صفحات سایتشان محتوای قابل قبولی ندارد و به همین دلیل ترجیح میدهند آن صفحات توسط رباتها بررسی نشوند. یا اگر وبسایتی دارید که هزاران صفحه دارد و بازدید کل سایت هم زیاد است، احتمالاً دوست ندارید منابع سرور شما (پهنای باند، قدرت پردازشی و ..) برای بازدیدهای پشت سرهم رباتها مصرف شود.
اینجا است که فایل robots.txt نقشآفرینی میکند.
در حال حاضر، هدف اصلی فایل ربات محدود کردن درخواستهای بیش از حد بازدید از صفحات وبسایت است. یعنی اگر رباتها میخواهند روزی شونصد بار یک صفحه را بررسی کنند، ما با نوشتن یک دستور ساده در فایل Robot جلوی آنها را میگیریم تا بفهمند رئیس کیست!
چرا باید فایل robots.txt داشته باشیم؟
آیا با فایل robots.txt میتوان صفحهای را از نتایج جستجو حذف کرد؟
تا همین چند وقت پیش اگر میخواستید صفحهای را به طور کامل از دید رباتهای گوگل دور کنید و حتی در نتایج جستجو دیده نشود.، با دستور noindex در همین فایل امکانپذیر بود اما حالا کمی داستان پیچیدهتر شده است؛ این فایل برای دور نگهداشتن صفحهها از موتور جستجوی گوگل کمک زیادی به حذف صفحه از نتایج جستجو نمیکند.
گوگل اعلام کرد که برای حذف صفحهها از نتایج جستجو، بهتر است از راههای دیگری به جز فایل robots.txt استفاده کنید. البته در حال حاضر میتوان از این فایل برای خارج کردن فایلهایی مثل تصاویر، ویدیو یا صدا از نتایج جستجو استفاده کنید اما برای صفحات وب مناسب نیست.
راههای دیگر جایگزین برای حذف صفحه از نتایج جستجئی گوگل را در ادامه معرفی میکنیم.
آشنایی با رباتهای گوگل:
گوگل تعدادی ربات خزنده (Crawler) دارد که به صورت خودکار وبسایتها را اسکن میکنند و صفحهها را با دنبال کردن لینکها از صفحهای به صفحه دیگر پیدا میکنند.
لیست زیر شامل مهمترین رباتهای گوگل است که بهتر است بشناسید:
AdSense
رباتی برای بررسی صفحهها با هدف نمایش تبلیغات مرتبط
Googlebot Image
رباتی که تصاویر را پیدا و بررسی میکند.
Googlebot News
رباتی برای ایندکس کردن سایتهای خبری
Googlebot Video
ربات بررسی ویدیوها
Googlebot
این ربات صفحات وب را کشف و ایندکس میکند. دو نوع Desktop و Smartphone دارد.
هر کدام از این رباتها به صورت مداوم، صفحههای وبسایت را بررسی میکنند. شما میتوانید در صورت نیاز هرکدام از رباتها را محدود کنید.
این که رباتهای خزنده هر چند وقت یک بار به سایت شما سر میزنند به چند فاکتور بستگی دارد. هر چه در طول روز تعداد بیشتری محتوا در وبسایتتان قرار بگیرد و تغییرات سایت اهمیت زیادی داشته باشد، رباتهای جستجوگر دفعات بیشتری به سایت شما مراجعه میکنند. برای مثال، در وبسایتهای خبری که همیشه در حال انتشار خبر و بهروزرسانی اخبارشان هستند رباتها با سرعت بیشتری صفحات را بررسی و ایندکس میکنند.
در سرچ کنسول بخشی به نام Crawl Stats وجود دارد که دفعات بررسی صفحههای سایت به صورت روزانه را نمایش میدهد. در همین صفحه، حجم دانلود شده توسط رباتها و همینطور زمان بارگذاری صفحهها را میتوانید ببینید.
ساختار نوشتاری robots.txt
فایل 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 موتورهای جست و جوی معروف عبارتند از:
google: Googlebot
yahoo: Slurp
bing: Bingbot
DuckDuckGo: DuckDuckBot
دستورالعملها
دستورالعملها قوانینی هستند که شما برای رباتهای موتور جستجو تعریف میکنید. هر بلوک متن میتواند یک یا چند دستورالعمل داشته باشد. هر دستورالعمل باید در یک خط جداگانه شروع شود. کلیدواژهها عبارتند از:
Disallow
Allow
Sitemap
Crawl-delay
توجه: همچنین یک دستورالعمل غیر رسمی noindex وجود دارد که قرار است نشان دهد یک صفحه نباید ایندکس شود. با این حال، اکثر موتورهای جستجو، از جمله گوگل و بینگ، از آن پشتیبانی نمیکنند. اگر نمیخواهید برخی از صفحات ایندکس شوند، از تگ متا روباتهای noindex یا هدر X-Robots-Tag استفاده کنید.
Disallow
این دستورالعمل مشخص می کند که کدام صفحات نباید خزیده شوند. به طور پیشفرض، رباتهای موتور جستجو میتوانند هر صفحهای را که توسط دستورالعمل 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 ممکن است مفید باشد و روند خزیدن را کند کند.
مقدار دستور 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
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
meta tag
Robots.txt و امنیت:
بعضی تصور میکنند Disallow در فایل robots.txt باعث میشود کسی به آن صفحه دسترسی نداشته باشد، اما این تصور اشتباه است. این فایل فقط به رباتها میگوید که به آن مسیر نروند، اما افراد عادی هنوز میتوانند با دانستن URL به آن صفحه دسترسی پیدا کنند.
برای امنیت واقعی باید از روشهایی مانند احراز هویت، سطح دسترسی، یا htaccess استفاده کرد.
تست فایل robots.txt
میتوانید با robots.txt tester در کنسول جستجوی Google و ابزار وبمستر بینگ آزمایش کنید. به سادگی URL مورد نظر برای تأیید را تایپ کنید و ابزار، مجاز یا غیرمجاز بودن آن را به شما نشان می دهد. همچنین میتوانید فایل را مستقیماً در robots.txt tester ویرایش کنید و تغییرات را مجدداً آزمایش کنید. به خاطر داشته باشید که تغییرات در وب سایت شما ذخیره نمی شود.شما باید فایل را کپی کرده و در سایت خود آپلود کنید.
تفاوت فایل Robots.txt با Robots Meta Tag و X-Robots-Tag:
در حالی که 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 Meta Tag و X-Robots-Tag
چند نکته مهم
در اینجا برخی از بهترین شیوه ها و نکات هنگام ایجاد یک فایل robots.txt آورده شده است:
فایلهای جاوا اسکریپت یا CSS خود را با استفاده از robots.txt مسدود نکنید. اگر رباتها نتوانند به این منابع دسترسی داشته باشند، ممکن است محتوای شما را به درستی مشاهده نکنند.
اطمینان حاصل کنید که آدرس نقشه سایت خود اضافه را کنید تا به همه رباتهای موتور جستجو کمک کنید موارد را به راحتی پیدا کنند.
صفحاتی که در این فایل از ایندکس آنها جلوگیری میکنید را در نقشه سایت قرار ندهید.
تفسیر نحو robots.txt ممکن است بسته به موتور جستجو متفاوت باشد و اگر مطمئن نیستید، همیشه نحوه برخورد یک ربات موتور جستجو با یک دستورالعمل خاص را بررسی کنید.
هنگام استفاده از حروف Wildcard مراقب باشید؛ اگر به اشتباه آنها را استفاده کنید، ممکن است به اشتباه دسترسی به کل بخش سایت خود را مسدود کنید.
از robots.txt برای مسدود کردن محتوای خصوصی خود استفاده نکنید. اگر میخواهید صفحه خود را ایمن کنید، بهتر است از آن با رمز عبور محافظت کنید. علاوه بر این، فایل robots.txt برای عموم قابل دسترسی است و شما میتوانید مکان محتوای خصوصی خود را به رباتهای خطرناک فاش کنید.
عدم دسترسی خزنده ها به سایت شما باعث حذف آن از صفحه نتایج جستجو نمی شود؛ اگر پیوندهای زیادی با انکر تکست توصیفی وجود داشته باشد که به صفحه شما اشاره می کند، همچنان می توان آن را ایندکس کرد. اگر می خواهید از آن جلوگیری کنید، باید به جای آن از Meta Robots Tag یا هدر X-Robots-Tag استفاده کنید.
نتیجه گیری:
در راستای بهبود سئوی وب سایت یکی از گام های حیاتی استفاده از پیکربندی درست فایل robots.txt است. در متن بالا مواردی از نحوه استفاده ، ابزارهای مرتبط و نکات مهم استفاده از این فایل خدمتتان توضیح داده شد.