Cara Marketer Indonesia Pasang CrUX API di Next.js untuk Dashboard Monitoring Core Web Vitals Mingguan 2026

TL;DR: CrUX Dashboard public hanya update bulanan, padahal Core Web Vitals jadi sinyal ranking yang dinilai p75 28 hari. Pakai CrUX API di Next.js Route Handler untuk fetch data harian dan render dashboard internal mingguan. Setup butuh API key Google Cloud (gratis) dan kira-kira 60 baris kode.
Bulan Maret 2026, salah satu klien personal branding kami bertanya: "Kenapa skor Core Web Vitals di Google Search Console beda dengan PageSpeed Insights?". Jawabannya sederhana. PageSpeed Insights menampilkan field data CrUX yang ter-cache sampai 24 jam, sementara Search Console pakai data agregat yang lebih lambat update. Untuk monitor mingguan yang akurat, jalannya langsung ke sumber: CrUX API.
Kenapa CrUX API, Bukan PageSpeed Insights API?
PageSpeed Insights API membungkus lab data Lighthouse dan field data CrUX. Untuk dashboard monitoring murni, kita cuma butuh field data, dan CrUX API jauh lebih cepat dan punya struktur response yang lebih sederhana.
| Aspek | CrUX API | PageSpeed Insights API |
|---|---|---|
| Response time | <500ms | 5-30 detik |
| Quota gratis | 150 req/menit | 25.000 req/hari |
| Berisi | Field data only | Lab + field data |
| Cocok untuk | Dashboard monitoring | Audit on-demand |
Setup di Next.js 15
Langkah 1, dapatkan API key dari Google Cloud Console. Aktifkan "Chrome UX Report API" di project Anda dan generate API key tanpa restriction (atau restrict ke IP server jika sudah deploy).
Langkah 2, simpan di environment variable Vercel:
CRUX_API_KEY=AIza...
Langkah 3, buat Route Handler di app/api/crux/route.ts:
import { NextResponse } from 'next/server';
export const revalidate = 86400; // cache 24 jam
export async function GET(req: Request) {
const url = new URL(req.url).searchParams.get('url');
if (!url) return NextResponse.json({ error: 'url required' }, { status: 400 });
const res = await fetch(
`https://chromeuxreport.googleapis.com/v1/records:queryRecord?key=${process.env.CRUX_API_KEY}`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
url,
formFactor: 'PHONE',
metrics: ['largest_contentful_paint', 'interaction_to_next_paint', 'cumulative_layout_shift'],
}),
next: { revalidate: 86400 },
}
);
const data = await res.json();
return NextResponse.json(data);
}
Langkah 4, render dashboard. Bisa pakai Recharts atau tabel HTML biasa, tergantung kompleksitas. Untuk monitoring mingguan, tabel sederhana yang refresh tiap Senin pagi sudah cukup.
Studi Kasus: Dashboard Aris Setiawan
Aris Setiawan, klien personal branding, butuh tahu skor Core Web Vitals untuk 8 halaman pillar setiap minggu. Sebelumnya dia cek manual via PageSpeed Insights, butuh 15 menit per halaman.
Kami pasang Route Handler di atas, plus cron job harian via Vercel yang fetch 8 URL dan simpan ke Supabase. Dashboard internal di-render dari On-Demand ISR dengan revalidateTag('crux-weekly'). Hasilnya: monitoring 8 halaman sekarang butuh 0 menit waktu manual per minggu, dengan history 12 bulan ter-archive otomatis.
Praktik standar di industri menunjukkan bahwa monitoring mingguan cukup untuk situs di bawah 100.000 sesi per bulan. Untuk situs dengan traffic lebih tinggi, kombinasikan dengan web-vitals library untuk attribution data real-time. Referensi resmi: dokumentasi CrUX API.
Pertanyaan Umum
Berapa quota CrUX API gratis?
150 query per menit, cukup untuk dashboard internal dengan ratusan URL.
Kenapa beberapa URL return "no data"?
URL butuh minimum traffic Chrome users opt-in dalam 28 hari. Halaman baru atau low-traffic biasanya belum punya cukup sample.
Bisa pakai CrUX API untuk benchmark kompetitor?
Bisa. CrUX adalah data publik dari pengguna Chrome opt-in. Anda bisa query URL kompetitor untuk benchmark p75 LCP, INP, dan CLS mereka.
Apakah perlu domain sudah ter-index Google?
Tidak. CrUX agregat data dari Chrome users, bukan dari Search index. Domain baru pun bisa di-query asal punya traffic Chrome cukup.
Penutup
Monitoring Core Web Vitals tidak harus pakai tool berbayar. CrUX API gratis, response cepat, dan terintegrasi mudah di Next.js. Untuk situs personal brand atau bisnis kecil-menengah Indonesia, kombinasi CrUX API mingguan plus web-vitals library real-time sudah memberi visibility yang cukup untuk pengambilan keputusan optimasi.
Artikel Terkait
Website Bisnis
Cara Marketer Indonesia Pasang Document Picture-in-Picture di Next.js untuk Webinar dan Live Demo 2026
Tutorial pasang Document Picture-in-Picture API di Next.js, agar peserta webinar atau live demo bisa multitasking tanpa kehilangan konten utama.
Website Bisnis
Cara Marketer Indonesia Pasang CSS text-wrap balance di Next.js untuk Heading Landing Page yang Selalu Rapi 2026
Pelajari cara pakai CSS text-wrap balance di Next.js dan Tailwind CSS untuk mencegah heading hero, judul kartu, atau headline pricing yang "menggantung" satu kata di baris terakhir di 2026.
Website Bisnis
Cara Marketer Indonesia Pasang Prefetch dan Quicklink di Next.js untuk Navigasi Instan Antar Halaman 2026
Panduan praktis pasang prefetch resource hint dan integrasi quicklink di Next.js. Pangkas LCP halaman kedua, naikkan retensi sesi, dan jaga kuota pengguna seluler tetap hemat.
Butuh website yang benar-benar bekerja?
Hubungi Vito untuk konsultasi gratis 15 menit.
WhatsApp Sekarang