میدونستید که گاهی وقتها گوگل لینکهایی رو ایندکس میکنه که شما عمداً با استفاده از فایل robots.txt جلوی دسترسی بهشون رو گرفتید؟ این مشکل که با عنوان "Indexed, though blocked by robots.txt" شناخته میشه، ممکنه گیجکننده باشه ولی راهحلهای سادهای داره. تو این مقاله قراره با هم یاد بگیریم چطور این مشکل رو شناسایی و حل کنیم. با من همراه باشید تا این معما رو باز کنیم!
چطور مشکل "Indexed, though blocked by robots.txt" رو حل کنیم؟
بیا با هم بررسی کنیم که چطور مشکل Indexed, though blocked by robots.txt رو حل کنیم.
آیا میخوای گوگل لینک رو ایندکس کنه یا نه؟
اگر نمیخوای لینک ایندکس بشه:
یه تگ متا noindex به صفحه اضافه کن و مطمئن شو که اجازه دسترسی (crawl) به صفحه رو دادی، البته به شرطی که صفحه canonical باشه.
اگه صفحهای رو از دسترسی مسدود کنی، گوگل هنوز ممکنه اون رو ایندکس کنه، چون دسترسی و ایندکس کردن دو چیز متفاوت هستن. اگه گوگل نتونه صفحه رو بررسی کنه (crawl)، تگ noindex رو نمیبینه و ممکنه به خاطر لینکهایی که داره، ایندکسش کنه.
اگر لینک به صفحه دیگهای canonical میشه:
تگ متا noindex رو اضافه نکن. فقط مطمئن شو که همه سیگنالهای canonicalization درست هستن، از جمله تگ canonical روی صفحه اصلی و اجازه دسترسی به صفحه رو بده تا سیگنالها به درستی انتقال پیدا کنن.
اگر میخوای لینک ایندکس بشه:
باید بفهمی چرا گوگل نمیتونه به لینک دسترسی داشته باشه و مشکل رو برطرف کنی.
بررسی کنید که آیا دسترسی توسط robots.txt مسدود شده
بررسی مسدودیت در robots.txt: این محتملترین دلیل هست. مطمئن شو که فایل robots.txt دسترسی به صفحه رو مسدود نکرده.
بررسی مسدودیتهای متناوب: ممکنه صفحه به صورت متناوب مسدود بشه. این رو هم چک کن.
بررسی مسدودیت توسط user-agent: بعضی وقتها، مسدودیت به خاطر user-agent خاصی هست. این رو هم بررسی کن.
بررسی مسدودیت توسط IP: مسدودیتهای IP رو هم فراموش نکن و مطمئن شو که این مشکل وجود نداره.
با انجام این مراحل، میتونی مشکل رو شناسایی و رفع کنی تا صفحات سایتت به درستی ایندکس بشن.
بررسی مسدودیت در robots.txt
برای بررسی سادهترین راه، میتونی از ابزار robots.txt tester در گوگل سرچ کنسول (GSC) استفاده کنی که بهت نشون میده چه قوانینی باعث مسدودیت شدن.
اگه میدونی دنبال چی هستی یا به GSC دسترسی نداری، میتونی به راحتی به domain.com/robots.txt بری و فایل رو بررسی کنی. معمولاً به دنبال دستور Disallow هستی مثل:
Disallow: /
ممکنه یک user-agent خاص رو مسدود کرده باشه یا اینکه همه رو بلاک کنه. اگه سایتت جدید هست یا تازه راهاندازی شده، ممکنه بخوای به دنبال چیزی مثل این بگردی:
User-agent: *
Disallow: /
مشکلی پیدا نمیکنی؟
ممکنه کسی قبلاً مسدودیت در فایل robots.txt رو برطرف کرده باشه و مشکل حل شده باشه. این بهترین حالت ممکنه. اما اگه مشکل به نظر حل شده باشه ولی بعد از مدتی دوباره ظاهر بشه، ممکنه با یک مسدودیت متناوب روبرو باشی.
چطور مشکل "indexed, though blocked by robots.txt" رو در وردپرس حل کنیم
باید دستور Disallow که باعث مسدودیت شده رو حذف کنی. نحوه انجام این کار بستگی به تکنولوژیای داره که استفاده میکنی.
اگه مشکل کل سایت رو تحت تأثیر قرار داده، احتمالاً تنظیمی رو در وردپرس فعال کردی که ایندکس رو غیر فعال میکنه. این اشتباه معمولاً در سایتهای جدید و بعد از مهاجرت سایتها رخ میده. مراحل زیر رو دنبال کن:
روی ‘Settings’ کلیک کن
روی ‘Reading’ کلیک کن
مطمئن شو که گزینه ‘Search Engine Visibility’ غیر فعال (unchecked) باشه.
وردپرس با Yoast
اگه از پلاگین Yoast SEO استفاده میکنی، میتونی مستقیماً فایل robots.txt رو ویرایش کنی و دستور مسدودیت رو حذف کنی.
روی ‘Yoast SEO’ کلیک کن
روی ‘Tools’ کلیک کن
روی ‘File editor’ کلیک کن
وردپرس با Rank Math
مثل Yoast، ابزار Rank Math هم بهت اجازه میده که فایل robots.txt رو مستقیماً ویرایش کنی.
روی ‘Rank Math’ کلیک کن
روی ‘General Settings’ کلیک کن
روی ‘Edit robots.txt’ کلیک کن
استفاده از FTP یا هاستینگ
اگه به سایتت دسترسی FTP داری، میتونی فایل robots.txt رو مستقیماً ویرایش کنی و دستور Disallow رو که باعث مشکل شده حذف کنی. همچنین سرویس دهنده هاستینگت ممکنه بهت دسترسی به یک فایل منیجر بده که اجازه میده فایل robots.txt رو مستقیماً ویرایش کنی.
بررسی مسدودیتهای متناوب
مشکلات متناوب میتونن دردسرساز باشن چون شرایطی که باعث مسدودیت میشن همیشه وجود ندارن.
برای این کار پیشنهاد میکنم تاریخچه فایل robots.txt رو بررسی کنی. مثلاً در ابزار robots.txt tester در گوگل سرچ کنسول (GSC)، اگه روی منوی کشویی کلیک کنی، میتونی نسخههای قبلی فایل رو ببینی و ببینی که چه تغییراتی داشتن.
استفاده از Wayback Machine
Wayback Machine توی archive.org هم تاریخچهای از فایلهای robots.txt سایتهایی که کراول کرده رو داره. میتونی روی هر کدوم از تاریخهایی که داده دارن کلیک کنی و ببینی اون روز فایل شامل چه چیزهایی بوده.
یا از نسخه بتای گزارش Changes استفاده کن که بهت اجازه میده به راحتی تغییرات محتوا بین دو نسخه مختلف رو ببینی.
چطور مسدودیتهای متناوب رو حل کنیم
روش حل مشکلات متناوب بستگی داره به اینکه مشکل از کجا ناشی شده باشه. مثلاً یکی از دلایل ممکنه این باشه که کش مشترکی بین محیط تست و محیط اصلی وجود داره. وقتی که کش از محیط تست فعال باشه، فایل robots.txt ممکنه دستور مسدودیت داشته باشه. و وقتی که کش از محیط اصلی فعال باشه، سایت ممکنه قابل کراول باشه. تو این حالت، باید کش رو جدا کنی یا شاید فایلهای .txt رو از کش محیط تست حذف کنی.
بررسی مسدودیتهای user-agent
مسدودیتهای user-agent وقتی رخ میده که یه سایت یک user-agent خاص مثل Googlebot یا AhrefsBot رو مسدود کنه. به عبارت دیگه، سایت یه ربات خاص رو تشخیص میده و user-agent مربوطه رو بلاک میکنه.
اگه میتونی یه صفحه رو توی مرورگر معمولیت ببینی ولی بعد از تغییر user-agent بلاک میشی، یعنی user-agent خاصی که وارد کردی مسدود شده.
میتونی از ابزارهای Chrome devtools برای مشخص کردن یک user-agent خاص استفاده کنی. یه گزینه دیگه هم استفاده از افزونههای مرورگر برای تغییر user-agent هست، مثل این یکی.
همچنین میتونی با یک فرمان cURL مسدودیتهای user-agent رو بررسی کنی. اینجوری تو ویندوز انجامش بده:
کلیدهای Windows+R رو بزن تا کادر Run باز بشه.
تایپ کن “cmd” و بعد روی “OK” کلیک کن.
یه فرمان cURL مثل این وارد کن:
curl -A “user-agent-name-here” -Lv [URL]
curl -A “Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)” -Lv https://ahrefs.com
چطور مسدودیتهای user-agent رو رفع کنیم
متاسفانه، حل این مشکل هم بستگی داره به اینکه مسدودیت از کجا ناشی شده. سیستمهای مختلفی ممکنه یک ربات رو مسدود کنن، از جمله .htaccess، تنظیمات سرور، فایروالها، CDN یا حتی چیزی که ممکنه تو نتونی ببینی و ارائه دهنده هاستینگت کنترلش کنه. بهترین کار اینه که با ارائه دهنده هاستینگ یا CDN تماس بگیری و ازشون بپرسی مسدودیت از کجا میاد و چطور میتونی حلش کنی.
برای مثال، اینجا دو روش مختلف برای مسدود کردن یک user-agent در .htaccess آورده شده که ممکنه بخوای بررسی کنی.
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Googlebot [NC]
RewriteRule .* - [F,L]
یا…
BrowserMatchNoCase "Googlebot" bots
Order Allow,Deny
Allow from ALL
Deny from env=bots
بررسی مسدودیتهای IP
اگه مطمئن شدی که مسدودیت به خاطر robots.txt نیست و مسدودیت user-agent هم نداری، احتمالاً مشکل از مسدودیت IP هست.
چطور مسدودیتهای IP رو حل کنیم
مسدودیتهای IP مشکلاتی هستن که ردیابیشون سخته. مثل مسدودیتهای user-agent، بهترین کار اینه که با ارائهدهنده هاستینگ یا CDN تماس بگیری و ازشون بپرسی مسدودیت از کجا میاد و چطور میتونی حلش کنی.
اینجا یه مثال از چیزی که ممکنه توی .htaccess به دنبالش باشی آورده شده:
deny from 123.123.123.123
سوالات متداول
1. چرا گوگل صفحات بلاک شده توسط robots.txt رو ایندکس میکنه؟
گوگل بعضی وقتها لینکهایی رو ایندکس میکنه که دسترسی بهشون رو توسط فایل robots.txt مسدود کردی، چون ایندکس کردن و دسترسی (crawl) دو چیز متفاوت هستن. وقتی گوگل نتونه صفحه رو بررسی کنه، نمیتونه تگ noindex رو ببینه و ممکنه صفحه رو به خاطر لینکهایی که داره ایندکس کنه.
2. چطور میتونم بفهمم که مسدودیت از robots.txt هست یا نه؟
برای بررسی این موضوع میتونی از ابزار robots.txt tester در گوگل سرچ کنسول استفاده کنی یا مستقیماً به domain.com/robots.txt بری و فایل رو بررسی کنی. اگه دستوری مثل Disallow: / یا User-agent: * Disallow: / رو دیدی، یعنی مسدودیت از فایل robots.txt هست.
3. اگه صفحهای که نمیخوام ایندکس بشه رو دسترسی (crawl) ندم، گوگل هنوز هم ممکنه اون رو ایندکس کنه؟
بله، گوگل ممکنه همچنان اون صفحه رو ایندکس کنه چون ایندکس کردن و دسترسی دو چیز متفاوت هستن. برای جلوگیری از این کار، بهتره یه تگ متا noindex به صفحه اضافه کنی و اجازه دسترسی به صفحه رو بدی.
4. چطور میتونم مسدودیتهای user-agent رو رفع کنم؟
برای رفع مسدودیتهای user-agent، باید ببینی که مسدودیت از کجا ناشی شده. این میتونه از طریق فایل .htaccess، تنظیمات سرور، فایروالها، CDN یا چیزهایی که هاستینگت کنترل میکنه باشه. بهترین کار اینه که با ارائه دهنده هاستینگ یا CDN تماس بگیری و ازشون بپرسی مسدودیت از کجا میاد و چطور میتونی حلش کنی.
5. چطور میتونم مسدودیتهای IP رو رفع کنم؟
مسدودیتهای IP معمولاً پیچیده هستن و بهتره با ارائهدهنده هاستینگ یا CDN تماس بگیری و ازشون بپرسی مسدودیت از کجا ناشی میشه و چطور میتونی رفعش کنی. یه نمونه از مسدودیت IP میتونه تو فایل .htaccess باشه که دستور deny from 123.123.123.123 توش نوشته شده باشه.
جمعبندی
بیشتر مواقع، هشدار "indexed, though blocked by robots.txt" به خاطر مسدودیت در فایل robots.txt هست. اما گاهی وقتها مشکلات پیچیدهتری مثل مسدودیتهای متناوب، user-agent و IP هم ممکنه باعث این مشکل بشن. امیدوارم این راهنما بهتون کمک کرده باشه که مشکل رو پیدا کنید و رفعش کنید. اگه سوالی دارید یا نیاز به راهنمایی بیشتر دارید، حتماً بپرسید.