iducationducation
IndexArticlesFormationsProfilOutilsBibliothech
N°014 — 2026
Navigation
01Index02Articles03Formations04Profil05Outils06Bibliothech
N°014 — 2026
iducationducation
IndexArticlesFormationsProfilOutilsBibliothech
N°014 — 2026
Navigation
01Index02Articles03Formations04Profil05Outils06Bibliothech
N°014 — 2026
Formations
SEO · Intermédiaire

SEO Technique

Comprendre et maîtriser le référencement naturel de A à Z : crawl, indexation, Core Web Vitals, données structurées, maillage interne et Search Console. La formation technique pour développeurs qui veulent que leur site soit trouvé.

Google Search ConsoleSchema.orgCore Web VitalsNext.jsrobots.txt
01Comment Google fonctionne02HTML pour le SEO03Robots.txt, Sitemap et URLs04Maillage interne et contenu dupliqué05Core Web Vitals06Données structurées Schema.org07JavaScript, Search Console et Checklist
Chapitre 3·20 min

Robots.txt, Sitemap et URLs

Trois fichiers et conventions qui contrôlent comment Googlebot découvre et accède à votre site. Souvent négligés, parfois mal configurés — et capable de bloquer l'indexation de tout votre site en une ligne.

Robots.txt — contrôler l'accès au site

Le fichier robots.txt, accessible à https://votresite.fr/robots.txt, indique aux robots quelles parties du site ils peuvent crawler.

C'est une convention, pas une sécurité. Googlebot respecte les règles. Un robot malveillant les ignore. Ne mettez pas de contenu sensible derrière Disallow en pensant le protéger — utilisez une authentification pour ça.

Syntaxe complète

# ── Règles pour tous les robots ──────────────────────────
User-agent: *
Allow: /
 
# Exclure les zones non-publiques
Disallow: /admin/
Disallow: /api/
Disallow: /tmp/
Disallow: /_next/static/   # Optionnel — Googlebot peut lire les assets
 
# Exclure les paramètres qui créent du contenu dupliqué
Disallow: /*?utm_source=
Disallow: /*?sessionid=
Disallow: /search?
 
# ── Règle pour un robot spécifique ───────────────────────
User-agent: AhrefsBot
Crawl-delay: 10
 
# Bloquer complètement un robot agressif
User-agent: SemrushBot
Disallow: /
 
# ── Sitemap ───────────────────────────────────────────────
Sitemap: https://votresite.fr/sitemap.xml
Sitemap: https://votresite.fr/sitemap-images.xml

Erreurs critiques à éviter

Bloquer tout le site :

# ❌ CATASTROPHE — bloque Googlebot sur l'intégralité du site
User-agent: *
Disallow: /

Ça arrive sur les sites qui copient leur config de staging en production. Vérifiez systématiquement https://votresite.fr/robots.txt après chaque déploiement.

Bloquer les assets CSS/JS :

# ❌ Googlebot ne peut plus rendre la page correctement
Disallow: /assets/
Disallow: /_next/
Disallow: /static/

Google rend les pages comme un navigateur — il a besoin du CSS et du JavaScript pour voir ce qu'un utilisateur voit. Bloquer les assets = Google voit une page sans style.

Aucune règle Disallow :

# ✅ Autoriser tout — configuration minimale valide
User-agent: *
Allow: /
Sitemap: https://votresite.fr/sitemap.xml

À retenir : Un robots.txt vide ou absent est OK — Googlebot crawle tout. Un robots.txt mal configuré peut bloquer tout votre site. Testez toujours via Google Search Console → Outil de test robots.txt.

Sitemap XML — le plan de votre site

Le sitemap liste toutes les URLs importantes de votre site. Il aide Googlebot à les découvrir rapidement, surtout sur les sites récents qui ont peu de liens entrants.

Structure d'un sitemap minimal

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 
  <url>
    <loc>https://iducation.fr/</loc>
    <lastmod>2026-06-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
 
  <url>
    <loc>https://iducation.fr/articles</loc>
    <lastmod>2026-06-18</lastmod>
    <priority>0.8</priority>
  </url>
 
  <url>
    <loc>https://iducation.fr/articles/seo-pour-developpeurs</loc>
    <lastmod>2026-06-18</lastmod>
    <priority>0.9</priority>
  </url>
 
</urlset>

Génération dynamique avec Next.js

app/sitemap.ts
import { getAllArticles } from '@/lib/articles'
import { getAllFormations } from '@/lib/formations'
 
export default async function sitemap() {
  const articles = await getAllArticles()
  const formations = getAllFormations()
 
  const articleUrls = articles.map(a => ({
    url: `https://iducation.fr/articles/${a.slug}`,
    lastModified: new Date(a.date),
    changeFrequency: 'monthly' as const,
    priority: 0.8,
  }))
 
  const formationUrls = formations.map(f => ({
    url: `https://iducation.fr/formations/${f.slug}`,
    lastModified: new Date(),
    changeFrequency: 'monthly' as const,
    priority: 0.7,
  }))
 
  return [
    {
      url: 'https://iducation.fr',
      lastModified: new Date(),
      changeFrequency: 'weekly' as const,
      priority: 1.0,
    },
    {
      url: 'https://iducation.fr/articles',
      lastModified: new Date(),
      changeFrequency: 'daily' as const,
      priority: 0.9,
    },
    ...articleUrls,
    ...formationUrls,
  ]
}

Ce qui ne doit PAS être dans le sitemap

  • Pages avec noindex
  • Pages avec Disallow dans robots.txt
  • Pages 404 ou redirigées
  • Pages en développement ou staging
  • Pages dupliquées (mettez la canonical, pas le doublon)

Soumettre le sitemap à Google

Via Search Console :

  1. Search Console → Sitemaps (dans la sidebar)
  2. Entrer l'URL : sitemap.xml
  3. Cliquer "Envoyer"
  4. Google indique le nombre d'URLs découvertes vs indexées

Via robots.txt : (Googlebot le découvre automatiquement)

Sitemap: https://votresite.fr/sitemap.xml

Ping direct :

https://www.google.com/ping?sitemap=https://votresite.fr/sitemap.xml

URLs optimisées pour le SEO

L'URL d'une page est visible dans les résultats Google. Elle envoie un signal de pertinence et influence le CTR.

Comparaison

URLVerdictProblème
/page?id=142❌Opaque, pas de mot-clé
/p/seo-2026-05-14❌Date obsolète, trop courte
/blog/2026/06/18/comment-faire-du-seo❌Trop longue, date fragile
/SEO_Technique_Guide❌Majuscules, underscore
/articles/seo-technique✅Claire, courte, mot-clé
/formations/seo-technique✅Structure logique

Règles URL

# ✅ Structure optimale
https://monsite.fr/[section]/[mot-cle-descriptif]
 
# Exemples
https://iducation.fr/articles/docker-introduction
https://iducation.fr/formations/seo-technique
https://iducation.fr/outils/vitesse-site
 
# ❌ Éviter
/articles?post=142&cat=seo&sort=date   ← paramètres
/ARTICLES/SEO-Technique               ← majuscules
/articles/guide_seo_complet_2026       ← underscores + date

Règles à retenir :

  • Minuscules uniquement
  • Tirets - comme séparateur (jamais d'underscore _)
  • Mots-clés principaux dans l'URL
  • Aussi courte que possible tout en restant descriptive
  • Pas de dates dans les URLs de contenu evergreen
  • Pas de mots de remplissage (le, la, de, du, des...)
  • Cohérente avec la structure du site

Redirections et changement d'URL

Changer l'URL d'une page qui a des liens entrants est risqué. Si vous devez le faire :

Nginx — redirection 301 permanente
# Rediriger une ancienne URL vers la nouvelle
location = /old-url {
  return 301 /new-url;
}
 
# Rediriger tout un dossier
location /old-section/ {
  rewrite ^/old-section/(.*)$ /new-section/$1 permanent;
}

301 (Permanent) transfère ~90% de l'autorité SEO. 302 (Temporaire) ne transfère pas d'autorité. Utilisez toujours 301 pour les migrations de contenu.

À faire : Allez sur https://votresite.fr/robots.txt. La page existe-t-elle ? Les règles sont-elles correctes ? Ensuite, ouvrez https://votresite.fr/sitemap.xml. Le sitemap liste-t-il toutes vos pages importantes ? Y a-t-il des URLs exclues qui devraient être incluses ?

Précédent
HTML pour le SEO
Suivant
Maillage interne et contenu dupliqué

Développeur fullstack passionné. J'apprends en construisant et je documente tout — front, back, outils. Le code s'apprend mieux en public.

Naviguer

IndexTous les articlesFormationsProfilOutilsBibliothech

Ailleurs

GitHub RSS

Newsletter

Les articles, libs et découvertes. Une fois par semaine, pas plus.

© 2026 William LoreeConçu & codé à la main