robots.txt फ़ाइल बनाना

शुरुआत करना

robots.txt फ़ाइल आपकी साइट के रूट में होती है. इसलिए, साइट www.example.com के लिए robots.txt फ़ाइल, www.example.com/robots.txt में रहेगी. robots.txt एक सामान्य टेक्स्ट फ़ाइल हाेती है, जो रोबोट एक्सक्लूज़न स्टैंडर्ड का पालन करती है. robots.txt फ़ाइल में एक या एक से ज़्यादा नियम होते हैं. हर नियम उस वेबसाइट में किसी क्रॉलर को एक खास फ़ाइल पाथ को ऐक्सेस करने से रोकता (या अनुमति देता) है.

यहां दो नियमों वाली एक सामान्य robots.txt फ़ाइल दी गई है और इसके बारे में समझाया गया है:

# Group 1
User-agent: Googlebot
Disallow: /nogooglebot/

# Group 2
User-agent: *
Allow: /

Sitemap: http://www.example.com/sitemap.xml

इसका मतलब है:

  1. "Googlebot" क्रॉलर नाम का उपयोगकर्ता एजेंट, फ़ोल्डर http://example.com/nogooglebot/ या किसी भी सबडायरेक्ट्री को क्रॉल नहीं कर सकता.
  2. बाकी सभी उपयोगकर्ता एजेंट पूरी साइट को ऐक्सेस कर सकते हैं. (इसे शामिल न करने पर भी नतीजा यही होता, क्योंकि पूरा ऐक्सेस सिर्फ़ एक मानी हुई बात है, असलियत में पूरा ऐक्सेस मिलना मुश्किल है.)
  3. साइट की साइटमैप फ़ाइल http://www.example.com/sitemap.xml पर मौजूद है

इस बारे में ज़्यादा जानकारी वाला उदाहरण हम आगे देंगे.

robots.txt फ़ाइल के बारे में बुनियादी दिशा-निर्देश

robots.txt फ़ाइलों के बारे में कुछ बुनियादी दिशा-निर्देश यहां दिए गए हैं. हमारा सुझाव है कि आप robots.txt फ़ाइलों का पूरा सिंटैक्स पढ़ें, क्योंकि robots.txt सिंटैक्स में कुछ खास चीज़ें हाेती हैं, जिनमें मामूली गलती होने पर भी आपकी साइट पर बुरा असर पड़ सकता है. इसलिए, इस सिंटैक्स को ठीक तरह से समझना ज़रूरी है.

फ़ॉर्मैट और जगह

robots.txt फ़ाइल बनाने के लिए आप करीब-करीब किसी भी टेक्स्ट एडिटर का इस्तेमाल कर सकते हैं. टेक्स्ट एडिटर ऐसा होना चाहिए जो मानक UTF-8 टेक्स्ट फ़ाइलें बना सके. किसी वर्ड प्रोसेसर का इस्तेमाल न करें, क्योंकि वर्ड प्रोसेसर अक्सर अपने ही फ़ॉर्मैट में फ़ाइल सेव करते हैं. साथ ही, ये प्रोसेसर कर्ली कोट (“ ”) जैसे अनचाहे वर्ण जोड़ सकते हैं. इससे क्रॉलर को क्रॉल करते समय परेशानियां हो सकती हैं.

फ़ॉर्मैट और जगह से जुड़े नियम:

  • फ़ाइल का नाम robots.txt होना चाहिए
  • आपकी साइट में सिर्फ़ एक robots.txt फ़ाइल हो सकती है.
  • robots.txt फ़ाइल उस वेबसाइट होस्ट के रूट में होनी चाहिए जिस पर वह लागू होती है. उदाहरण के लिए, http://www.example.com/ के नीचे दिए गए सभी यूआरएल को क्रॉल करने वाले क्रॉलर को कंट्रोल करने के लिए, robots.txt फ़ाइल http://www.example.com/robots.txt पर मौजूद होनी चाहिए. यह किसी दूसरी सबडायरेक्ट्री (उदाहरण के लिए, http://example.com/pages/robots.txt पर) में नहीं हो सकती. अगर आपको नहीं पता कि आप अपनी वेबसाइट के रूट को कैसे ऐक्सेस कर सकते हैं या इसके लिए आपको अनुमतियों की ज़रूरत है, तो अपनी वेब होस्टिंग सेवा देने वाली कंपनी से संपर्क करें. अगर आप अपनी वेबसाइट के रूट को ऐक्सेस नहीं कर पा रहे हैं, तो मेटा टैग जैसे रोकने के दूसरे तरीके का इस्तेमाल करें.
  • robots.txt फ़ाइल सबडोमेन (उदाहरण के लिए, http://website.example.com/robots.txt) या बिना मानक वाले पोर्ट (उदाहरण के लिए, http://example.com:8181/robots.txt) पर लागू हो सकती है.
  • # के निशान के बाद लिखा गया कोई भी कॉन्टेंट, टिप्पणी माना जाता है.

सिंटैक्स

  • robots.txt, UTF-8 से सुरक्षित की गई एक टेक्स्ट फ़ाइल होनी चाहिए (जिसमें ASCII शामिल है). वर्णों के दूसरे सेट का इस्तेमाल नहीं किया जा सकता.
  • robots.txt फ़ाइल में एक या एक से ज़्यादा ग्रुप होते हैं.
  • हर ग्रुप में कई नियम या डायरेक्टिव (यानी निर्देश) हाेते हैं. एक लाइन में एक ही डायरेक्टिव होता है.
  • ग्रुप में यह जानकारी दिखेगी:
    • ग्रुप किन पर लागू हाेते हैं (उपयोगकर्ता एजेंट)
    • वह एजेंट किस तरह की डायरेक्ट्री या फ़ाइलें ऐक्सेस कर सकता है, और/या
    • वह एजेंट किस तरह की डायरेक्ट्री या फ़ाइलें ऐक्सेस नहीं कर सकता है.
  • ग्रुप को ऊपर से नीचे के क्रम में प्रोसेस किया जाता है. एक उपयोगकर्ता एजेंट सिर्फ़ एक नियम सेट से ही मेल खा सकता है. जो नियम सेट दिए गए उपयोगकर्ता एजेंट से सबसे ज़्यादा मिलता-जुलता है उसी से उपयोगकर्ता एजेंट मेल खाता है.
  • डिफ़ॉल्ट रूप से, ऐसा माना जाता है कि कोई उपयोगकर्ता एजेंट, किसी भी ऐसे पेज या डायरेक्ट्री को क्रॉल कर सकता है जिस पर Disallow: नियम से रोक नहीं लगी होती.
  • नियमों पर केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) का असर पड़ता है. जैसे कि Disallow: /file.asp, http://www.example.com/file.asp पर लागू होता है, लेकिन http://www.example.com/FILE.asp पर नहीं.

robots.txt फ़ाइलों में ये डायरेक्टिव इस्तेमाल होते हैं:

  • User-agent: [हर ग्रुप में एक या एक से ज़्यादा ज़रूरी हैं] उस सर्च इंजन रोबोट (वेब क्रॉलर सॉफ़्टवेयर) का नाम जिस पर नियम लागू होता है. यह किसी भी नियम की पहली लाइन होती है. Google के ज़्यादातर उपयोगकर्ता एजेंट के नाम, वेब रोबोट के डेटाबेस या Google की उपयोगकर्ता एजेंट की लिस्ट में शामिल होते हैं. इसे पाथ के प्रीफ़िक्स, सफ़िक्स या पूरी स्ट्रिंग के लिए, * वाइल्डकार्ड के साथ इस्तेमाल किया जा सकता है. इस उदाहरण में बताए गए तरीके से तारे का निशान (*) इस्तेमाल करने पर, यह सभी क्रॉलर दिखाएगा. इसमें, AdsBot क्रॉलर नहीं होंगे. उन्हें देखने के लिए, उनका नाम साफ़-साफ़ लिखना होगा. (Google के क्रॉलर के नामों की लिस्ट देखें.) उदाहरण:
    # Example 1: Block only Googlebot
    User-agent: Googlebot
    Disallow: /
    
    # Example 2: Block Googlebot and Adsbot
    User-agent: Googlebot
    User-agent: AdsBot-Google
    Disallow: /
    
    # Example 3: Block all but AdsBot crawlers
    User-agent: *
    Disallow: /
  • Disallow: [हर नियम में कम से कम एक या एक से ज़्यादा Disallow या Allow एंट्री] रूट डोमेन से जुड़ी डायरेक्ट्री या पेज, जिसे उपयोगकर्ता एजेंट से क्रॉल नहीं कराया जाना चाहिए. अगर यह एक पेज है, तो इसका पूरा नाम वैसा ही होना चाहिए, जैसा ब्राउज़र में दिखता है. अगर यह एक डायरेक्ट्री है, तो इसका नाम / के निशान पर खत्म होना चाहिए. इसे पाथ के प्रीफ़िक्स, सफ़िक्स या पूरी स्ट्रिंग के लिए, * वाइल्डकार्ड के साथ इस्तेमाल किया जा सकता है.
  • Allow: [हर नियम में कम से कम, एक या एक से ज़्यादा Disallow या Allow एंट्री] रूट डोमेन से जुड़ी डायरेक्ट्री या पेज, जिसे अभी बताए गए उपयोगकर्ता एजेंट से क्रॉल कराया जाना चाहिए. इसे Disallow निर्देश को बदलने के लिए इस्तेमाल किया जाता है, ताकि अनुमति न दी गई डायरेक्ट्री में किसी सबडायरेक्ट्री या पेज को क्रॉल करने की अनुमति दी जा सके. अगर यह एक पेज है, तो इसका पूरा नाम वैसा ही होना चाहिए, जैसा ब्राउज़र में दिखता है. अगर यह एक डायरेक्ट्री है, तो इसका नाम / के निशान पर खत्म होना चाहिए. इसे पाथ के प्रीफ़िक्स, सफ़िक्स या पूरी स्ट्रिंग के लिए, * वाइल्डकार्ड के साथ इस्तेमाल किया जा सकता है.
  • Sitemap: [ज़रूरी नहीं, हर फ़ाइल के लिए शून्य या उससे ज़्यादा] वह जगह जहां आपने इस वेबसाइट का साइटमैप अपलोड किया है. सभी ज़रूरी शर्तें पूरी करने वाला यूआरएल होना चाहिए. Google http/https/www.non-www के विकल्प काे नहीं मानता या उनकी जांंच नहीं करता है. साइटमैप यह बताने का अच्छा तरीका है कि Google को आपकी साइट पर किस तरह के कॉन्टेंट को क्रॉल करना चाहिए, बजाय इसके कि वह किस तरह के कॉन्टेंट को क्रॉल कर सकता है या नहीं कर सकता है. साइटमैप के बारे में ज़्यादा जानें. उदाहरण:
    Sitemap: https://example.com/sitemap.xml
    Sitemap: http://www.example.com/sitemap.xml

दूसरे नियमों को अनदेखा किया जाता है.

एक और उदाहरण फ़ाइल

robots.txt फ़ाइल में नियमों के एक या एक से ज़्यादा ग्रुप होते हैं. हर ग्रुप की शुरुआती User-agent लाइन होती है, जिससे ग्रुप के नियमों का लक्ष्य तय होता है. यहां दो ग्रुप वाली फ़ाइल दी गई है. साथ ही, इनलाइन टिप्पणियां हर ग्रुप के बारे में बताती हैं:

# Block googlebot from example.com/directory1/... and example.com/directory2/...
# but allow access to directory2/subdirectory1/...
# All other directories on the site are allowed by default.
User-agent: googlebot
Disallow: /directory1/
Disallow: /directory2/
Allow: /directory2/subdirectory1/

# Block the entire site from anothercrawler.
User-agent: anothercrawler
Disallow: /

पूरा robots.txt सिंटैक्स

आप पूरा robots.txt सिंटैक्स यहां देख सकते हैं. कृपया पूरा दस्तावेज़ पढ़ें, क्योंकि robots.txt सिंटैंक्स में कुछ ऐसे मुश्किल हिस्से हैं जिन्हें समझना ज़रूरी है.

काम के robots.txt नियम

ये रहे कुछ काम के robots.txt नियम:

नियम नमूना
पूरी वेबसाइट को क्रॉल करने की अनुमति न दें. ध्यान रखें कि कुछ मामलों में वेबसाइट के यूआरएल अब भी इंडेक्स किए जा सकते हैं, भले ही वे क्रॉल न किए गए हों. ध्यान दें: इसमें, अलग-अलग तरह के मिलते-जुलते AdsBot क्रॉलर नहीं होंगे. इन्हें देखने के लिए, उनका नाम साफ़-साफ़ लिखना ज़रूरी है.

User-agent: *
Disallow: /
किसी डायरेक्ट्री के नाम के बाद फ़ॉरवर्ड स्लैश (/) लगाकर, उस डायरेक्ट्री और उसके कॉन्टेंट काे क्रॉल करने की अनुमति न देने का विकल्प चुना जा सकता है. याद रखें कि निजी कॉन्टेंट का ऐक्सेस रोकने के लिए, robots.txt फ़ाइल इस्तेमाल नहीं करनी चाहिए: इसके बजाय, पुष्टि करने की सही प्रक्रिया का इस्तेमाल करें. जिन यूआरएल को robots.txt फ़ाइल ने अनुमति नहीं दी है उन्हें अब भी बिना क्रॉल किए इंडेक्स किया जा सकता है. robots.txt फ़ाइल को कोई भी व्यक्ति देख सकता है. इससे आपके निजी कॉन्टेंट की जगह से जुड़ी जानकारी ज़ाहिर हो सकती है.

User-agent: *
Disallow: /calendar/
Disallow: /junk/
सिर्फ़ एक क्रॉलर को क्रॉल करने की अनुमति दें

User-agent: Googlebot-news
Allow: /

User-agent: *
Disallow: /
एक क्रॉलर को छोड़कर बाकी सभी क्रॉलर को क्रॉल करने की अनुमति दें

User-agent: Unnecessarybot
Disallow: /

User-agent: *
Allow: /

स्लैश के बाद पेज को शामिल करके, एक वेबपेज पर क्रॉल करने की अनुमति न दें:


User-agent: *
Disallow: /private_file.html

Google Images से मिली किसी खास इमेज पर रोक लगाएं:


User-agent: Googlebot-Image
Disallow: /images/dogs.jpg

अपनी साइट पर Google Images से मिली सभी इमेज पर रोक लगाएं:


User-agent: Googlebot-Image
Disallow: /

किसी खास तरह की फ़ाइलों को क्रॉल करने की अनुमति न देना (उदाहरण के लिए, .gif):


User-agent: Googlebot
Disallow: /*.gif$

पूरी साइट को क्रॉल करने की अनुमति न देना, लेकिन उन पेजों पर AdSense के विज्ञापन दिखाना, Mediapartners-Google के अलावा अन्य किसी वेब क्रॉलर को अनुमति न दें. इसे लागू करने के बाद, आपके पेज खोज के नतीजों में नहीं दिखते, लेकिन Mediapartners-Google वेब क्रॉलर अब भी उनका विश्लेषण करके तय कर सकता है कि आपकी साइट पर आने वाले लोगों को कौनसे विज्ञापन दिखाए जाने हैं.


User-agent: *
Disallow: /

User-agent: Mediapartners-Google
Allow: /
किसी खास स्ट्रिंग पर खत्म होने वाले मिलते-जुलते यूआरएल देखें, $ का इस्तेमाल करें. उदाहरण के लिए, नमूना कोड उन सभी यूआरएल को रोक देता है जो .xls से खत्म होते हैं:

User-agent: Googlebot
Disallow: /*.xls$