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é.
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.
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.
# ── 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.xmlBloquer 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.
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.
<?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>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,
]
}noindexDisallow dans robots.txtVia Search Console :
sitemap.xmlVia robots.txt : (Googlebot le découvre automatiquement)
Sitemap: https://votresite.fr/sitemap.xmlPing direct :
https://www.google.com/ping?sitemap=https://votresite.fr/sitemap.xmlL'URL d'une page est visible dans les résultats Google. Elle envoie un signal de pertinence et influence le CTR.
| URL | Verdict | Problè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 |
# ✅ 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 + dateRègles à retenir :
- comme séparateur (jamais d'underscore _)Changer l'URL d'une page qui a des liens entrants est risqué. Si vous devez le faire :
# 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, ouvrezhttps://votresite.fr/sitemap.xml. Le sitemap liste-t-il toutes vos pages importantes ? Y a-t-il des URLs exclues qui devraient être incluses ?