Analyseur en ligne pour évaluer l'optimisation GEO (Generative Engine Optimization) d'une page web.
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)
curl (pour récupérer les pages)dom (pour parser le HTML)json (inclus par défaut)
Si vous utilisez Apache, créez un fichier .htaccess :
# Réécriture d'URL <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / </IfModule> # Sécurité <Files "audit.php"> Order allow,deny Allow from all </Files> # Compression GZIP <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json </IfModule> # Cache <IfModule mod_expires.c> ExpiresActive On ExpiresByType text/html "access plus 0 seconds" ExpiresByType text/css "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" </IfModule>
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;
Accédez à l'outil via : https://audit.ticoet.me/
Si la page est protégée par Cloudflare :
Ctrl+U / Cmd+Option+U)Ctrl+A)Ctrl+C)| Type | Description |
|---|---|
| Organization | Entreprises/organisations |
| Person | Personnes avec relations (worksFor, memberOf) |
| Service | Services proposés |
| Product | Produits |
| LocalBusiness | Entreprises locales |
| É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) |
| Élément | Analyse |
|---|---|
| FAQ | Détection des FAQ (<details>, Schema.org FAQPage) |
| Citations | Comptage des <blockquote> et <cite> |
| JSON-LD | Vérification de la présence de Schema.org en JSON-LD |
| Microdata | Détection du balisage microdata |
| É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 |
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) |
Le rapport PDF professionnel inclut :
Le fichier CSV Excel-friendly inclut :
=== TITRE ===)Pour les sites protégés par Cloudflare ou des systèmes anti-bot.
| Service | Description | Tarification |
|---|---|---|
| ScrapingBee | Excellent pour Cloudflare, JavaScript rendering | 1000 crédits gratuits |
| ScraperAPI | Rotation d'IP automatique | 5000 crédits gratuits |
| Browserless | Headless Chrome complet | Limité sans abonnement |
| ZenRows | Anti-bot avec IA | 1000 crédits gratuits |
scraping-config.json :{
"service": "scrapingbee",
"api_key": "VOTRE_CLE_API",
"options": {
"render_js": "true",
"premium_proxy": "true",
"country_code": "fr"
}
}
L'outil utilise plusieurs stratégies en cascade :
Si votre site utilise WordPress, l'audit recommande automatiquement :
Blocs Gutenberg optimisés pour le SEO et les moteurs d'IA :
:icon-link: Documentation GEO Blocks Suite
Suite complète pour l'autorité et la visibilité IA :
llms.txt pour les LLM:icon-link: Documentation GEO Authority Suite
Cause : L'URL cible bloque les requêtes (Cloudflare, anti-bot)
Solutions :
php -m | grep curl # Installer CURL si absent (Ubuntu/Debian) sudo apt-get install php-curl sudo systemctl restart apache2
Cause : Page trop lourde ou serveur lent
Solution : Les timeouts sont configurés à 120 secondes pour les services de scraping.
Éditez audit.php, fonction calculateBreakdown() :
// Exemple : augmenter l'importance des FAQ if ($audit['content']['faq'] >= 2) $breakdown['structure'] += 15; // au lieu de 10
audit.phpanalyzeHTML()index.html
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']++;
MIT License - Libre d'utilisation et de modification
Pour toute question ou bug :
Version : 2.0
Dernière mise à jour : 20 Janvier 2025