Implementation SEO avec Claude Code
Apprenez l'implementation SEO avec Claude Code. Conseils pratiques et exemples de code inclus.
Ameliorer l’UX et le SEO simultanement avec le fil d’Ariane
Le fil d’Ariane (breadcrumb) est un element de navigation qui montre visuellement a l’utilisateur sa position dans le site. S’il est correctement implemente, il ameliore l’utilisabilite et le SEO en meme temps.
Composant de base du fil d’Ariane
> Cree un composant de fil d'Ariane.
> Compatible avec les donnees structurees (JSON-LD), l'accessibilite et le design responsive.
// 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="Fil d'Ariane" 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>
</>
);
}
Generation automatique du fil d’Ariane a partir de l’URL
// utils/breadcrumb.ts
const labelMap: Record<string, string> = {
blog: 'Blog',
category: 'Categorie',
tags: 'Tags',
about: 'A propos',
};
export function generateBreadcrumbs(pathname: string): BreadcrumbItem[] {
const segments = pathname.split('/').filter(Boolean);
const items: BreadcrumbItem[] = [
{ label: 'Accueil', 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;
}
Exemple d’integration dans Astro
---
// layouts/BlogPost.astro
import { Breadcrumb } from '../components/Breadcrumb';
const { frontmatter } = Astro.props;
const breadcrumbItems = [
{ label: 'Accueil', href: '/' },
{ label: 'Blog', href: '/blog' },
{ label: frontmatter.category, href: `/blog/category/${frontmatter.category}` },
{ label: frontmatter.title },
];
---
<Breadcrumb items={breadcrumbItems} />
Variations de styles
/* Style avec fleches */
.breadcrumb-arrow li + li::before {
content: '>';
margin: 0 0.5rem;
color: #9ca3af;
}
/* Style avec icones */
.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 : afficher seulement les 2 derniers */
@media (max-width: 640px) {
.breadcrumb li:not(:nth-last-child(-n+2)) {
display: none;
}
.breadcrumb li:nth-last-child(2)::before {
content: '... / ';
}
}
Tests
import { describe, it, expect } from 'vitest';
import { generateBreadcrumbs } from './breadcrumb';
describe('generateBreadcrumbs', () => {
it('page d\'accueil', () => {
const result = generateBreadcrumbs('/');
expect(result).toEqual([{ label: 'Accueil', href: '/' }]);
});
it('page d\'article de 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
Le fil d’Ariane est un composant important tant pour le SEO que pour l’accessibilite. Si vous demandez a Claude Code d’implementer egalement la compatibilite avec les donnees structurees, le fil d’Ariane apparaitra dans les resultats de recherche Google. Pour plus de details sur les donnees structurees, consultez Google Search Central.
Passez votre flux Claude Code au niveau supérieur
50 modèles de prompts éprouvés, prêts à être copiés-collés dans Claude Code.
PDF gratuit : aide-mémoire Claude Code en 5 minutes
Commandes clés, raccourcis et exemples de prompts sur une seule page imprimable.
À propos de l'auteur
Masa
Ingénieur passionné par Claude Code. Il gère claudecode-lab.com, un média tech en 10 langues avec plus de 2 000 pages.
Articles similaires
Créer des commandes slash personnalisées dans Claude Code
Apprenez à créer des commandes slash personnalisées dans Claude Code. Couvre l'emplacement des fichiers, les arguments et l'automatisation des tâches.
10 astuces pour tripler votre productivité avec Claude Code
Découvrez 10 astuces pratiques pour tirer le meilleur parti de Claude Code. Des stratégies de prompts aux raccourcis de workflow, ces techniques amélioreront votre efficacité dès aujourd'hui.
Optimisation Canvas/WebGL avec Claude Code
Découvrez l'optimisation Canvas/WebGL avec Claude Code. Conseils pratiques et exemples de code inclus.