Cos’è il meta viewport e come configurarlo
Il meta viewport è il tag HTML che indica al browser mobile come dimensionare e scalare una pagina rispetto allo schermo del dispositivo; si inserisce nell’head con name="viewport" e si configura di norma con width=device-width, initial-scale=1.0 per renderla leggibile senza bisogno di zoom.
Meta viewport in sintesi
- Cos’è: un tag che va nell’head della pagina e dice al browser mobile come scalare il contenuto.
- Sintassi minima:
<meta name="viewport" content="width=device-width, initial-scale=1.0">. - Parametri chiave:
widtheinitial-scalecontrollano larghezza e zoom iniziale;minimum-scale,maximum-scale,user-scalableeviewport-fitgestiscono i casi particolari. - Senza il tag: il browser mobile emula uno schermo desktop e rimpicciolisce tutto il contenuto.
- Errore frequente: fissare
widthcon un valore in pixel invece didevice-width. - Dove verificarlo: nel codice sorgente della pagina, con gli strumenti per sviluppatori del browser.
Cos’è il meta viewport e perché il browser ne ha bisogno

Il viewport è l’area visibile di una pagina all’interno del browser: cambia con il dispositivo e si riduce o si allarga quando l’utente ridimensiona la finestra. Il tag meta viewport serve a collegare questa area alle dimensioni reali dello schermo, ed è alla base del responsive web design.
Senza il tag, nella documentazione tecnica di riferimento per sviluppatori è indicato che i browser mobile tendono a renderizzare la pagina come se fosse su un monitor desktop, con una larghezza fissa intorno ai 980 pixel, per poi rimpicciolirla per intero nello schermo reale. Il risultato è un testo minuscolo e la necessità di allargare con due dita per leggere qualunque riga.
Il tag risolve questo problema in due modi: allinea la larghezza dell’area visibile a quella reale del dispositivo e permette alle media query CSS di funzionare sulla dimensione vera dello schermo, non su quella virtuale da 980px. Senza questo allineamento, un layout responsive scritto con breakpoint su schermi medi e piccoli non si attiva mai su mobile, perché il browser continua a ragionare come se fosse su un monitor largo.
Il meta viewport è uno dei meta tag che si inseriscono nell’head del documento HTML, insieme a title, description e charset: se ti serve la lista completa di quei tag e la funzione di ciascuno, l’ho trattata nella pagina sui meta tag.
Sintassi del tag e dove inserirlo
Il tag va scritto una sola volta, dentro l’<head> del documento HTML, prima di qualunque foglio di stile che contenga media query:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
La maggior parte dei CMS e dei temi moderni lo inserisce già nel template: prima di aggiungerlo a mano conviene controllare il codice sorgente della pagina, perché un secondo tag con valori diversi genera comportamenti incoerenti a seconda del browser.
Se gestisci un sito con template separati per desktop e mobile, il tag va verificato in entrambi: non è raro trovarlo presente in uno e dimenticato nell’altro, soprattutto dopo una migrazione o un cambio tema.
I parametri width e initial-scale
width imposta la larghezza dell’area visibile: con device-width corrisponde alla larghezza dello schermo in pixel CSS, che varia da dispositivo a dispositivo. È anche possibile fissare un numero, per esempio width=500, ma così la pagina mantiene quella larghezza anche su schermi più stretti o più larghi, con l’effetto opposto a quello che il responsive design cerca di ottenere. Nella pratica consiglio device-width in ogni caso, salvo situazioni molto specifiche in cui un layout a larghezza fissa è una scelta deliberata.
initial-scale fissa il livello di zoom al primo caricamento della pagina: il valore va da 0.1 a 10, con 1.0 come equivalente del 100%, cioè nessun ingrandimento né riduzione. Un valore diverso da 1.0 fa partire la pagina già zoomata, il che quasi sempre peggiora la prima impressione su mobile invece di migliorarla.
Questi due parametri insieme coprono la configurazione che risolve la gran parte dei problemi di layout su mobile: la combinazione width=device-width, initial-scale=1.0 resta la base corretta per praticamente ogni sito orientato al pubblico, prima di valutare eventuali eccezioni.
Gli altri parametri: zoom, scala e notch
minimum-scale e maximum-scale limitano il livello di zoom che l’utente può applicare manualmente: il valore di default è 0.1 per il minimo e 10 per il massimo, con l’indicazione che un maximum-scale inferiore a 3 va contro le linee guida di accessibilità.
user-scalable decide se lo zoom manuale è permesso del tutto: sconsiglio di impostarlo su no, perché impedisce a chi ha difficoltà visive di ingrandire il testo, in contrasto con le indicazioni WCAG. Chi deve leggere un sito ingrandendolo spesso usa anche uno screen reader o altre tecnologie assistive, e bloccare lo zoom peggiora l’esperienza per quella fascia di utenti senza alcun vantaggio reale per gli altri.
viewport-fit gestisce il comportamento della pagina rispetto alle aree non rettangolari dello schermo, come il notch o la Dynamic Island: i valori possibili sono auto, contain e cover. Da una certa versione in poi, Safari su iOS ignora gli attributi legati allo zoom nel tag viewport, quindi su quel browser minimum-scale e maximum-scale non hanno sempre effetto pratico.
Quale configurazione scegliere per il tuo sito

Se il tuo sito è un sito o un e-commerce con layout responsive standard, la configurazione corretta resta width=device-width, initial-scale=1.0, senza altri parametri: è quella che risolve la maggior parte dei casi.
Se gestisci una web app o una pagina pensata per funzionare a schermo intero su dispositivi con notch, aggiungi viewport-fit=cover e gestisci lo spazio dei bordi con le proprietà CSS safe-area-inset, altrimenti i contenuti rischiano di finire sotto la fotocamera o la barra di sistema.
| Parametro | Valore consigliato | Effetto | Quando valutare un’eccezione |
|---|---|---|---|
| width | device-width | adatta la larghezza del viewport al dispositivo | layout a larghezza fissa deliberata, caso raro |
| initial-scale | 1.0 | nessuno zoom al caricamento | pagina che deve aprirsi già su una porzione specifica |
| user-scalable | valore di default (zoom permesso) | consente lo zoom manuale | nessuna, per rispettare l’accessibilità |
| viewport-fit | contain o cover | gestisce notch e aree non rettangolari | pagine a schermo intero stile app |
Errori comuni nella configurazione del meta viewport
Capita spesso che un sito abbia due template, uno per desktop e uno per mobile, e che il tag viewport sia presente solo nel primo: il controllo del codice sorgente su entrambe le versioni evita questo tipo di svista.
- Width fissato in pixel invece di device-width, che blocca il layout su una misura che non si adatta a nessun dispositivo reale.
- User-scalable=no oppure maximum-scale=1, che impediscono lo zoom e penalizzano chi ne ha bisogno per leggere.
- Tag duplicato nell’head con valori diversi, che genera un comportamento incoerente tra browser diversi.
- Initial-scale omesso del tutto, lasciando al browser il comportamento di default anziché uno zoom dichiarato.
- Tag copiato da un altro sito senza verificare che il resto del CSS sia davvero responsive: il viewport abilita le media query già presenti nel foglio di stile.
La mia posizione è che il tag viewport, da solo, non garantisce un sito mobile-friendly: lo abilita soltanto. Un CSS senza media query o con elementi a larghezza fissa resta fuori scala anche con il tag configurato alla perfezione.
Come verificare che il viewport sia configurato bene
- Apri il codice sorgente della pagina o gli strumenti per sviluppatori del browser (F12) e cerca il tag con
name="viewport"nell’head. - Se non lo trovi, verifica nel template del CMS o chiedi a chi gestisce il sito di aggiungerlo manualmente nell’head.
- Lancia un controllo con Lighthouse, integrato negli strumenti per sviluppatori di Chrome, oppure con Google PageSpeed Insights: entrambi segnalano un viewport assente o mal configurato tra i controlli di base.
- Da console JavaScript digita
window.innerWidthper leggere la larghezza attuale del viewport e confrontarla con quella attesa sul dispositivo che stai testando.
Per leggere le dimensioni del viewport in tempo reale mentre ridimensioni la finestra, le stesse console mostrano un overlay con larghezza e altezza aggiornate a ogni resize: utile per debug di layout, meno per decidere la configurazione del tag, che resta una scelta a monte.
Perché il viewport conta per il posizionamento mobile-first
Google valuta le pagine con un criterio di indicizzazione mobile-first: guarda prima la versione mobile del sito per decidere come posizionarlo in ricerca. Un viewport configurato male produce testo illeggibile senza zoom, ed è esattamente il tipo di esperienza che un criterio di valutazione orientato al mobile penalizza, anche se il tag in sé non è un fattore di ranking diretto.
In un sondaggio citato in una guida di settore, quasi tre web designer su quattro indicano il design non responsive tra le cause principali per cui un utente abbandona un sito: il viewport è la condizione tecnica che rende possibile evitarlo, non la soluzione completa da sola.
Chi lavora con framework CSS moderni trova spesso il tag già incluso nei template di partenza: resta comunque utile sapere cosa fa, perché un progetto personalizzato o un tema vecchio possono averlo dimenticato o mal configurato.
Domande frequenti
Cos’è il meta viewport?
È il tag HTML che indica al browser mobile come scalare una pagina rispetto allo schermo del dispositivo. Va inserito nell’head con name="viewport" e di norma con content="width=device-width, initial-scale=1.0", per evitare che il browser emuli un desktop e rimpicciolisca il contenuto.
Qual è la sintassi corretta del tag viewport?
La forma standard è <meta name="viewport" content="width=device-width, initial-scale=1.0">, inserita una sola volta nell’head del documento. Aggiungere altri parametri, come viewport-fit, significa separarli con una virgola dentro lo stesso attributo content.
Cosa significa width=device-width, initial-scale=1?
Significa che la larghezza del viewport corrisponde a quella reale dello schermo del dispositivo e che la pagina si apre senza zoom iniziale, al 100% della sua scala naturale. È la combinazione che rende attive le media query scritte per schermi mobili.
Perché il sito senza il tag viewport appare rimpicciolito su mobile?
Perché il browser mobile, in assenza del tag, renderizza la pagina come se fosse su un monitor desktop largo circa 980 pixel e poi la rimpicciolisce per intero nello schermo reale. Il testo risulta minuscolo e l’utente deve allargare con le dita per leggerlo.
È sconsigliato usare user-scalable=no?
Sì, lo sconsiglio sempre: impedisce lo zoom manuale e va contro le linee guida WCAG sull’accessibilità, penalizzando in particolare chi ha difficoltà visive. Il vantaggio percepito in termini di controllo del layout non compensa il danno sull’usabilità per quella fascia di utenti.
Come faccio a sapere se il mio sito ha già il tag viewport configurato?
Controlla il codice sorgente della pagina cercando name="viewport" nell’head, oppure lancia un controllo con Lighthouse o Google PageSpeed Insights, che segnalano un viewport assente o mal configurato tra i controlli automatici di base.
Il viewport del meta tag è lo stesso concetto del viewport in AutoCAD o in un motore come Godot?
No, sono significati diversi legati allo stesso termine. In AutoCAD il viewport è l’area di disegno tecnico con una propria scala; in un motore come Godot è l’area della scena inquadrata dalla telecamera di gioco. Nessuno dei due riguarda il tag HTML di cui parla questa pagina.
Il meta viewport incide sul posizionamento SEO?
Google valuta le pagine con un criterio mobile-first, e un viewport mal configurato produce un’esperienza mobile scadente che un criterio orientato al mobile tende a penalizzare indirettamente tramite gli altri segnali di qualità.