@lynxflow/seo-engine 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -339
- package/TUTORIEL_INTEGRATION_SITE.md +283 -0
- package/connectors/wordpress/lynxseo-connector.php +5 -5
- package/connectors/wordpress/lynxseo-connector.zip +0 -0
- package/dist/ad-intelligence-cro.d.ts +58 -0
- package/dist/ai-bots-log-analyzer.d.ts +36 -0
- package/dist/analytics-client.d.ts +48 -11
- package/dist/auth-key.d.ts +9 -0
- package/dist/brand-dna-calendar.d.ts +35 -0
- package/dist/copy-frameworks-master.d.ts +56 -0
- package/dist/cro-copywriting-engine.d.ts +46 -0
- package/dist/crosslink-scorer.d.ts +33 -0
- package/dist/embeddable-seo-widget.d.ts +12 -0
- package/dist/engine.d.ts +32 -1
- package/dist/engine.test.d.ts +1 -0
- package/dist/extended-schemas.d.ts +106 -0
- package/dist/geo-mesh-linking.d.ts +33 -0
- package/dist/index.d.ts +88 -0
- package/dist/index.js +4164 -130
- package/dist/index.mjs +4092 -100
- package/dist/instant-matrix-search.d.ts +19 -0
- package/dist/isr-cache-manager.d.ts +35 -0
- package/dist/knowledge-graph-linker.d.ts +29 -0
- package/dist/legal-disclaimers.d.ts +46 -0
- package/dist/llm-content-cleaner.d.ts +16 -0
- package/dist/llm-prompt.d.ts +13 -0
- package/dist/master-marketing-engine.d.ts +114 -0
- package/dist/matrix-engine.d.ts +201 -0
- package/dist/mcp-seo-server.d.ts +21 -0
- package/dist/ngram-density-analyzer.d.ts +35 -0
- package/dist/rank-math-parity.d.ts +58 -0
- package/dist/real-reviews-sync.d.ts +73 -0
- package/dist/rss-syndication-feed.d.ts +25 -0
- package/dist/schema-builder.d.ts +6 -0
- package/dist/seo-opportunities-decay.d.ts +54 -0
- package/dist/serp-history-alerts.d.ts +27 -0
- package/dist/slug-engine.d.ts +32 -0
- package/dist/social-ads-seo.d.ts +77 -0
- package/dist/social-growth-suite.d.ts +125 -0
- package/dist/social-trend-seo.d.ts +38 -0
- package/dist/social-video-seo.d.ts +62 -0
- package/dist/team-rbac.d.ts +17 -0
- package/dist/technical-rules-auditor.d.ts +50 -0
- package/dist/types.d.ts +4 -44
- package/dist/yoast-parity.d.ts +45 -0
- package/package.json +8 -5
- package/src/ad-intelligence-cro.ts +140 -0
- package/src/ai-bots-log-analyzer.ts +127 -0
- package/src/analytics-client.ts +222 -48
- package/src/auth-key.ts +60 -1
- package/src/brand-dna-calendar.ts +120 -0
- package/src/copy-frameworks-master.ts +89 -0
- package/src/cro-copywriting-engine.ts +105 -0
- package/src/crosslink-scorer.ts +101 -0
- package/src/embeddable-seo-widget.ts +57 -0
- package/src/engine.test.ts +136 -0
- package/src/engine.ts +229 -28
- package/src/extended-schemas.ts +279 -0
- package/src/geo-mesh-linking.ts +93 -0
- package/src/index.ts +89 -0
- package/src/instant-matrix-search.ts +48 -0
- package/src/isr-cache-manager.ts +78 -0
- package/src/knowledge-graph-linker.ts +81 -0
- package/src/legal-disclaimers.ts +407 -0
- package/src/llm-content-cleaner.ts +64 -0
- package/src/llm-prompt.ts +70 -0
- package/src/master-marketing-engine.ts +314 -0
- package/src/matrix-engine.ts +818 -0
- package/src/mcp-seo-server.ts +108 -0
- package/src/ngram-density-analyzer.ts +108 -0
- package/src/rank-math-parity.ts +235 -0
- package/src/real-reviews-sync.ts +207 -0
- package/src/rss-syndication-feed.ts +56 -0
- package/src/schema-builder.ts +71 -24
- package/src/seo-opportunities-decay.ts +154 -0
- package/src/serp-history-alerts.ts +75 -0
- package/src/slug-engine.ts +183 -0
- package/src/social-ads-seo.ts +211 -0
- package/src/social-growth-suite.ts +310 -0
- package/src/social-trend-seo.ts +103 -0
- package/src/social-video-seo.ts +100 -0
- package/src/team-rbac.ts +61 -0
- package/src/technical-rules-auditor.ts +171 -0
- package/src/types.ts +22 -47
- package/src/yoast-parity.ts +161 -0
- package/tsconfig.json +2 -1
package/README.md
CHANGED
|
@@ -1,392 +1,137 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @lynxflow/seo-engine
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
High-Performance Programmatic SEO & Structured Data Engine for Modern Web Applications.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[](https://www.typescriptlang.org/)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](package.json)
|
|
6
8
|
|
|
7
9
|
---
|
|
8
10
|
|
|
9
|
-
##
|
|
10
|
-
1. [🌟 Présentation Générale](#1--présentation-générale)
|
|
11
|
-
2. [🔑 L'API Key Better Auth, Sécurité & Quotas](#2--lapi-key-better-auth-sécurité--quotas)
|
|
12
|
-
3. [🏛️ Les 8 Matrices Programmatiques & Multiplicateurs](#3--les-8-matrices-programmatiques--multiplicateurs)
|
|
13
|
-
4. [🚀 Tutoriel d'Intégration Pas-à-Pas (Next.js 15/16 & React 19)](#4--tutoriel-dintégration-pas-à-pas-nextjs-1516--react-19)
|
|
14
|
-
5. [🔌 Intégration sur Autres Frameworks (WordPress, Shopify, Cloudflare, Laravel, Astro)](#5--intégration-sur-autres-frameworks)
|
|
15
|
-
6. [🧰 Les 7 Modules Embarqués du SDK (Analytics, SERP, Backlinks, IA, IndexNow)](#6--les-7-modules-embarqués-du-sdk)
|
|
16
|
-
7. [🌍 Internationalisation & Zéro Contenu Dupliqué (10 Langues & Hreflang)](#7--internationalisation--zéro-contenu-dupliqué)
|
|
17
|
-
8. [📘 Référence Complète des Types TypeScript](#8--référence-complète-des-types-typescript)
|
|
11
|
+
## Overview
|
|
18
12
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
## 1. 🌟 Présentation Générale
|
|
13
|
+
`@lynxflow/seo-engine` is an enterprise developer SDK providing in-memory programmatic SEO matrix generation, Google-compliant Schema.org structured data, and sub-millisecond URL resolution.
|
|
22
14
|
|
|
23
|
-
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
15
|
+
* **10 Canonical Root Pillars & 50+ Specialized Sub-Matrices:** Scales across industries, regulatory frameworks, role KPIs, multi-format templates, integration ecosystems, and ROI tools.
|
|
16
|
+
* **Sub-Millisecond In-Memory Execution (< 0.05ms):** Resolves millions of programmatic routes with zero database query overhead.
|
|
17
|
+
* **Multilingual Slug Normalization:** Automated URL cleansing with stop-word removal across 10+ languages (EN, DE, ES, FR, IT, PT, NL, RU, SV, PL).
|
|
18
|
+
* **50+ Schema.org Rich Structured Data Types:** Google-compliant JSON-LD generation for `SoftwareApplication`, `LocalBusiness` subtypes, `HowTo`, `FAQPage`, `BreadcrumbList`, and `Organization`.
|
|
19
|
+
* **Multi-Framework Support:** Seamless operation on Next.js 15/16 (App & Pages Router), Astro 5, Cloudflare Workers/Pages, Bun, Remix, and Node.js.
|
|
28
20
|
|
|
29
21
|
---
|
|
30
22
|
|
|
31
|
-
##
|
|
23
|
+
## Installation
|
|
32
24
|
|
|
33
|
-
### Étape 1 : Obtenir votre Clé d'API
|
|
34
|
-
Rendez-vous dans votre cockpit LynxFlow dans **Paramètres ➔ Clés d'API & Sécurité** et générez votre clé (`ba_key_...` ou `lynx_api_...`).
|
|
35
|
-
|
|
36
|
-
### Étape 2 : Configuration dans votre fichier `.env` ou `.env.local`
|
|
37
25
|
```bash
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
#
|
|
42
|
-
|
|
26
|
+
npm install @lynxflow/seo-engine
|
|
27
|
+
# or
|
|
28
|
+
pnpm add @lynxflow/seo-engine
|
|
29
|
+
# or
|
|
30
|
+
bun add @lynxflow/seo-engine
|
|
43
31
|
```
|
|
44
32
|
|
|
45
|
-
### Grille des Forfaits & Règles de Sécurité :
|
|
46
|
-
|
|
47
|
-
| Forfait (Tier) | Préfixe de Clé | Quota de Pages Uniques | Nombre de Domaines Autorisés | Budget Crédits IA / mois |
|
|
48
|
-
|---|---|---|---|---|
|
|
49
|
-
| **Starter** | `ba_test_*` ou `ba_key_starter_*` | **50 000 pages uniques** | **1 seul domaine** (Verrouillage Monosite) | 1 000 crédits ($10) |
|
|
50
|
-
| **Growth** | `ba_key_*` ou `ba_key_growth_*` | **500 000 pages uniques** | **Jusqu'à 3 domaines** | 10 000 crédits ($100) |
|
|
51
|
-
| **Enterprise** | `ba_admin_*` ou `lynx_enterprise_*` | **Illimité (5 000 000+)** | **Domaines illimités** | 100 000 crédits ($1 000) |
|
|
52
|
-
|
|
53
|
-
### 🧠 Comment fonctionne la Comptabilité des Pages (URLs Uniques vs Hits) ?
|
|
54
|
-
* **Une Page = Une URL Unique :** Si vous avez 500 villes pour 2 services, votre catalogue contient **1 000 pages uniques**.
|
|
55
|
-
* **Trafic / Visites Illimité & Gratuit :** Si 100 000 visiteurs visitent `/solutions/crm/paris`, cela compte pour **1 seule page unique** dans votre quota, pas 100 000 !
|
|
56
|
-
|
|
57
33
|
---
|
|
58
34
|
|
|
59
|
-
##
|
|
35
|
+
## Core Matrix Architecture
|
|
60
36
|
|
|
61
|
-
|
|
37
|
+
The SDK structures programmatic content across **10 canonical root pillars** expanding into **50+ specialized sub-matrices**:
|
|
62
38
|
|
|
63
39
|
```
|
|
64
|
-
|
|
65
|
-
│
|
|
66
|
-
|
|
67
|
-
│
|
|
68
|
-
│
|
|
69
|
-
│
|
|
70
|
-
│
|
|
71
|
-
│
|
|
72
|
-
│
|
|
73
|
-
│
|
|
74
|
-
│
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
### 🌟 Le Lien Unique Ultra-Combiné (8 Slugs en 1 Seule URL) :
|
|
79
|
-
Si vous souhaitez cibler une requête ultra-précise combinant tous les critères dans une seule URL :
|
|
80
|
-
```
|
|
81
|
-
https://mon-entreprise.com/solutions/crm-pipeline/avocats/hubspot/gmail/directeur-commercial/paris/simulateur-roi
|
|
40
|
+
┌──────────────────────────────────────┬────────────────────────┬────────────────────────────────────────────────────────┐
|
|
41
|
+
│ CANONICAL ROOT PILLAR │ SPECIALIZED DIMENSIONS │ HIGH-INTENT EXAMPLES │
|
|
42
|
+
├──────────────────────────────────────┼────────────────────────┼────────────────────────────────────────────────────────┤
|
|
43
|
+
│ 👥 /for/{target} │ 12 Sub-Matrices │ Sector × Regulatory Compliance, Role × Daily KPIs │
|
|
44
|
+
│ 🔌 /integrations/{app} │ 10 Sub-Matrices │ App Connector × Real-Time Webhook, Bi-Directional Sync │
|
|
45
|
+
│ 📑 /templates/{slug} │ 8 Sub-Matrices │ Subject × Format (Excel, Notion, Google Sheets, PDF) │
|
|
46
|
+
│ 🎯 /use-cases/{useCase} │ 8 Sub-Matrices │ Operational Pain Point × Step-by-Step Playbook │
|
|
47
|
+
│ 🧮 /tools/{calculator} │ 6 Sub-Matrices │ Hours Saved Estimator, Revenue Uplift Simulator │
|
|
48
|
+
│ 📚 /glossary/{term} │ 6 Sub-Matrices │ Financial Metrics (MRR/LTV), Technical Protocols (API) │
|
|
49
|
+
│ 🥊 /vs/{competitor} │ Optional / Modular │ Architectural Comparison & Differences │
|
|
50
|
+
│ 🔄 /alternatives/{competitor} │ Optional / Modular │ Clean Canonical Migration Guides │
|
|
51
|
+
│ 💰 /pricing/{competitor} │ Optional / Modular │ Transparent Plan Breakdown & Verified Disclaimers │
|
|
52
|
+
│ 📍 /solutions/{service}/{city} │ Local Geo Matrix │ Tiered Indexing (Crawl Budget) & Geodesic Mesh Links │
|
|
53
|
+
└──────────────────────────────────────┴────────────────────────┴────────────────────────────────────────────────────────┘
|
|
82
54
|
```
|
|
83
55
|
|
|
84
56
|
---
|
|
85
57
|
|
|
86
|
-
##
|
|
58
|
+
## Quickstart
|
|
87
59
|
|
|
88
|
-
###
|
|
89
|
-
```bash
|
|
90
|
-
npm install @lynxflow/seo-engine
|
|
91
|
-
# ou
|
|
92
|
-
bun add @lynxflow/seo-engine
|
|
93
|
-
```
|
|
60
|
+
### 1. Initialize Engine
|
|
94
61
|
|
|
95
|
-
### Étape 2 : Initialisation dans `lib/seo.ts`
|
|
96
62
|
```typescript
|
|
97
|
-
|
|
98
|
-
import { createLynxSeoEngine } from "@lynxflow/seo-engine";
|
|
99
|
-
|
|
100
|
-
export const seoEngine = createLynxSeoEngine({
|
|
101
|
-
apiKey: process.env.LYNXFLOW_API_KEY!,
|
|
102
|
-
domain: process.env.NEXT_PUBLIC_SITE_URL || "https://mon-entreprise.com",
|
|
103
|
-
brandName: "Acme Corp",
|
|
104
|
-
defaultLocale: "fr",
|
|
105
|
-
supportedLocales: ["fr", "en", "es", "pt", "de", "ar", "ja", "zh", "ko", "hi", "id"],
|
|
106
|
-
services: [
|
|
107
|
-
{
|
|
108
|
-
slug: "crm-pipeline",
|
|
109
|
-
name: "CRM Pipeline Commercial",
|
|
110
|
-
pricePerMonth: 49,
|
|
111
|
-
category: "Ventes & CRM",
|
|
112
|
-
features: ["Kanban interactif", "Relances automatiques IA 24/7", "WhatsApp Sync"],
|
|
113
|
-
faqs: [
|
|
114
|
-
{ question: "Puis-je importer mes contacts existants ?", answer: "Oui, l'import CSV et Excel se fait en 1 clic." },
|
|
115
|
-
{ question: "Le support technique est-il inclus ?", answer: "Oui, support prioritaire 24/7 par chat et email." }
|
|
116
|
-
]
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
slug: "standard-vocal-ia",
|
|
120
|
-
name: "Standard Vocal Téléphonique IA",
|
|
121
|
-
pricePerMonth: 79,
|
|
122
|
-
category: "Téléphonie IA",
|
|
123
|
-
features: ["Décrochage 0 seconde 24/7", "Qualification automatique des prospects"]
|
|
124
|
-
}
|
|
125
|
-
]
|
|
126
|
-
});
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Étape 3 : Générateur d'Images Réseaux Sociaux Dynamiques (`app/api/og/route.tsx`)
|
|
130
|
-
```tsx
|
|
131
|
-
// app/api/og/route.tsx
|
|
132
|
-
import { ImageResponse } from "next/og";
|
|
133
|
-
import type { NextRequest } from "next/server";
|
|
134
|
-
|
|
135
|
-
export const runtime = "edge";
|
|
136
|
-
|
|
137
|
-
export async function GET(request: NextRequest) {
|
|
138
|
-
const { searchParams } = new URL(request.url);
|
|
139
|
-
const title = searchParams.get("title") || "Solution SaaS & IA";
|
|
140
|
-
const brand = searchParams.get("brand") || "LynxFlow";
|
|
141
|
-
const service = searchParams.get("service") || "Plateforme B2B";
|
|
142
|
-
|
|
143
|
-
return new ImageResponse(
|
|
144
|
-
(
|
|
145
|
-
<div style={{ height: "100%", width: "100%", display: "flex", flexDirection: "column", justifyContent: "space-between", backgroundColor: "#030712", padding: "60px 80px", fontFamily: "sans-serif" }}>
|
|
146
|
-
<div style={{ display: "flex", alignItems: "center", gap: "16px" }}>
|
|
147
|
-
<div style={{ background: "#2563eb", color: "#fff", padding: "8px 20px", borderRadius: "9999px", fontSize: 24, fontWeight: 700 }}>{brand}</div>
|
|
148
|
-
<div style={{ color: "#94a3b8", fontSize: 24 }}>• {service}</div>
|
|
149
|
-
</div>
|
|
150
|
-
<div style={{ color: "#ffffff", fontSize: 54, fontWeight: 900, lineHeight: 1.15 }}>{title}</div>
|
|
151
|
-
<div style={{ display: "flex", gap: "16px", color: "#e2e8f0", fontSize: 22 }}>
|
|
152
|
-
<span>⭐ 4.9/5 (1 280 avis vérifiés)</span>
|
|
153
|
-
<span>•</span>
|
|
154
|
-
<span>Mise en service immédiate</span>
|
|
155
|
-
</div>
|
|
156
|
-
</div>
|
|
157
|
-
),
|
|
158
|
-
{ width: 1200, height: 630 }
|
|
159
|
-
);
|
|
160
|
-
}
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### Étape 4 : La Route Catch-All Universelle (`app/[...slug]/page.tsx`)
|
|
164
|
-
```tsx
|
|
165
|
-
// app/[...slug]/page.tsx
|
|
166
|
-
import { seoEngine } from "@/lib/seo";
|
|
167
|
-
import { notFound } from "next/navigation";
|
|
168
|
-
import type { Metadata } from "next";
|
|
169
|
-
|
|
170
|
-
interface PageProps {
|
|
171
|
-
params: Promise<{ slug: string[] }>;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// 1. Métadonnées SEO, Balises Hreflang et Image Sociale
|
|
175
|
-
export async function generateMetadata({ params }: PageProps): Promise<Metadata> {
|
|
176
|
-
const { slug } = await params;
|
|
177
|
-
const path = "/" + (slug || []).join("/");
|
|
178
|
-
const page = seoEngine.resolve(path);
|
|
179
|
-
|
|
180
|
-
if (!page) return {};
|
|
181
|
-
|
|
182
|
-
return {
|
|
183
|
-
title: page.title,
|
|
184
|
-
description: page.description,
|
|
185
|
-
alternates: {
|
|
186
|
-
canonical: page.url,
|
|
187
|
-
languages: page.hreflangs?.reduce((acc, h) => ({ ...acc, [h.lang]: h.url }), {})
|
|
188
|
-
},
|
|
189
|
-
openGraph: {
|
|
190
|
-
title: page.title,
|
|
191
|
-
description: page.description,
|
|
192
|
-
images: [{ url: page.meta?.openGraphImageUrl || `${page.url}/api/og` }]
|
|
193
|
-
}
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// 2. Rendu Server Component Ultra-Rapide (< 0.05ms)
|
|
198
|
-
export default async function UniversalCatchAllPage({ params }: PageProps) {
|
|
199
|
-
const { slug } = await params;
|
|
200
|
-
const path = "/" + (slug || []).join("/");
|
|
201
|
-
const page = seoEngine.resolve(path);
|
|
202
|
-
|
|
203
|
-
if (!page) notFound();
|
|
204
|
-
|
|
205
|
-
// Enregistrer la visite pour les analytics et la détection de bots IA
|
|
206
|
-
await seoEngine.analytics.trackPageView({ path });
|
|
207
|
-
|
|
208
|
-
return (
|
|
209
|
-
<main className="max-w-4xl mx-auto py-12 px-6">
|
|
210
|
-
{/* 🌟 Graphe Schema.org 4.9★ (Product + FAQPage + Speakable) */}
|
|
211
|
-
<script
|
|
212
|
-
type="application/ld+json"
|
|
213
|
-
dangerouslySetInnerHTML={{ __html: JSON.stringify(page.jsonLd) }}
|
|
214
|
-
/>
|
|
215
|
-
|
|
216
|
-
<h1 className="text-4xl font-black text-gray-900 tracking-tight">{page.h1}</h1>
|
|
217
|
-
<p className="mt-4 text-lg text-gray-600 leading-relaxed">{page.description}</p>
|
|
218
|
-
|
|
219
|
-
{/* 🤖 Bloc AEO de Réponse Directe pour ChatGPT / Perplexity */}
|
|
220
|
-
<div className="my-8 rounded-2xl bg-blue-50 border-l-4 border-blue-600 p-6">
|
|
221
|
-
<h3 className="text-xs font-bold uppercase tracking-wider text-blue-900">En Résumé (Réponse Directe IA) :</h3>
|
|
222
|
-
<p className="mt-2 text-base text-blue-950 font-medium leading-relaxed">{page.directAnswer}</p>
|
|
223
|
-
</div>
|
|
224
|
-
|
|
225
|
-
{/* ❓ Section FAQ Interactive */}
|
|
226
|
-
<section className="mt-12">
|
|
227
|
-
<h2 className="text-2xl font-bold text-gray-900">Questions Fréquentes</h2>
|
|
228
|
-
<div className="mt-6 space-y-4">
|
|
229
|
-
{page.faqs.map((faq, idx) => (
|
|
230
|
-
<details key={idx} className="rounded-xl border border-gray-200 p-5 bg-white shadow-xs">
|
|
231
|
-
<summary className="cursor-pointer font-semibold text-gray-900">{faq.question}</summary>
|
|
232
|
-
<p className="mt-3 text-gray-700 leading-relaxed">{faq.answer}</p>
|
|
233
|
-
</details>
|
|
234
|
-
))}
|
|
235
|
-
</div>
|
|
236
|
-
</section>
|
|
237
|
-
</main>
|
|
238
|
-
);
|
|
239
|
-
}
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
## 5. 🔌 Intégration sur Autres Frameworks
|
|
245
|
-
|
|
246
|
-
### WordPress (Plugin 100% Autonome)
|
|
247
|
-
1. Téléchargez l'archive [`packages/lynx-seo-engine/connectors/wordpress/lynxseo-connector.zip`](file:///Users/mahjoubhamid/Documents/01-projet_lynxflow/packages/lynx-seo-engine/connectors/wordpress/lynxseo-connector.zip).
|
|
248
|
-
2. Téléversez-la dans vos extensions WordPress (`wp-admin ➔ Extensions ➔ Ajouter`).
|
|
249
|
-
3. Connectez-vous en 1 clic via Better Auth ou renseignez votre `LYNXFLOW_API_KEY`.
|
|
250
|
-
4. Vos 8 matrices et votre sitemap dynamique `/sitemap-solutions.xml` sont immédiatement actifs avec **0% de charge sur votre base MySQL**.
|
|
63
|
+
import { PseoMatrixEngine } from "@lynxflow/seo-engine";
|
|
251
64
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
// routes/web.php
|
|
258
|
-
Route::get('/{any}', [LynxSeoController::class, 'resolve'])->where('any', '.*');
|
|
65
|
+
export const matrixEngine = new PseoMatrixEngine({
|
|
66
|
+
companyName: "Acme Cloud",
|
|
67
|
+
language: "en", // "en" default, supports "fr", "de", "es", "it", "pt", etc.
|
|
68
|
+
correctionsEmail: "compliance@acme.com",
|
|
69
|
+
});
|
|
259
70
|
```
|
|
260
71
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
## 6. 🧰 Les 7 Modules Embarqués du SDK
|
|
72
|
+
### 2. Resolve Programmatic Pages
|
|
264
73
|
|
|
265
|
-
Vous pouvez utiliser n'importe quel module du SDK de manière autonome dans votre propre code :
|
|
266
|
-
|
|
267
|
-
### 1. 📊 `engine.analytics` : Trafic Web & Détection des Robots IA
|
|
268
74
|
```typescript
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
75
|
+
const pages = matrixEngine.generateAllMatrices("https://example.com", {
|
|
76
|
+
services: [
|
|
77
|
+
{ slug: "crm-pipeline", name: "Sales CRM", category: "Sales", keyFeatures: ["Kanban"], description: "CRM" }
|
|
78
|
+
],
|
|
79
|
+
targets: [
|
|
80
|
+
{ slug: "law-firms", name: "Law Firms", type: "industry", painPoints: ["Billing"], benefits: ["Security"] }
|
|
81
|
+
],
|
|
82
|
+
integrations: [
|
|
83
|
+
{ slug: "slack", name: "Slack", category: "Communication", syncFeatures: ["Alerts"] }
|
|
84
|
+
],
|
|
85
|
+
templates: [
|
|
86
|
+
{ slug: "pipeline-excel", title: "Sales Pipeline", topic: "Sales", format: "excel", benefits: ["Free"] }
|
|
87
|
+
],
|
|
88
|
+
glossaryTerms: [
|
|
89
|
+
{ slug: "mrr", term: "MRR", shortDefinition: "Monthly Recurring Revenue" }
|
|
90
|
+
]
|
|
91
|
+
}, { brandName: "Acme" });
|
|
274
92
|
|
|
275
|
-
//
|
|
276
|
-
|
|
277
|
-
console.log("Visiteurs Uniques :", stats.uniqueVisitors);
|
|
278
|
-
console.log("Robots IA détectés :", stats.aiBotVisits); // ChatGPT, Perplexity, Googlebot
|
|
93
|
+
console.log(pages[0].urlPath); // "/for/law-firms"
|
|
94
|
+
console.log(pages[0].schemaGraph); // Injected Schema.org JSON-LD graph
|
|
279
95
|
```
|
|
280
96
|
|
|
281
|
-
###
|
|
282
|
-
```typescript
|
|
283
|
-
const ranking = await seoEngine.serp.trackKeyword("crm pipeline commercial", "FR");
|
|
284
|
-
console.log("Position Google :", ranking.position);
|
|
285
|
-
console.log("Volume Mensuel :", ranking.searchVolume);
|
|
286
|
-
console.log("Présence IA Overview :", ranking.hasAiOverview);
|
|
287
|
-
```
|
|
97
|
+
### 3. URL Slug Cleansing (6 Golden Rules)
|
|
288
98
|
|
|
289
|
-
### 3. 🔗 `engine.backlinks` : Suivi des Liens Entrants & Domain Authority
|
|
290
99
|
```typescript
|
|
291
|
-
|
|
292
|
-
console.log("Domain Authority (DA) :", backlinks.domainAuthority);
|
|
293
|
-
console.log("Total Backlinks :", backlinks.totalBacklinks);
|
|
294
|
-
```
|
|
100
|
+
import { cleanSeoSlug, validateSeoSlug } from "@lynxflow/seo-engine";
|
|
295
101
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
const article = await seoEngine.ai.generateArticle({
|
|
299
|
-
topic: "Automatisation du CRM pour Avocats",
|
|
300
|
-
targetKeywords: ["crm avocats", "logiciel cabinet d'avocat"],
|
|
301
|
-
wordCount: 1500
|
|
302
|
-
});
|
|
102
|
+
const slug = cleanSeoSlug("The best software for managing client invoices in 2026", { language: "en" });
|
|
103
|
+
console.log(slug); // "best-software-managing-client-invoices"
|
|
303
104
|
|
|
304
|
-
|
|
305
|
-
console.log(
|
|
105
|
+
const { isValid, errors } = validateSeoSlug(slug);
|
|
106
|
+
console.log(isValid); // true
|
|
306
107
|
```
|
|
307
108
|
|
|
308
|
-
|
|
309
|
-
```typescript
|
|
310
|
-
await seoEngine.indexNow.submitUrls([
|
|
311
|
-
"https://mon-entreprise.com/solutions/crm-pipeline/paris",
|
|
312
|
-
"https://mon-entreprise.com/solutions/crm-pipeline/lyon"
|
|
313
|
-
]);
|
|
314
|
-
```
|
|
109
|
+
---
|
|
315
110
|
|
|
316
|
-
|
|
317
|
-
```typescript
|
|
318
|
-
const audit = seoEngine.auditor.inspectMeta({
|
|
319
|
-
title: "CRM Ventes pour PME | Acme Corp",
|
|
320
|
-
description: "Accélérez vos ventes grâce à notre CRM automatisé. Essai gratuit.",
|
|
321
|
-
h1: "Le CRM pensé pour vos commerciaux",
|
|
322
|
-
directAnswer: "Acme Corp propose le meilleur CRM automatisé pour PME dès 49€/mois."
|
|
323
|
-
});
|
|
111
|
+
## AI Agents & LLM Prompt Integration
|
|
324
112
|
|
|
325
|
-
|
|
326
|
-
```
|
|
113
|
+
Extract the full internal operational prompt to instruct autonomous AI coding agents (Claude, Cursor, Copilot, ChatGPT, Antigravity) without revealing proprietary logic:
|
|
327
114
|
|
|
328
|
-
### 7. 🌟 `engine.schema` : Constructeur de Graphe Schema.org 4.9★
|
|
329
115
|
```typescript
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
price: 49
|
|
335
|
-
});
|
|
116
|
+
import { getSeoAgentPrompt } from "@lynxflow/seo-engine";
|
|
117
|
+
|
|
118
|
+
const prompt = getSeoAgentPrompt({ brandName: "Acme", domain: "https://example.com" });
|
|
119
|
+
// Pass this prompt to your AI coding agent or copilot
|
|
336
120
|
```
|
|
337
121
|
|
|
338
122
|
---
|
|
339
123
|
|
|
340
|
-
##
|
|
124
|
+
## TypeScript API Reference
|
|
341
125
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
*
|
|
345
|
-
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
* 🇩🇪 **Allemand (`de`) :** `/de/solutions/crm-pipeline/berlin`
|
|
349
|
-
* 🇸🇦 **Arabe (`ar` RTL) :** `/ar/solutions/crm-pipeline/riyadh`
|
|
350
|
-
* 🇯🇵 **Japonais (`ja`) :** `/ja/solutions/crm-pipeline/tokyo`
|
|
351
|
-
* 🇨🇳 **Chinois (`zh`) :** `/zh/solutions/crm-pipeline/shanghai`
|
|
352
|
-
* 🇰🇷 **Coréen (`ko`) :** `/ko/solutions/crm-pipeline/seoul`
|
|
353
|
-
* 🇮🇳 **Hindi (`hi`) :** `/hi/solutions/crm-pipeline/mumbai`
|
|
126
|
+
* **`PseoMatrixEngine`**: Core programmatic matrix compiler across all 10 root pillars and 50+ sub-matrices.
|
|
127
|
+
* **`cleanSeoSlug(text, options)`**: Multilingual slug normalizer with stop-word removal for 10+ languages.
|
|
128
|
+
* **`validateSeoSlug(slug)`**: Strict slug validator.
|
|
129
|
+
* **`ExtendedSchemaGraphBuilder`**: 50+ Google Rich Result Schema.org JSON-LD generator.
|
|
130
|
+
* **`LegalDisclaimerEngine`**: Verified compliance notice manager with staleness guards (>90 days).
|
|
131
|
+
* **`getSeoAgentPrompt(context)`**: Built-in LLM operational prompt.
|
|
354
132
|
|
|
355
133
|
---
|
|
356
134
|
|
|
357
|
-
##
|
|
358
|
-
|
|
359
|
-
```typescript
|
|
360
|
-
import {
|
|
361
|
-
createLynxSeoEngine,
|
|
362
|
-
LynxSeoEngine,
|
|
363
|
-
ApiKeyGuardian,
|
|
364
|
-
LagoTokenMeter,
|
|
365
|
-
HyperswitchGateway,
|
|
366
|
-
IndexNowClient,
|
|
367
|
-
SiteAuditor,
|
|
368
|
-
SchemaGraphBuilder,
|
|
369
|
-
LynxAnalyticsClient,
|
|
370
|
-
SerpClient,
|
|
371
|
-
BacklinksClient,
|
|
372
|
-
AiCopilotClient,
|
|
373
|
-
type LynxSeoConfig,
|
|
374
|
-
type LynxResolvedPage,
|
|
375
|
-
type LynxServiceDefinition,
|
|
376
|
-
type PseoIndustry,
|
|
377
|
-
type PseoCompetitor,
|
|
378
|
-
type PseoIntegration,
|
|
379
|
-
type PseoUseCase,
|
|
380
|
-
type PseoPersona,
|
|
381
|
-
type SeoAuditReport,
|
|
382
|
-
type AnalyticsSummaryReport,
|
|
383
|
-
type KeywordRankingItem,
|
|
384
|
-
type BacklinkProfileSummary,
|
|
385
|
-
type GeneratedArticleResult
|
|
386
|
-
} from "@lynxflow/seo-engine";
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
---
|
|
135
|
+
## License
|
|
390
136
|
|
|
391
|
-
|
|
392
|
-
Propriétaire © LynxFlow Technologies. Tous droits réservés.
|
|
137
|
+
Proprietary — LynxFlow Technologies. All rights reserved.
|