Lean Bunker Seo Checker – WordPress Plugin
🧼 Lean Bunker SEO Checker – Leggero, trasparente, affidabile
Un solo file. Zero dipendenze. Zero tracce in frontend.
Lean Bunker SEO Checker è un plugin WordPress estremamente leggero – meno di 400 righe di codice pulito, racchiuse in un unico file PHP – progettato per chi cerca chiarezza, controllo e sicurezza senza compromessi.
Non installa shortcode, non genera badge, non aggiunge script, non contatta server esterni.
Non crea tabelle, non schedula task, non modifica il tuo sito.
Fa una cosa sola, e la fa bene: verificare, in modo oggettivo e ripetibile, che il tuo sito sia tecnicamente pronto per essere indicizzato da Google e altri motori di ricerca.
Tutto avviene esclusivamente nell’area di amministrazione, su richiesta esplicita.
Nessun carico inutile, nessuna superficie d’attacco, nessuna sorpresa.
SEO tecnica, senza distrazioni.
Perché a volte, la soluzione migliore è anche la più semplice.
📘 Lean Bunker SEO Checker – Documentazione Tecnica Granulare
🔹 Nome plugin
lean-bunker-seo-checker
🔹 Versione
1.0.1
🔹 Scopo principale
Fornire un’analisi oggettiva, ripetibile e quantificabile (0–100) dello stato di ottimizzazione SEO tecnica di un sito WordPress, esaminando esclusivamente i fattori critici lato server, HTTP, struttura HTML, configurazione WordPress e accessibilità dei file fondamentali, senza alcuna dipendenza da servizi esterni o strumenti di terze parti.
Il plugin non analizza contenuti testuali, keyword o backlink. Si concentra unicamente sulla SEO tecnica — ciò che Google e altri motori di ricerca verificano automaticamente durante la scansione iniziale.
🔹 Filosofia progettuale
- Nessuna esposizione frontend: il plugin non genera shortcode, badge, widget o API pubbliche. Tutto avviene esclusivamente nell’area di amministrazione (
/wp-admin). - Zero traccia lato utente: nessun cookie, nessun tracking, nessun output in frontend. Rispetta la tua policy di minimizzazione dell’attacco surface.
- Esecuzione on-demand: non schedula task cron, non esegue controlli automatici in background. L’analisi parte solo su richiesta esplicita tramite interfaccia admin.
- Isolamento rigoroso: il codice non carica nulla in frontend, AJAX o WP-CLI. Viene eseguito solo se
is_admin()ètruee l’utente ha capabilitymanage_options. - Transparenza assoluta: ogni check è esplicito, documentato nel codice, con punti assegnati in base a criteri oggettivi e verificabili.
🔹 Architettura funzionale
Il plugin è composto da:
- Interfaccia admin (
/wp-admin/tools.php?page=wp-seo-check) - Motore di analisi (
seo_checker_run_full_check()) - 6 moduli di verifica granulare, ciascuno responsabile di un dominio specifico
- Sistema di punteggio basato su pesi predefiniti (totale massimo: 100 punti)
- Visualizzazione strutturata con codifica visiva dello stato (
pass/fail/info)
🔹 Moduli di verifica (con dettaglio per check)
1. 🌐 Accessibilità & Server
Verifica la base fondamentale: il sito deve essere raggiungibile.
|
Check
|
Criterio
|
Punti
|
Stato
|
Messaggio tipico
|
|---|---|---|---|---|
|
Homepage accessibile
|
Risposta HTTP 200 su
/ |
10
|
pass/fail |
"200 OK" / "Errore HTTP 404"
|
|
Connessione HTTPS
|
home_url() inizia con https:// oppure is_ssl() è true |
8
|
pass/fail |
"Attivo" / "Mancante (obbligatorio per SEO moderna)"
|
⚠️ Nota: non verifica certificati validi (solo protocollo). SSL non valido causa errore nel browser, ma Google lo penalizza comunque.
2. 🔐 HTTP Header
Analizza gli header HTTP critici per l’indicizzazione.
|
Check
|
Criterio
|
Punti
|
Stato
|
Dettaglio
|
|---|---|---|---|---|
|
X-Robots-Tag
|
Assenza di
noindex nell’header X-Robots-Tag |
6
|
pass/fail |
Header inviato dal server (es. Apache/Nginx)
|
|
Content-Type HTML
|
Header
Content-Type contiene text/html |
4
|
pass/fail |
Garantisce che Google interpreti la risposta come HTML
|
📌 Google legge
X-Robots-Tagprima del contenuto HTML. Unnoindexqui blocca l’indicizzazione anche se il meta tag è assente.
3. 📄 robots.txt & Sitemap
Verifica la presenza e correttezza dei file di guida per i crawler.
|
Check
|
Criterio
|
Punti
|
Stato
|
Dettaglio
|
|---|---|---|---|---|
|
robots.txt accessibile
|
Risposta HTTP 200 + corpo >10 byte
|
6
|
pass/fail |
Necessario anche se permissivo
|
|
robots.txt blocco totale
|
Presenza di
Disallow: / |
0
|
fail (solo se rilevato) |
Blocca tutti i crawler
|
|
Sitemap XML accessibile
|
Trovata
/sitemap.xml oppure /wp-sitemap.xml con risposta 200 |
4–8
|
pass/fail |
8 punti se contiene
<urlset> o <sitemapindex>; 4 se trovata ma non valida |
✅ Supporta sia sitemap native di WordPress (
/wp-sitemap.xml) che plugin di terze parti (/sitemap.xml).
4. 💻 Frontend & Contenuti (HTML)
Parsing lato server del codice sorgente della homepage.
|
Check
|
Criterio
|
Punti
|
Stato
|
Regola
|
|---|---|---|---|---|
|
Title tag
|
Presente, non vuoto, ≤70 caratteri
|
8
|
pass/fail |
Limite SEO standard
|
|
Meta description
|
Presente, 50–160 caratteri
|
6
|
pass/info |
Non critico, ma ottimale per CTR
|
|
Canonical URL
|
Tag
<link rel="canonical"> punta a home_url() |
4
|
pass/info |
Evita duplicati
|
|
Meta robots noindex
|
Assenza di
<meta name="robots" content="noindex"> |
6
|
pass/fail |
Blocca indicizzazione se presente
|
|
Viewport tag
|
Presente
<meta name="viewport"> |
6
|
pass/fail |
Requisito base per mobile-first indexing
|
🧪 Il parsing usa regex sicure con
wp_strip_all_tags()per evitare XSS o falsi positivi.
5. 🖼️ Asset & Prestazioni
Verifica che risorse fondamentali siano caricate (necessarie per il rendering).
|
Check
|
Criterio
|
Punti
|
Stato
|
Motivazione
|
|---|---|---|---|---|
|
CSS caricato
|
Presenza di
<link href="*.css"> |
6
|
pass/fail |
Google richiede CSS per il rendering
|
|
JavaScript caricato
|
Presenza di
<script src="*.js"> |
2
|
pass/info |
Non obbligatorio per contenuti statici
|
|
Cartella /uploads/ accessibile
|
/wp-content/uploads/ non restituisce 403/404 |
4
|
pass/info |
Immagini bloccate → non indicizzate
|
⚠️ Se
/uploads/è bloccato da.htaccesso server config, Google non indicizzerà le immagini.
6. 🔗 Struttura URL
Verifica la SEO-friendliness degli URL.
|
Check
|
Criterio
|
Punti
|
Stato
|
Spiegazione
|
|---|---|---|---|---|
|
Permalink puliti
|
permalink_structure ≠ vuoto e ≠ /?p=%post_id% |
8
|
pass/fail |
URL leggibili = migliore UX e SEO
|
|
Homepage pulita
|
Nessun query string in
home_url() |
4
|
pass/info |
Parametri in homepage possono causare duplicati
|
✅ Esempi validi:
/contatti/❌ Non validi:/?page_id=123
🔹 Sistema di punteggio
- Totale massimo: 100 punti
- Punteggio calcolato sommando i punti di ogni check con stato
pass - Arrotondamento:
(int) round($total_score) - Classe di valutazione:
≥90: ✅ Eccellente70–89: ⚠️ Buono<70: ❌ Insufficiente
Il punteggio non è soggettivo: ogni punto corrisponde a un criterio verificabile, riproducibile e documentato.
🔹 Flusso di esecuzione
- Amministratore accede a Strumenti → SEO Checker
- Clicca su "Esegui l'analisi SEO" (con nonce di sicurezza)
- Il plugin:
- Effettua 6–10 richieste HTTP interne (timeout: 4–8 sec)
- Parsing HTML della homepage
- Legge opzioni WordPress (
permalink_structure, ecc.) - Valuta ogni check
- Mostra report strutturato con:
- Punteggio finale
- Stato per sezione/sottosezione
- Messaggi esplicativi
- Codifica colore (
verde= pass,rosso= fail,grigio= info)
🔹 Requisiti e limitazioni
- Richiede
wp_remote_get()abilitato (disabilitato su alcuni host conallow_url_fopen=off→ fallirà) - Non funziona in ambienti locali non raggiungibili via HTTP pubblico (es.
localhost) - Non analizza pagine interne: solo la homepage (
/) - Non richiede database aggiuntivo: usa solo opzioni WordPress (
update_optionper timestamp)
🔹 Privacy & Sicurezza
- Nessun dato esce dal server
- Nessun dato è esposto in frontend
- Nessun dato è inviato a terze parti
- Nessuna registrazione di log persistente (solo timestamp dell’ultimo check)
- Nessuna capability richiesta oltre
manage_options - Protezione CSRF tramite
wp_nonce
🔹 Compatibilità
- WordPress 5.0+
- PHP 7.4+
- Testato su Apache, Nginx, LiteSpeed
- Compatibile con caching (esegue richieste HTTP reali, non da cache interna)
🔹 Estensibilità futura (opzionale)
Pur essendo autonomo, il plugin è strutturato per permettere:
- Aggiunta di nuovi moduli tramite hook (se implementati)
- Esportazione report in JSON (non implementata, ma possibile)
- Integrazione con API di notifica (es. webhook su punteggio < 70)
🔹 Conformità
- GPL-3.0+
- Nessun shortcode, widget, REST endpoint, cron job
- Nessuna chiusura PHP (
?>) - Nessun short tag (
<?=) - Sanitizzazione completa di input/output
🔍 DOMANDE PRIMA DELL’INSTALLAZIONE
1. Cos’è Lean Bunker SEO Checker?
È un plugin WordPress 100% lato admin che esegue un’analisi tecnica, oggettiva e ripetibile dello stato di SEO del tuo sito, basata esclusivamente su criteri verificabili lato server e HTML. Assegna un punteggio da 0 a 100 e mostra un report dettagliato per aiutarti a correggere configurazioni che potrebbero impedire a Google di indicizzare correttamente il sito.
2. Analizza il contenuto dei miei articoli o le keyword?
No. Questo plugin non analizza contenuti testuali, keyword, densità, titoli H1 o backlink. Si concentra solo sulla SEO tecnica: accessibilità, HTTPS, header HTTP, robots.txt, sitemap, struttura HTML, URL puliti, ecc. È uno strumento per verificare che il "terreno" su cui poggia il tuo sito sia solido per i motori di ricerca.
3. Mostra qualcosa ai visitatori del mio sito?
Assolutamente no.
Il plugin non genera shortcode, badge, widget, API pubbliche o codice in frontend. Tutto avviene esclusivamente nell’area di amministrazione (/wp-admin). Nessun dato lascia il pannello admin. È progettato per essere invisibile al pubblico.
4. Raccoglie o invia dati a terze parti?
No.
Il plugin non si connette mai a servizi esterni (né a Google, né ad API, né a server proprietari). Tutte le verifiche avvengono tramite richieste HTTP interne al tuo stesso sito (es. leggere /robots.txt). Nessun dato esce dal tuo server.
5. Richiede registrazione, licenza o pagamento?
No.
È un plugin open source, rilasciato sotto licenza GPL-3.0+. Puoi usarlo, modificarlo e distribuirlo liberamente, senza costi né obblighi.
6. Funziona su qualsiasi hosting?
Funziona su hosting standard che supportano:
wp_remote_get()abilitato (cioèallow_url_fopen = Ono cURL attivo)- Possibilità di effettuare richieste HTTP al proprio dominio
Non funziona su ambienti locali non raggiungibili via HTTP pubblico (es. http://localhost) o su host che bloccano le loopback requests (rari, ma possibili).
7. È compatibile con caching, CDN o firewall?
Sì, ma con una precisazione:
Il plugin esegue richieste HTTP reali al tuo sito (come farebbe Googlebot). Se utilizzi caching o CDN, vedrai lo stato come lo vede un motore di ricerca, non lo stato “fresco” dal backend. Questo è voluto: ti mostra la realtà percepita dai crawler.
8. Richiede altre dipendenze (es. PHP estensioni)?
No.
Funziona con qualsiasi configurazione WordPress standard. Non richiede librerie esterne, né JavaScript particolari. L’unica dipendenza è la funzionalità nativa di WordPress per le richieste HTTP (WP_Http).
9. Posso usarlo su un sito in manutenzione o protetto da password?
Solo se la protezione non blocca le richieste HTTP interne.
Se hai una password HTTP Basic o un firewall che blocca l’accesso a /, il plugin segnalerà errori (es. HTTP 401/403). In tal caso, disattiva temporaneamente la protezione durante l’analisi.
10. Perché si chiama “Lean Bunker”?
“Lean” indica minimalismo e focalizzazione su ciò che è essenziale.
“Bunker” riflette l’approccio di sicurezza: niente esposizione frontend, niente superfici d’attacco, tutto isolato in admin. È un nome coerente con la tua filosofia di sviluppo sicuro e snello.
🛠️ DOMANDE DOPO L’INSTALLAZIONE
11. Dov’è il plugin dopo l’attivazione?
Vai in Strumenti → SEO Checker nel menu di WordPress (/wp-admin/tools.php?page=wp-seo-check).
12. Perché non vedo nessun effetto in frontend?
Perché non dovresti vederne alcuno. Il plugin è progettato per operare solo in admin. Non inserisce codice in homepage, non modifica il tema, non aggiunge meta tag. È uno strumento di diagnosi, non di modifica.
13. Cosa succede quando clicco “Esegui l’analisi SEO”?
Il plugin:
- Effettua 6–10 richieste HTTP al tuo stesso sito (homepage,
/robots.txt,/sitemap.xml, ecc.) - Analizza il codice HTML della homepage
- Verifica le impostazioni di WordPress (permalink, ecc.)
- Calcola un punteggio da 0 a 100
- Mostra un report strutturato con pass/fail per ogni check
Tutto in pochi secondi. Nessun dato viene salvato permanentemente, tranne il timestamp dell’ultimo check.
14. Il mio punteggio è basso. Cosa devo fare?
Il report ti dice esattamente cosa non va.
Esempi:
- Se “robots.txt blocco totale” è rosso → hai
Disallow: /nel file → rimuovilo - Se “Permalink puliti” è rosso → vai in Impostazioni → Permalink e scegli una struttura SEO-friendly
- Se “HTTPS” è rosso → installa un certificato SSL (gratuito con Let’s Encrypt)
Ogni messaggio è azionabile.
15. Perché “Sitemap” è giallo anche se ho una sitemap?
Il plugin assegna:
- 8 punti se la sitemap contiene
<urlset>o<sitemapindex>(struttura XML valida) - 4 punti se la sitemap esiste ma non è valida XML (es. HTML di errore)
Controlla che il tuo file /sitemap.xml restituisca XML ben formato.
16. Il plugin dice che “/uploads/ è bloccato”. Devo preoccuparmi?
Sì, se usi immagini nel contenuto.
Googlebot deve poter accedere alle immagini per indicizzarle. Se /wp-content/uploads/ restituisce 403 o 404, le tue immagini non appariranno nei risultati di ricerca immagini. Verifica le regole in .htaccess o nel firewall del server.
17. Perché “CSS caricato” è rosso?
Significa che la homepage non include fogli di stile esterni (<link href="...css">).
Google richiede il CSS per il rendering corretto della pagina. Se manca, Google potrebbe non capire la struttura del tuo sito. Controlla che il tuo tema enqueued correttamente i file CSS.
18. Il plugin rallenta il mio sito?
No.
Viene caricato solo in admin e solo quando visiti la pagina “SEO Checker”. In frontend, non esegue alcun codice, non aggiunge overhead.
19. L’analisi fallisce con timeout. Cosa posso fare?
Aumenta il timeout del server o disattiva temporaneamente:
- Firewall troppo aggressivi
- Plugin di sicurezza che bloccano le loopback
- Caching estremo che ritarda le risposte
In alternativa, esegui il test su un ambiente di staging più veloce.
20. Posso automatizzare l’analisi (es. ogni notte)?
No, e volontariamente.
Il plugin è progettato per essere on-demand, per evitare:
- Carico inutile sul server
- Risultati non aggiornati (se non correggi i problemi, a che serve ripeterli?)
- Superficie d’attacco (nessun cron job = meno vettori)
Se desideri automazione, puoi integrarlo con uno script esterno tramite WP-CLI (attualmente non supportato, ma estendibile).
21. Salva i risultati nel database?
Solo due opzioni:
seo_checker_last_check_time: timestamp dell’ultima analisi- Nessun salvataggio di report completi
I risultati non sono persistenti: ogni volta che clicchi “Esegui”, parte da zero. Questo garantisce che vedi sempre lo stato attuale.
22. Funziona con multisito?
Sì, ma solo per il sito principale su cui viene eseguito.
Ogni sottosito deve installare e attivare il plugin autonomamente. L’analisi è sempre relativa al dominio corrente (home_url()).
23. Posso esportare il report?
Non ancora, ma è possibile in futuro.
Attualmente il report è visibile solo in admin. Se ti serve un formato macchina-leggibile (JSON/CSV), posso aiutarti ad aggiungere un pulsante “Esporta”.
24. Il punteggio 100/100 significa che sono perfetto per Google?
No. Significa che hai superato tutti i check tecnici fondamentali implementati in questo plugin.
Ma Google valuta centinaia di segnali, tra cui:
- Qualità dei contenuti
- Velocità (Core Web Vitals)
- Esperienza utente
- Backlink
- Mobile-friendliness avanzata
Questo plugin copre la base tecnica. È necessaria, ma non sufficiente, per il successo SEO.
25. Posso personalizzare i pesi o aggiungere nuovi check?
Non dall’interfaccia, ma sì dal codice.
Il sistema è modulare: ogni funzione seo_checker_check_*() restituisce un array strutturato. Puoi copiare il plugin, rinominarlo e aggiungere i tuoi check (es. verifica hreflang, schema.org, ecc.).
26. Perché “Meta description” è giallo anche se ce l’ho?
Il plugin considera “ottimale” una meta description tra 50 e 160 caratteri.
Se è più corta o più lunga, lo segnala come informativo (info), non come errore. Non penalizza il punteggio, ma ti avvisa che potresti migliorare il CTR nei risultati di ricerca.
27. Il plugin blocca o modifica qualcosa sul mio sito?
No. Assolutamente no.
È solo un lettore, non un writer. Non modifica file, non cambia impostazioni, non disabilita funzionalità. È uno strumento diagnostico puro.
28. Posso usare il plugin su un sito in HTTPS con certificato autofirmato?
Sì, ma con una nota:
Il plugin disabilita la verifica SSL ('sslverify' => false) per evitare errori su certificati autofirmati. Tuttavia, Google richiede certificati validi. Anche se il plugin ti dà 8/8 su HTTPS, Google potrebbe comunque segnalare problemi.
29. Chi può eseguire l’analisi?
Solo utenti con capability manage_options (tipicamente Amministratori).
Altri ruoli (Editor, Autore, ecc.) non vedranno né la pagina né il menu.
30. Dove trovo il codice sorgente?
Il plugin è composto da un unico file PHP. Puoi aprirlo in qualsiasi editor di testo. Non ci sono dipendenze esterne, asset o cartelle nascoste.
🛡️ DOMANDE DI SICUREZZA E PRIVACY
31. Il plugin è sicuro?
Sì. È stato progettato con i principi:
- Minima superficie d’attacco: niente frontend, niente AJAX, niente REST API
- Validazione rigorosa: tutti gli input sono sanificati (
sanitize_text_field,wp_unslash) - Output sicuro: tutto l’HTML è escaped (
esc_html,esc_url,esc_attr) - Nessun eval(), include dinamico o exec()
32. Espone informazioni sensibili?
No.
Il report mostra solo dati già pubblici (es. contenuto di /robots.txt, header HTTP, struttura URL). Non rivela percorsi interni, versioni di plugin, DB prefix o altro.
33. Può essere usato come vettore d’attacco?
Estremamente improbabile.
Non accetta input utente complesso, non scrive file, non esegue query arbitrarie. L’unica interazione è un nonce per avviare l’analisi.
📦 DOMANDE TECNICHE AVANZATE
34. Perché non usa l’API di Google Search Console?
Perché richiederebbe:
- Autenticazione OAuth
- Connessione a un servizio esterno
- Permesso di lettura/scrittura su dati Google
Questo plugin è standalone, autonomo e offline-compatible (se il sito è raggiungibile).
35. Supporta sitemap personalizzate (es. Yoast, Rank Math)?
Sì.
Verifica automaticamente sia /sitemap.xml (standard) che /wp-sitemap.xml (WordPress 5.5+ nativo). Se il tuo plugin genera una sitemap in uno di questi percorsi, verrà rilevata.
36. Cosa succede se il mio tema non ha un title tag?
Il plugin lo segnalerà come fail.
Il <title> è obbligatorio per l’indicizzazione. Controlla che il tuo tema includa wp_title() o add_theme_support('title-tag').
37. Funziona con siti headless o REST-only?
No.
Presuppone che la homepage (/) restituisca HTML con <title>, meta tag, ecc. Se il tuo sito è una SPA o restituisce solo JSON, la maggior parte dei check fallirà.
38. Come fa a sapere se il canonical è corretto?
Confronta l’href del tag <link rel="canonical"> con home_url().
Se non coincidono esattamente (stesso protocollo, dominio, percorso), lo segnala come non ottimale.
✅ Domanda finale:
39. Questo plugin mi farà salire su Google?
Non direttamente.
Ma ti assicura che Google possa vedere il tuo sito correttamente.
Se Google non riesce ad accedere, leggere o capire la struttura del tuo sito, nessun contenuto sarà indicizzato — per quanto buono sia.
Questo plugin ti garantisce che la porta d’ingresso è aperta.