SEO Technique 2025 – Checklist complète
Guide de référence complet pour le SEO technique : optimisation on-page, Core Web Vitals, indexation, structured data, et meilleures pratiques 2025.
Table des matières
- Fondamentaux HTML
- Meta tags et SEO on-page
- Structured Data (Schema.org)
- Core Web Vitals et performance
- Mobile et responsive
- Indexation et crawl
- Architecture et URL
- Contenu et optimisation
- Liens internes et externes
- Sécurité et HTTPS
- International et multilingue
- Outils et monitoring
—
Fondamentaux HTML
Structure HTML5 sémantique
Titre de la page - Marque
Titre principal de la page
Section 1
Hiérarchie des titres
Titre principal (1 seul par page)
Section principale
Sous-section
Détail
Autre sous-section
Autre section principale
Titre
Section
Checklist HTML
[ ] DOCTYPE HTML5 (</code>)
[ ] Attribut lang sur (lang="fr")
[ ] Charset UTF-8 déclaré
[ ] Viewport meta tag présent
[ ] Un seul
par page
[ ] Hiérarchie des titres respectée (h1 → h2 → h3…)
[ ] HTML sémantique (header, nav, main, article, aside, footer)
[ ] HTML valide (W3C validator)
[ ] Pas de balises dépréciées (font, center, etc.)
—
Meta tags et SEO on-page
Meta tags essentiels
Titre de la page - Mot-clé principal | Marque
Title tag : bonnes pratiques
Mot-clé principal - Mot-clé secondaire | Marque
Service/Produit à Localisation | Marque
Comment [Action] : Guide complet | Marque
Agence SEO à Paris - Référencement naturel | WebAgency
Comment optimiser votre site web : Guide 2025 | SEOPro
Formation JavaScript ES2024 en ligne | CodeSchool
Marque - Description courte du service principal
Accueil
Bienvenue sur notre site
Mot-clé, mot-clé, mot-clé, mot-clé...
Meta description : optimisation
Checklist meta tags
[ ] Title unique pour chaque page (50-60 caractères)
[ ] Meta description unique (150-160 caractères)
[ ] Title contient le mot-clé principal
[ ] Meta description incite au clic
[ ] Canonical URL définie
[ ] Meta robots approprié (index/noindex)
[ ] Open Graph complet (og:title, og:description, og:image, og:url)
[ ] Twitter Cards configurées
[ ] Images Open Graph optimisées (1200x630px)
[ ] Favicon présent (multiple tailles)
—
Structured Data (Schema.org)
JSON-LD : format recommandé
Article / Blog Post
Breadcrumb
Product (E-commerce)
FAQ
LocalBusiness
Checklist Structured Data
[ ] JSON-LD utilisé (recommandé par Google)
[ ] Schema Organization sur toutes les pages
[ ] Schema Article pour contenus éditoriaux
[ ] Schema BreadcrumbList pour navigation
[ ] Schema Product pour e-commerce
[ ] Schema LocalBusiness si applicable
[ ] Schema FAQ pour pages FAQ
[ ] Données validées (Google Rich Results Test)
[ ] Pas de contenu caché dans structured data
[ ] Dates au format ISO 8601
—
Core Web Vitals et performance
Core Web Vitals (2025)
Largest Contentful Paint (LCP)
Cible : < 2.5 secondes
Mesure le temps de chargement du plus grand élément visible
Interaction to Next Paint (INP) – Remplace FID en 2024
Cible : < 200 millisecondes
Mesure la réactivité aux interactions
Cumulative Layout Shift (CLS)
Cible : < 0.1
Mesure la stabilité visuelle
Optimisation LCP
Optimisation INP
// Débounce des interactions
function debounce(func, wait) {
let timeout;
return function executedFunction(...args) {
clearTimeout(timeout);
timeout = setTimeout(() => func(...args), wait);
};
}
// Utilisation
const handleSearch = debounce((query) => {
// Logique de recherche
}, 300);
// Lazy loading des scripts
// Code splitting
import(/ webpackChunkName: "module" / './module.js')
.then(module => {
// Utiliser le module
});
Optimisation CLS
Performance générale
Checklist Performance
[ ] LCP < 2.5s
[ ] INP < 200ms
[ ] CLS < 0.1
[ ] Time to First Byte (TTFB) < 600ms
[ ] Images optimisées (WebP, AVIF)
[ ] Lazy loading images below the fold
[ ] CSS critique inline
[ ] JavaScript différé ou async
[ ] Compression Brotli/Gzip activée
[ ] HTTP/2 ou HTTP/3
[ ] CDN configuré
[ ] Cache browser optimisé
[ ] Minification CSS/JS
[ ] Fonts optimisées (subset, preload)
[ ] Service Worker (si applicable)
—
Mobile et responsive
Viewport et responsive
Mobile-friendly CSS
/ Mobile-first approach /
/ Base styles (mobile) /
.container {
padding: 1rem;
font-size: 16px;
}
/ Tablet /
@media (min-width: 768px) {
.container {
padding: 2rem;
font-size: 18px;
}
}
/ Desktop /
@media (min-width: 1024px) {
.container {
padding: 3rem;
max-width: 1200px;
margin: 0 auto;
}
}
/ Tap targets minimum 48x48px /
.button {
min-height: 48px;
min-width: 48px;
padding: 12px 24px;
}
Responsive images
Checklist Mobile
[ ] Mobile-friendly (Google Mobile-Friendly Test)
[ ] Viewport meta tag correct
[ ] Texte lisible sans zoom (min 16px)
[ ] Tap targets espacés (min 48x48px)
[ ] Pas de contenu plus large que viewport
[ ] Images responsive
[ ] Navigation mobile optimisée
[ ] Formulaires utilisables sur mobile
[ ] Pas de Flash ou plugins
[ ] Vitesse mobile optimisée (< 3s)
—
Indexation et crawl
Robots.txt
/robots.txt
Autoriser tous les bots
User-agent:
Allow: /
Bloquer sections spécifiques
Disallow: /admin/
Disallow: /private/
Disallow: /api/
Disallow: /.json$
Disallow: /?print=true
Googlebot spécifique
User-agent: Googlebot
Allow: /
Bloquer mauvais bots
User-agent: BadBot
Disallow: /
Sitemap
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-images.xml
Sitemap XML
https://example.com/
2025-01-15
daily
1.0
https://example.com/article
2025-01-10
weekly
0.8
https://example.com/image.jpg
Titre de l'image
Description de l'image
Sitemap Index (pour gros sites)
https://example.com/sitemap-pages.xml
2025-01-15
https://example.com/sitemap-articles.xml
2025-01-15
https://example.com/sitemap-products.xml
2025-01-14
Meta robots
Checklist Indexation
[ ] Robots.txt présent et correct
[ ] Sitemap XML généré
[ ] Sitemap soumis à Google Search Console
[ ] Pages importantes indexables (pas de noindex)
[ ] Pages dupliquées en noindex
[ ] Canonical tags corrects
[ ] Pas de chaînes de redirections
[ ] Redirections 301 (pas 302) pour permanent
[ ] Erreurs 404 minimales
[ ] Pagination gérée (rel= »next »/ »prev » ou canonical)
[ ] Profondeur de clic < 3 depuis homepage
—
Architecture et URL
Structure URL optimale
BONNES URLs :
https://example.com/category/article-title
https://example.com/blog/seo-guide-2025
https://example.com/products/laptop-model-x
https://example.com/fr/blog/article-francais
MAUVAISES URLs :
https://example.com/index.php?id=123&cat=5
https://example.com/article?p=abc123
https://example.com/2025/01/15/article (dates inutiles)
https://example.com/catégorie/article-avec-accents
Règles URL
Courtes et descriptives
Mots-clés pertinents
Tirets pour séparer les mots (pas underscore)
Minuscules uniquement
Pas de caractères spéciaux
Structure logique et hiérarchique
HTTPS systématique
Trailing slash cohérent (avec ou sans, mais constant)
Redirections
.htaccess (Apache)
Redirection 301 (permanent)
Redirect 301 /old-page https://example.com/new-page
Redirection avec RewriteRule
RewriteEngine On
RewriteRule ^old-url$ /new-url [R=301,L]
Forcer HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.)$ https://%{HTTPHOST}/$1 [R=301,L]
Forcer www
RewriteCond %{HTTPHOST} ^example.com [NC]
RewriteRule ^(.)$ https://www.example.com/$1 [R=301,L]
Ou forcer non-www
RewriteCond %{HTTPHOST} ^www.example.com [NC]
RewriteRule ^(.)$ https://example.com/$1 [R=301,L]
Nginx
Redirection 301
location /old-page {
return 301 https://example.com/new-page;
}
Forcer HTTPS
server {
listen 80;
servername example.com www.example.com;
return 301 https://$servername$requesturi;
}
Forcer www
server {
listen 443 ssl;
servername example.com;
return 301 https://www.example.com$requesturi;
}
Pagination
Checklist Architecture
[ ] URLs courtes et descriptives
[ ] Structure hiérarchique logique
[ ] HTTPS sur tout le site
[ ] www ou non-www cohérent (choix et redirection)
[ ] Trailing slash cohérent
[ ] Pas de paramètres URL inutiles
[ ] Redirections 301 pour anciennes URLs
[ ] Pas de chaînes de redirections
[ ] Breadcrumbs implémentés
[ ] Navigation claire et cohérente
[ ] 404 personnalisée avec suggestions
—
Contenu et optimisation
Densité et placement des mots-clés
Mot-clé principal - Titre de la page
Titre avec mot-clé principal
https://example.com/category/mot-cle-principal
Guide complet du mot-clé principal
Introduction avec mot-clé principal naturellement intégré...
Section avec variation du mot-clé
Contenu avec mots-clés secondaires et synonymes...
Mot-clé principal en début de contenu...
Longueur optimale
Page d’accueil : 500-800 mots
Page catégorie : 300-500 mots
Article de blog : 1500-2500+ mots (selon sujet)
Page produit : 300-1000 mots
Page contact/légales : selon besoin
Structure de contenu SEO
Introduction engageante avec mot-clé principal dans les 100 premiers mots.
Premier titre de section (mot-clé secondaire)
Paragraphes de 3-5 lignes maximum pour lisibilité.
- Point 1
- Point 2
- Point 3
Sous-section détaillée
Contenu détaillé...
Légende descriptive de l'image
Conclusion
Résumé des points clés avec appel à l'action.
Optimisation images
seo-guide-2025.jpg ✓
img123.jpg ✗
alt="Guide SEO complet 2025 avec checklist technique" ✓
alt="Image" ✗
alt="" (OK si décoratif seulement)
Checklist Contenu
[ ] Mot-clé principal dans title, H1, URL, meta description
[ ] Mot-clé dans les 100 premiers mots
[ ] Variations et synonymes utilisés naturellement
[ ] Contenu unique (pas de duplicate)
[ ] Longueur appropriée au sujet
[ ] Structure avec H2/H3 logiques
[ ] Paragraphes courts (3-5 lignes)
[ ] Listes à puces pour scannabilité
[ ] Images optimisées (taille, format, alt text)
[ ] Liens internes pertinents
[ ] CTA clair
[ ] Contenu à jour (dates récentes)
[ ] Orthographe et grammaire correctes
[ ] Contenu apportant de la valeur
—
Liens internes et externes
Liens internes
Guide SEO technique 2025
Cliquez ici
En savoir plus
Liens externes
Site externe de confiance
Lien sponsorisé
Lien d'utilisateur
Lien non suivi
Attributs rel
| Attribut | Usage |
|———-|——-|
| rel="noopener" | Sécurité (target= »blank ») |
| rel="noreferrer" | Ne pas envoyer referrer |
| rel="nofollow" | Ne pas suivre (SEO) |
| rel="sponsored" | Lien commercial/payant |
| rel="ugc" | User generated content |
| rel="canonical" | URL canonique |
| rel="alternate" | Version alternative |
Checklist Liens
[ ] Liens internes vers pages importantes
[ ] Anchor text descriptif et varié
[ ] Liens externes vers sources fiables
[ ] rel= »noopener » sur liens externes (sécurité)
[ ] rel= »sponsored » sur liens payants
[ ] Pas de liens brisés (404)
[ ] Liens ouvrent dans nouvel onglet si approprié
[ ] Breadcrumbs implémentés
[ ] Pas d’excès de liens (dilution PageRank)
[ ] Liens contextuels et pertinents
—
Sécurité et HTTPS
Certificat SSL/TLS
Vérifier certificat
openssl sclient -connect example.com:443
Let's Encrypt (gratuit)
certbot --nginx -d example.com -d www.example.com
Headers de sécurité
.htaccess (Apache)
HSTS (HTTP Strict Transport Security)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
X-Content-Type-Options
Header set X-Content-Type-Options "nosniff"
X-Frame-Options
Header set X-Frame-Options "SAMEORIGIN"
X-XSS-Protection
Header set X-XSS-Protection "1; mode=block"
Referrer Policy
Header set Referrer-Policy "strict-origin-when-cross-origin"
Content Security Policy
Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';"
Nginx
HSTS
addheader Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
X-Content-Type-Options
addheader X-Content-Type-Options "nosniff" always;
X-Frame-Options
addheader X-Frame-Options "SAMEORIGIN" always;
X-XSS-Protection
addheader X-XSS-Protection "1; mode=block" always;
Referrer Policy
addheader Referrer-Policy "strict-origin-when-cross-origin" always;
Checklist Sécurité
[ ] HTTPS sur tout le site (certificat valide)
[ ] Redirection HTTP → HTTPS (301)
[ ] HSTS activé
[ ] Certificat SSL valide et à jour
[ ] Mixed content résolu (pas de http:// sur page https://)
[ ] Headers de sécurité configurés
[ ] Mises à jour système/CMS régulières
[ ] Passwords forts
[ ] Backups réguliers
[ ] Protection contre brute force
—
International et multilingue
Hreflang
Structures URL multilingues
Option 1 : Sous-répertoires (recommandé)
https://example.com/fr/
https://example.com/en/
https://example.com/es/
Option 2 : Sous-domaines
https://fr.example.com/
https://en.example.com/
https://es.example.com/
Option 3 : Domaines différents (ccTLD)
https://example.fr/
https://example.co.uk/
https://example.es/
Balise lang
Contenu en français
Quote in English
Google Search Console international
1. Ajouter toutes les versions linguistiques
Configurer ciblage géographique si ccTLD
Soumettre sitemaps pour chaque langue
Vérifier hreflang avec rapport dédié
Checklist International
[ ] Hreflang sur toutes pages traduites
[ ] Hreflang réciproque (bidirectionnel)
[ ] x-default défini pour langue par défaut
[ ] Attribut lang sur balise html
[ ] URLs cohérentes par langue
[ ] Contenu traduit (pas juste auto-traduit)
[ ] Sitemaps séparés par langue
[ ] Google Search Console configuré par version
[ ] Géotargeting approprié
[ ] Pas de redirection automatique forcée (UX)
—
Outils et monitoring
Google Search Console
À configurer :
Propriété vérifiée (DNS, fichier HTML, ou Google Analytics)
Sitemap soumis
Données structurées validées
Exploration testée (URL Inspection Tool)
Core Web Vitals monitorés
Couverture d’index vérifiée
À surveiller régulièrement :
Erreurs d’exploration
Erreurs de données structurées
Problèmes de sécurité
Actions manuelles
Core Web Vitals
Performances (clics, impressions, CTR)
Liens (internes/externes)
Google Analytics 4
Outils de test essentiels
| Outil | URL | Usage |
|——-|—–|——-|
| PageSpeed Insights | https://pagespeed.web.dev/ | Core Web Vitals |
| Mobile-Friendly Test | https://search.google.com/test/mobile-friendly | Test mobile |
| Rich Results Test | https://search.google.com/test/rich-results | Structured data |
| W3C Validator | https://validator.w3.org/ | HTML validity |
| Schema Markup Validator | https://validator.schema.org/ | Schema validation |
| Lighthouse | Chrome DevTools | Audit complet |
| Screaming Frog | https://www.screamingfrogseocrawler.com/ | Crawl technique |
| GTmetrix | https://gtmetrix.com/ | Performance |
| WebPageTest | https://www.webpagetest.org/ | Performance détaillée |
Monitoring continu
// Core Web Vitals monitoring (web-vitals library)
import {onCLS, onINP, onLCP} from 'web-vitals';
function sendToAnalytics({name, value, id}) {
gtag('event', name, {
eventcategory: 'Web Vitals',
value: Math.round(name === 'CLS' ? value 1000 : value),
eventlabel: id,
noninteraction: true,
});
}
onCLS(sendToAnalytics);
onINP(sendToAnalytics);
onLCP(sendToAnalytics);
Checklist Outils
[ ] Google Search Console configuré
[ ] Google Analytics 4 installé
[ ] Sitemaps soumis
[ ] Tests réguliers PageSpeed Insights
[ ] Monitoring Core Web Vitals
[ ] Crawl technique régulier (Screaming Frog)
[ ] Tracking positions mots-clés
[ ] Alertes configurées (GSC, Analytics)
[ ] Backlinks monitorés
[ ] Rapports SEO automatisés
—
Checklist SEO complète
Technique
[ ] HTML5 valide
[ ] HTTPS activé partout
[ ] Certificat SSL valide
[ ] Sitemap XML généré et soumis
[ ] Robots.txt configuré
[ ] Redirections 301 pour anciennes URLs
[ ] Canonical tags corrects
[ ] Structured data (JSON-LD)
[ ] Core Web Vitals optimisés (LCP, INP, CLS)
[ ] Mobile-friendly
[ ] Page speed optimale (< 3s)
[ ] Images optimisées
[ ] Lazy loading configuré
[ ] HTTP/2 ou HTTP/3
[ ] Compression Brotli/Gzip
[ ] CDN configuré
[ ] Cache browser optimisé
On-page
[ ] Title unique par page (50-60 car.)
[ ] Meta description unique (150-160 car.)
[ ] H1 unique avec mot-clé principal
[ ] Hiérarchie H2-H6 logique
[ ] URLs SEO-friendly
[ ] Alt text sur toutes images
[ ] Liens internes pertinents
[ ] Anchor text descriptifs
[ ] Contenu unique et de qualité
[ ] Mots-clés naturellement intégrés
[ ] Open Graph complet
[ ] Twitter Cards configurées
Contenu
[ ] Contenu original et utile
[ ] Longueur appropriée
[ ] Mots-clés bien placés
[ ] Paragraphes courts
[ ] Listes à puces
[ ] Images et vidéos
[ ] CTA clairs
[ ] Contenu à jour
[ ] Orthographe correcte
[ ] Liens vers sources fiables
Indexation
[ ] Pages importantes indexées
[ ] Pages dupliquées en noindex
[ ] Pas de contenu bloqué par robots.txt
[ ] Pas de chaînes de redirections
[ ] Profondeur de clic < 3
[ ] Pagination gérée
[ ] Erreurs 404 minimales
International (si applicable)
[ ] Hreflang configuré
[ ] Structure URL cohérente
[ ] Contenu traduit
[ ] Sitemaps par langue
[ ] GSC par version linguistique
Monitoring
[ ] Google Search Console actif
[ ] Google Analytics installé
[ ] Core Web Vitals suivis
[ ] Positions mots-clés trackées
[ ] Backlinks monitorés
[ ] Alertes configurées
—
Ressources 2025
Documentation officielle
Google Search Central : https://developers.google.com/search
Core Web Vitals : https://web.dev/vitals/
Schema.org : https://schema.org/
W3C Standards : https://www.w3.org/standards/
Tendances SEO 2025
Intelligence Artificielle et contenu
Search Generative Experience (SGE)
E-E-A-T (Experience, Expertise, Authoritativeness, Trust)
Recherche vocale et conversationnelle
Vidéo et contenu multimédia
Core Web Vitals évolution continue
INP remplace FID définitivement
Mises à jour Google importantes
Helpful Content Update
Product Reviews Update
Page Experience Update
Spam Updates
Core Updates (plusieurs par an)
—
Version : SEO Technique 2025
Dernière mise à jour : Décembre 2024
Ce guide couvre les aspects essentiels du SEO technique moderne avec un focus sur les Core Web Vitals, l’expérience utilisateur et les standards 2025.