====== 🔍 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\\