Aku mau cerita tentang file paling kecil di website kamu yang punya dampak paling besar.

robots.txt.

File teks. Biasanya cuma 5-10 baris. Letaknya di root domain: example.com/robots.txt. Ga ada yang pernah buka setelah pertama kali dibuat. Ga ada pengunjung manusia yang pernah lihat. Ga ada notifikasi kalau isinya salah.

Tapi kalau salah, seluruh website kamu bisa hilang dari Google. Dari Bing. Dari ChatGPT. Dari Perplexity. Dari semua mesin pencari dan AI crawler yang exist di internet.

Dan kamu ga akan sadar selama berminggu-minggu. Mungkin berbulan-bulan.

Aku tau ini karena aku maintain robots.txt sendiri. Bukan plugin yang generate. Bukan CMS yang otomatis bikin. Aku tulis manual, aku review berkala, dan aku paham setiap baris yang ada di dalamnya. Karena pernah salah satu baris bikin halaman penting ga terindeks selama tiga minggu tanpa ada alert apapun.

Apa Itu robots.txt

robots.txt adalah file teks yang memberi instruksi ke web crawler tentang bagian mana dari website yang boleh dan ga boleh mereka akses.

Perhatikan kata "instruksi." Bukan "perintah." Bukan "blokir."

robots.txt itu bersifat advisory. Crawler yang legitimate, seperti Googlebot, Bingbot, GPTBot, ClaudeBot, akan menghormati instruksi di robots.txt. Tapi crawler jahat? Bot scraper? Mereka bisa saja mengabaikan file ini sepenuhnya.

Jadi robots.txt bukan security measure. Ini lebih mirip papan "Dilarang Masuk" di depan gang. Orang sopan akan berbalik. Maling tetap masuk.

Konsep kunci: robots.txt adalah protokol kepercayaan antara pemilik website dan crawler. Ia bekerja karena kedua pihak sepakat untuk menghormatinya. Bukan karena ada enforcement teknis.

Anatomi File robots.txt

File ini punya syntax yang sederhana. Terlalu sederhana, malah. Sederhana sampai orang underestimate seberapa mudah bikin kesalahan fatal.

Ada empat directive utama:

DirectiveFungsiContoh
User-agentMenentukan crawler mana yang terkena aturanUser-agent: Googlebot
DisallowMelarang akses ke path tertentuDisallow: /admin/
AllowMengizinkan akses ke path tertentu (override Disallow)Allow: /admin/public/
SitemapMemberitahu lokasi sitemap XMLSitemap: https://example.com/sitemap.xml

Ada juga Crawl-delay yang digunakan beberapa crawler (Bing menghormatinya, Google mengabaikannya). Tapi empat directive di atas adalah yang paling penting.

Satu hal yang sering bikin bingung: User-agent: * artinya "semua crawler." Ini adalah wildcard. Kalau kamu ga specify user-agent tertentu, pakai ini.

robots.txt yang Benar

Ini contoh robots.txt untuk website bisnis yang ingin terindeks penuh oleh search engine dan AI crawler, tapi mau melindungi area admin dan file internal:

# robots.txt untuk website bisnis
# Diupdate terakhir: 2026-07-15

User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /tmp/
Disallow: /not-config/

Sitemap: https://example.com/sitemap.xml

Simpel. Jelas. Semua crawler boleh mengakses seluruh website, kecuali empat direktori yang memang internal.

Sekarang versi yang lebih granular, kalau kamu mau kontrol spesifik per crawler:

# Semua search engine: akses penuh
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/

# AI crawler OpenAI: boleh baca konten publik
User-agent: GPTBot
Allow: /writing/
Allow: /library/
Disallow: /

# AI crawler Anthropic: boleh baca konten publik
User-agent: ClaudeBot
Allow: /writing/
Allow: /library/
Disallow: /

Sitemap: https://example.com/sitemap.xml

Di contoh kedua, AI crawler hanya boleh mengakses /writing/ dan /library/. Area lain di-block. Ini berguna kalau kamu punya konten premium atau area yang ga ingin dipakai untuk training model AI.

Yang penting: directive yang lebih spesifik (user-agent tertentu) selalu menang atas directive wildcard. Googlebot punya aturan khusus? Dia ikut aturan di blok User-agent: Googlebot, bukan yang User-agent: *.

Kesalahan yang Paling Sering Terjadi

Ini bagian yang paling penting dari essay ini. Karena kebanyakan orang ga bikin robots.txt dari nol. Mereka copy-paste dari Stack Overflow, atau plugin CMS yang generate otomatis, atau tutorial yang udah outdated.

Dan error-nya baru ketahuan berminggu-minggu kemudian. Atau ga ketahuan sama sekali.

Kesalahan 1: Blokir seluruh website tanpa sadar

Fatal

User-agent: *
Disallow: /

Dua baris. Efeknya: semua crawler dilarang mengakses seluruh website. Google ga bisa crawl. Bing ga bisa crawl. ChatGPT ga bisa crawl.

Ini biasanya terjadi saat development. Developer pasang Disallow: / supaya staging site ga terindeks. Lalu deploy ke production dan lupa mengubahnya.

Hasilnya: website kamu perlahan hilang dari search result. Bukan langsung. Perlahan. Google masih nyimpan cache lama. Tapi seiring waktu, halaman kamu di-drop satu per satu. Dan karena ga ada error message, ga ada warning, kamu baru sadar ketika traffic udah turun 80%.

Kesalahan 2: Case sensitivity

Silent Error

User-agent: *
Disallow: /Admin/

robots.txt itu case-sensitive. /Admin/ dan /admin/ adalah dua path yang berbeda. Kalau folder kamu namanya /admin/ (lowercase) tapi kamu tulis /Admin/ di robots.txt, aturan itu ga berlaku.

Crawler tetap bisa masuk ke /admin/. Dan kamu pikir udah aman.

Kesalahan 3: Blokir CSS dan JavaScript

Merusak Rendering

User-agent: *
Disallow: /assets/
Disallow: /static/

Kalau folder /assets/ berisi CSS dan JavaScript, kamu baru saja melarang Googlebot melihat tampilan website kamu. Googlebot butuh CSS dan JS untuk render halaman seperti yang dilihat user. Tanpa akses ke file ini, Googlebot "melihat" versi broken dari halaman kamu.

Ini langsung mempengaruhi ranking. Bukan teori. Google secara eksplisit bilang mereka butuh akses ke resource file untuk rendering. Kalau kamu mau tahu kenapa ini penting untuk AI crawler juga, aku udah tulis soal hubungan page speed dan AI crawlability. Prinsipnya sama: kalau crawler ga bisa render, crawler ga bisa understand.

Kesalahan 4: Konflik antara Disallow dan noindex

Kontraproduktif

Ini yang paling membingungkan. Orang sering berpikir: "Aku mau halaman ini ga muncul di Google. Jadi aku tambahkan di robots.txt DAN pasang meta noindex."

Logikanya masuk akal. Tapi efeknya kebalikan.

Kalau kamu blokir halaman di robots.txt, Googlebot ga akan crawl halaman itu. Yang artinya Googlebot ga akan pernah membaca tag <meta name="robots" content="noindex"> yang kamu pasang. Hasilnya? Halaman itu mungkin tetap muncul di Google (dengan snippet kosong), karena Google tahu URL-nya exist tapi ga bisa membaca instruksi noindex di dalamnya.

Pilih satu. Mau blokir crawling? Pakai robots.txt. Mau blokir indexing? Pakai noindex. Jangan dua-duanya sekaligus.

Kesalahan 5: Lupa sitemap directive

Missed Opportunity

User-agent: *
Allow: /

Secara teknis ga salah. Tapi kamu kehilangan kesempatan untuk memberitahu setiap crawler yang mengunjungi robots.txt tentang lokasi sitemap XML kamu. Google Search Console memang bisa menerima sitemap secara manual. Tapi crawler lain, termasuk AI crawler, bergantung pada directive Sitemap: di robots.txt untuk menemukan sitemap.

Kesalahan 6: File ga ada di root

File Diabaikan

robots.txt HARUS berada di root domain. example.com/robots.txt. Bukan example.com/pages/robots.txt. Bukan example.com/public/robots.txt.

Kalau file-nya ga di root, crawler ga akan menemukannya. Mereka hanya mengecek satu lokasi: root domain. Titik.

Ini sering terjadi di setup dengan subdirectory deployment. Atau shared hosting dimana public directory bukan root yang kamu pikir.

AI Crawler: Landscape Baru

Tahun 2024-2025 mengubah segalanya. Sekarang ga cuma Googlebot dan Bingbot yang crawl website kamu. Ada generasi baru crawler dari perusahaan AI.

Ini daftar AI crawler yang perlu kamu tahu:

User-agentPerusahaanFungsi
GPTBotOpenAITraining data dan ChatGPT search
OAI-SearchBotOpenAIKhusus ChatGPT search (bukan training)
ClaudeBotAnthropicTraining data untuk Claude
Google-ExtendedGoogleAI training (Gemini), terpisah dari Googlebot
PerplexityBotPerplexityAI search engine
Perplexity-UserPerplexityUser-initiated search (bukan training)
CCBotCommon CrawlDataset publik, dipakai banyak AI company

Yang menarik: beberapa perusahaan AI membedakan antara crawler untuk training dan crawler untuk search. OpenAI punya GPTBot (training + search) dan OAI-SearchBot (search only). Perplexity punya PerplexityBot dan Perplexity-User.

Jadi kamu bisa memilih: "Boleh pakai konten aku untuk menjawab pertanyaan user, tapi jangan untuk training model."

# Blokir AI training, izinkan AI search
User-agent: GPTBot
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: Google-Extended
Disallow: /

User-agent: PerplexityBot
Disallow: /

User-agent: Perplexity-User
Allow: /

Tapi jujur? Kalau kamu punya website statis yang dibangun untuk AI visibility, blocking AI crawler itu kontraproduktif. Kamu mau ditemukan. Kamu mau di-cite. Yang perlu kamu protect cuma area internal. Bukan konten publik.

Tapi Apakah Crawler Benar-benar Menghormati robots.txt?

Pertanyaan yang fair.

Investigasi dari TollBit pada 2024 menemukan bahwa beberapa AI crawler, termasuk yang dari perusahaan besar, tertangkap mengakses konten yang di-block di robots.txt pada website news publisher. OpenAI sendiri memberikan respons yang ambigu, bilang mereka "mempertimbangkan" permission dari crawler, bukan menjanjikan akan selalu patuh.

Jadi ya. robots.txt bukan jaminan. Tapi bukan berarti ga berguna.

Crawler legitimate menghormatinya. Googlebot, Bingbot. Mereka punya reputasi yang dijaga. Kalau mereka ketahuan ignoring robots.txt secara sistematis, itu jadi masalah legal dan PR.

Untuk perlindungan yang lebih kuat, kamu perlu lapisan tambahan:

  • HTTP header X-Robots-Tag: noindex untuk kontrol per halaman
  • Authentication untuk area yang benar-benar sensitif
  • Rate limiting di level server (LiteSpeed, nginx, Cloudflare)
  • Terms of Service yang eksplisit soal scraping

robots.txt adalah layer pertama. Bukan satu-satunya layer.

Cara Aku Maintain robots.txt

Aku ga pakai plugin. Aku ga pakai generator online. Aku tulis manual.

Alasannya: robots.txt itu terlalu penting untuk didelegasikan ke tool yang ga kamu pahami. Setiap kali aku menambah direktori baru di website, aku review robots.txt. Setiap kali ada crawler baru yang muncul, aku update.

Workflow aku:

  1. Review bulanan. Buka hibranwar.com/robots.txt di browser. Baca setiap baris. Pastikan masih relevan.
  2. Cek di Google Search Console. Ada tool robots.txt Tester yang bisa simulasi apakah URL tertentu di-block atau ga.
  3. Monitor server log. Lihat crawler apa saja yang mengunjungi robots.txt. Kalau ada user-agent baru yang ga aku kenal, riset dan putuskan apakah perlu ditambahkan directive-nya.
  4. Version control. robots.txt ikut di-commit ke repository. Setiap perubahan tercatat.

Ini bukan proses yang ribet. 10 menit sebulan. Tapi 10 menit yang bisa mencegah website kamu menghilang dari internet.

robots.txt untuk Website Indonesia di Shared Hosting

Konteks lokal yang perlu kamu tahu kalau hosting di Indonesia (Rumahweb, Niagahoster, IDCloudHost, dan sejenisnya).

Di shared hosting, document root biasanya public_html/. robots.txt harus berada langsung di dalam folder itu. Bukan di subfolder. Bukan di level di atas public_html/.

Kalau kamu pakai WordPress, biasanya robots.txt di-generate virtual oleh WordPress (bukan file fisik). Ini berarti kalau kamu taruh file robots.txt manual di public_html/, file fisik itu yang akan di-serve, bukan versi virtual WordPress. Hati-hati tumpang tindih.

Untuk website statis atau PHP tanpa framework, cukup bikin file robots.txt di root. Pastikan:

  • File permission: 644 (readable by all)
  • Encoding: UTF-8, tanpa BOM (Byte Order Mark)
  • Line ending: Unix-style (LF), bukan Windows (CRLF)
  • Ga ada blank line di antara directive dalam satu blok user-agent

Soal BOM: ini error yang sneaky. Kalau kamu edit robots.txt pakai Notepad di Windows, ada kemungkinan file kamu dimulai dengan BOM character yang invisible. Crawler bisa gagal parse baris pertama. Solusinya: pakai editor yang proper (VS Code, Notepad++), simpan sebagai UTF-8 without BOM.

Checklist Sebelum Deploy

Sebelum kamu upload atau ubah robots.txt, jalankan checklist ini:

  1. Buka file di browser. Ketik yourdomain.com/robots.txt. Kalau 404, file ga di tempat yang benar.
  2. Baca setiap baris. Apakah ada Disallow: / yang ga seharusnya ada?
  3. Cek case sensitivity. Path di Disallow harus persis sama dengan path asli di server.
  4. Pastikan CSS/JS ga di-block. Kalau kamu Disallow folder /assets/, Googlebot ga bisa render halaman kamu.
  5. Sitemap directive ada? Tambahkan Sitemap: https://yourdomain.com/sitemap.xml.
  6. Test di Google Search Console. Pakai robots.txt Tester untuk simulasi.
  7. Periksa encoding. Pastikan UTF-8 tanpa BOM.

Tujuh langkah. Lima menit. Lakuin setiap kali ada perubahan.

Frequently Asked Questions

Apakah robots.txt bisa mencegah halaman muncul di Google?

Tidak sepenuhnya. robots.txt mencegah crawling, bukan indexing. Kalau halaman kamu punya backlink dari website lain, Google bisa mengetahui keberadaan URL tersebut dan menampilkannya di hasil pencarian (dengan snippet kosong) meskipun di-block di robots.txt. Untuk benar-benar mencegah indexing, gunakan meta tag <meta name="robots" content="noindex"> atau HTTP header X-Robots-Tag: noindex.

Berapa sering harus update robots.txt?

Minimal setiap kali kamu menambah direktori baru di website, mengubah struktur URL, atau ada crawler baru yang perlu kamu tangani. Sebagai baseline, review bulanan sudah cukup untuk kebanyakan website. Untuk website besar dengan banyak section, review mingguan lebih aman.

Apakah Crawl-delay masih berguna?

Tergantung crawler. Bingbot menghormati Crawl-delay. Googlebot mengabaikannya (Google mengatur crawl rate lewat Search Console). Untuk AI crawler, belum ada standar yang jelas. Kalau server kamu kecil dan sering kena spike dari bot, Crawl-delay: 10 bisa membantu mengurangi beban. Tapi untuk website di shared hosting Indonesia, rate limiting di level server (.htaccess atau LiteSpeed config) lebih efektif.

Apa bedanya blokir AI crawler di robots.txt vs Terms of Service?

robots.txt adalah mekanisme teknis. Crawler yang patuh akan menghormatinya. Terms of Service adalah mekanisme legal. Crawler yang melanggar bisa dituntut. Idealnya pakai keduanya. robots.txt untuk enforcement teknis, ToS untuk enforcement legal. Tapi perlu dicatat: banyak AI crawler yang masih beroperasi di area abu-abu soal kepatuhan terhadap robots.txt.

Website aku pakai WordPress. Perlu bikin robots.txt manual?

WordPress generate robots.txt virtual secara default. Untuk kebanyakan kasus, ini sudah cukup. Tapi kalau kamu perlu kontrol granular (misalnya aturan spesifik per AI crawler), bikin file fisik robots.txt di root. File fisik akan override versi virtual WordPress. Pastikan kamu tahu persis apa yang kamu tulis, karena kesalahan di file fisik ga bisa di-override dari dashboard WordPress.

References

  1. Google Search Central. "Introduction to robots.txt." Google Developers, 2024. Link
  2. SE Ranking. "Robots.txt file guide: syntax, setup, crawling rules, and best practices." SE Ranking Blog, 2024. Link
  3. Search Engine Journal. "8 Common Robots.txt Issues & How To Fix Them." Search Engine Journal, 2024. Link
  4. seoClarity. "20 Common Robots.txt Issues (and How to Avoid Them)." seoClarity Blog, 2024. Link
  5. Stytch. "How to block AI web crawlers: challenges and solutions." Stytch Blog, 2024. Link