Implementasi SEO dengan Claude Code
Pelajari tentang implementasi SEO menggunakan Claude Code. Tips praktis dan contoh kode disertakan.
Meningkatkan UX dan SEO Sekaligus dengan Breadcrumb
Breadcrumb adalah elemen navigasi yang secara visual menunjukkan posisi pengguna di dalam situs. Jika diimplementasikan dengan benar, peningkatan usability dan SEO bisa dicapai secara bersamaan.
Component Breadcrumb Dasar
> Buat component breadcrumb.
> Dengan dukungan structured data (JSON-LD), pertimbangan accessibility, dan dukungan responsif.
// components/Breadcrumb.tsx
interface BreadcrumbItem {
label: string;
href?: string;
}
interface BreadcrumbProps {
items: BreadcrumbItem[];
}
export function Breadcrumb({ items }: BreadcrumbProps) {
const jsonLd = {
'@context': 'https://schema.org',
'@type': 'BreadcrumbList',
itemListElement: items.map((item, index) => ({
'@type': 'ListItem',
position: index + 1,
name: item.label,
item: item.href ? `https://example.com${item.href}` : undefined,
})),
};
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
<nav aria-label="Breadcrumb" className="breadcrumb">
<ol className="flex flex-wrap items-center gap-1 text-sm text-gray-600">
{items.map((item, index) => (
<li key={index} className="flex items-center">
{index > 0 && (
<span className="mx-2 text-gray-400" aria-hidden="true">/</span>
)}
{item.href && index < items.length - 1 ? (
<a
href={item.href}
className="text-blue-600 hover:underline"
>
{item.label}
</a>
) : (
<span aria-current="page" className="text-gray-800 font-medium">
{item.label}
</span>
)}
</li>
))}
</ol>
</nav>
</>
);
}
Auto-Generate Breadcrumb dari URL
// utils/breadcrumb.ts
const labelMap: Record<string, string> = {
blog: 'Blog',
category: 'Kategori',
tags: 'Tag',
about: 'Tentang',
};
export function generateBreadcrumbs(pathname: string): BreadcrumbItem[] {
const segments = pathname.split('/').filter(Boolean);
const items: BreadcrumbItem[] = [
{ label: 'Beranda', href: '/' },
];
let currentPath = '';
segments.forEach((segment, index) => {
currentPath += `/${segment}`;
const isLast = index === segments.length - 1;
items.push({
label: labelMap[segment] || decodeURIComponent(segment),
href: isLast ? undefined : currentPath,
});
});
return items;
}
Contoh Integrasi di Astro
---
// layouts/BlogPost.astro
import { Breadcrumb } from '../components/Breadcrumb';
const { frontmatter } = Astro.props;
const breadcrumbItems = [
{ label: 'Beranda', href: '/' },
{ label: 'Blog', href: '/blog' },
{ label: frontmatter.category, href: `/blog/category/${frontmatter.category}` },
{ label: frontmatter.title },
];
---
<Breadcrumb items={breadcrumbItems} />
Variasi Styling
/* Style panah */
.breadcrumb-arrow li + li::before {
content: '›';
margin: 0 0.5rem;
color: #9ca3af;
}
/* Style ikon */
.breadcrumb-icon li:first-child a::before {
content: '';
display: inline-block;
width: 16px;
height: 16px;
background: url('/icons/home.svg') no-repeat center;
margin-right: 4px;
vertical-align: middle;
}
/* Mobile: hanya tampilkan 2 terakhir */
@media (max-width: 640px) {
.breadcrumb li:not(:nth-last-child(-n+2)) {
display: none;
}
.breadcrumb li:nth-last-child(2)::before {
content: '... / ';
}
}
Testing
import { describe, it, expect } from 'vitest';
import { generateBreadcrumbs } from './breadcrumb';
describe('generateBreadcrumbs', () => {
it('Halaman utama', () => {
const result = generateBreadcrumbs('/');
expect(result).toEqual([{ label: 'Beranda', href: '/' }]);
});
it('Halaman artikel blog', () => {
const result = generateBreadcrumbs('/blog/my-article');
expect(result).toHaveLength(3);
expect(result[1]).toEqual({ label: 'Blog', href: '/blog' });
expect(result[2].href).toBeUndefined();
});
});
Summary
Breadcrumb adalah component penting baik untuk optimasi SEO maupun accessibility. Dengan meminta Claude Code mengimplementasikan hingga dukungan structured data, breadcrumb akan ditampilkan di hasil pencarian Google. Untuk detail structured data, lihat Google Search Central.
PDF Gratis: Cheatsheet Claude Code dalam 5 Menit
Cukup masukkan emailmu dan kami akan langsung mengirim cheatsheet PDF A4 satu halaman.
Kami menjaga data pribadimu dengan aman dan tidak pernah mengirim spam.
Tentang Penulis
Masa
Engineer yang aktif menggunakan Claude Code. Mengelola claudecode-lab.com, media teknologi 10 bahasa dengan lebih dari 2.000 halaman.
Artikel Terkait
7 template CLAUDE.md untuk Claude Code yang bisa langsung dipakai di proyek nyata
Tujuh template CLAUDE.md praktis untuk app solo, situs konten, API, repo tim, dan codebase legacy, plus kegagalan yang perlu dihindari.
Panduan Approval dan Sandbox Claude Code | Pengaturan aman untuk kerja harian
Cara membagi aksi Claude Code ke allow, ask, deny, dan sandbox dengan settings praktis, hooks, dan contoh workflow nyata.
Panduan Lengkap Memulai Claude Code 2026 | 7 Langkah dari Nol hingga Siap Pakai di Dunia Kerja
Panduan pemula lengkap untuk pengguna baru Claude Code. Dari instalasi hingga mengintegrasikannya ke workflow pengembangan nyata — mencakup semua jebakan yang Masa hadapi di awal.