CMS WordPress découplé avec Next.js, ACF et architecture de composants réutilisables
Une entreprise avait besoin d'un site web marketing haute performance et optimisé pour le SEO, offrant la flexibilité d'édition de contenu de WordPress mais la vitesse et l'expérience développeur d'un frontend React moderne — sans les limitations des thèmes WordPress traditionnels.
Discutez de Votre Projet
Le Défi
Les sites WordPress traditionnels peinaient à répondre aux normes modernes de performance web et de SEO :
- Les thèmes WordPress monolithiques étaient lents, lourds et difficiles à maintenir
- Les éditeurs de contenu étaient contraints à des mises en page rigides sans flexibilité au niveau des composants
- Les pages PHP rendues côté serveur obtenaient de mauvais scores sur les Core Web Vitals (LCP, CLS, FID)
- Le SEO exigeait une gestion manuelle des balises meta, sans données structurées automatisées
- La réutilisation des modèles d'interface utilisateur (UI) entre les pages nécessitait la duplication du code de modèle, entraînant des divergences et des incohérences
- L'API REST de WordPress seule manquait de flexibilité pour modéliser des structures de contenu complexes et imbriquées
Notre Solution
Nous avons construit une architecture WordPress découplée + Next.js en utilisant Advanced Custom Fields (ACF) comme couche de modélisation de contenu flexible, un système de composants réutilisables sur le frontend et une optimisation SEO automatisée tout au long du processus.
Architecture
- CMS: WordPress (découplé) avec ACF Pro pour la modélisation de contenu structuré
- Couche API: WPGraphQL + WPGraphQL for ACF pour exposer du contenu typé via GraphQL
- Frontend: Next.js avec App Router, React Server Components, TypeScript
- Stylisation: Tailwind CSS pour une stylisation axée sur l'utilité, alignée sur le système de design
- SEO: API de métadonnées Next.js, données structurées JSON-LD, génération automatique de sitemap
- Hébergement: Vercel (frontend) + hébergement WordPress géré (CMS)
- Médias: Optimisation d'images Next.js avec la bibliothèque de médias WordPress comme source
Modélisation de contenu avec ACF
Champs de contenu flexible
Les champs de contenu flexible ACF permettent aux éditeurs de composer des pages à partir de blocs de contenu prédéfinis. Chaque bloc correspond directement à un composant React sur le frontend, couvrant des modèles courants tels que les sections d'en-tête, les grilles de fonctionnalités, les carrousels de témoignages, les CTA, les accordéons FAQ, les compteurs de statistiques, les mises en page image-texte, les intégrations vidéo, les tableaux de prix et les flux de blog.
Champs Répéteur & Groupe
- Champs répéteurs pour les listes (membres de l'équipe, éléments de portfolio, entrées de chronologie)
- Champs de groupe pour les données imbriquées structurées (blocs d'adresse, liens sociaux, surcharges SEO)
- Champs de relation pour lier des articles, des pages et des types de publication personnalisés
- Pages d'options pour les paramètres globaux (en-tête, pied de page, liens sociaux, couleurs de marque)
Architecture de composants réutilisables
Principes de conception des composants
Le frontend suit une architecture modulaire avec des couches distinctes :
- Composants de bloc — Un composant React par bloc de contenu flexible ACF
- Composants d'interface utilisateur (UI) primitifs — Éléments réutilisables comme les boutons, les cartes et les badges
- Composants de mise en page — En-tête, pied de page, navigation et conteneurs enveloppants
- Composants SEO — Générateurs de schémas et utilitaires de balises meta
Modèle de résolveur de blocs
Un résolveur central mappe les types de blocs ACF aux composants React, permettant aux éditeurs de composer des pages sans intervention de développeur :
- L'éditeur WordPress sélectionne les blocs depuis un menu déroulant et remplit les champs
- WPGraphQL expose la page sous forme de JSON structuré avec les types de blocs et les données des champs
- Next.js récupère les données de la page au moment de la construction (ISR) ou de la requête (SSR)
- Le résolveur de blocs itère sur le tableau de blocs et rend le composant React correspondant
- Chaque composant reçoit ses données de champ ACF comme des props typées
Optimisation SEO
SEO technique
- Balises meta dynamiques — Balises Title, description, Open Graph et Twitter Card générées par page à partir des données du CMS
- URL canoniques — Génération automatique de balises canoniques pour éviter le contenu dupliqué
- Génération de sitemap — Sitemap XML dynamique construit à partir des données de page/article WordPress au moment de la construction
- robots.txt — Génération programmatique avec des règles sensibles à l'environnement
- Données structurées — Schéma JSON-LD pour les types Organization, Article, FAQ, BreadcrumbList et Product
SEO de performance (Core Web Vitals)
- Génération statique (ISR) — Pages pré-rendues et revalidées lors d'un changement de contenu via webhook
- Optimisation d'images — Conversion automatique WebP/AVIF, chargement paresseux (lazy loading), srcset adaptatif
- Optimisation des polices — Chargement de polices personnalisées sans décalage de mise en page
- Séparation du code (Code Splitting) — Séparation automatique du code par route avec les React Server Components
- Mise en cache en périphérie (Edge Caching) — Réseau de périphérie global pour un TTFB inférieur à 100 ms
SEO de contenu
- Champs SEO par page — Surcharge du titre meta, de la description et de l'image OG via des champs personnalisés
- Fil d'Ariane (Breadcrumbs) — Navigation fil d'Ariane auto-générée avec balisage de schéma
- Liens internes — Les champs de relation permettent des suggestions de liens internes structurés
- Application du texte alternatif (Alt Text) — Texte alternatif requis sur tous les champs d'image
Flux de données de WordPress vers Next.js
- Changement de contenu — L'éditeur publie ou met à jour le contenu dans l'administration WordPress
- Déclencheur de Webhook — WordPress déclenche un webhook vers le point de terminaison de revalidation Next.js
- Revalidation ISR — Next.js ne régénère que les pages affectées
- Invalidation CDN — Les pages mises à jour sont servies depuis la périphérie quelques secondes après la publication
Fonctionnalités clés
- Constructeur de pages visuel — Les éditeurs composent des pages à partir de blocs ACF sans toucher au code
- API de contenu typée — WPGraphQL + ACF fournit un schéma GraphQL entièrement typé
- Bibliothèque de composants — Plus de 10 blocs réutilisables couvrant tous les modèles courants de pages marketing
- ISR + Webhooks — Les mises à jour de contenu sont reflétées sur le site en direct en quelques secondes
- Automatisation SEO — Données structurées, sitemaps et balises meta générées à partir des données du CMS
- Core Web Vitals — Images, polices et séparation du code optimisés pour les meilleurs scores Lighthouse
- Mode prévisualisation — Le bouton de prévisualisation WordPress affiche le contenu brouillon dans le frontend Next.js
- Prêt pour le multi-langue — Intégration ACF + WPML/Polylang pour le contenu internationalisé
Résultats
Stack Technologique
caseStudyDetail.more Études de Cas
Découvrez plus de nos implémentations techniques
Site web Strapi CMS + Next.js avec architecture SEO avancée
Une entreprise en pleine croissance avait besoin d'un site web marketing rapide et riche en contenu où son équipe marketing non technique pourrait gérer les pages, les articles de blog et les pages d'atterrissage de manière autonome — tout en s'assurant que le site se classerait de manière compétitive dans la recherche organique dès le premier jour.
Traitement de factures assisté par l'IA avec OCR et intégration QuickBooks
Une entreprise de taille moyenne, traitant des centaines de factures fournisseurs chaque mois, devait éliminer la saisie manuelle des données en extrayant automatiquement les données des factures à l'aide de l'IA/OCR et en les synchronisant directement dans QuickBooks pour la tenue de livres et le suivi des paiements.
PrĂŞt Ă Transformer Votre Entreprise ?
Discutons de la façon dont nous pouvons appliquer des solutions similaires à vos défis.