Lewati ke konten
Pengembangan Web

App Router vs Pages Router Next.js: Kapan Pakai? (2026)

M. Irfan Ramadhan3 menit baca
Layar laptop menampilkan editor kode dengan sintaks berwarna hijau dan oranye di ruangan gelap.
Foto: Pexels
Daftar Isi

App Router dipakai untuk proyek Next.js baru karena jadi rekomendasi resmi sejak versi 13.4 (Mei 2023), berbasis React Server Components dengan bundel JavaScript client lebih kecil. Pages Router tetap masuk akal dipertahankan untuk aplikasi besar yang sudah stabil di arsitektur lama, di mana rewrite penuh belum sepadan dengan manfaatnya.

Ringkasan cepat:

  1. App Router jadi rekomendasi default Next.js sejak versi 13.4 (4 Mei 2023).
  2. Pages Router belum deprecated, masih menerima dukungan dan perbaikan resmi.
  3. Beda utama: App Router pakai Server Component sebagai default, Pages Router client-side kecuali eksplisit diatur.
  4. Keduanya bisa hidup berdampingan dalam satu proyek untuk migrasi bertahap.
  5. Pilih App Router untuk proyek baru, pertahankan Pages Router kalau aplikasi besar sudah stabil di sana.

Apa Beda App Router dan Pages Router Next.js?

Perbedaan paling mendasar ada di model rendering default. Pages Router (direktori pages/, arsitektur asli Next.js sejak awal) merender komponen di client secara default kecuali eksplisit memakai getServerSideProps atau getStaticProps. App Router (direktori app/, diperkenalkan di Next.js 13) membalik default itu: setiap komponen adalah React Server Component kecuali ditandai "use client" secara eksplisit.

App Router vs Pages Router: Perbandingan Singkat

AspekPages RouterApp Router
Model rendering defaultClient-side, kecuali eksplisit pakai getServerSideProps/getStaticPropsReact Server Component, kecuali ditandai "use client"
Konvensi routingSatu file di pages/ = satu routeBerbasis folder di app/, dengan layout.tsx/loading.tsx/error.tsx otomatis
Data fetchingFungsi khusus level halaman (getServerSideProps, getStaticProps, getInitialProps)async/await langsung di dalam Server Component
Status dukungan resmiMasih didukung, bukan deprecatedRekomendasi default sejak versi 13.4 (4 Mei 2023)

Konvensi Routing dan Struktur File

Pages Router memetakan tiap file di pages/ langsung jadi satu route. App Router memakai konvensi berbasis folder: app/blog/page.tsx jadi route /blog, sementara layout.tsx, loading.tsx, dan error.tsx di folder yang sama otomatis dipakai untuk route tersebut tanpa perlu komponen pembungkus manual.

Data Fetching

Di Pages Router, data fetching dilakukan lewat fungsi khusus di level halaman (getServerSideProps, getStaticProps, getInitialProps). Di App Router, data fetching dilakukan langsung di dalam Server Component memakai async/await biasa, tanpa fungsi khusus terpisah.

Kapan Sebaiknya Pakai App Router?

Untuk proyek baru, App Router adalah pilihan default yang direkomendasikan resmi oleh tim Next.js sejak App Router dinyatakan stabil di versi 13.4, 4 Mei 2023: "today, with the release of 13.4, you can now start adopting the App Router for production." Server Components sendiri adalah fitur React (bukan cuma Next.js) yang menurut dokumentasi resminya "run and are cached on the server, with the option to keep some interactivity" - mengurangi jumlah JavaScript yang dikirim ke browser karena komponen yang tidak butuh interaktivitas tidak perlu di-hydrate di client, dan server bisa mengirim HTML bertahap (streaming) sehingga First Contentful Paint lebih cepat dirasakan pengguna.

"Today, with the release of 13.4, you can now start adopting the App Router for production." (blog resmi Next.js 13.4).

Situs personal brand ini sendiri dibangun dengan Next.js 15 dan App Router penuh, termasuk untuk hal-hal seperti pemasangan schema markup JSON-LD langsung sebagai Server Component tanpa perlu useEffect atau library tambahan di client. Pengurangan JavaScript di level rendering ini bisa dilengkapi dengan optimasi di level komponen client lewat React Compiler, yang menambahkan memoization otomatis tanpa useMemo/useCallback ditulis manual.

Kapan Pages Router Masih Masuk Akal Dipertahankan?

Pages Router tidak deprecated dan tetap menerima dukungan resmi. Untuk aplikasi besar yang sudah berjalan stabil di Pages Router, migrasi total ke App Router butuh effort nyata (pola data fetching, state management, dan sebagian library pihak ketiga bisa berperilaku beda di Server Component) yang belum tentu sepadan kalau aplikasinya sudah bekerja baik.

Next.js sengaja mendesain direktori app/ agar bisa berjalan berdampingan dengan pages/ di proyek yang sama, jadi migrasi bertahap per route adalah pendekatan yang didukung resmi, bukan cuma workaround. Dokumentasi resmi Next.js untuk migrasi bertahap ke App Router menjelaskan urutan langkah yang dianjurkan: mulai dari layout root, lalu pindahkan route satu per satu sambil pages/ dan app/ tetap aktif bersamaan.

Ringkasan

  • App Router adalah rekomendasi default untuk proyek Next.js baru sejak versi 13.4 (4 Mei 2023), dengan model Server Component sebagai default.
  • Pages Router masih didukung resmi (bukan deprecated) dan tetap jadi pilihan wajar untuk aplikasi besar yang sudah stabil di arsitektur itu.
  • Keduanya bisa hidup berdampingan dalam satu proyek, sehingga migrasi bisa dilakukan bertahap per route, bukan rewrite total sekaligus.
  • Butuh bantuan menentukan arsitektur Next.js yang tepat untuk proyekmu, atau migrasi dari Pages Router ke App Router? Lihat layanan web development yang ditawarkan.

nextjs · app-router · pages-router · react

Pertanyaan yang Sering Diajukan

Apakah Pages Router sudah deprecated di Next.js?

Belum. Pages Router masih didukung resmi, masih menerima perbaikan bug, dan bisa hidup berdampingan dengan App Router di proyek yang sama. Yang berubah adalah rekomendasi default: proyek baru diarahkan memakai App Router, bukan Pages Router dihapus.

Apakah App Router sudah stabil untuk produksi?

Ya, sejak Next.js 13.4 dirilis 4 Mei 2023, tim Next.js secara resmi menyatakan App Router siap produksi setelah divalidasi internal dan early adopter. Situs ini sendiri memakai Next.js 15 dengan App Router.

Bisakah App Router dan Pages Router dipakai bersamaan dalam satu proyek?

Bisa. Next.js sengaja mendesain direktori `app/` agar berjalan berdampingan dengan `pages/`, sehingga migrasi bisa dilakukan bertahap per halaman/route, bukan rewrite total sekaligus.

M. Irfan Ramadhan

SEO Specialist & Web Developer

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