Robots.txt সংক্রান্ত স্পেসিফিকেশন

সারসংক্ষেপ

সর্বজনীনভাবে অ্যাক্সেস করা যায় এমন ওয়েবসাইট, Google-এর ওয়েবসাইট ক্রলার কীভাবে ক্রল ও ইন্ডেক্স করে তা আপনি robots.txt ফাইলের মাধ্যমে নিয়ন্ত্রণ করতে পারেন। ফাইলটি Google কীভাবে ব্যবহার করে সেটি এই ডকুমেন্ট থেকে আপনি জানতে পারবেন।

কী পরিবর্তন হয়েছে

১ জুলাই, ২০১৯-এ Google ঘোষণা করে যে robots.txt প্রোটোকলকে ইন্টারনেট স্ট্যান্ডার্ড করে তোলার জন্য চেষ্টা করা হচ্ছে। এই ডকুমেন্টে সেই পরিবর্তনগুলি দেখানো হয়েছে।

প্রাথমিক সংজ্ঞাগুলি

সংজ্ঞা
ক্রলার ওয়েবসাইট ক্রল করে এমন একটি পরিষেবা বা এজেন্টকে ক্রলার বলা হয়। সাধারণভাবে বলা যায়, কোনও হোস্টে স্ট্যান্ডার্ড ওয়েব ব্রাউজারের মাধ্যমে অ্যাক্সেস করার মতো কন্টেন্ট থাকলে ও সেটির ইউআরএল পরিচিত হলে, একটি ক্রলার সেই ইউআরএলকে অটোমেটিক ও বারবার ক্রল করে। নতুন ইউআরএল খুঁজে পাওয়া গেলে (আগে থেকেই ক্রল করা আছে এমন পৃষ্ঠা অথবা সাইটম্যাপ ফাইল থেকে লিঙ্ক পাওয়ার মতো বিভিন্নভাবে পাওয়া যেতে পারে), সেটিকেও একইভাবে ক্রল করা হয়।
ইউজার-এজেন্ট একটি নির্দিষ্ট ক্রলার বা একাধিক ক্রলারের সেট শনাক্ত করার একটি উপায়।
নির্দেশ একটি ক্রলার বা একাধিক ক্রলারের একটি গ্রুপের জন্য প্রযোজ্য robots.txt ফাইলে উল্লেখ করা নির্দেশাবলীর সূচি।
ইউআরএল ইউনিফর্ম রিসোর্স লোকেটর, RFC 1738-এ যেমন দেখানো হয়েছে।
শুধু Google-এর জন্য প্রযোজ্য এই এলিমেন্টগুলি শুধু Google কীভাবে robots.txt প্রয়োগ করে সেই ক্ষেত্রে প্রযোজ্য হয় এবং অন্যান্যদের জন্য এগুলি অপ্রাসঙ্গিক হতে পারে।

প্রযোজ্যতা

এই ডকুমেন্টে উল্লেখ করা নির্দেশাবলী Google-এর সব অটোমেটিক ক্রলার মেনে চলে। ব্যবহারকারীর হয়ে কোনও এজেন্ট ইউআরএল অ্যাক্সেস করলে (যেমন অনুবাদ, ম্যানুয়ালি সাবস্ক্রাইব করা ফিড, ম্যালওয়্যার বিশ্লেষণ), এই নির্দেশাবলী প্রযোজ্য নাও হতে পারে।

ফাইলের লোকেশন এবং সঠিক ব্যবহার

robots.txt ফাইলকে যথাযথ প্রোটোকল ও পোর্ট নম্বরের মাধ্যমে অ্যাক্সেস করা যায় এমন হোস্টের টপ-লেভেল ডিরেক্টরিতে রাখতে হবে। robots.txt ফাইলের জন্য সব URI-ভিত্তিক এবং বিশেষত Google Search-এর জন্য (যেমন ওয়েবসাইট ক্রল করার সময়) সাধারণত "http" ও "https" প্রোটোকল ব্যবহার করা যায়। http এবং https-এর ক্ষেত্রে robots.txt ফাইল HTTP নন-কন্ডিশনাল GET অনুরোধের মাধ্যমে ফেচ করা হয়।

শুধু Google-এর জন্য প্রযোজ্য: এছাড়া, Google এফটিপি সাইটের ক্ষেত্রে robots.txt ফাইল ব্যবহার করে ও মেনে চলে। এফটিপি-ভিত্তিক robots.txt ফাইল এফটিপি প্রোটোকলের মাধ্যমে ছদ্মবেশী লগ-ইন ব্যবহার করে অ্যাক্সেস করা হয়।

robots.txt ফাইলে উল্লেখ করা নির্দেশ ফাইল যেখানে হোস্ট করা হয়েছে শুধু সেই হোস্ট, প্রোটোকল এবং পোর্ট নম্বরের ক্ষেত্রে প্রযোজ্য হয়।

সঠিক robots.txt ইউআরএলের উদাহরণ

Robots.txt ইউআরএলের উদাহরণ
http://example.com/robots.txt এই ক্ষেত্রে ব্যবহার করা যায়:
  • http://example.com/
  • http://example.com/folder/file
এই ক্ষেত্রে ব্যবহার করা যায় না:
  • http://other.example.com/
  • https://example.com/
  • http://example.com:8181/
http://www.example.com/robots.txt

এই ক্ষেত্রে ব্যবহার করা যায়: http://www.example.com/

এই ক্ষেত্রে ব্যবহার করা যায় না:

  • http://example.com/
  • http://shop.www.example.com/
  • http://www.shop.example.com/
http://example.com/folder/robots.txt এটি ব্যবহারযোগ্য robots.txt ফাইল নয়। সাবডিরেক্টরিতে robots.txt ফাইল আছে কিনা তা ক্রলার খুঁজে দেখে না।
http://www.müller.eu/robots.txt এই ক্ষেত্রে ব্যবহার করা যায়:
  • http://www.müller.eu/
  • http://www.xn--mller-kva.eu/

এই ক্ষেত্রে ব্যবহার করা যায় না: http://www.muller.eu/

ftp://example.com/robots.txt

এই ক্ষেত্রে ব্যবহার করা যায়: ftp://example.com/

এই ক্ষেত্রে ব্যবহার করা যায় না: http://example.com/

শুধুমাত্র Google-এর জন্য প্রযোজ্য: FTP রিসোর্সের জন্য আমরা robots.txt ফাইল ব্যবহার করে থাকি।

http://212.96.82.21/robots.txt

এই ক্ষেত্রে ব্যবহার করা যায়: http://212.96.82.21/

এই ক্ষেত্রে ব্যবহার করা যায় না: http://example.com/ (এমনকি 212.96.82.21-এ হোস্ট করা হলেও)

http://example.com:80/robots.txt

এই ক্ষেত্রে ব্যবহার করা যায়:

  • http://example.com:80/
  • http://example.com/

এই ক্ষেত্রে ব্যবহার করা যায় না: http://example.com:81/

http://example.com:8181/robots.txt

এইসব ক্ষেত্রে ব্যবহারযোগ্য: http://example.com:8181/

এই ক্ষেত্রে ব্যবহার করা যায় না: http://example.com/

HTTP ফলাফলের কোড ব্যবহার করা

সাধারণত, robots.txt ফাইল ফেচ করা হলে তিন ধরনের ফলাফল হতে পারে:

  • সম্পূর্ণ অনুমতি: সব কন্টেন্ট ক্রল করা যেতে পারে।
  • কোনও অনুমতি নেই: কোনও কন্টেন্ট ক্রল করা যাবে না।
  • শর্তাধীন অনুমতি: কোনও বিশেষ কন্টেন্ট ক্রল করা যাবে কিনা তা robots.txt ফাইলের নির্দেশ ঠিক করে।
HTTP ফলাফলের কোড ব্যবহার করা
2xx (সফল হয়েছে) "শর্তাধীন অনুমতি" অনুযায়ী যে ক্রল করা হয়েছে তা এই HTTP ফলাফলের কোডের মাধ্যমে জানানো হয়।
3xx (রিডাইরেক্ট করার কাজ) HTTP/1.0-এর জন্য RFC 1945-এর সংজ্ঞানুযায়ী Google কমপক্ষে পাঁচটি রিডাইরেক্ট হপ অনুসরণ করে এবং তারপরে বন্ধ করে সেটিকে 404 হিসেবে বিবেচনা করে। অননুমোদিত ইউআরএলে robots.txt ফাইলের সাহায্যে রিডাইরেক্ট না করলে ভাল হয়। যেহেতু এখনও পর্যন্ত কোনও নিয়ম ফেচ করা হয়নি, তাই কমপক্ষে পাঁচটি হপ অনুসরণ করা হয়। তা সত্ত্বেও কোনও robots.txt পাওয়া না গেলে, Google সেটিকে robots.txt ফাইলের জন্য 404 বলে ধরে নেয়। যে HTML কন্টেন্ট 2xx প্রতিক্রিয়া পাঠায় (ফ্রেম, জাভাস্ক্রিপ্ট অথবা মেটা রিফ্রেশ-ধরনের রিডাইরেক্ট), সেটির উপর নির্ভর করে robots.txt ফাইলের মাধ্যমে যুক্তিসম্মত রিডাইরেক্ট পরিচালনা না করলে ভাল হয়। এছাড়া, প্রযোজ্য নিয়ম খুঁজতে প্রথম পৃষ্ঠার কন্টেন্টকে ব্যবহার করা হয়।
4xx (ক্লায়েন্টের সমস্যা) 4xx কোডের সব সমস্যাকে Google একইভাবে দেখে এবং কোনও উপযুক্ত robots.txt ফাইল নেই বলে ধরে নেয়। কোনও বিধিনিষেধ নেই বলেই ধরে নেওয়া হয়। এগুলিকে ক্রল করার "সম্পূর্ণ অনুমতি" আছে বলে বিবেচনা করা হয়।
5xx (সার্ভার সংক্রান্ত সমস্যা)

সার্ভার সংক্রান্ত কোনও সমস্যা সাময়িক বলে ধরে নেওয়া হয় এবং এর ফলে ক্রল করার "কোনও অনুমতি থাকে না"। সার্ভার ছাড়া অন্য কোনও সমস্যার জন্য HTTP ফলাফলের কোড না পাওয়া পর্যন্ত অনুরোধ করা হতে থাকে। 503 (পরিষেবা উপলভ্য নয়) সমস্যার জন্য বেশ ঘন ঘন অনুরোধ করা হয়। ৩০ দিনের বেশি সময় ধরে robots.txt অ্যাক্সেস করা না গেলে, সেটির শেষ ক্যাশে করা কপি ব্যবহার করা হয়। সেটি না থাকলে, কোনও ক্রল সংক্রান্ত বিধিনিষেধ নেই বলে Google ধরে নেয়। সাময়িকভাবে ক্রলিং বন্ধ করতে, 503 HTTP ফলাফল কোড দেখালে ভাল হয়।

শুধু Google-এর ক্ষেত্রে প্রযোজ্য: কোনও সাইট ভুল করে কনফিগার করার ফলে অনুপস্থিত পৃষ্ঠার জন্য 404-এর পরিবর্তে 5xx দেখাচ্ছে বলে আমরা স্থির করলে, সেই সাইটের 5xx সমস্যাকে 404 হিসেবেই বিবেচনা করা হয়।

বিফল অনুরোধ বা অসম্পূর্ণ ডেটা টাইম-আউট, ভুল প্রতিক্রিয়া, কানেকশন রিসেট হওয়া বা কেটে যাওয়া এবং HTTP চাঙ্কিংয়ের মতো ডিএনএস অথবা নেটওয়ার্কে সমস্যার জন্য robots.txt ফাইল ফেচ করা না গেলে, সেটি সার্ভার সমস্যা হিসেবেই বিবেচনা করা হয়।
ক্যাশিং robots.txt অনুরোধ সাধারণত ২৪ ঘণ্টা পর্যন্ত ক্যাশেতে থাকে। কিন্তু ক্যাশে করা ভার্সন রিফ্রেশ করা না গেলে (যেমন টাইম-আউট বা 5xx সমস্যার ক্ষেত্রে) এটি আরও বেশি সময়ের জন্য ক্যাশেতে রাখা হতে পারে। ক্যাশে করা প্রতিক্রিয়াটি একাধিক ক্রলার শেয়ার করতে পারে। max-age Cache-Control HTTP হেডারের উপর নির্ভর করে Google ক্যাশের সময়সীমা কমাতে বা বাড়াতে পারে।

ফাইলের ফর্ম্যাট

UTF-8-এ এনকোড করা প্লেন টেক্সট ফর্ম্যাটের ফাইল ব্যবহার করা উচিত। এই ফাইলে CR, CR/LF অথবা LF দিয়ে বিভিন্ন লাইন আলাদা করে উল্লেখ করা থাকে।

শুধু ব্যবহারযোগ্য লাইন ছাড়া বাকি সব কন্টেন্ট উপেক্ষা করা হয়। যেমন, প্রাপ্ত ডকুমেন্ট একটি HTML পৃষ্ঠা হলে শুধু সঠিক টেক্সটের লাইন গ্রাহ্য করা হয়, বাকি সবকিছু কোনও সতর্কতা বা সমস্যার মেসেজ না দেখিয়েই বাদ দিয়ে দেওয়া হয়।

অক্ষর এনকোডিংয়ের জন্য UTF-8 এর সাবসেট অংশ নয় এমন অক্ষর ব্যবহার করা হলে, ফাইলের কন্টেন্ট ভুলভাবে পার্স করা হতে পারে।

robots.txt ফাইলের শুরুতে থাকা ঐচ্ছিক ইউনিকোড BOM (বাইট অর্ডার মার্ক) উপেক্ষা করা হয়।

প্রতিটি সঠিক লাইনে একটি ফিল্ড, কোলন ও মান থাকে। স্পেস না দিলেও চলে, কিন্তু দিলে পড়তে সুবিধা হয়। ফাইলের যেকোনও জায়গায় "#" অক্ষর ব্যবহার করে মন্তব্য যোগ করা যেতে পারে; কোনও মন্তব্য শুরু হওয়ার পর থেকে রেকর্ডের শেষ পর্যন্ত সম্পূর্ণ কন্টেন্টকে মন্তব্য হিসেবে বিবেচনা করে উপেক্ষা করা হয়। সাধারণ ফর্ম্যাট হল <field>:<value><#optional-comment> লাইনের শুরুতে এবং শেষে হোয়াইটস্পেস থাকলে, তা উপেক্ষা করা হয়।

<field> এলিমেন্টের ক্ষেত্রে ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয়। <field> এলিমেন্টের উপর নির্ভর করে <value> এলিমেন্টে ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হতে পারে।

সাধারণ বা টাইপিংয়ের সময় হওয়া ভুল (যেমন "ইউজার-এজেন্ট"-এর পরিবর্তে "ইউজারএজেন্ট") সহ <field> এলিমেন্ট কাজ করে না।

প্রতিটি ক্রলারের জন্য ফাইলের সর্বাধিক সাইজ নির্দিষ্ট করে দেওয়া হতে পারে। কন্টেন্ট সেই সীমা অতিক্রম করে গেলে সেটি উপেক্ষা করা হয়। Google বর্তমানে ৫০০ কিবিবাইট পর্যন্ত কন্টেন্ট গ্রহণযোগ্য বলে মনে করে। robots.txt ফাইলের সাইজ কমাবার জন্য সাইজ বাড়িয়ে দিচ্ছে এমন নির্দেশাবলী একত্রিত করুন। যেমন, আলাদা ডিরেক্টরিতে প্লেস এক্সক্লুডেড মেটিরিয়াল।

ফর্মাল সিন্ট্যাক্স / সংজ্ঞা

RFC 5234-এর বর্ণনা অনুযায়ী একটি Augmented Backus-Naur Form (ABNF)-এর উদাহরণ এখানে দেখানো হল

    robotstxt = *(group / emptyline)
    group = startgroupline                    ; We start with a user-agent
            *(startgroupline / emptyline)     ; ... and possibly more user-agents
            *(rule / emptyline)               ; followed by rules relevant for UAs

    startgroupline = *WS "user-agent" *WS ":" *WS product-token EOL

    rule = *WS ("allow" / "disallow") *WS ":" *WS (path-pattern / empty-pattern) EOL

    ; parser implementors: add additional lines you need (for example, Sitemaps), and
    ; be lenient when reading lines that don’t conform. Apply Postel’s law.

    product-token = identifier / "*"
    path-pattern = "/" *(UTF8-char-noctl)    ; valid URI path pattern; see 3.2.2
    empty-pattern = *WS

    identifier = 1*(%x2d / %x41-5a / %x5f / %x61-7a)
    comment = "#" *(UTF8-char-noctl / WS / "#")
    emptyline = EOL
    EOL = *WS [comment] NL         ; end-of-line may have optional trailing comment
    NL = %x0D / %x0A / %x0D.0A
    WS = %x20 / %x09

    ; UTF8 derived from RFC3629, but excluding control characters
    UTF8-char-noctl = UTF8-1-noctl / UTF8-2 / UTF8-3 / UTF8-4
    UTF8-1-noctl    = %x21 / %x22 / %x24-7F  ; excluding control, space, '#'
    UTF8-2          = %xC2-DF UTF8-tail
    UTF8-3          = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2( UTF8-tail ) /
                      %xED %x80-9F UTF8-tail / %xEE-EF 2( UTF8-tail )
    UTF8-4          = %xF0 %x90-BF 2( UTF8-tail ) / %xF1-F3 3( UTF8-tail ) /
                      %xF4 %x80-8F 2( UTF8-tail )
    UTF8-tail       = %x80-BF
    

লাইন ও নিয়মগুলিকে একসাথে গ্রুপ করা

এক বা একাধিক ইউজার-এজেন্টের লাইনের পরে এক বা একাধিক নিয়ম লেখা থাকে। গ্ৰুপের শেষে একটি ইউজার-এজেন্টের লাইন থাকে বা ফাইলটি সেখানে শেষ হয়। শেষ গ্রুপে কোনও নিয়ম নাও থাকতে পারে। অর্থাৎ, সেটি পরোক্ষভাবে সবকিছুর জন্য অনুমতি দেয়।

গ্রুপের উদাহরণ:

    user-agent: a
    disallow: /c

    user-agent: b
    disallow: /d

    user-agent: e
    user-agent: f
    disallow: /g

    user-agent: h
    

চারটি আলাদা গ্রুপের এখানে উল্লেখ করা হয়েছে, "ক" এবং "খ"-এর জন্য একটি করে এবং "ঙ" ও "চ" উভয়ের জন্য আরেকটি। শেষ গ্রুপ ছাড়া প্রতিটি গ্রুপের নিজস্ব গ্রুপ-মেম্বার লাইন আছে। শেষ গ্রুপটিতে কিছু নেই। যাতে সহজে পড়া যায় সেই জন্য কীভাবে হোয়াইটস্পেস ও ফাঁকা লাইন (এগুলির ব্যবহার বাধ্যতামূলক নয়) ব্যবহার করা হয়েছে সেটি লক্ষ্য করুন।

ইউজার-এজেন্টের অগ্রাধিকারের ক্রম

একটি নির্দিষ্ট ক্রলারের জন্য শুধু একটি গ্রুপই সঠিক হতে পারে। কোন গ্রুপে সবচেয়ে বেশি সংখ্যক নির্দিষ্ট ও মিলছে এমন ইউজার-এজেন্ট আছে তার উপর নির্ভর করে ক্রলারকে সঠিক লাইনের গ্রুপটি খুঁজে নিতে হয়। বাকি সব গ্রুপকে ক্রলার উপেক্ষা করে। ইউজার-এজেন্টের ক্ষেত্রে ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয়। মিলছে না এমন সব টেক্সট উপেক্ষা করা হয় (যেমন, googlebot/1.2 এবং googlebot*, দুটিই googlebot-এর সমতুল্য হয়)। robots.txt ফাইলের মধ্যে গ্রুপগুলি কোন ক্রমে আছে তা গুরুত্বপূর্ণ নয়।

নির্দিষ্ট ইউজার-এজেন্টের জন্য একাধিক গ্রুপ থাকলে, সেটির ক্ষেত্রে প্রযোজ্য গ্ৰুপের সব নিয়ম একত্রিত করা হয়।

উদাহরণ

এই robots.txt ফাইল দেখুন:

    user-agent: googlebot-news
    (group 1)

    user-agent: *
    (group 2)

    user-agent: googlebot
    (group 3)
    

ক্রলারগুলি এইভাবে প্রাসঙ্গিক গ্রুপটি খুঁজে নেয়:

প্রতিটি ক্রলার যেসব গ্রুপকে ফলো করে
Googlebot News যে গ্ৰুপকে অনুসরণ করা হয় সেটি ১ নম্বর। শুধু সবচেয়ে নির্দিষ্ট গ্রুপটিকে অনুসরণ করা হয়, বাকি সবগুলিকে উপেক্ষা করা হয়।
Googlebot (ওয়েব) গ্ৰুপ হিসেবে ৩ নম্বর গ্রুপ অনুসরণ করা হয়।
Googlebot ছবি গ্ৰুপ হিসেবে ৩ নম্বর গ্রুপ অনুসরণ করা হয়। কোনও নির্দিষ্ট googlebot-images গ্রুপ নেই, তাই আরও সাধারণ গ্রুপকে অনুসরণ করা হয়।
Googlebot News (ছবি ক্রল করার সময়) >যে গ্ৰুপকে অনুসরণ করা হয় সেটি ১ নম্বর। Googlebot News নিজের জন্যই এই ছবিগুলি ক্রল করে, তাই শুধু Googlebot News গ্রুপকে অনুসরণ করা হয়।
Otherbot (ওয়েব) যে গ্ৰুপকে অনুসরণ করা হয় সেটি ২ নম্বর।
Otherbot (নিউজ) যে গ্ৰুপকে অনুসরণ করা হয় সেটি ২ নম্বর। কোনও সম্পর্কিত ক্রলারের জন্য এন্ট্রি থাকলেও, সেটি সম্পূর্ণ মিললে তবেই সঠিক বলে ধরে নেওয়া হয়।

এছাড়া, Google-এর ক্রলার এবং ইউজার-এজেন্ট স্ট্রিং নিবন্ধটিও পড়ুন।

গ্রুপ মেম্বারদের জন্য নিয়মাবলী

এই বিভাগে কেবলমাত্র স্ট্যান্ডার্ড গ্রুপ মেম্বারদের জন্য নিয়মাবলী লেখা আছে। এছাড়া, এই নিয়মগুলিকে ক্রলারের জন্য "নির্দেশ" বলা হয়। এই নির্দেশগুলি directive: [path] হিসেবে লেখা থাকে, যেখানে [path] হল ঐচ্ছিক মান। ডিফল্ট হিসেবে, নির্দিষ্ট ক্রলারের জন্য ক্রলিংয়ের ক্ষেত্রে কোনও বিধিনিষেধ আরোপ করা হয় না। [path] ছাড়া নির্দেশ উপেক্ষা করা হয়।

উল্লেখ করা থাকলে, [path] মানটিকে যে ওয়েবসাইটের রুটের জন্য robots.txt ফেচ (একই প্রোটোকল, পোর্ট নম্বর, হোস্ট ও ডোমেন নেম ব্যবহার করে) করা হয়েছে সেটির সাথে আপেক্ষিক হিসেবে বিবেচনা করতে হয়। রুট বোঝাতে পাথের মানের শুরুতে "/" লিখতে হয়। পাথের ক্ষেত্রে ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয়। নিচে উল্লিখিত "পাথের মানের উপর নির্ভর করে ইউআরএল মেলানো" বিভাগ থেকে এই বিষয়ে আরও জানতে পারবেন।

disallow

নির্দিষ্ট ক্রলার কোন পাথ অ্যাক্সেস করবে না তা নির্দেশ করতে disallow ব্যবহার করা হয়। কোনও পাথ উল্লেখ করা না থাকলে, নির্দেশ উপেক্ষা করা হয়।

ব্যবহার:

    disallow: [path]
    

allow

নির্দিষ্ট ক্রলার কোন পাথ অ্যাক্সেস করতে পারে তা নির্দেশ করতে allow ব্যবহার করা হয়। কোনও পাথ উল্লেখ করা না থাকলে, নির্দেশ উপেক্ষা করা হয়।

ব্যবহার:

    allow: [path]
    

পাথের মানের উপর নির্ভর করে ইউআরএল মেলানোর কাজ

সাইটের একটি নির্দিষ্ট ইউআরএলে কোনও নিয়ম প্রযোজ্য হবে কিনা তা নির্ধারণ করতে পাথের মান ব্যবহার করা হয়। ওয়াইল্ডকার্ড ছাড়া, সাধারণত পাথের মানের সাহায্যে কোনও ইউআরএলের শুরুর অংশটি (এবং একই পাথ দিয়ে শুরু হয় এমন যেকোনও সঠিক ইউআরএল) মেলানো হয়। পাথের ৭ বিট নয় এমন ASCII অক্ষরগুলিকে RFC 3986 অনুযায়ী লেখা UTF-8 অথবা পার্সেন্ট-এসকেপড UTF-8 এ এনকোড করা অক্ষর হিসেবে অন্তর্ভুক্ত করা যেতে পারে।

Google, Bing সহ অন্যান্য মুখ্য সার্চ ইঞ্জিনগুলিতে পাথের মান হিসেবে সীমিত সংখ্যক "ওয়াইল্ডকার্ড" ব্যবহার করা যায়। এখানে সেগুলি উল্লেখ করা হল:

  • যেকোনও সঠিক অক্ষরের ০ অথবা তার চেয়ে বেশি ইনস্ট্যান্স বোঝাতে * ব্যবহার করা যায়।
  • ইউআরএলের শেষ কোথায় বোঝাতে $টি ব্যবহার করা হয়।
পাথ ম্যাচিং করার উদাহরণ
/ রুট ও তার নিচের লেভেলের যেকোনও ইউআরএলের সাথে মেলানো হয়
/* /-এর সমতুল্য। শেষে থাকা ওয়াইল্ডকার্ডটিকে ধরা হয় না।
/fish

মেলে:

  • /fish
  • /fish.html
  • /fish/salmon.html
  • /fishheads
  • /fishheads/yummy.html
  • /fish.php?id=anything

মেলে না:

  • /Fish.asp
  • /catfish
  • /?id=fish
/fish*

/fish-এর সমতুল্য। শেষে থাকা ওয়াইল্ডকার্ডটিকে ধরা হয় না।

মেলে:

  • /fish
  • /fish.html
  • /fish/salmon.html
  • /fishheads
  • /fishheads/yummy.html
  • /fish.php?id=anything

মেলে না:

  • /Fish.asp
  • /catfish
  • /?id=fish
/fish/

শেষের স্ল্যাশ চিহ্নটি থেকে বোঝা যায় যে এই ফোল্ডারের সবকিছুর সাথে এটি মেলে।

মেলে:

  • /fish/
  • /fish/?id=anything
  • /fish/salmon.htm

মেলে না:

  • /fish
  • /fish.html
  • /Fish/Salmon.asp
/*.php

মেলে:

  • /filename.php
  • /folder/filename.php
  • /folder/filename.php?parameters
  • /folder/any.php.file.html
  • /filename.php/

মেলে না:

  • / (এটি /index.php-তে ম্যাপ করা থাকলেও)
  • /windows.PHP
/*.php$

মেলে:

  • /filename.php
  • /folder/filename.php

মেলে না:

  • /filename.php?parameters
  • /filename.php/
  • /filename.php5
  • /windows.PHP
/fish*.php

মেলে:

  • /fish.php
  • /fishheads/catfish.php?parameters

মিলছে না: /Fish.PHP

Google-এ ব্যবহার করা যায় এমন নন-গ্রুপ মেম্বারের লাইন

sitemaps.org লিঙ্কের সংজ্ঞানুযায়ী Google, Bing সহ অন্যান্য মুখ্য সার্চ ইঞ্জিনগুলিতে sitemap কাজ করে।

ব্যবহার:

    sitemap: [absoluteURL]
    

[absoluteURL] একটি সাইটম্যাপ, সাইটম্যাপ ইনডেক্স ফাইল অথবা সমতুল্য ইউআরএলকে পয়েন্ট করে দেখায়। ইউআরএলকে robots.txt ফাইলে একই হোস্টের মধ্যে থাকতেই হবে এমন কোনও বাধ্যবাধকতা নেই। একাধিক sitemap এন্ট্রি থাকতে পারে। নন-গ্রুপ-মেম্বার লাইন হিসেবে এগুলি কোনও নির্দিষ্ট ইউজার-এজেন্টের সাথে সম্পর্কিত নয় এবং অননুমোদিত না হলে এগুলি সব ক্রলার অনুসরণ করতে পারে।

গ্রুপ-মেম্বার লাইনের অগ্রাধিকারের ক্রম

গ্রুপ-মেম্বার লেভেলে, বিশেষ করে allow এবং disallow নির্দেশের ক্ষেত্রে, [path] এন্ট্রির দৈর্ঘ্যের উপর নির্ভর করে কম নির্দিষ্ট (ছোট) নিয়মের পরিবর্তে বেশি নির্দিষ্ট নিয়মকে অগ্রাধিকার দেওয়া হয়। ওয়াইল্ডকার্ড সহ নিয়মগুলি সহ পরস্পরবিরোধী নিয়মের ক্ষেত্রে সবচেয়ে কম বিধিনিষেধযুক্ত নিয়মটি প্রয়োগ করা হয়।

বিভিন্ন ধরনের পরিস্থিতির উদাহরণ
http://example.com/page

allow: /p

disallow: /

সিদ্ধান্ত: allow

http://example.com/folder/page

allow: /folder

disallow: /folder

সিদ্ধান্ত: allow

http://example.com/page.htm

allow: /page

disallow: /*.htm

সিদ্ধান্ত: undefined

http://example.com/

allow: /$

disallow: /

সিদ্ধান্ত: allow

http://example.com/page.htm

allow: /$

disallow: /

সিদ্ধান্ত: disallow