Lewati ke konten
Tutorial

Cara Membuat dan Memasang llms.txt di Next.js App Router

M. Irfan Ramadhan3 menit baca
Layar komputer menampilkan teks berwarna hijau di atas latar hitam, menggambarkan file teks mentah yang dibaca mesin.
Foto: Pexels
Daftar Isi

llms.txt adalah file markdown di root domain (/llms.txt) berisi ringkasan situs dan daftar tautan halaman penting, dirancang supaya AI agent (ChatGPT, Claude, Perplexity, dan sejenisnya) bisa memahami struktur konten tanpa perlu merender HTML penuh. Di Next.js App Router, file ini dibuat lewat route handler khusus (app/llms.txt/route.ts), bukan file statis di folder public/.

Apa Itu llms.txt dan Kenapa Berbeda dari Robots.txt?

llms.txt diusulkan Jeremy Howard dari Answer.AI pada September 2024 sebagai konvensi komunitas untuk membantu large language model memahami isi website di waktu inferensi. Spesifikasi resminya ada di llmstxt.org, yang mensyaratkan struktur khusus: tepat satu H1 berisi nama brand/proyek, diikuti blockquote ringkasan satu paragraf, lalu daftar tautan yang dikelompokkan per H2 dengan format - [Judul](URL): deskripsi singkat.

Aspekllms.txtrobots.txtsitemap.xml
Fungsi utamaPeta konten ringkas untuk dipahami AI agentAturan akses crawler (boleh/tidak boleh)Daftar lengkap URL untuk diindeks
FormatMarkdownTeks plain dengan directiveXML
Status standarKonvensi komunitas (belum resmi)Standar lama, disepakati luasStandar lama, disepakati luas
Dipakai olehAI agent/LLM saat inferensiSemua jenis web crawlerMesin pencari tradisional

Kenapa Ketiganya Tetap Saling Melengkapi?

robots.txt menentukan boleh-tidaknya crawler mengakses path tertentu (termasuk mengizinkan crawler AI seperti GPTBot atau ClaudeBot secara eksplisit, dibahas di panduan sitemap dan robots.txt Next.js), sitemap.xml mendaftar semua URL untuk mesin pencari, sementara llms.txt menambahkan lapisan ringkasan yang lebih mudah dicerna model bahasa dibanding harus mem-parsing HTML lengkap tiap halaman. Ketiganya bukan pengganti satu sama lain.

Bagaimana Cara Membuat llms.txt di Next.js App Router?

Next.js App Router tidak punya file convention bawaan untuk llms.txt (berbeda dari sitemap.ts/robots.ts yang memang disediakan framework), jadi cara paling praktis adalah route handler biasa yang mengembalikan Response bertipe teks di path /llms.txt:

// app/llms.txt/route.ts
export const dynamic = "force-static";
 
export function GET() {
  const content = `# Nama Situs
 
> Satu paragraf ringkasan situs ini, ditulis jujur dan langsung ke inti.
 
## Halaman Utama
 
- [Beranda](https://contoh-domain.com/): Ringkasan singkat isi beranda.
- [Blog](https://contoh-domain.com/blog): Kumpulan artikel yang dipublikasikan.
`;
 
  return new Response(content, {
    headers: {
      "Content-Type": "text/plain; charset=utf-8",
    },
  });
}

Buat folder app/llms.txt/route.ts (nama foldernya sudah mengandung ekstensi .txt, Next.js App Router memperlakukannya sebagai path literal), lalu ekspor fungsi GET. export const dynamic = "force-static" membuat Next.js membangun responsnya sekali saat build sebagai output statis, bukan dieksekusi ulang di setiap request, masuk akal karena isinya tidak bergantung pada data request masuk.

Bagaimana Mengisi Daftar Tautan dari Konten Nyata, Bukan Ditulis Manual?

Untuk situs dengan koleksi konten (blog, portofolio), pola yang tahan lama adalah memetakan data konten yang sudah ada menjadi baris tautan, sama seperti pendekatan sitemap.ts. Situs ini sendiri memakainya persis begitu: fungsi pembaca artikel yang sama dipakai untuk merender halaman blog di-.map() menjadi baris - [judul](url): deskripsi di dalam route handler /llms.txt, sehingga daftar tautan otomatis mengikuti artikel yang benar-benar sudah dipublikasikan tanpa perlu diedit manual setiap kali ada artikel baru.

Apakah Perlu llms-full.txt Juga?

llms-full.txt adalah pelengkap opsional mengikuti konvensi yang sama: kalau /llms.txt cuma berisi ringkasan dan tautan satu baris per halaman, /llms-full.txt berisi isi lengkap seluruh konten (frontmatter dibuang, markdown mentah digabung satu file), untuk agent atau pipeline LLM yang ingin membaca seluruh teks situs tanpa merender HTML halaman satu per satu. Polanya sama seperti llms.txt: route handler dengan dynamic = "force-static", hanya isinya lebih panjang karena menggabungkan konten penuh, bukan cuma ringkasan.

Ringkasan

  • llms.txt adalah konvensi komunitas (bukan standar resmi) yang diusulkan Jeremy Howard/Answer.AI 2024, dengan spesifikasi format di llmstxt.org: satu H1, satu blockquote ringkasan, lalu daftar tautan per H2.
  • Di Next.js App Router, dibuat lewat route handler app/llms.txt/route.ts dengan export const dynamic = "force-static", bukan file convention bawaan seperti sitemap.ts/robots.ts.
  • Daftar tautan sebaiknya di-map dari data konten yang sudah ada (sama seperti pola sitemap.xml), bukan ditulis manual supaya tidak basi.
  • llms.txt melengkapi, bukan menggantikan, robots.txt dan sitemap.xml yang tetap jadi sinyal utama untuk crawler tradisional.
  • Butuh bantuan implementasi teknis GEO/AEO seperti ini di situs sendiri? Lihat layanan SEO teknis dan web development yang ditawarkan.

llms.txt · geo · aeo · nextjs · app router · ai search

Pertanyaan yang Sering Diajukan

Apakah llms.txt sudah menjadi standar resmi seperti robots.txt?

Belum. llms.txt diusulkan Jeremy Howard (Answer.AI) pada September 2024 sebagai konvensi komunitas, bukan standar resmi IETF/W3C seperti robots.txt yang sudah puluhan tahun disepakati. Spesifikasinya tetap terbuka untuk masukan publik di repositori GitHub llmstxt.org, jadi formatnya bisa terus berkembang.

Apakah llms.txt otomatis membuat website muncul di jawaban ChatGPT atau Perplexity?

Tidak otomatis. llms.txt hanya mempermudah AI agent memahami struktur konten saat benar-benar mengakses file itu di waktu inferensi; tidak ada jaminan chatbot AI mana pun mengunjunginya atau memprioritaskannya di atas sinyal SEO/GEO lain seperti struktur heading, kualitas konten, dan tautan yang bisa dikutip.

Apa bedanya llms.txt dengan llms-full.txt?

llms.txt berisi ringkasan singkat plus daftar tautan berformat satu baris per halaman (nama, URL, deskripsi). llms-full.txt adalah pelengkap opsional yang berisi isi lengkap seluruh konten dalam satu file markdown, dipakai agent atau pipeline LLM yang ingin membaca semua teks tanpa merender HTML per halaman satu per satu.

Perlu berapa lama sampai llms.txt mulai dibaca crawler AI setelah dipasang?

Tidak ada kepastian waktu karena bergantung sepenuhnya pada kapan (dan apakah) AI agent tertentu memilih mengaksesnya saat inferensi atau saat mengindeks ulang situs. Praktik yang aman adalah tetap fokus pada sinyal GEO yang sudah terbukti (structured data, konten self-contained, outbound citation) dan menganggap llms.txt sebagai pelengkap murah, bukan pengganti.

M. Irfan Ramadhan

SEO Specialist & Web Developer

Menulis tentang SEO teknis, GEO/AI search, dan pengembangan web modern berdasarkan pengalaman langsung mengerjakan proyek klien.