mermio / audit
Package Laravel pour auditer des sites web via sitemap et Google PageSpeed Insights up
Requires
- php: ^8.2
- barryvdh/laravel-dompdf: ^3.0
- filament/filament: ^4.0
- illuminate/support: ^12.0
- laravel/framework: ^12.0
Requires (Dev)
- orchestra/testbench: ^10.0
- phpunit/phpunit: ^11.0
This package is not auto-updated.
Last update: 2026-03-31 21:10:25 UTC
README
Package Laravel pour auditer des sites web via sitemap et Google PageSpeed Insights avec Filament V4.
Installation
Installation via Composer
Installez le package via Composer :
composer require mermio/audit
Publier les fichiers
Publier la configuration :
php artisan vendor:publish --tag=audit-config
Publier les migrations :
php artisan vendor:publish --tag=audit-migrations
Exécuter les migrations
php artisan migrate
Configurer la queue
Les audits sont traités en arrière-plan via des jobs Laravel. Assurez-vous d'avoir un worker de queue en cours d'exécution :
php artisan queue:work
Ou utilisez un supervisor pour gérer automatiquement les workers en production.
Configuration
Variables d'environnement
Ajoutez dans votre fichier .env :
# URL du sitemap à auditer
# Peut être une URL complète : https://example.com/sitemap.xml
# Ou un chemin relatif : sitemap.xml (sera combiné avec APP_URL)
AUDIT_SITEMAP_URL=sitemap.xml
# Clé API Google PageSpeed Insights
PAGESPEED_API_KEY=votre_cle_api_google
# Canal de log pour l'audit (optionnel, utilise 'stack' par défaut)
AUDIT_LOG_CHANNEL=stack
Note importante sur AUDIT_SITEMAP_URL :
- Si vous fournissez une URL complète (ex:
https://example.com/sitemap.xml), elle sera utilisée telle quelle - Si vous fournissez un chemin relatif (ex:
sitemap.xml), il sera automatiquement combiné avecAPP_URL - Cela permet d'auditer facilement un site différent de celui où tourne l'application
Vous pouvez également modifier la configuration dans config/audit.php après publication.
Configuration Filament
Vous devez enregistrer le plugin manuellement dans votre PanelProvider (par exemple app/Providers/Filament/AdminPanelProvider.php) :
use Filament\Panel;
use Mermio\Audit\Filament\AuditPlugin;
public function panel(Panel $panel): Panel
{
return $panel
// ... autres configurations
->plugin(AuditPlugin::make());
}
Personnaliser le groupe de navigation
Par défaut, les ressources d'audit apparaissent dans le groupe de navigation "Audit". Vous pouvez personnaliser ce groupe lors de l'enregistrement du plugin :
use Filament\Panel;
use Mermio\Audit\Filament\AuditPlugin;
public function panel(Panel $panel): Panel
{
return $panel
// ... autres configurations
->plugin(
AuditPlugin::make()
->navigationGroup('Paramètres')
);
}
Utilisation
Lancer un audit
- Accédez à l'interface Filament
- Allez dans le menu "Audit"
- Cliquez sur "Lancer un audit"
- Confirmez dans la modale (le nom et les sitemaps sont générés automatiquement)
- L'audit se lancera automatiquement en arrière-plan via des jobs
Consulter un rapport
- Cliquez sur un audit dans la liste
- Le rapport affiche :
- Les informations générales de l'audit
- La liste des pages analysées avec :
- Le code réponse HTTP
- Le score PageSpeed Insights
- La date de vérification
Commande Artisan
Vous pouvez également lancer un audit via la ligne de commande :
php artisan audit:run {audit_id}
Fonctionnalités
- ✅ Analyse automatique du sitemap (support des sitemaps index et multiples sitemaps)
- ✅ Support des sitemaps multilingues (sitemap_index.xml avec sitemap_fr.xml.gz, sitemap_en.xml.gz, etc.)
- ✅ Support des fichiers compressés (.gz)
- ✅ Vérification du code réponse HTTP de chaque page
- ✅ Intégration Google PageSpeed Insights API (Performance, Accessibilité, Bonnes pratiques, SEO)
- ✅ Interface Filament V4 complète
- ✅ Rapports détaillés avec scores de performance
- ✅ Traitement asynchrone via jobs Laravel (non bloquant)
- ✅ Parallélisation des analyses PageSpeed
- ✅ Gestion des erreurs et logs
Configuration avancée
Sitemaps multilingues et compressés
Le package gère automatiquement :
Sitemaps index : Si votre sitemap principal (ex:
sitemap_index.xml) contient des références vers d'autres sitemaps, le package les détectera et les parsera automatiquement de manière récursive.Fichiers compressés : Les fichiers
.gz(ex:sitemap_fr.xml.gz,sitemap_en.xml.gz) sont automatiquement décompressés avant le parsing.
Exemple de structure supportée :
sitemap_index.xml
├── sitemap_fr.xml.gz
├── sitemap_en.xml.gz
├── sitemap_de.xml.gz
└── sitemap_es.xml.gz
Il suffit de fournir l'URL du sitemap index lors de la création de l'audit, et toutes les URLs de tous les sous-sitemaps seront automatiquement extraites et analysées.
Stratégie PageSpeed
Par défaut, la stratégie est définie sur desktop. Vous pouvez la changer pour mobile dans config/audit.php :
'pagespeed' => [
'api_key' => env('PAGESPEED_API_KEY'),
'api_url' => 'https://www.googleapis.com/pagespeedonline/v5/runPagespeed',
'strategy' => 'mobile', // ou 'desktop'
],
Sitemaps multiples
Vous pouvez configurer plusieurs sitemaps dans config/audit.php :
'sitemap_urls' => [
'https://example.com/sitemap.xml',
'https://example.com/sitemap-blog.xml',
],
Support
Pour toute question ou problème, veuillez ouvrir une issue sur le dépôt GitHub.
Licence
MIT