Dati GPS nelle foto: quali file pubblica WordPress per le immagini piccole e come rimuoverli
Una foto della festa d'estate nel tuo giardino può contenere le coordinate di casa tua. WordPress non sempre le rimuove: le foto fino a 2.560 pixel vengono servite come l'originale caricato, e quando è il server a ridimensionarle con Imagick, anche le versioni ridotte conservano i dati. Lo abbiamo misurato su WordPress 7.1.3, file per file.
Fotocamere e telefoni scrivono in un file immagine più dell'immagine: marca e modello, ora dello scatto, esposizione e, se la localizzazione è attiva, il luogo dello scatto come latitudine e longitudine. Tutto questo si trova nel blocco EXIF, all'inizio del file. Chi carica la foto carica anche il blocco.
WordPress non mostra queste informazioni da nessuna parte. Nel database salva fotocamera, apertura, tempo di esposizione e ora dello scatto, e le coordinate non sono tra i campi che legge. È una rassicurazione prematura, perché le coordinate sono nel file, e il file arriva a ogni visitatore.
La falla di cui parla questo articolo c'era anche nel nostro plugin per gallerie. Fino alla versione 1.2.5 Heckgalerie puliva il file a grandezza piena solo quando WordPress lo aveva creato da sé, per esempio come -scaled per le foto grandi. Per questo le foto piccole uscivano con il GPS, per esempio nella lightbox, e sui server con Imagick anche le dimensioni intermedie. La versione 1.2.6 corregge entrambe le cose. Per questo articolo abbiamo prima misurato cosa pubblica WordPress senza alcun plugin.
Come abbiamo misurato
WordPress 7.1.3 con PHP 8.3 in WordPress Playground, il 12 ottobre 2026. La foto di prova è un JPEG generato da noi con un blocco EXIF: marca della fotocamera, modello, ora dello scatto e coordinate GPS ad Amburgo. L'abbiamo caricata con la stessa elaborazione lato server che avviene quando si carica nella libreria media, in due dimensioni: 1.600 × 1.200 pixel, sotto la soglia, e 4.000 × 3.000 pixel. Poi abbiamo letto ogni file della cartella dei caricamenti due volte, con la funzione PHP exif_read_data e con un nostro lettore che percorre il blocco EXIF byte per byte. Entrambi hanno dato lo stesso risultato per ogni file.
Una nota sull'editor di immagini. WordPress elabora le immagini con l'estensione PHP GD oppure con Imagick, e sceglie Imagick quando sono disponibili entrambi. In Playground la scelta cade su GD, perché lì l'estensione Imagick non riporta alcun numero di versione e non supera il controllo di WordPress. Per la colonna Imagick abbiamo quindi forzato l'editor Imagick di WordPress stesso, saltando solo quel controllo. Il calcolo l'ha fatto ImageMagick 7.1.1.
Cosa pubblica WordPress
| File | con GD | con Imagick |
|---|---|---|
| Foto piccola (1.600 px), grandezza piena: l'originale | GPS | GPS |
| Foto piccola, cinque dimensioni intermedie | pulito | GPS |
Foto grande (4.000 px), -scaled a 2.560 px | pulito | GPS |
| Foto grande, sei dimensioni intermedie | pulito | GPS |
| Foto grande, originale a 4.000 px (sta accanto, senza link nell'HTML) | GPS | GPS |
GPS significa che latitudine e longitudine erano nel file senza modifiche. Pulito significa che non c'era più alcun blocco EXIF.
La prima riga è il cuore di questo articolo. Se il lato lungo di una foto non supera i 2.560 pixel, WordPress non crea una versione ridotta con il suffisso -scaled. Il file a grandezza piena è allora la foto così come è stata caricata, qualunque sia l'editor. Nel codice la soglia si chiama big_image_size_threshold ed è impostata di serie a 2.560. Una foto da 12 megapixel (4.032 × 3.024) sta sopra, mentre una ridotta o ritagliata prima del caricamento può stare sotto. Se i metadati sopravvivono a questa riduzione dipende dal programma.
La seconda scoperta sta nella colonna Imagick. L'editor Imagick di WordPress rimuove sì i profili durante il ridimensionamento, ma ne esclude espressamente cinque: icc e icm per i colori, iptc per il diritto d'autore, xmp per i diritti d'uso ed exif per l'orientamento. Il GPS si trova nel blocco EXIF, quindi resta in ogni dimensione. Il filtro image_strip_meta si limita ad attivare o disattivare questa pulizia. Abbiamo misurato entrambi i casi, con lo stesso risultato. GD scarta comunque i profili: lo dice il codice sorgente di WordPress, ed è quello che abbiamo visto nella misurazione.
Con GD abbiamo trovato un'eccezione: una foto piccola che sta dritta solo grazie a un'istruzione di rotazione nel suo EXIF viene ruotata da WordPress al caricamento e salvata di nuovo come -rotated. Quella versione era pulita. Anche qui l'originale resta accanto.
image_strip_meta non restituisce false. Quindi per questa via le dimensioni intermedie non hanno GPS nemmeno sui server con Imagick. L'originale l'editor lo carica senza modifiche, quindi per le foto piccole non cambia nulla. Questa via non l'abbiamo misurata, l'abbiamo letta nel codice sorgente.Dove compare l'originale sul tuo sito
Un originale nella cartella dei caricamenti sarebbe un problema a metà se nulla vi puntasse. Con la foto piccola WordPress vi punta in diversi punti, senza che nessuno scelga di proposito la dimensione reale. Abbiamo misurato l'HTML che WordPress genera per un blocco immagine:
- srcset: Anche se inserisci l'immagine più piccola, per esempio larga 1.024 pixel, WordPress indica nello
srcsetl'originale come versione da 1.600 pixel. Fino a 2.048 pixel di larghezza vi include la grandezza piena (filtromax_srcset_image_width). Quale file scarica il browser dipende dalla larghezza dello schermo e dalla densità di pixel. Come WordPress imposta losrcsete le dimensioni delle immagini lo spieghiamo nell'articolo sul caricamento differito in WordPress. - Ingrandisci facendo clic: La lightbox del blocco immagine carica il file a grandezza piena, quindi, per la foto piccola, l'originale.
- Link al file media: Sia in un blocco immagine sia in una galleria, il link porta alla grandezza piena.
- Dimensione reale: Chi inserisce l'immagine così incorpora direttamente l'originale.
Con la foto grande, lo srcset elencava solo dimensioni intermedie fino a 2.048 pixel, e la lightbox puntava al file -scaled. Nell'HTML WordPress non mette da nessuna parte un link all'originale da 4.000 pixel. Però si trova nella stessa cartella, e il suo indirizzo è quello del file -scaled senza il suffisso. Chi conosce l'uno conosce entrambi. Il nome del file lo fornisce persino WordPress stesso: l'API REST pubblica sotto /wp-json/wp/v2/media lo indica nel campo original_image, nella nostra misurazione anche ai visitatori non connessi.
Cosa cambia Heckgalerie 1.2.6
Heckgalerie è il nostro plugin per gallerie nella directory di WordPress. Ha il filtro EXIF dalla versione 1.0.0. Il filtro vale per ogni JPEG che entra nella libreria media, non solo per le immagini delle gallerie, ed è attivo di serie. La versione 1.2.6 è nella directory dal 12 ottobre 2026. Il nostro confronto tra le alternative a NextGEN Gallery mostra in cosa Heckgalerie si distingue dagli altri plugin per gallerie.
Se una foto sta sotto la soglia, Heckgalerie ora mette accanto all'originale una copia pulita con il suffisso -web e la rende il file a grandezza piena, come WordPress fa altrimenti con -scaled. Da quel momento lo srcset, la lightbox del blocco immagine, le gallerie di Heckgalerie e le immagini inserite di nuovo puntano alla copia. Il file -scaled e tutte le dimensioni intermedie vengono puliti sul posto, anche sui server il cui editor si porta dietro i metadati.
Abbiamo ripetuto la stessa misurazione con il pacchetto della directory di Heckgalerie 1.2.6, con GD e con Imagick. Dopo, nessun file servito conteneva più il GPS. La via del browser descritta nel riquadro sull'editor a blocchi non l'abbiamo misurata con Heckgalerie. La copia della foto piccola pesava 309 byte meno dell'originale: esattamente il blocco EXIF e un commento che GD aveva scritto creando la foto di prova. I dati dell'immagine che seguono erano identici byte per byte. Heckgalerie quindi non ricalcola nulla, si limita a tralasciare le sezioni di metadati.
Cosa resta e cosa no è scritto nel codice sorgente. Restano il profilo colore e il marcatore Adobe, senza il quale le immagini CMYK mostrano colori sbagliati. Vengono rimossi EXIF, XMP, IPTC e i commenti, più le immagini di anteprima e secondarie che alcuni telefoni aggiungono dietro la foto e che possono avere dati GPS propri.
Ci sono tre limiti:
- Solo JPEG. PNG e WebP passano invariati.
- L'originale resta. Heckgalerie non tocca il file caricato. Resta nella cartella dei caricamenti, per la foto piccola con il nome senza
-web. Per i nuovi caricamenti, l'HTML della pagina non vi rimanda più. L'API REST però ne indica ancora il nome nel campooriginal_image, e chiunque conosca l'indirizzo può ancora scaricarlo. - Si può disattivare. L'interruttore si trova nelle impostazioni di Heckgalerie. Se vuoi conservare i metadati nei file serviti, disattivalo.
Foto già caricate: cosa ottiene la rigenerazione delle miniature
Le foto caricate prima della versione 1.2.6 vengono pulite da Heckgalerie appena le loro miniature vengono rigenerate, per esempio con wp media regenerate. Lo abbiamo riprodotto con una foto da 1.600 pixel inserita prima dell'attivazione in cinque articoli: una volta a dimensione reale, una volta larga 1.024 pixel e tre volte larga 1.024 pixel con link al file media, come blocco immagine, in un blocco Galleria e nell'editor classico.
Dopo la rigenerazione, l'immagine inserita più piccola e senza link mostrava nello srcset la copia pulita senza che nessuno modificasse l'articolo, perché WordPress calcola lo srcset solo al momento della visualizzazione. L'immagine a dimensione reale e i tre link puntavano ancora all'originale con il GPS, perché il loro indirizzo è fisso nell'articolo. Il changelog lo dice per le immagini a dimensione reale, ma non cita i link. Il rimedio: inserire di nuovo l'immagine o la galleria, oppure reimpostare il link. Da quel momento l'indirizzo del file media è quello della copia, e nel nostro test le immagini inserite di nuovo puntavano lì.
Questi articoli li trovi con la ricerca nell'elenco degli articoli o delle pagine, che cerca anche nel contenuto. Digita il nome del file originale, per esempio foto.jpg. Nel nostro test così ha trovato l'immagine a dimensione reale e i tre link, e ha escluso l'immagine più piccola senza link. La ricerca di size-full, la classe che WordPress aggiunge alle immagini a dimensione reale sia nell'editor a blocchi sia in quello classico, trova queste immagini per tutte le foto in una volta, ma non i link. Entrambe le ricerche coprono solo articoli e pagine: le immagini nei widget o nei template dell'editor del sito così non compaiono.
Senza Heckgalerie: verificare e agire
Quale editor è attivo?
In Strumenti → Salute del sito, scheda Informazioni, il campo Editor attivo della sezione Gestione media indica quale editor di immagini è in uso: WP_Image_Editor_Imagick o WP_Image_Editor_GD. Con Imagick vale la colonna di destra della tabella, con la riserva del riquadro sull'editor a blocchi.
Verificare un file
Apri una foto del tuo sito a grandezza piena, dalla lightbox o dal link al file media, e salvala. In Windows, con clic destro sul file, poi Proprietà e la scheda Dettagli vedi se c'è una sezione GPS con latitudine e longitudine. Il sistema di proprietà di Windows, da cui legge questa scheda, ha restituito le coordinate della nostra foto di prova e nulla per le dimensioni intermedie della prova con GD. Se però davanti al tuo sito c'è una CDN o un ottimizzatore di immagini, così verifichi ciò che consegna lui, non il file sul server. Per i file sul server usa la riga della sezione successiva.
Trovare tutti i file in una volta
Con WP-CLI, una sola riga elenca tutti i JPEG della cartella dei caricamenti che contengono coordinate. Richiede l'estensione PHP exif:
wp eval 'foreach ( new RecursiveIteratorIterator( new RecursiveDirectoryIterator( wp_get_upload_dir()["basedir"] ) ) as $f ) { $x = preg_match( "/\.jpe?g$/i", $f ) ? @exif_read_data( (string) $f, "GPS" ) : false; if ( ! empty( $x["GPSLatitude"] ) ) { echo $f, PHP_EOL; } }'
Nel nostro test con 26 file ha elencato esattamente gli otto con GPS: l'originale di una foto piccola, l'originale di una grande dietro -scaled e una foto caricata con Imagick insieme alle sue cinque dimensioni intermedie.
Agire
Pulire prima di caricare. Solo così le coordinate non arrivano mai sul server. In Windows: clic destro, Proprietà, scheda Dettagli e, in basso, il link per rimuovere proprietà e informazioni personali, con l'opzione di creare una copia senza tutte le proprietà possibili. Poi verifica la copia come descritto sopra. Sul telefono si può impostare la fotocamera in modo che non salvi la posizione.
Sui server con Imagick, preferire GD. Un filtro in un piccolo plugin tuo o nel functions.php di un tema child mette GD davanti, e Imagick resta disponibile per i formati che GD non gestisce:
add_filter( 'wp_image_editors', function () {
return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
} );
Le dimensioni esistenti diventano pulite solo quando rigeneri le miniature, così lo abbiamo misurato. Per gli originali e per le foto piccole a grandezza piena il cambio non fa nulla. Non aiuta nemmeno con le foto in formato HEIC, come le salvano alcuni telefoni: GD non sa leggere l'HEIC, quindi secondo il codice sorgente WordPress continua a elaborarle con Imagick. E GD scarta anche i profili colore: le foto in uno spazio colore diverso da sRGB possono apparire un po' diverse nelle dimensioni intermedie.
Pulire i file esistenti. Ciò che trova la riga WP-CLI qui sopra si può pulire direttamente sul server con uno strumento come ExifTool, dopo un backup. Rimuovi solo i dati GPS, per esempio con exiftool -gps:all= -overwrite_original. Senza -overwrite_original, ExifTool lascia accanto a ogni file una copia che termina con _original, e quella copia contiene ancora le coordinate. Non cancellare gli originali né gli altri loro dati: secondo il codice sorgente, WordPress calcola le nuove dimensioni dall'originale e le raddrizza secondo l'istruzione di rotazione nell'EXIF.
Servire foto senza coordinate
Heckgalerie rimuove EXIF e GPS dai file JPEG che WordPress pubblica per i nuovi caricamenti, e dalla versione 1.2.6 anche dalle foto fino a 2.560 pixel. Gratis nella directory di WordPress, con il filtro attivo di serie.
Domande frequenti
WordPress rimuove i dati GPS durante il caricamento?
Dall'originale no, e per le foto fino a 2.560 pixel sul lato lungo l'originale è proprio il file che WordPress serve a grandezza piena. Quando è il server a creare le versioni ridotte, per esempio caricando nella libreria media, i dati spariscono da queste solo con GD. Con Imagick sono rimasti in tutte le dimensioni nella nostra misurazione, anche nel file scaled. Misurato su WordPress 7.1.3 il 12 ottobre 2026.
Il filtro image_strip_meta aiuta contro il GPS nelle immagini?
Sul server no. Lì il filtro decide solo se l'editor Imagick di WordPress rimuove i profili durante il ridimensionamento, e l'editor esclude espressamente il profilo EXIF, che contiene le coordinate. Abbiamo misurato con il filtro attivo e disattivo, ed entrambe le volte tutte le dimensioni intermedie contenevano il GPS. GD ignora il filtro, perché scarta comunque i profili. Quando è l'editor a blocchi a ridimensionare nel browser, da WordPress 7.1, secondo il codice sorgente il filtro decide se resta solo il profilo colore, l'impostazione predefinita, o tutti i metadati. Se il filtro restituisce false, anche le dimensioni ridotte nel browser conservano il GPS.
Come scopro se le foto del mio sito contengono coordinate?
Apri una foto a grandezza piena, dalla lightbox o dal link al file media, e salvala. In Windows, con clic destro, Proprietà e la scheda Dettagli vedi se il file contiene latitudine e longitudine. Per l'intera cartella dei caricamenti, l'articolo riporta una riga per WP-CLI che elenca tutti i JPEG con GPS.
Heckgalerie rimuove il GPS anche dall'originale?
No, l'originale caricato resta intatto nella cartella dei caricamenti. Heckgalerie pulisce le versioni che WordPress crea e, per le foto fino a 2.560 pixel, crea una copia pulita che WordPress da quel momento usa come grandezza piena. Per i nuovi caricamenti, l'HTML della pagina non rimanda più all'originale, ma l'API REST pubblica continua a indicarne il nome del file nel campo original_image. Se non vuoi le coordinate nemmeno sul server, rimuovile prima di caricare la foto.
Cosa succede alle immagini già inserite negli articoli?
Con Heckgalerie, dopo aver rigenerato le miniature, le immagini inserite in una dimensione più piccola della dimensione reale puntano da sole alla copia pulita nel loro srcset, perché WordPress calcola lo srcset a ogni visualizzazione. Per le foto fino a 2.560 pixel, le immagini a dimensione reale e i link al file media, anche nel blocco Galleria, mantengono l'indirizzo dell'originale, perché è fisso nell'articolo. Vanno inserite o collegate un'altra volta. Una ricerca del nome del file originale nell'elenco degli articoli trova entrambi i casi.