پرش به محتوا
SEO و خزنده‌ها

چطور خزنده‌های هوش مصنوعی را در وردپرس مسدود کنیم (بی‌تعارف)

برای جلوگیری از خزیدن GPTBot در یک سایت وردپرسی، این خطوط را به robots.txt خود اضافه کنید:

منتشرشده

برای جلوگیری از خزیدن GPTBot در یک سایت وردپرسی، این خطوط را به robots.txt خود اضافه کنید:

User-agent: GPTBot
Disallow: /

برای خزنده‌های خوش‌رفتار، همین کل ماجراست. اما با خودتان روراست باشید که واقعاً چه کاری انجام داده‌اید: robots.txt یک درخواست است، نه یک دیوار. GPTBot متعلق به OpenAI این فایل را می‌گیرد و از آن اطاعت می‌کند. اما یک اسکرپر که استاندارد را رعایت نمی‌کند، همین فایل را می‌گیرد و تک‌تک خطوط آن را نادیده می‌گیرد. پیش از آنکه یک بعدازظهر را صرف تنظیم دقیق این موضوع کنید، این تمایز را جلوی چشمتان نگه دارید.

اگر می‌خواهید در یک حرکت خزنده‌های اصلی هوش مصنوعی را پوشش دهید، توکن‌های رایج user-agent این‌ها هستند:

User-agent: GPTBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: PerplexityBot
Disallow: /

User-agent: Bytespider
Disallow: /

GPTBot خزندهٔ آموزشی OpenAI است، CCBot مربوط به Common Crawl است (که بسیاری از مدل‌ها در مراحل بعدی روی آن آموزش می‌بینند)، ClaudeBot متعلق به Anthropic است، Google-Extended توکن آموزش هوش مصنوعی گوگل است و Bytespider متعلق به ByteDance است. توجه کنید که دوتای این‌ها همین حالا هم مدل «درخواست مؤدبانه» را زیر پا می‌گذارند: Bytespider و PerplexityBot هر دو به‌طور عمومی مستند شده‌اند که سایت‌هایی را خزیده‌اند که آن‌ها را مسدود کرده بودند. آوردن نامشان همچنان در برابر ربات‌های صادق کمک می‌کند؛ اما در برابر آن‌هایی که همین حالا دربارهٔ هویتشان دروغ می‌گویند، هیچ کاری نمی‌کند.

وردپرس واقعاً robots.txt را چطور سرو می‌کند

اینجا همان‌جایی است که ویرایش‌های اغلب افراد بی‌سروصدا هیچ اثری ندارد. اگر هیچ فایل فیزیکی robots.txt در ریشهٔ وب شما وجود نداشته باشد، وردپرس آن را در لحظه تولید می‌کند. این درخواست توسط do_robots() در wp-includes/functions.php مدیریت می‌شود و خروجی از فیلتر robots_txt عبور می‌کند. تیک «موتورهای جستجو را از فهرست‌بندی این سایت منصرف کن» در بخش تنظیمات ← خواندن، گزینهٔ blog_public را تغییر می‌دهد و همین چیزی است که باعث می‌شود آن فایل مجازی Disallow: / تولید کند.

پس می‌توانید قوانین خزنده‌های هوش مصنوعی را به‌صورت برنامه‌نویسی اضافه کنید:

add_filter( 'robots_txt', function ( $output, $public ) {
    $output .= "User-agent: GPTBot\nDisallow: /\n";
    return $output;
}, 10, 2 );

اما اینجا همان نکته‌ای است که ساعت‌ها وقت می‌خورد: به‌محض اینکه یک فایل استاتیک robots.txt در ریشهٔ وب شما وجود داشته باشد، Apache یا nginx مستقیماً همان فایل را سرو می‌کند و وردپرس اصلاً اجرا نمی‌شود. فیلتر robots_txt، ویرایشگر robots در Yoast/Rank Math و تنظیمات خواندن — همه دور زده می‌شوند. اگر robots.txt را در یک افزونه ویرایش کردید و فایل زنده هرگز تغییر نکرد، دلیلش تقریباً همیشه همین است. آدرس https://yoursite.com/robots.txt را در یک پنجرهٔ ناشناس بررسی کنید و آن را با چیزی که فکر می‌کنید تنظیم کرده‌اید مقایسه کنید. اگر یک فایل واقعی روی دیسک وجود دارد، همان فایل را ویرایش کنید؛ فیلتر بی‌ربط است.

رفع مشکل، به ترتیب

اول، قوانین تمیز بنویسید. نحو (syntax) و فهرست خزنده‌ها را درست دربیاورید تا به‌طور تصادفی Googlebot را مسدود نکنید. تولیدکنندهٔ robots.txt ما بلوک خزندهٔ هوش مصنوعی را برایتان می‌سازد و دقیقاً فایلی را که باید بچسبانید نشان می‌دهد، و همین سردرگمی مجازی در برابر فیزیکی را کنار می‌زند، چون در نهایت با یک فایل معتبر و واحد کار می‌کنید.

دوم، مطمئن شوید که زنده است. آدرس را مستقیماً بگیرید. به پیش‌نمایش افزونه اعتماد نکنید.

سوم، اگر به جای یک درخواست مؤدبانه به اعمال واقعی نیاز دارید، در لایه بالاتر بروید. robots.txt در لایهٔ برنامه (application layer) قرار دارد و به حسن نیت ربات وابسته است. برای اینکه واقعاً یک اتصال را رد کنید، بر اساس user-agent در سطح سرور مسدود کنید. در .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (GPTBot|CCBot|ClaudeBot|Bytespider) [NC]
RewriteRule .* - [F,L]
</IfModule>

این کار به هر چیزی که آن user-agent‌ها را ارسال کند، پاسخ 403 برمی‌گرداند. تولیدکنندهٔ .htaccess ما می‌تواند این کد را برایتان سرهم کند. اما محدودیتش را بفهمید: user-agent‌ها به‌سادگی جعل می‌شوند، پس این فقط ربات‌هایی را متوقف می‌کند که آن‌قدر صادق هستند که خودشان را معرفی کنند — که همان ربات‌هایی هستند که همین حالا هم از robots.txt اطاعت می‌کنند. گزینهٔ واقعاً مقاوم یک CDN یا WAF است که بر اساس هویت تأییدشدهٔ خزنده یا محدودهٔ IP مسدود می‌کند. قانون مدیریت‌شدهٔ تک‌کلیکی «Block AI Scrapers and Crawlers» در Cloudflare کم‌زحمت‌ترین نسخهٔ این کار است و در لبه (edge) عمل می‌کند، پیش از آنکه درخواست اصلاً به وردپرس برسد.

چه کارهایی نکنید

Google-Extended را با این تصور که شما را از AI Overviews دور نگه می‌دارد مسدود نکنید. این همان تصور اشتباهی است که ارزش تصحیح دارد. Google-Extended یک توکن محصول است، نه یک خزنده. این توکن فقط کنترل می‌کند که آیا محتوای شما برای آموزش و پایه‌گذاری مدل‌های Gemini استفاده شود یا نه. طبق مستندات خود گوگل، این هیچ تأثیری بر نحوهٔ خزیده‌شدن، فهرست‌بندی یا رتبه‌بندی صفحات شما در جستجوی گوگل ندارد. و AI Overviews از همان ایندکس معمولی جستجو ساخته می‌شود که Googlebot می‌خزد — نه از Google-Extended. مسدود کردن Google-Extended شما را از AI Overviews حذف نمی‌کند و حتی یک رتبه هم در جستجو برایتان هزینه ندارد. تنها راه دور ماندن از AI Overviews این است که Googlebot را مسدود کنید یا صفحه را noindex کنید، که این کار شما را به‌طور کامل از جستجو هم حذف می‌کند. این تقریباً هرگز معامله‌ای نیست که بخواهید انجام دهید.

با robots.txt مثل یک کنترل امنیتی رفتار نکنید. این فایل عمومی و صرفاً توصیه‌ای است. آوردن /wp-admin/ یا یک مسیر خصوصی در آن فقط نقشه‌ای از جایی که باید دنبالش بگردند منتشر می‌کند. از نقاط انتهایی (endpoint) واقعی با احراز هویت محافظت کنید، نه با یک خط disallow.

به متا تگ‌های noai / noimageai تکیه نکنید. این‌ها پیشنهاد شدند، نه استاندارد، و فقط تعداد انگشت‌شماری از پلتفرم‌ها به آن‌ها احترام می‌گذارند. این‌ها یک دفاع عمومی نیستند.

فرض نکنید که یک افزونهٔ «مسدودکنندهٔ هوش مصنوعی» کاری فراتر از نوشتن robots.txt انجام داده است. بیشترشان همان خطوطی را می‌نویسند که خودتان می‌توانستید دستی بنویسید و همان محدودیت را به ارث می‌برند. پیش از اعتماد به افزونه، ببینید واقعاً چه چیزی را تغییر داده است.

هنوز گیر کرده‌اید؟

اگر ویرایش‌هایتان نمایش داده نمی‌شوند، پاسخ تقریباً همیشه یک robots.txt فیزیکی سرگردان در ریشهٔ وب است که نسخهٔ مجازی وردپرس را دور می‌زند — آدرس را مستقیماً بگیرید و بررسی کنید. اگر ربات‌های سازگار رفته‌اند اما اسکرپرها همچنان به شما ضربه می‌زنند، به سقف کاری که robots.txt می‌تواند انجام دهد رسیده‌اید، و حرکت بعدی یک قانون WAF یا CDN است که بر اساس هویت تأییدشده مسدود می‌کند، نه با درخواست مؤدبانه.

FAQ

پرسش‌ها

چطور جلوی خزیدن ChatGPT در سایت WordPress را بگیرم؟

خط «User-agent: GPTBot» و پس از آن «Disallow: /» را به robots.txt خود اضافه کنید. GPTBot خزندهٔ آموزشی OpenAI است و این فایل را می‌گیرد و از آن اطاعت می‌کند. فقط یادتان باشد robots.txt یک درخواست است، نه یک دیوار — اسکرپری که استاندارد را رعایت نمی‌کند همین فایل را می‌گیرد و تک‌تک خطوط آن را نادیده می‌گیرد.

چرا تغییرات من در robots.txt در WordPress اعمال نمی‌شود؟

تقریباً همیشه به این دلیل که یک فایل فیزیکی robots.txt در ریشهٔ وب وجود دارد. به‌محض وجود آن فایل، Apache یا nginx مستقیماً آن را سرو می‌کند و وردپرس اصلاً اجرا نمی‌شود، بنابراین فیلتر robots_txt، ویرایشگر Yoast یا Rank Math و گزینهٔ تنظیمات ← خواندن همگی دور زده می‌شوند. در عوض همان فایل واقعی روی دیسک را ویرایش کنید.

آیا مسدود کردن Google-Extended به رتبهٔ من در گوگل آسیب می‌زند؟

نه. Google-Extended یک توکن محصول است نه یک خزنده، و طبق مستندات خود گوگل هیچ اثری بر نحوهٔ خزیده‌شدن، فهرست‌شدن یا رتبه‌بندی صفحات شما در جستجوی گوگل ندارد. تنها چیزی که کنترل می‌کند این است که محتوای شما برای آموزش و مبناسازی مدل‌های Gemini استفاده شود یا نه، و مسدود کردن آن شما را از AI Overviews حذف نمی‌کند.

آیا خزنده‌های هوش مصنوعی واقعاً از robots.txt اطاعت می‌کنند؟

بعضی بله و بعضی نه. GPTBot فایل robots.txt را می‌گیرد و از آن پیروی می‌کند، اما Bytespider و PerplexityBot هر دو به‌طور عمومی مستند شده‌اند که سایت‌هایی را خزیده‌اند که مسدودشان کرده بودند. آوردن همهٔ توکن‌های user-agent همچنان در برابر ربات‌های صادق کمک می‌کند و در برابر آن‌هایی که همین حالا دربارهٔ هویتشان دروغ می‌گویند هیچ کاری نمی‌کند.

چطور ربات‌های هوش مصنوعی را به‌جای robots.txt در سطح سرور مسدود کنم؟

بر اساس user agent در فایل .htaccess با یک قانون mod_rewrite که به GPTBot و CCBot و ClaudeBot و Bytespider پاسخ 403 برمی‌گرداند. جعل user agent بسیار ساده است، پس این کار فقط جلوی ربات‌هایی را می‌گیرد که آن‌قدر صادق هستند که خودشان را معرفی کنند. یک CDN یا WAF که بر اساس هویت تأییدشدهٔ خزنده یا محدودهٔ IP مسدود می‌کند گزینهٔ مستحکم است.