Scanner SEO professionale per PrestaShop con sistema di fix automatici
PyPrestaScan รจ uno strumento open-source avanzato per l'analisi SEO completa di siti PrestaShop. Scansiona il tuo e-commerce, identifica problemi SEO critici e genera suggerimenti automatici per risolverli.
๐ฆ Installazione rapida: pip install 'pyprestascan[gui]'
Andrea Piani Full-Stack Developer & SEO Specialist
๐ Link: linktr.ee/andreapianidev
Progetto open-source in continuo miglioramento! Contributi, feedback e segnalazioni sono sempre benvenuti. ๐
๐ Roadmap: ROADMAP.md - Piano sviluppo v1.2.0 โ v2.0.0 ๐ค Contributing: CONTRIBUTING.md - Guida per contributor
- Crawling intelligente con supporto sitemap.xml e robots.txt
- Rilevamento automatico di prodotti, categorie, CMS e filtri faceted
- Analisi approfondita di meta tag, title, headings, canonical, hreflang
- Controllo immagini con rilevamento ALT mancanti, vuoti o generici
- Rilevamento duplicati tramite content hash
- Scoring SEO per ogni pagina con severity (CRITICAL, WARNING, INFO)
- ๐ค Generazione AI intelligente con DeepSeek, OpenAI GPT o Anthropic Claude
- Meta description contestuali generate dall'AI invece di template generici
- Batch processing: 20 prodotti in 1 chiamata = -30% token
- Costi ultra-bassi: ~$0.02 per 500 prodotti (DeepSeek)
- Fallback automatico: se AI fallisce, usa template standard
- Suggerimenti intelligenti per:
- ๐ฏ Meta description mancanti o non ottimizzate (AI-powered!)
- ๐ Title troppo corti o troppo lunghi
- ๐ผ๏ธ ALT text mancanti per le immagini
- ๐ Canonical URL mancanti
- ๐ H1 multipli o mancanti
- ๐ Hreflang mancanti
- Confidence scoring (0-100%) per ogni fix suggerito
- Export SQL per fix automatizzabili
- Export CSV con dettagli completi
Template Standard:
"Scarpe Nike Air Zoom - Acquista online su myshop.it"
AI DeepSeek (v1.1.0):
"Scarpe Nike Air Zoom: ammortizzazione reattiva per running. Scopri la collezione 2024 con tecnologia React Foam!"
Differenza: Contestuale, benefici evidenziati, CTA naturale. Confidence: 0.95 vs 0.70. Costo: $0.00004 per prodotto.
- GUI intuitiva con Qt/PySide6
- 4 Tab principali:
- โ๏ธ Configurazione: setup URL, limiti, concorrenza
- ๐ Progress & Log: monitoraggio real-time con log dettagliati
- ๐ Risultati: statistiche, tabella issues filtrabili
- ๐ง Fix Suggeriti: visualizza e gestisci i fix automatici
- Log in tempo reale durante la scansione
- Contatori live (pagine crawlate, issues trovati, immagini senza ALT)
- Filtri avanzati per issues e fix
- Export multipli (CSV, JSON, HTML, SQL)
- Report HTML interattivo con grafici e tabelle
- Export CSV/JSON per analisi dati
- Export SQL per applicazione fix diretta al database
- Visualizzazione issues per severity e tipologia
- Dashboard statistiche complete
- Crawling asincrono con concorrenza configurabile (default: 20 worker)
- Rate limiting automatico per non sovraccaricare il server
- Database SQLite per gestione efficiente dei dati
- Resume support per riprendere scansioni interrotte
- Gestione memoria ottimizzata per siti con migliaia di pagine
- Python 3.8+ (3.12+ raccomandato)
- pip
# Installazione base (CLI)
pip install pyprestascan
# Con interfaccia grafica (NOTA: su zsh/macOS usa le virgolette)
pip install 'pyprestascan[gui]'
# Avvia la GUI
pyprestascan-gui
# Oppure usa la CLI
pyprestascan scan https://tuosito.com/it/ --max-urls 1000# Clona il repository
git clone https://github.com/andreapianidev/pyprestascan.git
cd pyprestascan
# Installa in modalitร development (NOTA: su zsh/macOS usa le virgolette)
pip install -e '.[gui]'
# Avvia l'interfaccia grafica
python -m pyprestascan.gui.main_window
# Oppure usa la CLI
python -m pyprestascan scan https://tuosito.com/it/ --max-urls 1000-
Avvia la GUI:
# Se installato da PyPI pyprestascan-gui # Oppure se installato da sorgenti python -m pyprestascan.gui.main_window
-
Configura la scansione:
- Inserisci l'URL del tuo sito PrestaShop
- Imposta il numero massimo di pagine da analizzare
- Configura concorrenza e altre opzioni avanzate
-
Avvia la scansione:
- Clicca su "
โถ๏ธ Avvia Scansione" - Monitora il progresso in tempo reale nel tab "Progress & Log"
- Clicca su "
-
Analizza i risultati:
- Vai al tab "๐ Risultati" per vedere gli issues rilevati
- Filtra per severity (Critical, Warning, Info)
- Esporta in CSV per analisi dettagliate
-
Genera e applica fix:
- Vai al tab "๐ง Fix Suggeriti"
- Clicca su "Genera Fix Suggeriti"
- Visualizza i fix con confidence score
- Esporta SQL per applicarli direttamente al database PrestaShop
PyPrestaScan puรฒ usare AI generativa per creare meta description di qualitร superiore:
-
Registrati su un provider AI (raccomandato: DeepSeek):
-
Configura in PyPrestaScan:
- Vai in tab Configurazione โ sezione "AI Fix Avanzati (Opzionale)"
- Spunta "โจ Abilita generazione AI per Fix Suggeriti"
- Seleziona provider (es: DeepSeek)
- Inserisci la tua API key
-
Genera fix intelligenti:
- Esegui scansione normalmente
- Tab Fix Suggeriti โ clicca "Genera Fix Suggeriti"
- L'AI creerร meta description contestuali invece di template generici
- Costo stimato: ~$0.02 per 500 prodotti (DeepSeek)
| Provider | Costo per 1M token | Costo 500 prodotti | Qualitร |
|---|---|---|---|
| DeepSeek ๐ | $0.14 | $0.02 | โญโญโญโญโญ |
| OpenAI GPT-4o-mini | $0.15 | $0.03 | โญโญโญโญโญ |
| Claude Haiku | $0.80 | $0.15 | โญโญโญโญโญ |
Risparmio vs lavoro manuale: 8 ore ($240) โ 30 secondi ($0.02) = 99.99% di risparmio!
๐ Documentazione completa: Leggi AI_INTEGRATION.md per guide dettagliate, troubleshooting e best practices.
# Scansione base (se installato da PyPI)
pyprestascan scan https://tuosito.com/it/
# Oppure se installato da sorgenti
python -m pyprestascan scan https://tuosito.com/it/
# Scansione con opzioni avanzate
pyprestascan scan https://tuosito.com/it/ \
--max-urls 5000 \
--concurrency 30 \
--timeout 20 \
--project mio-progetto \
--export-dir ./reports
# Riprendi scansione interrotta
pyprestascan scan https://tuosito.com/it/ --resume
# Debug mode
python -m pyprestascan scan https://tuosito.com/it/ --debug
# Quiet mode (solo errori)
python -m pyprestascan scan https://tuosito.com/it/ --quietPyPrestaScan controlla automaticamente oltre 20 regole SEO PrestaShop-specific:
TITLE_MISSING: Title tag mancanteTITLE_TOO_SHORT: Title < 10 caratteriTITLE_TOO_LONG: Title > 60 caratteriMETA_DESCRIPTION_MISSING: Meta description mancanteH1_MISSING: Tag H1 mancanteH1_MULTIPLE: Piรน di un H1 nella paginaCANONICAL_MISSING: Canonical URL mancantePRODUCT_NO_JSONLD: Prodotto senza JSON-LD
META_DESCRIPTION_TOO_SHORT: Description < 50 caratteriMETA_DESCRIPTION_TOO_LONG: Description > 160 caratteriIMAGES_MISSING_ALT: Immagini senza attributo ALTIMAGES_EMPTY_ALT: Immagini con ALT vuotoCART_INDEXABLE: Carrello indicizzabile (bad practice)FACETED_NO_CANONICAL: Filtri faceted senza canonical
IMAGES_GENERIC_ALT: ALT text generico ("image", "photo", etc.)NO_HREFLANG: Hreflang mancante (siti multilingua)SLOW_TTFB: Time To First Byte > 1000ms
-
Meta Description Fixer
- Genera description ottimizzate 120-160 caratteri
- Basate su title e tipologia pagina
- Confidence: 50-90% (dipende dalla qualitร del title)
-
Title Fixer
- Ottimizza lunghezza title (10-60 caratteri)
- Tronca title lunghi preservando il significato
- Espande title corti aggiungendo brand
- Confidence: 60-90%
-
ALT Text Fixer
- Suggerisce ALT text basato su contesto pagina
- Richiede revisione manuale (confidence: 50%)
- Template-based per prodotti/categorie
-
Canonical Fixer
- Genera canonical URL auto-referenziali
- Rimuove parametri query non necessari
- Confidence: 90% (alta affidabilitร )
-
Genera fix dopo la scansione:
- Tab "Fix Suggeriti" โ "Genera Fix Suggeriti"
- Attendi alcuni secondi per la generazione
-
Visualizza i fix:
- Tabella con tutti i fix ordinati per severity e confidence
- Filtri per status, tipo, automatizzabili
-
Dettagli fix:
- Clicca sull'icona ๐๏ธ per vedere:
- Valore attuale vs suggerito
- Spiegazione del problema
- Query SQL per applicare il fix
- Clicca sull'icona ๐๏ธ per vedere:
-
Esporta ed applica:
- Export CSV: per revisione manuale
- Export SQL: script pronto per l'esecuzione
โ ๏ธ Fai sempre un backup prima di applicare le query SQL!
Dopo ogni scansione, PyPrestaScan genera:
report/
โโโ crawl.db # Database SQLite con tutti i dati
โโโ report.html # Report interattivo con grafici
โโโ pages.csv # Dettagli di tutte le pagine
โโโ issues.csv # Tutti gli issues rilevati
โโโ images_missing_alt.csv # Immagini con problemi ALT
โโโ duplicates.csv # Contenuti duplicati
โโโ fixes.csv # Fix suggeriti (dopo generazione)
โโโ fixes.sql # Script SQL per fix automatici
| Parametro | Default | Descrizione |
|---|---|---|
--url |
richiesto | URL base del sito da analizzare |
--max-urls |
10000 | Numero massimo di URL da crawlare |
--concurrency |
20 | Richieste HTTP parallele (1-100) |
--delay |
0 | Delay minimo tra richieste (ms) |
--timeout |
15 | Timeout richieste HTTP (secondi) |
--depth |
โ | Profonditร massima crawling |
--project |
default | Nome progetto per database |
--export-dir |
./report | Directory output report |
# Include solo categorie e prodotti
python run_cli.py scan https://shop.com \
--include "/category/.+" \
--include "/.*-p\\d+\\.html"
# Escludi parametri di ordinamento
python run_cli.py scan https://shop.com \
--exclude "\\?.*orderby=" \
--exclude "\\?.*selected_filters="PyPrestaScan รจ un progetto open-source e in continuo miglioramento!
Contributi, segnalazioni bug e feature request sono sempre benvenuti:
- Fai fork del repository
- Crea un branch per la tua feature (
git checkout -b feature/AmazingFeature) - Commit delle modifiche (
git commit -m 'Add some AmazingFeature') - Push al branch (
git push origin feature/AmazingFeature) - Apri una Pull Request
- Integrazione API PrestaShop per applicazione fix automatica
- Supporto multi-lingua migliorato
- Analisi performance (Core Web Vitals)
- Monitoraggio scheduled con notifiche
- Plugin per PrestaShop back-office
- AI-powered content suggestions
- Report PDF professionali
- Export Excel nativo
# Verifica robots.txt manualmente
curl https://tuo-sito.com/robots.txt# Aumenta concorrenza (attenzione al server)
python run_cli.py scan https://sito.com --concurrency 50
# Riduci delay se robots.txt lo permette
python run_cli.py scan https://sito.com --delay 0# Riduci concorrenza per grandi siti
python run_cli.py scan https://sito.com --concurrency 10 --max-urls 20000# Debug completo
python run_cli.py scan https://sito.com --debug
# Log minimal
python run_cli.py scan https://sito.com --quiet- Rispetta robots.txt e ToS dei siti
- Non fare overload sui server di destinazione
- Autentica appropriatamente per siti privati
- Proteggi credenziali in ambienti condivisi
# Per siti piccoli/medi
python run_cli.py scan https://shop.com --delay 100 --concurrency 20
# Per siti grandi/condivisi
python run_cli.py scan https://shop.com --delay 500 --concurrency 10import asyncio
from pyprestascan.cli import CrawlConfig, CliContext
from pyprestascan.core.crawler import PyPrestaScanner
async def custom_scan():
config = CrawlConfig(
base_url="https://myshop.com",
max_urls=5000,
concurrency=20
)
cli_context = CliContext(debug=False, quiet=False, no_color=False)
scanner = PyPrestaScanner(config, cli_context)
return await scanner.run()
# Esegui
asyncio.run(custom_scan())import pandas as pd
# Carica dati da CSV
pages_df = pd.read_csv('report/pages.csv')
issues_df = pd.read_csv('report/issues.csv')
# Analisi personalizzate
low_score_pages = pages_df[pages_df['score'] < 50]
critical_issues = issues_df[issues_df['severity'] == 'CRITICAL']Questo progetto รจ distribuito con licenza MIT - vedi il file LICENSE per i dettagli.
- PrestaShop Community per la fantastica piattaforma e-commerce
- PySide6 per il framework GUI
- httpx per le richieste HTTP async
- BeautifulSoup4 per il parsing HTML
- Tutti i contributori che aiutano a migliorare il progetto
Per domande, bug o feature request:
- ๐ Issues GitHub: github.com/andreapianidev/PyPrestaScan/issues
- ๐ฌ Discussioni: github.com/andreapianidev/PyPrestaScan/discussions
- ๐ Contatto diretto: linktr.ee/andreapianidev
Se PyPrestaScan ti รจ stato utile, considera di lasciare una โญ su GitHub!
Made with โค๏ธ by Andrea Piani for the PrestaShop Community
Progetto open-source in continuo miglioramento
๐ Homepage โข ๐ Docs โข ๐ Report Bug โข โจ Request Feature
