====== 🔍 Outil d'Audit GEO - Documentation ======
Analyseur en ligne pour évaluer l'optimisation GEO (Generative Engine Optimization) d'une page web.
* [[https://audit.ticoet.me/|Tester l'outil en ligne dans une version en constante amélioration]]
* [[https://audit.ticoet.me/index-2.html|Version stable de l'outil]]
* [[https://github.com/erwantanguy/Audit-Online|Utilisez le sur vos propres serveurs en téléchargeant les fichiers sur GitHub]]
===== Installation =====
==== Structure des fichiers ====
Créez un dossier sur votre serveur avec cette structure :
geo-audit/
├── index.html (Interface utilisateur)
├── audit.php (Backend d'analyse)
├── export-pdf.js (Export PDF professionnel)
├── scraping-config.json (Configuration scraping - optionnel)
└── README.md (Documentation)
==== Prérequis serveur ====
* **PHP** : 7.4 ou supérieur
* **Extensions PHP** :
* ''curl'' (pour récupérer les pages)
* ''dom'' (pour parser le HTML)
* ''json'' (inclus par défaut)
* **Serveur web** : Apache, Nginx ou autre
==== Configuration Apache ====
Si vous utilisez Apache, créez un fichier ''.htaccess'' :
# Réécriture d'URL
RewriteEngine On
RewriteBase /
# Sécurité
Order allow,deny
Allow from all
# Compression GZIP
AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json
# Cache
ExpiresActive On
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
==== Configuration Nginx ====
Si vous utilisez Nginx, ajoutez Ă votre configuration :
location / {
try_files $uri $uri/ /index.html;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# Sécurité
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
----
===== Utilisation =====
==== URL d'accès ====
Accédez à l'outil via : [[https://audit.ticoet.me/]]
==== Analyse d'une page ====
- **Entrez l'URL** de la page Ă analyser
- **Sélectionnez le type** de page (article, homepage, etc.)
- Cochez les options si nécessaire (mode compatible, service de scraping)
- Cliquez sur **"Lancer l'audit GEO"**
- Consultez les résultats détaillés
==== Mode HTML (pour sites protégés) ====
Si la page est protégée par Cloudflare :
- Ouvrez la page dans votre navigateur
- Affichez le code source (''Ctrl+U'' / ''Cmd+Option+U'')
- Sélectionnez tout (''Ctrl+A'')
- Copiez (''Ctrl+C'')
- Collez dans l'onglet "Analyser du HTML"
----
===== Métriques analysées =====
==== Entités Schema.org ====
^ Type ^ Description ^
| **Organization** | Entreprises/organisations |
| **Person** | Personnes avec relations (worksFor, memberOf) |
| **Service** | Services proposés |
| **Product** | Produits |
| **LocalBusiness** | Entreprises locales |
==== Éléments multimédias ====
^ Élément ^ Analyse ^
| **Images** | Comptage total et vérification des attributs ''alt'' |
| **Vidéos** | Détection (YouTube, Vimeo, hébergées) |
| **Audio** | Détection des fichiers audio |
| **Médias GEO** | Détection des blocs optimisés (geo-image, geo-video, geo-audio) |
==== Contenu structuré ====
^ Élément ^ Analyse ^
| **FAQ** | Détection des FAQ ('''', Schema.org FAQPage) |
| **Citations** | Comptage des '''' et '''' |
| **JSON-LD** | Vérification de la présence de Schema.org en JSON-LD |
| **Microdata** | Détection du balisage microdata |
==== Métadonnées ====
^ Élément ^ Analyse ^
| **Title** | Présence et longueur |
| **Description** | Présence et longueur |
| **Open Graph** | Vérification des balises OG |
| **WordPress** | Détection automatique du CMS |
----
===== Calcul du score =====
Le score maximum est de **100 points** répartis en 4 catégories :
^ Catégorie ^ Points max ^ Critères ^
| **Entités** | 30 | Organization (+10), Person (+5 chacune), Total ≥3 (+10) |
| **Médias** | 25 | Images avec alt (+10), Vidéos (+10), Audio (+5) |
| **Structure** | 25 | FAQ ≥2 (+10), FAQSchema (+5), Citations (+5), JSON-LD (+5) |
| **Métadonnées** | 20 | Title (+5), Description (+5), Open Graph (+5), JSON-LD (+5) |
==== Interprétation du score ====
* **80-100** : Excellent - Optimisé pour les IA
* **50-79** : Bon - Améliorations possibles
* **0-49** : À améliorer - Travail nécessaire
----
===== Export des résultats =====
==== Export PDF ====
Le rapport PDF professionnel inclut :
* **Page 1** : Score global avec répartition par catégorie
* **Page 2** : Checklist d'actions avec priorités (critique, important, optionnel)
* **Page 3** : Liste des images sans attribut alt (URLs)
* **Page 4** : Exemples de code JSON-LD Ă copier-coller
* **Page 5** : Tableau comparatif avant/après avec gains estimés
* **Page 6** : Analyse détaillée (entités, FAQ, métadonnées)
* **Page 7** : Plugins WordPress recommandés (si WordPress détecté)
* **Page 8** : Ressources et prochaines étapes
==== Export CSV ====
Le fichier CSV Excel-friendly inclut :
* Sections clairement délimitées (''=== TITRE ==='')
* Colonnes multiples adaptées par section
* Liste des images sans alt avec URLs
* Détail des entités, FAQ et citations
* Recommandations triées par priorité avec cases à cocher
* Plugins WordPress si applicable
----
===== Services de scraping tiers =====
Pour les sites protégés par Cloudflare ou des systèmes anti-bot.
==== Services supportés ====
^ Service ^ Description ^ Tarification ^
| [[https://www.scrapingbee.com/|ScrapingBee]] | Excellent pour Cloudflare, JavaScript rendering | 1000 crédits gratuits |
| [[https://www.scraperapi.com/|ScraperAPI]] | Rotation d'IP automatique | 5000 crédits gratuits |
| [[https://www.browserless.io/|Browserless]] | Headless Chrome complet | Limité sans abonnement |
| [[https://www.zenrows.com/|ZenRows]] | Anti-bot avec IA | 1000 crédits gratuits |
==== Configuration ====
- Créez un compte sur le service de votre choix
- Récupérez votre clé API
- Modifiez le fichier ''scraping-config.json'' :
{
"service": "scrapingbee",
"api_key": "VOTRE_CLE_API",
"options": {
"render_js": "true",
"premium_proxy": "true",
"country_code": "fr"
}
}
==== Stratégies de récupération ====
L'outil utilise plusieurs stratégies en cascade :
- **Service de scraping** (si demandé et configuré)
- **Mode compatible avancé** : Google Cache, Web Archive, Googlebot UA, Mobile UA
- **Headers Chrome réalistes**
- **cURL basique**
- **file_get_contents**
- **Fallback service de scraping** (si configuré mais non demandé)
----
===== Plugins WordPress recommandés =====
Si votre site utilise WordPress, l'audit recommande automatiquement :
==== GEO Blocks Suite ====
Blocs Gutenberg optimisés pour le SEO et les moteurs d'IA :
* **Blockquote GEO** : Citations avec Schema.org (auteur, source, date)
* **FAQ GEO** : Questions/réponses avec FAQPage Schema
* **Image GEO** : Images avec métadonnées enrichies
* **Video GEO** : Vidéos avec VideoObject Schema
* **Audio GEO** : Audio avec AudioObject Schema
:icon-link: [[geo_blocks_suite|Documentation GEO Blocks Suite]]
==== GEO Authority Suite ====
Suite complète pour l'autorité et la visibilité IA :
* Audits GEO internes automatisés
* Création automatique des entités Schema.org manquantes
* Génération du fichier ''llms.txt'' pour les LLM
* Tableau de bord centralisé avec scores
:icon-link: [[entity-authority-signals|Documentation GEO Authority Suite]]
----
===== Dépannage =====
==== Erreur "Impossible de récupérer la page" ====
**Cause** : L'URL cible bloque les requĂŞtes (Cloudflare, anti-bot)
**Solutions** :
- Cochez l'option "Mode compatible"
- Cochez l'option "Service de scraping tiers" (si configuré)
- Utilisez l'onglet "Analyser du HTML"
==== Vérifier CURL ====
php -m | grep curl
# Installer CURL si absent (Ubuntu/Debian)
sudo apt-get install php-curl
sudo systemctl restart apache2
==== Timeout ====
**Cause** : Page trop lourde ou serveur lent
**Solution** : Les timeouts sont configurés à 120 secondes pour les services de scraping.
----
===== Personnalisation =====
==== Modifier les coefficients de score ====
Éditez ''audit.php'', fonction ''calculateBreakdown()'' :
// Exemple : augmenter l'importance des FAQ
if ($audit['content']['faq'] >= 2) $breakdown['structure'] += 15; // au lieu de 10
==== Ajouter de nouvelles analyses ====
- Créez une fonction dans ''audit.php''
- Appelez-la dans ''analyzeHTML()''
- Mettez Ă jour l'affichage dans ''index.html''
----
===== Sécurité =====
==== Protection contre les abus ====
Ajoutez un rate limiting dans ''audit.php'' :
session_start();
// Limite : 10 audits par heure
if (!isset($_SESSION['audit_count'])) {
$_SESSION['audit_count'] = 0;
$_SESSION['audit_reset'] = time() + 3600;
}
if (time() > $_SESSION['audit_reset']) {
$_SESSION['audit_count'] = 0;
$_SESSION['audit_reset'] = time() + 3600;
}
if ($_SESSION['audit_count'] >= 10) {
http_response_code(429);
echo json_encode(['error' => 'Limite atteinte']);
exit;
}
$_SESSION['audit_count']++;
----
===== Ressources =====
* [[https://schema.org/|Schema.org Documentation]]
* [[https://search.google.com/test/rich-results|Google Rich Results Test]]
* [[https://validator.schema.org/|Schema.org Validator]]
* [[https://ticoet.fr/geo|Guide GEO Ticoët]]
----
===== Licence =====
MIT License - Libre d'utilisation et de modification
----
===== Auteur =====
**Erwan Tanguy - Ticoët**
:icon-link: [[https://www.ticoet.fr/]]
----
===== Support =====
Pour toute question ou bug :
* Contact via [[https://www.ticoet.fr/]]
----
**Version** : 2.0\\
**Dernière mise à jour** : 20 Janvier 2025\\