Memblokir Resource:Disallow: /css/ atau /js/ di robots.txt. (Jangan lakukan ini!).
Hash URLs: Menggunakan href="#/products" (Googlebot sering mengabaikan hash). Gunakan href="/products" (History API).
Duplicate Content: Konten sama di banyak URL tanpa canonical tag.
Missing Alt Text: Gambar tanpa deskripsi teks (<img src="..."> saja).
Slow Speed: Gambar belum dioptimasi atau caching mati.
Summary
SEO for Web App menuntut developer untuk memahami cara kerja Googlebot (Crawling, Rendering, Indexing). Tantangan terbesar pada aplikasi web modern (SPA) adalah memastikan Rendering JavaScript berjalan mulus atau menggunakan SSR agar konten terbaca. Implementasi teknis seperti Robots.txt, Sitemap, Canonical Tags, dan Structured Data (JSON-LD) adalah fondasi agar website “bersahabat” dengan mesin pencari. Selain itu, performa situs yang diukur lewat Core Web Vitals kini menjadi faktor penentu peringkat yang krusial.
Additional Information (Deep Dive Teknis)
1. Implementasi JSON-LD (Structured Data)
Berikut contoh kode JSON-LD untuk memberitahu Google bahwa halaman ini adalah sebuah Produk:
Kode ini tidak terlihat user, tapi dibaca Google untuk menampilkan harga dan status stok langsung di hasil pencarian.
2. Dynamic Rendering (Solusi Hibrida)
Jika aplikasi Anda berat di Client-Side (CSR) dan sulit diubah ke SSR, Anda bisa gunakan teknik Dynamic Rendering.
Cara Kerja: Server mendeteksi User-Agent.
Jika User-Agent = Browser Manusia → Kirim file JS biasa (CSR).
Jika User-Agent = Googlebot → Kirim versi HTML statis yang sudah dirender (Pre-rendered) menggunakan tool seperti Puppeteer atau Rendertron.
3. Mengapa Hash URL (/#/) Buruk untuk SEO?
Googlebot secara historis menganggap apa pun setelah tanda pagar (#) sebagai fragmen di dalam halaman yang sama, bukan halaman baru. Meskipun Googlebot modern semakin pintar, praktik terbaik tetap menggunakan History API (pushState) untuk membuat URL bersih (/products/123) agar setiap halaman dianggap unik dan diindeks terpisah.
Spaced Repetition Questions (Review)
1. Apa perbedaan utama antara Crawling dan Indexing?
Crawling adalah proses menemukan dan mengunduh halaman web, sedangkan Indexing adalah proses menganalisis isi halaman tersebut dan menyimpannya ke database mesin pencari agar bisa dicari user.
2. Mengapa kita tidak boleh memblokir folder CSS atau JS di robots.txt?
Karena Googlebot melakukan “Rendering” untuk melihat halaman seperti manusia. Jika CSS/JS diblokir, Googlebot melihat halaman yang “rusak” atau kosong, yang bisa menurunkan peringkat SEO.
3. Apa fungsi Canonical Tag?
Untuk memberi tahu Google URL mana yang merupakan versi “asli” atau “utama” jika ada beberapa URL yang menampilkan konten yang sama (duplikat), sehingga otoritas ranking tidak terpecah.
Metrik Core Web Vitals yang mengukur waktu loading elemen konten terbesar (gambar utama atau blok teks) di viewport. Target yang baik adalah di bawah 2.5 detik.
5. Apa itu JSON-LD?
JSON for Linking Data: Format data terstruktur berbasis JavaScript yang disisipkan di halaman web untuk memberikan konteks semantik (arti) kepada mesin pencari tentang konten halaman (misal: ini adalah Resep, Produk, atau Event).