Loading page...
Sebelumnya saya sudah membuat artikel SEO Next.js Crawling dan Indexing
Selanjutnya berfokus pada optimasi halaman website agar lebih mudah dipahami oleh Google dan terlihat lebih baik saat dibagikan ke media sosial.
Metadata berisi informasi dasar tentang sebuah halaman, seperti judul dan deskripsi.
Contohnya:
Metadata membantu Google memahami isi halaman sebelum menampilkannya di hasil pencarian.
Konfigurasi SEO dikumpulkan di misal:
configs/seo.ts
Contoh metadata dasar di halaman Next.js:
import type { Metadata } from 'next';
export const metadata: Metadata = {
title: 'About — Erlangga Hidayatullah',
description: 'Tentang Erlangga Hidayatullah, software engineer dari Indonesia.',
};
Metadata yang digunakan bersama beberapa halaman sebaiknya disimpan di configs/seo.ts, kemudian diimpor ke file halaman agar lebih mudah dirawat tapi ini opsional.
Canonical URL memberi tahu Google alamat utama dari sebuah halaman.
Contoh canonical URL:
https://erlanggaht.com/blog
Di Next.js, canonical ditulis menggunakan alternates:
export const metadata: Metadata = {
title: 'Blog — Erlangga Hidayatullah',
alternates: {
canonical: '/blog',
},
};
Untuk artikel dinamis:
alternates: {
canonical: `/blog/${article.slug}`,
},
Hal ini membantu mencegah Google menganggap beberapa URL sebagai halaman duplikat.
Open Graph mengatur tampilan link ketika dibagikan ke Facebook, WhatsApp, dan aplikasi lainnya.
Informasi yang digunakan meliputi:
Website menggunakan fallback image berikut:
public/images/og-image.png
Lokasi gambar dan konfigurasi fallback:
export const OG_IMAGE = '/images/og-image.png';
Contoh Open Graph:
openGraph: {
type: 'website',
title: 'Erlangga Hidayatullah — Software Engineer',
description: 'Website personal dan portofolio Erlanggaht.',
images: [{
url: OG_IMAGE,
alt: 'Erlanggaht — Software Engineer',
}],
},
Jika artikel memiliki cover image, gambar tersebut digunakan sebagai preview. Jika tidak, website menggunakan fallback image.
Twitter Card memiliki fungsi yang sama seperti Open Graph, tetapi digunakan untuk mengatur tampilan link di X/Twitter.
Website menggunakan tipe:
summary_large_image
Dengan begitu, link dapat menampilkan gambar preview yang lebih besar.
JSON-LD adalah data terstruktur yang membantu Google memahami jenis dan isi halaman.
Schema yang digunakan:
WebSite untuk halaman HomeProfilePage untuk halaman AboutPerson untuk identitas Erlangga HidayatullahArticle untuk setiap artikel BlogJSON-LD tidak mengubah tampilan website. Data ini hanya dibaca oleh mesin pencari.
Contoh JSON-LD untuk halaman Home:
const websiteSchema = {
'@context': 'https://schema.org',
'@type': 'WebSite',
name: 'Erlanggaht',
url: 'https://erlanggaht.com',
};
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(websiteSchema) }}
/>
Contoh schema untuk artikel:
const articleSchema = {
'@context': 'https://schema.org',
'@type': 'Article',
headline: article.title,
author: { '@type': 'Person', name: article.author },
datePublished: new Date(article.createdAt).toISOString(),
mainEntityOfPage: `https://erlanggaht.com/blog/${article.slug}`,
};
Slug adalah bagian URL setelah /blog/.
Contoh slug yang baik:
/blog/belajar-nextjs
Slug dibuat dari judul artikel menggunakan huruf kecil dan tanda hubung.
Slug artikel lama dipertahankan ketika judul artikel diedit. Cara ini menjaga URL yang sudah dibaca Google agar tidak berubah dan menghasilkan broken link.
Internal linking adalah link yang menghubungkan satu halaman website dengan halaman lain di website yang sama.
Contohnya:
Internal linking membantu pengunjung menemukan konten lain dan membantu Google memahami hubungan antarhalaman.
Setiap gambar perlu memiliki atribut alt yang menjelaskan isi gambar.
Contoh:
<Image src="/images/og-image.png" alt="Erlanggaht Software Engineer" />
Alt text membantu aksesibilitas dan membantu Google memahami gambar.
Setelah website di-deploy, halaman dapat diperiksa menggunakan Google Rich Results Test.
Pengujian dilakukan setelah deploy agar Google membaca HTML terbaru dari domain publik.
Halaman yang perlu diuji:
https://erlanggaht.com/
https://erlanggaht.com/about
https://erlanggaht.com/blog
https://erlanggaht.com/blog/slug-artikel
Jika ada perubahan SEO, lakukan deploy terlebih dahulu sebelum melakukan pengujian ulang.
Artikel ini membuat website Erlanggaht memiliki struktur SEO yang lebih rapi, metadata yang lebih lengkap, preview link yang lebih baik, dan informasi terstruktur untuk Google.
Artikel Terkait: