सीधे कंटेंट पर जाएं
SEO और crawlers

WordPress में AI Crawlers को कैसे ब्लॉक करें (ईमानदारी से)

किसी WordPress साइट को GPTBot से क्रॉल होने से रोकने के लिए, अपनी robots.txt में ये लाइनें जोड़ें:

Published

किसी WordPress साइट को GPTBot से क्रॉल होने से रोकने के लिए, अपनी robots.txt में ये लाइनें जोड़ें:

User-agent: GPTBot
Disallow: /

अच्छे व्यवहार वाले crawlers के लिए बस इतना ही पूरा फिक्स है। लेकिन खुद से ईमानदार रहें कि आपने अभी क्या किया: robots.txt एक अनुरोध है, कोई दीवार नहीं। OpenAI का GPTBot इस फाइल को फेच करता है और इसका पालन करता है। जो scraper इस स्टैंडर्ड की परवाह नहीं करता, वह इसी फाइल को फेच करता है और इसकी हर लाइन को नजरअंदाज कर देता है। इस अंतर को ध्यान में रखें, इससे पहले कि आप इसे ट्यून करने में पूरी दोपहर लगा दें।

अगर आप एक ही बार में सारे बड़े AI crawlers को कवर करना चाहते हैं, तो आम 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 का ट्रेनिंग crawler है, CCBot Common Crawl है (जिस पर कई मॉडल आगे चलकर ट्रेन होते हैं), ClaudeBot Anthropic का है, Google-Extended Google का AI-ट्रेनिंग टोकन है, और Bytespider ByteDance का है। ध्यान दें कि इनमें से दो पहले से ही विनम्र-अनुरोध वाले मॉडल को तोड़ चुके हैं: Bytespider और PerplexityBot — दोनों को उन साइटों को क्रॉल करते हुए सार्वजनिक रूप से दस्तावेज किया गया है जिन्होंने इन्हें disallow किया था। इन्हें लिस्ट करना अब भी ईमानदार बॉट्स के खिलाफ मदद करता है; लेकिन जो पहले से ही अपनी पहचान के बारे में झूठ बोल रहे हैं, उनके खिलाफ यह कुछ नहीं करता।

WordPress असल में robots.txt कैसे सर्व करता है

यहीं पर ज्यादातर लोगों के बदलाव चुपचाप बेकार हो जाते हैं। अगर आपके web root में कोई फिजिकल robots.txt फाइल नहीं है, तो WordPress इसे तुरंत जनरेट कर देता है। यह अनुरोध wp-includes/functions.php में मौजूद do_robots() द्वारा हैंडल किया जाता है, और आउटपुट robots_txt फिल्टर से होकर गुजरता है। Settings → Reading के नीचे मौजूद “Discourage search engines from indexing this site” चेकबॉक्स blog_public विकल्प को बदलता है, और यही वह चीज है जो उस वर्चुअल फाइल में Disallow: / लिखवाती है।

तो आप AI-crawler के नियम प्रोग्रामेटिक तरीके से जोड़ सकते हैं:

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

अब यह वह पेच है जो घंटों खा जाता है: जिस पल आपके web root में एक स्टैटिक robots.txt फाइल मौजूद होती है, Apache या nginx उसी फाइल को सीधे सर्व कर देता है और WordPress कभी चलता ही नहीं। robots_txt फिल्टर, Yoast/Rank Math का robots एडिटर, Reading सेटिंग — सब बायपास हो जाते हैं। अगर आपने किसी plugin में robots.txt एडिट किया और लाइव फाइल कभी नहीं बदली, तो लगभग हमेशा यही वजह होती है। किसी private विंडो में https://yoursite.com/robots.txt चेक करें और जो आपने सेट किया समझ रहे हैं उससे मिलाएं। अगर डिस्क पर कोई असली फाइल है, तो उसी फाइल को एडिट करें; फिल्टर बेकार है।

इसे ठीक करना, क्रम में

पहले, साफ नियम लिखें। सिंटैक्स और crawler लिस्ट सही रखें ताकि आप गलती से Googlebot को ब्लॉक न कर बैठें। हमारा robots.txt generator आपके लिए AI-crawler ब्लॉक बना देता है और पेस्ट करने के लिए एकदम सटीक फाइल दिखाता है, जिससे वर्चुअल-बनाम-फिजिकल वाली उलझन ही खत्म हो जाती है क्योंकि आपके पास एक ही अधिकृत फाइल बचती है।

दूसरा, पुष्टि करें कि यह लाइव है। URL को सीधे फेच करें। plugin के प्रीव्यू पेन पर भरोसा न करें।

तीसरा, अगर आपको विनम्र अनुरोध के बजाय सख्ती चाहिए, तो स्टैक में ऊपर जाएं। robots.txt एप्लिकेशन लेयर पर रहता है और बॉट की सद्भावना पर निर्भर करता है। किसी कनेक्शन को असल में मना करने के लिए, सर्वर पर ही user agent के आधार पर ब्लॉक करें। .htaccess में:

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

यह उन सभी को 403 लौटाता है जो वे user agents भेजते हैं। हमारा .htaccess generator यह नियम बना सकता है। लेकिन इसकी सीमा समझ लें: user agents बहुत आसानी से नकली बनाए जा सकते हैं, इसलिए यह सिर्फ उन्हीं बॉट्स को रोकता है जो अपनी पहचान बताने में ईमानदार हैं — और ये वही बॉट्स हैं जो पहले से ही robots.txt का पालन करते हैं। सच में मजबूत विकल्प एक CDN या WAF है जो सत्यापित crawler पहचान या IP रेंज के आधार पर ब्लॉक करता है। Cloudflare का वन-क्लिक “Block AI Scrapers and Crawlers” मैनेज्ड रूल इसका सबसे कम-मेहनत वाला रूप है और यह एज पर, अनुरोध के WordPress तक पहुंचने से पहले ही काम करता है।

क्या न करें

Google-Extended को यह सोचकर ब्लॉक न करें कि इससे आप AI Overviews से बाहर रहेंगे। यह वह गलतफहमी है जिसे सुधारना जरूरी है। Google-Extended एक प्रोडक्ट टोकन है, कोई crawler नहीं। यह सिर्फ यह नियंत्रित करता है कि आपके कंटेंट का इस्तेमाल Gemini मॉडल को ट्रेन और ग्राउंड करने के लिए किया जाए या नहीं। खुद Google के दस्तावेज के अनुसार, इसका आपके पेज कैसे क्रॉल, इंडेक्स या Google Search में रैंक होते हैं — इस पर कोई असर नहीं पड़ता। और AI Overviews उसी रेगुलर Search इंडेक्स से बनते हैं जिसे Googlebot क्रॉल करता है — Google-Extended से नहीं। Google-Extended को ब्लॉक करने से आप AI Overviews से नहीं हटेंगे, और Search में आपकी एक भी पोजीशन नहीं जाएगी। AI Overviews से बाहर रहने का एकमात्र तरीका है Googlebot को ब्लॉक करना या पेज को noindex करना, जो आपको Search से भी पूरी तरह हटा देता है। यह लगभग कभी वह सौदा नहीं होता जो आप चाहते हैं।

robots.txt को सुरक्षा नियंत्रण की तरह न मानें। यह सार्वजनिक और सलाहकारी है। इसमें /wp-admin/ या कोई निजी पाथ लिस्ट करना बस यह नक्शा प्रकाशित कर देता है कि कहां देखना है। असली एंडपॉइंट्स को disallow लाइन से नहीं, बल्कि ऑथेंटिकेशन से सुरक्षित करें।

noai / noimageai मेटा टैग पर भरोसा न करें। ये प्रस्तावित किए गए थे, स्टैंडर्ड नहीं बने, और सिर्फ गिने-चुने प्लेटफॉर्म ही इन्हें मानते हैं। ये कोई सामान्य बचाव नहीं हैं।

यह न मान लें कि किसी “block AI” plugin ने robots.txt लिखने से ज्यादा कुछ किया है। इनमें से ज्यादातर वही लाइनें लिखते हैं जो आप हाथ से लिख सकते हैं, और वही सीमा विरासत में पाते हैं। plugin पर भरोसा करने से पहले पढ़ें कि उसने असल में क्या बदला।

अभी भी अटके हैं?

अगर आपके बदलाव नजर नहीं आ रहे, तो जवाब लगभग हमेशा web root में पड़ी कोई भटकी हुई फिजिकल robots.txt होती है जो WordPress की वर्चुअल फाइल को ओवरराइड कर रही है — URL को सीधे फेच करें और चेक करें। अगर नियम मानने वाले बॉट्स गायब हैं लेकिन scrapers आप पर हमला करते रहते हैं, तो आप robots.txt की सीमा तक पहुंच चुके हैं, और अगला कदम है एक WAF या CDN रूल जो विनम्रता से मांगने के बजाय सत्यापित पहचान के आधार पर ब्लॉक करता है।