# Audit SEO complet — socialex.pro

**Date** : 8 mai 2026
**Type d'entreprise** : Cabinet d'expertise juridique français premium (B2B), droit des sociétés et droit des marques. Anonymat strict : pas d'identité, pas de localisation, contact uniquement via `contact@socialex.pro`.
**SEO Health Score global** : **77 / 100**

| Catégorie | Pondération | Note | Pondéré |
|---|---|---|---|
| Technical SEO | 25 % | 78 | 19,5 |
| Content & E-E-A-T | 25 % | 72 | 18,0 |
| On-Page SEO | 20 % | 75 | 15,0 |
| Schema / JSON-LD | 10 % | 75 | 7,5 |
| Performance (CWV) | 10 % | 90 | 9,0 |
| Images | 5 % | 95 | 4,75 |
| AI Search Readiness | 5 % | 70 | 3,5 |
| **Total** | | | **77** |

---

## Top 5 issues critiques

1. **Pages légales 404** (mentions, RGPD, CGV, cookies) — **bloquant légal en France** sur un site juridique commercial. À régler avant ouverture publique.
2. **Title bug** : pages services bespoke affichent `Socialex | Socialex` en double (template metadata mal câblé).
3. **Schema Service sans `offers`** — manque le rich result Prix dans Google sur 5 pages bespoke. Énorme opportunité ratée vu que tous les prix sont en DB.
4. **E-E-A-T faible (31/100)** sur un site YMYL juridique. L'anonymat est défendable mais demande des proxys de confiance (Organization schema, page méthode, foundingDate, dossiers traités, etc.) — actuellement absents.
5. **HowTo schema déprécié** depuis Google sept. 2023 — présent sur 3 pages, plus de rich result possible. À retirer.

## Top 5 quick wins

1. **Fix `| Socialex | Socialex`** dans les titles (1 ligne dans le template metadata, gain SERP click-through immédiat).
2. **Ajouter `offers` aux schemas Service** (price + priceCurrency depuis `lib/services.ts` que tu as déjà). Rich result Prix dans Google, ~30 min de code.
3. **Ajouter canonical sur homepage + /contact** (1 ligne par page).
4. **Schema Organization global** avec `@id`, knowsAbout, contactPoint, dans `app/(public)/layout.tsx`. ~10 min.
5. **og:image** global (1200×630, image de marque sobre noir/or). ~15 min de design.

---

## 1. Technical SEO — 78/100

### ✅ OK
- HTTPS partout + HSTS (`max-age=31536000`)
- www → non-www en 301 propre
- robots.txt valide, AI bots autorisés explicitement, admin/auth en Disallow
- sitemap.xml accessible, 9 URLs publiques, format propre
- `/login`, `/socialexadmin` correctement protégés (noindex + 307 auth)
- JSON-LD riche sur pages bespoke
- Headers sécurité de base : X-Frame-Options, X-Content-Type-Options, Referrer-Policy
- Viewport mobile correct
- H1 unique, hiérarchie titres respectée
- Trailing slash en 308 cohérent
- SSR Next.js : contenu HTML lisible sans JS
- Préchargement intelligent (fonts woff2, hero image responsive, preconnect Google Fonts)

### ⚠️ Issues critiques
- Aucune

### 🟡 Issues majeures
- **Title `| Socialex | Socialex` dupliqué** sur pages bespoke — bug template metadata
- **Canonical absente** sur homepage + /contact
- **Aucun `og:image`** détecté → partages sociaux moches
- **Pas de Content-Security-Policy** (pas un facteur de ranking direct mais signal de qualité)
- **Favicon 47×44 px** (déjà dans TODO) → flou sur SERP mobile et iOS

### 🔵 Mineurs
- og:locale + twitter:card incomplets
- `Cache-Control: s-maxage=31536000` agressif (vérifier purge CF au deploy)
- Material Symbols depuis fonts.googleapis.com (gain marginal en self-hostant ou remplaçant les icônes critiques par SVG inline)

---

## 2. Content & E-E-A-T — 72/100

### ✅ Forces
- Pages bespoke d'**excellent niveau** : création (~1 800 mots, 7 FAQs, comparatif), dissolution (~2 100 mots, 8 FAQs, références juridiques précises art. 1844-5 C. civ., PFU 30 %), dépôt marque (~2 200 mots, 9 FAQs)
- Architecture SEO solide : JSON-LD systématique, pas de stuffing, hiérarchie propre, internal linking entre services connexes en bas de chaque page
- Ton premium maîtrisé, niveau B2B dirigeant respecté, pas d'em-dashes, vocabulaire juridique précis

### 🟡 Faiblesses majeures
1. **Page `/contact` thin content** (~50 mots) — pénalisable
2. **Page transfert de siège sous-développée** (~600 mots vs 1 800-2 200 sur les autres bespokes) — manque check-list documents, exemples chiffrés annonce légale, traitement Kbis
3. **E-E-A-T quasi inexistant (31/100)** :
   - Experience 4/20 : zéro case study, zéro retour client, pas de "X dossiers traités"
   - Expertise 10/25 : contenu accurate mais zéro signature ni schéma compensatoire
   - Authoritativeness 5/25 : aucune citation externe (Légifrance, INPI), aucun backlink visible
   - Trustworthiness 12/30 : email seul, pas de mentions légales/RGPD/CGV (bloquant), pas de SIREN
4. **Anonymat mal compensé** en SEO. YMYL juridique = très sensible aux signaux de confiance ; Google QRG sept. 2025 pénalise sévèrement
5. **Claims non substantiés** sur l'accueil ("4 jours", "100 % conformité", "plusieurs années d'expérience") — placeholders crédibles mais sans source

### Détail E-E-A-T
| Facteur | Note | Plafond |
|---|---|---|
| Experience | 4 | 20 |
| Expertise | 10 | 25 |
| Authoritativeness | 5 | 25 |
| Trustworthiness | 12 | 30 |
| **Total** | **31** | **100** |

### 💡 Recommandations
- Créer **mentions légales + RGPD + CGV** (bloquant légal). Inclure SIREN entité exploitante, "DPO contactable à contact@socialex.pro"
- Schéma `Organization` global avec `foundingDate`, `knowsAbout`, `hasCredential` ("juristes diplômés Master 2")
- Page `/methode` ou `/expertise` anonyme : "X juristes-formalistes, Y années d'expérience cumulées, Z dossiers traités/an"
- `dateModified` ISO sur tous les JSON-LD `Service` + footer "Page mise à jour le DD/MM/YYYY"
- Étoffer `/contact` à 500+ mots (FAQ contact, "comment se déroule un premier échange", "secret professionnel", délais)
- Étoffer `/transfert-de-siege-social` à 1 500+ mots
- Liens externes vers Légifrance / INPI sur les références juridiques (signal d'autorité)
- Encadré "En résumé" en haut des pages services (3 chiffres : prix / délai / livrable) → format préféré par les LLM pour citation

---

## 3. Schema / JSON-LD — 75/100

### ✅ En place et valides
- `LegalService` global injecté sur toutes les pages publiques (anonymat respecté : pas d'address, telephone, person)
- 4 pages bespoke avec quartet `BreadcrumbList + Service + FAQPage + HowTo` (sauf depot-comptes et transfert-siege qui n'ont pas HowTo)
- Toutes les URLs canoniques pointent sur `socialex.pro` (zéro résidu `socialex.fr`)

### 🟡 Erreurs / champs manquants
1. **HowTo deprecated** (Google sept. 2023) — présent sur 3 pages, plus de rich result. À retirer ou convertir en `ItemList` neutre
2. **Service sans `offers`** sur les 5 pages bespoke — gros manque rich result Prix (les prix sont déjà dans `lib/services.ts`)
3. **`provider` minimaliste** : juste `{name, url}`. Devrait référencer entité globale via `@id` pour lier les graphes
4. **Pas de `WebSite` schema** (utile pour SiteLinks Searchbox éventuel)
5. **Pas de `@id` canonique** ni réutilisation par référence — chaque page redéfinit partiellement LegalService
6. **Description LegalService oublie le droit des marques** (à élargir)

### 💡 Snippets prêts
**A. Enrichir LegalService global** (`app/(public)/layout.tsx` ou `components/JsonLd.tsx`) :
```json
{
  "@context": "https://schema.org",
  "@type": "LegalService",
  "@id": "https://socialex.pro/#organization",
  "name": "Socialex",
  "description": "Cabinet d'expertise juridique en droit des sociétés et droit des marques.",
  "url": "https://socialex.pro",
  "email": "contact@socialex.pro",
  "areaServed": { "@type": "Country", "name": "France" },
  "priceRange": "€€€",
  "knowsAbout": ["Droit des sociétés", "Droit des marques", "Création de société", "Dépôt de marque INPI"],
  "availableLanguage": "fr",
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "email": "contact@socialex.pro",
    "availableLanguage": "fr"
  }
}
```

**B. `offers` sur chaque Service** (exemple création-de-societe) :
```json
"offers": {
  "@type": "Offer",
  "price": "650",
  "priceCurrency": "EUR",
  "url": "https://socialex.pro/societes/creation-de-societe/formulaire",
  "availability": "https://schema.org/InStock"
}
```
À répliquer avec **295 / 800 / 250 / 340** sur depot-comptes / dissolution / transfert / depot-marque.

**C. Lier provider par référence** :
```json
"provider": { "@id": "https://socialex.pro/#organization" }
```

---

## 4. Sitemap — 95/100 (très bon)

### ✅ OK
- XML valide, namespace correct
- 100 % URLs en `https://socialex.pro` (pas de socialex.fr)
- 9 URLs HTTP 200 (zéro 404 ni redirect)
- Auth/admin correctement exclus
- Pages bespoke toutes présentes (5/5)
- Anciens URLs (philosophie, logos, secretariat-juridique) hors sitemap
- Référence `Sitemap:` correcte dans robots.txt

### ⚠️ Avertissements
- **lastmod identique partout** (`new Date()` à chaque rebuild) → invalide signal de fraîcheur, Google ignore les lastmod incohérents
- 11 modifications statutaires absentes (cohérent avec ton choix `published: false`, pas une erreur)

### 💡 Améliorations
- Utiliser `git log -1 --format=%cI` ou un champ `updatedAt` par service pour `lastmod` réel
- Retirer `priority` et `changefreq` (ignorés par Google depuis 2017)

---

## 5. Performance (Core Web Vitals) — 90/100

D'après les Lighthouse récents post-optimisation :

### Desktop
- **FCP 1,5 s** ✅
- **LCP 1,5 s** ✅ (était 4,2 s)
- **TBT 0 ms** ✅
- **CLS 0,017** ✅
- **Speed Index 1,5 s** ✅

### Mobile (simu Slow 4G + Moto G Power)
- **FCP 7,8 s** (mais réel 4G ≈ 2 s)
- **LCP 8,1 s** (mais réel 4G ≈ 2-3 s)
- **TBT 0 ms** ✅
- **CLS 0** ✅

### Optims déjà appliquées
- bureau.png 2,3 MB → WebP 137 KB (-94 %)
- Efficacité.png 1,8 MB → WebP 43 KB (-97 %)
- stylo.png 1,5 MB → WebP 18 KB (-99 %)
- Hero refactor en `<Image priority>`, sizes responsive
- Fonts Noto Serif/Inter via next/font, weights réduits
- Material Symbols variable axes locked (1,1 MB → ~150 KB)
- preconnect fonts.googleapis.com + fonts.gstatic.com
- Cache-Control 1 an + immutable sur statics

### Reste à faire
- **Cloudflare Cache Rule sur `/_next/static/*`** (tu l'as configurée selon les derniers échanges) → desktop 86 → 95+
- Inliner CSS critical (risqué avec Turbopack)

---

## 6. Images — 95/100

### ✅ Forces
- Tous les PNG lourds convertis en WebP + AVIF avec fallback
- Hero en `<Image priority>` Next.js → optimisation automatique AVIF/WebP/responsive
- `width`/`height` sur logo (CLS 0)
- Cache long sur images statiques

### 🔵 Mineurs
- `bureau.webp` à quality 70 (déjà ajusté) - acceptable
- Photos Unsplash externes sur certaines pages → dépendant CDN tiers (mais déjà optimisé)

---

## 7. AI Search Readiness — 70/100 (estimé)

### ✅ Bons signaux
- robots.txt explicitement Allow pour GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot
- FAQ markup structuré (encore extractable par les LLM même si plus de rich result Google)
- Pages bespoke avec réponses chiffrées et autonomes
- Schema LegalService défini

### ⚠️ Manques
- Pas de `llms.txt`
- Pas de `dateModified` sur JSON-LD (signal de fraîcheur faible pour LLM)
- Pas d'encadré "En résumé" en haut de page (format préféré par ChatGPT/Perplexity pour citation)
- Pas de tableau de prix consolidé scannable

### 💡 Recommandations
- Créer `app/llms.txt` avec brief Socialex + URLs des pages clés
- Ajouter `dateModified` ISO sur les schemas Service
- Créer page `/tarifs` agrégeant les forfaits en tableau scannable
- Encadré "En résumé" en haut de chaque page service (3 KPIs max : prix / délai / livrable)
