1.0Gratis e open source

Il tuo giornale non rallenta più. Nemmeno sotto milioni di richieste.

Dimentica PHP, database e plugin di cache. Presstatic trasforma ogni articolo in una pagina già pronta e la fa consegnare da Cloudflare in oltre 330 città: PageSpeed 100 su home, articoli e categorie, e 27,2 milioni di richieste servite da Cloudflare in meno di due ore. Sullo stesso server, con le pagine compresse come le chiede un browser, serve circa 4.500 volte le richieste di WordPress senza cache e il doppio di WordPress con Varnish, la sua cache più veloce.

Open source, GPL-3.0 PageSpeed 100 SEO per le news incluso Scrittura con l'IA Gratuito, tutto incluso
100PageSpeed in prestazioni, accessibilità, best practice e SEO
10.000client simultanei con loader.io: tempo medio 10 ms, zero errori
27,2 Mrichieste in meno di due ore, senza downtime
98.700richieste al secondo su un solo core, con le pagine già compresse
Picchi di traffico

Il traffico lo regge Cloudflare. Il tuo server non se ne accorge.

Con WordPress ogni visita che non trova la pagina in cache passa dal server: banda, Nginx, PHP e database si mettono in coda, e nei picchi arrivano rallentamenti ed errori. Con Presstatic le pagine sono già pronte e partono dalla cache di Cloudflare: quei limiti non entrano più in gioco.

Cloudflare

La rete di Cloudflare consegna le tue pagine da oltre 330 città

27,2 Mrichieste in meno di due ore
100%HIT a cache calda
10 msdi media con 10.000 client simultanei
0errori e timeout nel test di carico

I limiti del server che non contano più

Colonna WordPress misurata sullo stesso server, con gli stessi 2.000 articoli.

Collo di bottigliaWordPressPresstatic con Cloudflare
Banda della porta del servercon risposte da 17 KB, una porta da 570 Mbit/s si ferma a circa 4.000 richieste al secondo; le pagine di WordPress pesano il doppionon conta: le pagine partono dai data center di Cloudflare
PHPcirca 45 ms di calcolo per ogni pagina: circa 22 richieste al secondo per core, con Nginx come con Apachenessun PHP: la pagina è già pronta
MySQL o MariaDB31 query per la home e 39 per un articolo, a ogni visita non in cachezero query per ogni visita
Latenza nei picchicon 50 connessioni, da 1 a 2 secondi di attesa e centinaia di richieste oltre i 2 secondicon 50 connessioni sullo stesso server, 0,4 ms di media e nessun timeout
Con la cache di pagina1.595 richieste al secondo in gzip e 394 in brotli, perché Nginx comprime la pagina in cache a ogni visita; la cache va configurata e svuotata a ogni pubblicazionecirca 98.700 richieste al secondo in gzip e in brotli: le pagine sono già compresse, senza configurare nulla
Come funziona

Cosa succede quando premi «Pubblica»

Quattro passaggi, e l'articolo diventa un file che nessun picco di traffico può rallentare.

  1. Si salva

    L'articolo va nel database SQLite, dentro il programma.

    0,19 ms
  2. Si genera

    Presstatic compone la pagina e aggiorna home, categorie, tag e sitemap.

    0,75 s con 20.000 articoli
  3. Si avvisa

    Svuota la cache di Cloudflare solo dove serve e segnala l'articolo a Google.

    Indexing API
  4. Si legge

    Da quel momento l'articolo è un file: lo serve Cloudflare dal data center più vicino al lettore, e il tuo server entra in gioco solo se la pagina non è ancora in cache.

    oltre 330 città
Architettura

Il database sta solo sulla strada di chi scrive.

Il pannello di redazione e il sito dei lettori sono due percorsi separati. Chi scrive lavora con il programma e con il database; chi legge riceve soltanto file già pronti.

Percorso di chi scrive e percorso di chi legge La redazione usa il pannello di Presstatic, che salva nel database SQLite e genera le pagine HTML. I lettori ricevono le pagine dalla cache di Cloudflare; Nginx, sul server, fornisce a Cloudflare solo le pagine che non ha ancora in cache. CHI SCRIVE Redazione nel browser Pannello Presstatic Rust, asincrono SQLite un file, nel programma genera l'HTML alla pubblicazione CHI LEGGE Pagine HTML file già pronti Cloudflare consegna le pagine da oltre 330 città 100% HIT a cache calda Nginx, dietro le quinte solo per le pagine non ancora in cache Lettori visite potenzialmente illimitate Nessuna visita tocca il programma o il database

Chi scrive

Redazionenel browser
Pannello PresstaticRust, asincrono
SQLiteun file, nel programma

genera l'HTML alla pubblicazione

Chi legge

Pagine HTMLfile già pronti
Cloudflareconsegna le pagine da oltre 330 città100% HIT a cache calda

Nginx, dietro le quinte: solo per le pagine non ancora in cache

Lettorivisite potenzialmente illimitate

Nessuna visita tocca il programma o il database

Di serie Cloudflare non mette in cache le pagine HTML: Presstatic lo configura da solo perché lo faccia. HIT significa che Cloudflare ha servito la pagina direttamente dalla sua cache, senza contattare il tuo server. Nei test, una volta scaldata la cache, le richieste sono state HIT al 100%: il server entra in gioco solo per le pagine appena pubblicate o modificate. Cloudflare è consigliato, non obbligatorio. Con Cloudflare davanti le visite sono potenzialmente illimitate, perché il limite è la sua rete; senza, è Nginx a servire direttamente i lettori e il limite diventa la banda del tuo server.

Pagine generate alla pubblicazione

Ogni articolo diventa un file HTML nel momento in cui esce, e resta pronto finché non cambia.

Vantaggio: nessun calcolo a ogni visita, niente plugin di cache, nessun calo dopo una pubblicazione.

Scritto in Rust

Un linguaggio compilato tra i più veloci, progettato per evitare interi tipi di errori di memoria.

Vantaggio: un solo programma di circa 18 MB, circa 13 MB di RAM a riposo e circa 100 MB mentre rigenera 20.000 articoli, meno vulnerabilità possibili.

SQLite dentro il programma

Il database è un file letto direttamente dal programma, senza un servizio separato da gestire.

Vantaggio: letture fino a 4,7 volte più rapide di MariaDB, backup di un solo file, 244 MB di RAM risparmiati.

Cloudflare davanti a tutto

Presstatic configura Cloudflare da solo perché metta in cache anche l'HTML, cosa che di serie non fa: le pagine arrivano ai lettori dalla sua CDN, e sul tuo server Nginx risponde solo quando una pagina non è ancora in cache.

Vantaggio: visite potenzialmente illimitate, perché il limite è la rete di Cloudflare; il server resta quasi fermo ed è protetto dagli attacchi DDoS.

Ricerca nel browser

L'indice di ricerca è fatto di piccoli file statici: la ricerca la esegue il browser del lettore.

Vantaggio: risultati mentre scrivi, nessun carico sul server, anche su archivi molto grandi.

Aggiornamenti firmati

Ogni versione è firmata con una chiave che resta solo a chi pubblica; ogni sito la verifica prima di installarla.

Vantaggio: aggiornamento con un clic dal pannello, e nessuno può spacciare una versione falsa.

Funzioni

Tutto quello che serve a una redazione, già dentro.

Tutto incluso, gratis e dentro il programma: niente versioni Pro, plugin premium o abbonamenti. Sitemap news, dati strutturati, immagini ottimizzate, commenti, newsletter, notifiche, backup e page builder sono parte del CMS.

Redazione

  • Editor visuale: incolli da Word o Google Docs e il testo resta pulito
  • Blocco HTML per post social, mappe e colonne
  • Ruoli autore, redattore e amministratore, con revisione
  • Cronologia delle modifiche con ripristino
  • Pubblicazione programmata e articoli in evidenza
  • Note interne della redazione, con avviso all'autore
  • Azioni in blocco su più articoli insieme
  • Due persone sullo stesso articolo: blocco e avviso, nessuna modifica persa
  • Coautori nella firma e nelle pagine autore

SEO

  • Sitemap news, sitemap con immagini e feed RSS automatici
  • Schema.org: NewsArticle, Recipe, Review, VideoObject, Breadcrumb e autori
  • Indicizzazione rapida: Google Indexing API e IndexNow per Bing e gli altri motori
  • Link interni automatici tramite parole chiave
  • Anteprima su Google con avvisi su titolo e sommario
  • Vecchi indirizzi reindirizzati da soli quando cambi l'URL
  • Categorie e sottocategorie, con briciole di pane

Immagini

  • WebP in più misure: ogni dispositivo scarica quella giusta
  • Foto del telefono raddrizzate in automatico
  • Posizione GPS e metadati rimossi
  • Dimensioni sempre dichiarate: la pagina non salta
  • Libreria media con didascalie, crediti e ricerca
  • Gallerie di foto dentro gli articoli

Intelligenza artificiale

  • Dalle fonti di una notizia, una bozza già formattata
  • Titolo, sommario, tag e parole chiave per i link interni
  • Immagine in evidenza generata, se vuoi
  • Claude o GPT con la tua chiave: paghi solo quello che usi

Temi e pubblicità

  • Due temi, Classico e Moderno, con modalità chiara, scura o automatica
  • Pagina Aspetto: temi con anteprima, colore, logo e icona del sito
  • Menu, piè di pagina, social e note legali dal pannello
  • Annunci dopo il paragrafo che scegli, ads.txt dal pannello
  • Annunci tra le notizie in home e nelle categorie, e annuncio fisso sul telefono
  • Banner cookie con blocco preventivo, oppure iubenda o Cookiebot, e Google Consent Mode v2
  • Campi per Analytics, Tag Manager, Pixel e cookie

Gestione

  • Installazione con un comando e procedura guidata
  • Aggiornamenti firmati dal pannello, con un clic
  • Ripristino dei backup dal pannello, con copia di sicurezza automatica
  • Più siti sulla stessa VPS, ciascuno con il suo database
  • Processori x86 e ARM, su VPS e server dedicati
  • Cloudflare configurato da solo: cache e svuotamento mirato
  • File manager per immagini, documenti e temi
  • Backup ogni giorno su Wasabi, Backblaze, Hetzner, Amazon S3 o Cloudflare R2
  • Importazione da WordPress con categorie, autori e immagini

Gratis, e tutto nativo.

Quello che altrove richiede plugin premium o abbonamenti è già nel programma, e Presstatic non mette limiti a utenti, iscritti o notifiche. Paghi solo quello che scegli tu fuori da Presstatic: il server e, se la usi, la chiave dell'intelligenza artificiale. Ed è open source, con licenza GPL-3.0: il codice è su GitHub.

  • Page builder
  • Newsletter
  • Notifiche push illimitate
  • Commenti
  • Backup su S3
  • SEO per le news
  • Indicizzazione rapida
  • Verifica in due passaggi
Page builder

Componi home, testata e pagine trascinando i blocchi.

Sezioni, colonne e 29 widget, con l'anteprima vera del tuo tema. Quando pubblichi, Presstatic trasforma la composizione in HTML e CSS statici: ai lettori non arriva nessuno script dell'editor. Si lavora a tutto schermo, e titoli e testi si scrivono direttamente nell'anteprima, con un doppio clic.

  • Home, testata con menu, piè di pagina e pagine come «Chi siamo»
  • Stili diversi per computer, tablet e telefono, con l'anteprima alla larghezza vera
  • Apertura, griglie per categoria, ultime notizie, più letti, newsletter e spazi pubblicitari
  • Schede, fisarmonica, carosello e galleria senza una riga di JavaScript
  • Modelli di partenza, blocchi salvati da riusare, annulla e ripeti
  • Bozza e pubblicazione separate: il sito cambia solo quando premi Pubblica
Computer, tablet, telefono
admin.miosito.it/admin/builder
Il page builder a tutto schermo: i widget a sinistra, l'anteprima vera della home al centro, le impostazioni del blocco scelto a destra
Lighthouse 100
29widget pronti
3dispositivi, ognuno con i suoi stili
0script dell'editor sul sito
100su Lighthouse
Per i lettori

Commenti, newsletter, notifiche e dirette, senza rallentare niente.

Le funzioni che riportano i lettori sul giornale sono già dentro, gratis e senza limiti, e non caricano script di altre aziende: le pagine restano leggere come prima.

Commenti

Moderazione, risposte della redazione evidenziate e antispam, senza servizi esterni. Il modulo è HTML puro: nessun JavaScript per chi legge.

Newsletter

Iscrizione con doppia conferma, riepilogo automatico giornaliero o settimanale, disiscrizione con un clic. Nessuna piattaforma di newsletter da pagare: usi il server di posta che preferisci.

Notifiche push illimitate

Avvisi sul telefono o sul computer a ogni nuovo articolo, per un numero illimitato di iscritti. Le invia il tuo server: nessun servizio esterno da pagare, e lo script si scarica solo quando il lettore lo chiede.

I più letti

La classifica arriva da Google Analytics 4 ogni mezz'ora: in home, senza toccare il server a ogni visita.

Condivisione

WhatsApp, Facebook, X, Telegram, LinkedIn ed email con i loro colori. Sono semplici link: nessun tracciamento dei social.

Dirette minuto per minuto

Per cronaca, sport ed elezioni: ogni aggiornamento compare in cima con il suo orario, e chi legge lo vede arrivare senza ricaricare la pagina. Per Google ci sono i dati strutturati delle dirette (LiveBlogPosting), gli stessi delle grandi testate.

Moduli di contatto

Contatti, segnalazioni, richieste: componi i campi nel pannello e inserisci il modulo dove vuoi. I messaggi arrivano per email e restano nel pannello, con antispam senza captcha e consenso privacy se serve.

Tutto acceso, sempre 100

Con commenti, newsletter, notifiche e condivisione attivi, misurato su Lighthouse:

  • Prestazioni 100
  • Accessibilità 100
  • Pratiche consigliate 100
  • SEO 100
Benchmark

Numeri misurati, non dichiarati.

Tutte le misure vengono da script ripetibili, inclusi nel progetto. Server di prova: 1 core e 4 GB di RAM, archivio di 20.000 articoli da circa 5 KB ciascuno.

Perché abbiamo scelto SQLite

Prima di scegliere il database abbiamo confrontato SQLite e MariaDB sulle operazioni che Presstatic fa davvero: stesso server, stessi dati, driver in C per entrambi, impostazioni predefinite con scrittura sicura su disco. Per i tempi, la barra più corta è la migliore.

SQLiteMariaDB
OperazioneSQLiteMariaDBConfrontoPiù veloce
Lettura di tutti i 20.000 articoli337 ms418 msSQLite, 1,2×
Le 4 letture per pubblicare un articolo0,08 ms0,38 msSQLite, 4,7×
Ricerca di parole nei testi (prime 1.000 corrispondenze)29 ms129 msSQLite, 4,4×
Salvataggio con versione nella cronologia0,20 ms0,51 msSQLite, 2,5×
8 redattori che salvano nello stesso istante1.900 al s2.700 al sMariaDB, 1,4×
Memoria occupataquasi zero244 MBSQLite

SQLite è più veloce in quasi tutto, non occupa memoria per un servizio separato e si salva copiando un solo file. MariaDB vince solo quando molti redattori salvano nello stesso istante, perché scrive in parallelo: ma anche così SQLite regge 1.900 salvataggi al secondo, molti più di quanti ne faccia una redazione.

Rigenerazione completa del sito

Tutte le pagine riscritte da capo, per esempio dopo un cambio di tema. Misurato su Presstatic con 20.000 articoli, su 1 core.

20.000 articoli, 1 coreTempo
Lettura dal database (43 query)0,87 s
Prima volta, tutti i file nuovi14,9 s
Volte successive, pagine invariate5,5 s

La lettura dal database è una piccola parte del lavoro: il resto è composizione delle pagine e scrittura su disco. La prima volta, le versioni compresse in gzip e brotli si preparano in sottofondo nei minuti successivi, e intanto Nginx comprime al volo. Con più core la composizione si divide tra tutti.

SQLite, le operazioni di tutti i giorni

Tempo di ogni operazione con 20.000 articoli. Il 99° percentile è il caso lento: 99 operazioni su 100 sono più rapide.

OperazioneMediana95%99%
Articolo singolo0,013 ms0,017 ms0,031 ms
Home, ultimi 20 articoli0,079 ms0,098 ms0,109 ms
Categoria, 20 articoli0,083 ms0,103 ms0,115 ms
Articoli correlati0,019 ms0,024 ms0,038 ms
Salvataggio con cronologia0,19 ms0,30 ms0,69 ms

Curva di carico: quando la latenza comincia a salire

95% letture e 5% salvataggi, con una sola connessione condivisa come fa il pannello. Con un core il tetto arriva subito: da lì cresce solo l'attesa, senza un solo errore.

Latenza al 99° percentile, rispetto al massimo misurato
Operazioni in paralleloOperazioni al secondo99%AndamentoErrori
115.6030,34 ms0
216.1172,13 ms0
416.0164,75 ms0
813.8378,67 ms0
1615.65210,68 ms0
3214.51017,56 ms0
6415.32334,76 ms0

Scritture continue

1.442 salvataggi al secondo con due lettori in parallelo: il 99% sotto i 9,3 ms.

Arresto brusco

Programma interrotto di colpo durante i salvataggi: 5 prove su 5 con database integro e nessun dato confermato perso.

Backup a caldo

251 MB copiati in 0,93 s mentre la redazione salvava 50 volte al secondo, con copia integra.

Disco

Conferma di una scrittura sicura in 0,10 ms: circa 8.600 conferme al secondo.

WordPress contro Presstatic, con gzip e brotli

Stesso server, stessi 2.000 articoli, 50 connessioni contemporanee sulla home. Richieste come quelle di un browser: accettando solo gzip, o accettando brotli come fanno i browser moderni. WordPress 6.8.3 con il tema predefinito e nessun plugin, PHP 8.3 con PHP-FPM e MariaDB, con gzip e brotli al volo attivi. Nginx e Apache regolati per il carico, registro delle visite spento, wrk per 10 secondi; oltre i 2 secondi una richiesta conta come timeout. Server di prova da 1 core, senza HTTPS: contano i rapporti, non i valori assoluti.

WordPressPresstatic
Come viene servita la paginaCompressioneWordPressPresstaticPresstatic con CloudflareNativo: HTML in cacheDi serie Cloudflare non mette in cache l'HTML: Presstatic lo configura da soloDifferenza
Nginx, senza cachegzip22 richieste/s1,0 s di media, 181 timeout98.700 richieste/s0,4 ms di media, nessun timeoutpotenzialmente illimitateHTML servito dalla cache di Cloudflare, configurata da Presstatic: il limite è la sua rete, non il tuo servercirca 4.500 volte
Nginx, senza cachebrotli22 richieste/s1,1 s di media, 175 timeout98.785 richieste/s0,4 ms di media, nessun timeoutpotenzialmente illimitateHTML servito dalla cache di Cloudflare, configurata da Presstatic: il limite è la sua rete, non il tuo servercirca 4.500 volte
Nginx, con la cache FastCGI di Nginxgzip1.595 richieste/s31 ms di media: Nginx comprime la pagina in cache a ogni visita98.700 richieste/s0,4 ms di media: pagine già compressepotenzialmente illimitateHTML servito dalla cache di Cloudflare, configurata da Presstatic: il limite è la sua rete, non il tuo servercirca 60 volte
Nginx, con la cache FastCGI di Nginxbrotli394 richieste/s126 ms di media: brotli al volo costa ancora di più98.785 richieste/s0,4 ms di media: pagine già compressepotenzialmente illimitateHTML servito dalla cache di Cloudflare, configurata da Presstatic: il limite è la sua rete, non il tuo servercirca 250 volte
Apache, senza cachegzip22 richieste/s1,1 s di media, 177 timeout25.722 richieste/s2,4 ms di media, nessun timeoutpotenzialmente illimitateHTML servito dalla cache di Cloudflare, configurata da Presstatic: il limite è la sua rete, non il tuo servercirca 1.150 volte
Apache, senza cachebrotli21 richieste/s1,0 s di media, 176 timeout24.540 richieste/s2,6 ms di media, nessun timeoutpotenzialmente illimitateHTML servito dalla cache di Cloudflare, configurata da Presstatic: il limite è la sua rete, non il tuo servercirca 1.150 volte

Perché con la compressione WordPress rallenta e Presstatic accelera

WordPress con la cache FastCGI di Nginx

La cache conserva la pagina non compressa, da 94,7 KB, e Nginx deve comprimerla a ogni visita: comprimere costa molto più che inviare. Per questo si ferma a 1.595 richieste al secondo con gzip e a 400-550 con brotli, che comprime di più ma è ancora più lento.

Presstatic

Le versioni compresse vengono preparate una volta sola, quando pubblichi, e salvate accanto alla pagina: funzionano come una «cache» della compressione gzip e brotli, che non va mai rifatta finché la pagina non cambia. A ogni visita Nginx invia un file già pronto da circa 8 KB, senza nessun calcolo: circa 98.700 richieste al secondo.

La differenza sta in quando si comprime: WordPress a ogni visita, Presstatic una volta sola.

Cloudflare

Cloudflare, configurato da Presstatic, mette in cache anche l'HTML

Di serie Cloudflare mette in cache solo file come immagini, CSS e JavaScript: le pagine HTML le chiede ogni volta al tuo server. Presstatic, collegato al tuo account Cloudflare, crea da solo la regola che mette in cache anche l'HTML di tutto il sito, attiva la Tiered Cache e a ogni pubblicazione svuota solo le pagine cambiate. Così le pagine arrivano ai lettori direttamente dalla CDN di Cloudflare: nei test, il 100% delle richieste servito dalla cache, a cache calda. Con WordPress la stessa cosa va configurata a mano, con eccezioni per chi ha fatto l'accesso e per le pagine dinamiche.

Peso della home
gzipbrotli
WordPress21,7 KB16,7 KB
Presstatic8,9 KB8,2 KB
Sugli articoli, richieste al secondo
gzipbrotli
WordPress con cache2.212874
Presstatic97.76696.294
Come leggere i numeri
  • La colonna di Cloudflare viene dal test in produzione: 27,2 milioni di richieste in meno di due ore.
  • Tra una sessione di prova e l'altra lo stesso server varia di circa il 10%: si confrontano i numeri della stessa tabella.

Anche contro WordPress con Varnish

Varnish è la cache più veloce per WordPress: tiene le pagine in memoria e le comprime in gzip una volta sola, quando entrano in cache. L'abbiamo messo davanti allo stesso WordPress, sullo stesso server da 1 core, e abbiamo misurato Presstatic nella stessa sessione, con 50 connessioni dove non indicato e pagine in gzip per entrambi.

WordPress + VarnishPresstatic
ProvaWordPress + VarnishPresstaticPresstatic con CloudflareNativo: HTML in cacheDi serie Cloudflare non mette in cache l'HTML: Presstatic lo configura da soloDifferenza
Pagine in cache, home36.216 richieste/s3,1 ms di media (99%: 34 ms)73.934 richieste/s0,6 ms di media (99%: 1,4 ms)potenzialmente illimitatela home arriva dalla cache di Cloudflare: il limite è la sua rete, non la porta del tuo servercirca 2 volte
Pagine in cache, un articolo35.151 richieste/s3,9 ms di media (99%: 57 ms)70.288 richieste/s1,1 ms di media (99%: 2,8 ms)potenzialmente illimitateanche gli articoli escono dalla rete di Cloudflare, da oltre 330 cittàcirca 2 volte
200 connessioni insieme, home31.027 richieste/s130 ms di media, 99%: 1,4 s, 71 timeout72.992 richieste/s2,2 ms di media, 99%: 4,3 ms, nessun timeoutpotenzialmente illimitatepiù connessioni non pesano sul tuo server: le regge la rete di Cloudflarenessun timeout
Archivio: 2.000 articoli diversi, non ancora in cache19 richieste/s1,0 s di media, 154 timeout: ogni pagina torna su PHP58.707 richieste/s0,7 ms di media, nessun timeoutpotenzialmente illimitatedopo la prima visita ogni articolo resta nella cache di Cloudflare; la prima la serve Nginx dal discocirca 3.000 volte

Dove Varnish non arriva

Le pagine non in cache

Varnish è veloce solo con le pagine che ha già in memoria. La prima visita a un articolo, le pagine scadute, quelle svuotate dopo una pubblicazione e i vecchi articoli che Googlebot scansiona uno per uno tornano su PHP e database: circa 20 richieste al secondo.

Presstatic non ha pagine fredde

Ogni pagina dell'archivio è già un file pronto, compresso in gzip e brotli. La prima visita a un articolo di cinque anni fa costa come la home: 58.707 richieste al secondo su 2.000 articoli diversi. In più la versione gratuita di Varnish non supporta brotli, e con molte connessioni i tempi salgono oltre il secondo.

Oltre la porta del server

Varnish si ferma alla porta del server

Anche con la cache in memoria, ogni pagina esce dalla porta di rete del tuo server. Con una porta da 1 Gbit/s e pagine in gzip da 21,7 KB sono circa 5.800 pagine al secondo, per quanto veloce sia Varnish: le oltre 30.000 misurate qui passano solo perché la prova gira dentro la stessa macchina.

Presstatic con Cloudflare la supera

Con Cloudflare configurato da Presstatic le pagine escono dalla rete di Cloudflare, da oltre 330 città, e la porta del server smette di essere il limite: a parità di server servi molte più richieste e molti più lettori. Nel test in produzione, 27,2 milioni di richieste in meno di due ore. Anche senza Cloudflare, con pagine da 8,2 KB in brotli la stessa porta ne spedisce circa 15.300 al secondo.

Home, al crescere delle connessioni

Stessa prova con Nginx, con 10, 50 e 200 connessioni contemporanee, in gzip e in brotli: richieste al secondo e tempo medio di risposta.

Connessioni insiemeCompressioneWordPress senza cacheWordPress con cache FastCGIPresstaticPresstatic con CloudflareNativo: HTML in cacheDi serie Cloudflare non mette in cache l'HTML: Presstatic lo configura da solo
10gzip22 rich/s439 ms1.597 rich/s6,3 ms91.982 rich/s0,09 mspotenzialmente illimitateanche con 10 connessioni la pagina arriva dalla cache di Cloudflare
10brotli22 rich/s434 ms548 rich/s18 ms96.390 rich/s0,09 mspotenzialmente illimitateanche con 10 connessioni la pagina arriva dalla cache di Cloudflare
50gzip22 rich/s1,0 s, 181 timeout1.595 rich/s31 ms98.700 rich/s0,4 mspotenzialmente illimitateil tuo server non vede queste richieste
50brotli22 rich/s1,1 s, 175 timeout394 rich/s126 ms98.785 rich/s0,4 mspotenzialmente illimitateil tuo server non vede queste richieste
200gzip23 rich/s140 timeout1.489 rich/s133 ms89.304 rich/s1,8 ms (99%: 3,2 ms)potenzialmente illimitatepiù connessioni non pesano sul tuo server: il limite è la rete di Cloudflare
200brotli22 rich/s136 timeout552 rich/s354 ms89.136 rich/s1,7 ms (99%: 3,2 ms)potenzialmente illimitatepiù connessioni non pesano sul tuo server: il limite è la rete di Cloudflare

WordPress senza cache si ferma a circa 22 richieste al secondo per core, con qualsiasi web server e qualsiasi compressione: il limite è PHP. Con Apache, grazie alla configurazione inclusa che invia le pagine già compresse, Presstatic serve tra 24.000 e 31.000 richieste al secondo, ma con 200 connessioni i tempi arrivano a 1,6 s nel caso peggiore: per le pagine statiche Nginx è circa 4 volte più veloce ed è il server consigliato. Con Cloudflare davanti, nessuna di queste richieste arriva al server.

Sicurezza

Meno parti esposte, e quelle che restano sono protette.

Il sito dei lettori è fatto solo di file: non c'è codice da attaccare. Il pannello è stato sottoposto a revisioni di sicurezza, e ogni correzione ha un test automatico.

Password con Argon2

Il metodo raccomandato oggi, con limiti ai tentativi per indirizzo e per account.

Pannello separato

Su un suo indirizzo, protetto dalle richieste inviate da altri siti.

Ruoli precisi

Gli autori non pubblicano da soli e il loro testo viene ripulito da ogni codice.

Immagini ricodificate

Ogni foto viene riscritta da zero: niente file camuffati, niente metadati.

Aggiornamenti firmati

Firma Ed25519 legata alla versione: niente versioni false, niente ritorni indietro.

Installazione protetta

Un codice che conosce solo chi ha accesso al server; database leggibile solo dal servizio.

File manager confinato

Lavora solo nelle cartelle del sito e dei temi, e scarta dagli ZIP i percorsi pericolosi.

Origine protetta

Con uno script incluso, il sito pubblico accetta solo il traffico che passa da Cloudflare.

Verifica in due passaggi

Codice dall'app sul telefono e codici di recupero. Obbligatoria per redattori e amministratori, se lo decidi tu.

Script sotto controllo

Ogni pagina del pannello porta un lasciapassare nuovo: uno script infilato da fuori non partirebbe.

Limiti anti-abuso

Accessi, email di recupero e iscrizioni hanno un tetto per indirizzo e per account: niente raffiche.

Pannello nascosto

Commenti e newsletter passano dal sito: il pannello si chiude dietro Cloudflare e l'IP del server non si vede.

Installazione

Dal dominio al primo articolo, in sei passaggi.

Lo script fa il lavoro sul server, tutto il resto lo scegli dal browser. Nessun database da creare, nessun file di configurazione da modificare a mano.

Una VPS o un server dedicato: Ubuntu 22.04 o 24.04, Debian 12 o 13, x86 o ARM Un dominio Cloudflare gratuito, consigliato
  1. Cloudflare o il tuo registrar

    Crea tre record A

    Punta il dominio, www e admin all'indirizzo IP del server. Su Cloudflare lascia per ora la nuvola grigia, «Solo DNS»: durante l'installazione Let's Encrypt deve raggiungere direttamente il server per rilasciare il certificato HTTPS.

  2. Terminale

    Accedi al server

    Con SSH dal tuo computer, oppure con la console nel browser che trovi nel pannello del provider, come Hetzner, OVH, Aruba o DigitalOcean.

  3. Terminale

    Lancia il comando

    Metti il tuo dominio e la tua email. Lo script scarica Presstatic e ne verifica la firma, controlla il DNS, installa Nginx e il servizio e ottiene il certificato HTTPS gratuito.

  4. Browser

    Apri il link che compare alla fine

    Contiene un codice che conosce solo chi ha accesso al server: nessun altro può configurare il sito al posto tuo.

  5. Browser

    Completa l'installazione guidata

    Nome e indirizzo del sito, account amministratore, tema, colore, logo e sezioni; se vuoi, anche Cloudflare e le chiavi dell'intelligenza artificiale. Premi «Installa e metti online il sito»: Presstatic genera le pagine e ti porta nel pannello, già collegato.

  6. Cloudflare e terminale

    Accendi la nuvola arancione

    Su www e admin, con SSL/TLS in modalità «Full (strict)». Poi un ultimo comando fa accettare al server solo il traffico che passa da Cloudflare: chi scopre il suo IP non può aggirarla.

Sei pronto.

Il sito è online e sei già dentro al pannello: puoi scrivere il primo articolo.

  • Attiva la verifica in due passaggi, in Utenti
  • Collega Google e IndexNow in Indicizzazione rapida
  • Le versioni nuove arrivano dal pannello: «Aggiorna ora»

Provalo sul tuo giornale.

Presstatic è gratis e open source, con licenza GPL-3.0. Codice, guida d'installazione e versioni firmate sono su GitHub: un comando, e il tuo sito è online.

github.com/Presstatic/Presstatic