Google को किसी पेज को index न करने के लिए कहने के दो तरीके: HTML में robots meta tag, या HTTP response header में X-Robots-Tag। ये दोनों एक ही काम करते हैं। ये परस्पर विनिमेय नहीं हैं। सही तरीका चुनना इस बात पर निर्भर करता है कि फाइल क्या है (HTML बनाम PDF बनाम image), आप कहाँ edit कर सकते हैं (template बनाम server config), और क्या आपको इसे बड़े पैमाने पर चाहिए (एक पेज बनाम दस हजार)।
दोनों तंत्र एक-एक वाक्य में
robots meta tag: HTML document के <head> में <meta name="robots" content="noindex, nofollow">। सिर्फ HTML pages पर काम करता है क्योंकि PDF / image / JSON metadata में कोई बराबर नहीं है। page template के जरिए जोड़ना आसान है।
X-Robots-Tag: HTTP response header के रूप में X-Robots-Tag: noindex, nofollow। सर्वर जो भी resource type return करता है उस पर काम करता है — HTML, PDF, image, video, JSON, कुछ भी। Server में configured है (Apache, Nginx, Vercel edge headers, Cloudflare Workers) या framework के response API के माध्यम से।
जब robots meta सही विकल्प है
- Single-page exclusion: एक खास पेज जिसे आप noindex करना चाहते हैं। उस पेज के template में meta tag जोड़ें, change को ship करें।
- टेम्पलेट-नियंत्रित पेज: जब noindex निर्णय प्रति-पेज-प्रकार के आधार पर लिया जाता है (उदाहरण के लिए, सभी /thank-you/ पेजों को noindex किया जाना चाहिए)। उन पेजों द्वारा उपयोग किए जाने वाले लेआउट टेम्पलेट के अंदर मेटा टैग जोड़ें।
- गतिशील निर्णय: जब noindex रनटाइम डेटा पर निर्भर करता है (उदाहरण के लिए, 200 शब्दों से कम वाले पेजों को noindex करना)। मेटा टैग को टेम्पलेट में सशर्त रूप से रेंडर किया जाता है।
- जब आपके पास सर्वर-कॉन्फ़िग तक पहुँच नहीं है: साझा होस्टिंग, लॉक-डाउन CMS, एजेंसी डिप्लॉय जहाँ आप टेम्पलेट संपादित कर सकते हैं लेकिन htaccess नहीं। मेटा टैग आपका एकमात्र विकल्प है।
जब X-Robots-Tag सही विकल्प है
- गैर-HTML संसाधन: PDFs, छवियाँ, JSON एंडपॉइंट्स, साइटमैप्स। आप PDF में मेटा टैग नहीं जोड़ सकते। HTTP प्रतिक्रिया में X-Robots-Tag ही एकमात्र तरीका है।
- पैटर्न-आधारित बहिष्करण: "/admin/*" के तहत सब कुछ noindex करना या हर .pdf फ़ाइल को noindex करना। सर्वर में एक बार कॉन्फ़िगर करें, हर मिलान करने वाले URL पर हमेशा लागू होता है। 200 टेम्पलेट संपादित करने की तुलना में बहुत ज्यादा साफ़।
- बड़े पैमाने पर बहिष्करण: 10,000 गतिशील रूप से उत्पन्न URLs जिन्हें इंडेक्स नहीं किया जाना चाहिए। एक single Nginx location block 200 टेम्पलेट संपादित करने से बेहतर है।
- जब आप सुरक्षा की कई परतें चाहते हैं: सर्वर पर X-Robots-Tag को टेम्पलेट में robots मेटा के साथ जोड़ें। कोई भी layer noindex को पकड़ता है; दोनों layers का मतलब है कि टेम्पलेट बग गलती से पेज को दोबारा इंडेक्स नहीं कर सकता।
दोनों क्या सेट कर सकते हैं
दोनों तंत्र समान निर्देश समूह स्वीकार करते हैं। सबसे आम: noindex (इंडेक्स न करें), nofollow (इस पेज के लिंक को फॉलो न करें), none (= noindex, nofollow), noarchive (कैश संस्करण न दिखाएँ), nosnippet (SERP में स्निपेट न दिखाएँ), max-snippet:N (स्निपेट लंबाई सीमित करें), max-image-preview:standard|large|none (AI Overviews में छवि पूर्वावलोकन नियंत्रित करें — 2026 GEO कार्य के लिए प्रासंगिक), max-video-preview:N (वीडियो पूर्वावलोकन लंबाई सीमित करें), unavailable_after:date (किसी तारीख के बाद स्वचालित-noindex)।
Google को एक जैसे निर्देश पढ़ने पड़ते हैं चाहे उन्हें कोई भी तंत्र पहुंचाए। तंत्र का चुनाव स्केल और संसाधन के प्रकार के बारे में है, निर्देश समर्थन के बारे में नहीं।
आम प्लेटफॉर्म पर X-Robots-Tag कैसे सेट करें
Vercel (vercel.json)
एक [[headers]] ब्लॉक का इस्तेमाल करें जिसमें source पैटर्न और X-Robots-Tag के लिए values एंट्री हो। उदाहरण: [[headers]] source = "/admin/(.*)" [[headers.values]] X-Robots-Tag = "noindex, nofollow"। यह पैटर्न से मेल खाने वाले हर URL पर लागू होता है।
Netlify (netlify.toml)
[[headers]] ब्लॉक जिसमें for path glob और values.X-Robots-Tag सेट हो। उदाहरण: [[headers]] for = "/admin/*" [headers.values] X-Robots-Tag = "noindex, nofollow"।
Apache (.htaccess)
<FilesMatch "\.pdf$"> Header set X-Robots-Tag "noindex, nofollow" </FilesMatch> फाइल-पैटर्न मेल खाने के लिए। या पाथ मेल खाने के लिए <Location /admin> Header set X-Robots-Tag "noindex, nofollow" </Location> का इस्तेमाल करें।
Nginx
server ब्लॉक के अंदर location ~ /admin/ { add_header X-Robots-Tag "noindex, nofollow"; }। location ~ रेजेक्स से मेल खाता है; केवल प्रीफिक्स मेल खाने के लिए location ^~ का इस्तेमाल करें।
Cloudflare Workers / Edge
Worker script में Response headers को modify करें: response.headers.set('X-Robots-Tag', 'noindex, nofollow')। यह उन साइट्स के लिए उपयोगी है जहाँ origin server आसानी से header emit नहीं कर सकता।
Header set होने की पुष्टि करना
curl -I https://example.com/page सभी response headers को return करता है जिनमें X-Robots-Tag शामिल है। आउटपुट में X-Robots-Tag लाइन को देखें। अगर यह गायब है, तो header set नहीं हो रहा है।
Search Console verification के लिए: URL Inspection tool वे directives दिखाता है जो Google को meta tag और HTTP header दोनों से मिलीं। अगर कोई भी layer noindex set करता है, तो Google कुछ नहीं index करता। दोनों layers को check करना लायक है क्योंकि एक misconfigured CDN headers को silent रूप से strip कर सकता है।
Defence-in-depth पैटर्न
सबसे मजबूत production setup दोनों का उपयोग करता है। Path pattern के लिए server-level X-Robots-Tag (जैसे /admin/*) और उन्हीं pages के लिए template-level meta robots page के <head> में। दो layers का मतलब है कि एक template bug या CDN misconfiguration accidentally उन pages को reindex नहीं कर सकता जो private होने चाहिए।
यह है इस साइट का admin section कैसे configured है: vercel.json /admin/* पर X-Robots-Tag: noindex, nofollow set करता है, AND AdminLayout template head में <meta name="robots" content="noindex, nofollow"> emit करता है। पूरी सावधानी।
आम गलतियाँ
- एक page को noindex add करना जो पहले ही robots.txt द्वारा blocked है। robots.txt में Disallow Googlebot को page को fetch करने से रोकता है, इसलिए वह noindex directive को कभी नहीं देखता। Page को Disallow rule के बिना छोड़ें ताकि bot fetch कर सके + noindex देख सके।
- JavaScript-रेंडर किए गए HTML में meta tag के ज़रिए noindex सेट करना। कुछ bots JS को execute करते हैं, कुछ नहीं। सुरक्षित तरीका है server-side rendering के ज़रिए noindex meta tag सेट करना, या HTTP header में X-Robots-Tag डालना जिसे JS execution की ज़रूरत न हो।
- ऐसे page पर noindex सेट करना जिसके backlinks हैं। Google noindex को respect करेगा लेकिन उन backlinks से मिलने वाला link equity बर्बाद हो जाएगा। बेहतर है कि page को किसी संबंधित URL पर 301 redirect करो जो उस equity को absorb कर सके।
- यह भूल जाना कि X-Robots-Tag per-server नहीं बल्कि per-response है। CDN cache hits कभी-कभी custom headers को strip कर देते हैं; deploy के बाद curl से verify करो।
सारांश
robots meta tag: per-page, HTML में, template level पर edit करें। X-Robots-Tag: per-response, HTTP header में, server level पर edit करें। HTML के लिए दोनों काम करते हैं; non-HTML के लिए सिर्फ X-Robots-Tag काम करता है। जब noindex महत्वपूर्ण हो तो दोनों का use करो।
संबंधित reading: 410 बनाम 404 retirement case को cover करता है (URLs गायब हो रहे हैं); 301 बनाम 302 बनाम 307 बनाम 308 redirect case को cover करता है (URLs move हो रहे हैं)। noindex के साथ मिलाकर ये तीन primary tools हैं Google को बताने के लिए कि URL के साथ क्या करना है।