BaliseTonSite

Audit SEO & contenu

Est-ce que Google te trouve ? Vérifie que ton radar est bien allumé.

1. Meta tags essentielles

TSXtsx
// app/layout.tsx : metadata globale
import type { Metadata } from 'next'

export const metadata: Metadata = {
  title: {
    template: '%s | BaliseTonSite',
    default: 'BaliseTonSite - Apprends le dev web',
  },
  description: 'Plateforme d\'apprentissage du développement web pour débutants.',
  openGraph: {
    type: 'website',
    locale: 'fr_FR',
    siteName: 'BaliseTonSite',
  },
}

// app/html/[slug]/page.tsx : metadata par page
export const metadata: Metadata = {
  title: 'Les bases du HTML',
  description: 'Apprends les fondamentaux du HTML en partant de zéro.',
}

Checklist meta tags

Bashbash
# Vérifications meta tags :
# [ ] Chaque page a un title unique (50-60 caractères)
# [ ] Chaque page a une description unique (150-160 caractères)
# [ ] Les Open Graph tags sont présents (og:title, og:description, og:image)
# [ ] La balise canonical est correcte (pas de duplicate content)
# [ ] La langue est déclarée (<html lang="fr">)

2. Sitemap et robots.txt

TypeScripttypescript
// app/sitemap.ts : générer le sitemap automatiquement
import type { MetadataRoute } from 'next'

export default function sitemap(): MetadataRoute.Sitemap {
  const baseUrl = 'https://balisetonsite.com'

  // Pages statiques
  const staticPages = [
    '', '/html', '/css', '/javascript',
    '/scss', '/github', '/seo',
  ].map(path => ({
    url: baseUrl + path,
    lastModified: new Date(),
    changeFrequency: 'weekly' as const,
    priority: path === '' ? 1 : 0.8,
  }))

  return staticPages
}

// app/robots.ts : contrôler l'indexation
export default function robots(): MetadataRoute.Robots {
  return {
    rules: {
      userAgent: '*',
      allow: '/',
      disallow: ['/api/', '/profil', '/connexion', '/inscription'],
    },
    sitemap: 'https://balisetonsite.com/sitemap.xml',
  }
}

3. Structure du contenu

Google lit la structure de tes headings pour comprendre ta page. Une hiérarchie cassée = un signal négatif.

HTMLhtml
<!-- Bonne hiérarchie (une seule h1, puis h2, h3...) -->
<h1>Apprendre le HTML</h1>
  <h2>Les balises de base</h2>
    <h3>Les titres</h3>
    <h3>Les paragraphes</h3>
  <h2>Les formulaires</h2>
    <h3>Les inputs</h3>

<!-- Mauvaise hiérarchie (h3 sans h2 parent) -->
<h1>Apprendre le HTML</h1>
  <h3>Les titres</h3>     <!-- saute h2 -->
  <h2>Les formulaires</h2>
  <h4>Les inputs</h4>     <!-- saute h3 -->

4. Données structurées (Schema.org)

TSXtsx
// Données structurées pour un cours (JSON-LD)
export default function CoursePage() {
  const jsonLd = {
    '@context': 'https://schema.org',
    '@type': 'Course',
    name: 'Apprendre le HTML',
    description: 'Cours complet HTML pour débutants.',
    provider: {
      '@type': 'Organization',
      name: 'BaliseTonSite',
    },
    isAccessibleForFree: true,
    educationalLevel: 'Beginner',
    inLanguage: 'fr',
  }

  return (
    <>
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
      />
      {/* contenu de la page */}
    </>
  )
}

5. Audit SEO avec l'IA

Bashbash
# Prompt d'audit SEO :
# "Voici le code source de ma page Next.js :
# [colle le code de ta page + layout]
#
# Vérifie :
# 1. Les meta tags (title, description, og:*) sont-ils optimisés ?
# 2. La hiérarchie des headings est-elle correcte ?
# 3. Les images ont-elles des alt text descriptifs ?
# 4. Les liens internes sont-ils pertinents ?
# 5. Y a-t-il des données structurées (JSON-LD) ?
# 6. Le contenu est-il suffisant pour cette requête cible ?
#
# Requête cible : 'apprendre le HTML gratuitement'
# Donne-moi un score sur 10 et les corrections prioritaires."

6. Performance SEO : les signaux UX

Google utilise les Core Web Vitals comme signal de classement :

Bashbash
# Signaux UX qui impactent le SEO :
# - LCP < 2.5s (le contenu principal s'affiche vite)
# - INP < 200ms (le site réagit vite aux clics)
# - CLS < 0.1 (pas de saut de mise en page)
# - Mobile-friendly (responsive design)
# - HTTPS (obligatoire)
#, pas d'interstitiels intrusifs (popups bloquantes)

# Tester le mobile :
# Chrome DevTools > Toggle Device Toolbar (Ctrl+Shift+M)
# Google Search Console > Rapport "Ergonomie mobile"

Ce que tu as débloqué

  • Les meta tags essentielles (title, description, OG)
  • Sitemap et robots.txt automatiques avec Next.js
  • La hiérarchie des headings
  • Les données structurées (JSON-LD / Schema.org)
  • L'audit SEO assisté par l'IA
  • Les signaux UX qui impactent le classement

Verifie tes acquis

5 questions pour valider ce chapitre

1. Quelle longueur ideale pour un title SEO ?

Valide et sauvegarde ce chapitre

Ne perds pas le fil de ton apprentissage. Chaque QCM terminé sauvegarde ton score. Crée ton profil gratuitement pour débloquer toutes les évaluations du site et retrouver tes résultats plus tard.

Commencer l'aventure
Déjà membre ?Connecte-toi