Join our community of websites already using SEOJuice to automate the boring SEO work.
See what our customers say and learn about sustainable SEO that drives long-term growth.
Explore the blog →TL;DR: Il meta tag viewport dice ai browser mobili di rendere una pagina alla larghezza del dispositivo invece di trattarla come una pagina desktop “approssimativamente” da 980 pixel. Inserisci <meta name="viewport" content="width=device-width, initial-scale=1"> all’interno del <head> della pagina, lascia lo zoom utente abilitato e verifica l’HTML effettivamente consegnato con Lighthouse e con un rendering mobile reale. Non è un fattore di ranking “standalone”, ma è un prerequisito affinché la versione mobile indicizzata da Google funzioni correttamente.
| Controllo | Valore consigliato | Cosa impedisce |
|---|---|---|
| Viewport tag | Presente dentro <head> | Il browser usa un viewport a larghezza desktop |
| Larghezza | width=device-width | Il CSS responsive valuta contro la larghezza errata della pagina |
| Scala iniziale | initial-scale=1 | La pagina si apre artificialmente zoomata dentro o fuori |
| Zoom utente | Abilitato | Gli utenti con bassa visione non riescono ad ingrandire la pagina |
| Larghezza viewport fissa | Evitare width=980 o width=1024 | Le dimensioni desktop bloccano il reflow responsive |

Se un audit segnala che il meta tag viewport manca, correggilo. È una delle poche avvertenze di technical SEO con una soluzione breve e stabile:
<meta name="viewport" content="width=device-width, initial-scale=1">
Inserisci quella riga dentro il <head> della pagina. Serve a dire al browser di dimensionare il layout viewport alla larghezza del dispositivo e di aprire la pagina con una scala 1:1.
Il tag non rende “responsive” un sito che non lo è. Contenitori a larghezza fissa, immagini troppo grandi, tabelle che sforano e pulsanti sovrapposti richiedono comunque modifiche CSS o del template. Il tag fa una cosa sola: fornisce alle tue regole responsive il viewport corretto su cui operare.
Questa distinzione evita debug inutili. Mi è capitato di vedere breakpoint riscritti prima che qualcuno controllasse questa singola riga (ho commesso lo stesso errore). Una media query pensata per uno schermo da 390 pixel non può attivarsi come previsto se il browser “crede” che il layout sia largo circa 980 pixel.
Fondamenta, non teatro di ottimizzazione.
Il viewport è l’area attraverso cui un browser visualizza la pagina. I browser mobili, inoltre, devono gestire vecchi siti pensati solo per desktop: senza un’istruzione viewport esplicita, usano un comportamento di compatibilità invece di presumere che ogni pagina sia responsive.
Il tag è una singola riga e questa è la configurazione che vuoi su ogni pagina:
<!-- In the head of every page -->
<meta name="viewport" content="width=device-width, initial-scale=1">
“I browser mobili rendono la pagina a una larghezza dello schermo desktop (di solito circa 980px, anche se varia tra dispositivi) e poi provano a far sembrare il contenuto migliore aumentando le dimensioni dei font e scalando la pagina per farla stare sullo schermo.”
Questo è esattamente il comportamento che Google descrive nella sua guida web.dev sulla responsive design in assenza del tag. Il browser impagina la pagina su una tela dimensionata come desktop, poi riduce il risultato per farlo stare sul telefono. Il testo diventa minuscolo, i controlli risultano troppo compressi e gli utenti potrebbero dover zoomare e fare pan.
Ecco perché una dichiarazione viewport mancante può far sembrare “rotto” anche un CSS altrimenti sensato. Le regole mobile ci sono, ma il browser le valuta contro un viewport di layout molto largo (coerente dal punto di vista tecnico, inutile dal punto di vista visivo).
La dichiarazione standard cambia due parti di questo processo.
MDN Web Docs definisce la proprietà width come il controllo della larghezza minima in pixel del viewport. Accetta un intero positivo tra 1 e 10000 oppure il valore speciale device-width, che rappresenta lo schermo del dispositivo in pixel CSS.
In pratica, width=device-width significa: usa la larghezza reale del telefono, non una larghezza desktop inventata. Su un dispositivo di circa 390 pixel CSS, il layout ora dispone di circa 390 pixel. Media query, griglie fluide e navigazione responsive possono reagire a quella larghezza.
Non costringe ogni singolo elemento a stare dentro. Una tabella a larghezza fissa da 700 pixel può comunque sforare su un viewport da 390 pixel. Il tag corregge l’assunzione del browser; il CSS resta responsabile del contenuto.
MDN definisce initial-scale come il rapporto tra la larghezza del dispositivo e la dimensione del viewport. Impostandolo a 1, stabilisci la relazione normale 1:1 tra pixel CSS e pixel indipendenti dal dispositivo quando la pagina si apre per la prima volta.
Niente zoom iniziale artificiale. Niente canvas desktop rimpicciolito.
Non ridurre questo valore per mascherare testo piccolo o un contenitore che non sta. Tratti il sintomo rimpicciolendo l’intera interfaccia. Tieni initial-scale=1 e poi ripara la regola di tipografia, larghezza o overflow che sta causando il problema.
Google non tratta la pagina mobile come una semplice anteprima secondaria. Nella sua documentazione ufficiale su mobile-first indexing si legge:
“Google usa la versione mobile dei contenuti di un sito, eseguita con lo smartphone agent, per l’indicizzazione e il ranking. Questo si chiama mobile-first indexing.”
La stessa documentazione è ancora più diretta: “Per l’indicizzazione viene usato solo il contenuto mostrato sul sito mobile.” Se su telefono una pagina si rende come un layout desktop in miniatura, quel problema esiste nella versione che Google usa per indicizzazione e ranking.
Un viewport tag mancante o errato può generare testo minuscolo, aree di tap troppo strette, navigazione scomoda e un layout che richiede pinch-and-zoom. Inoltre impedisce al CSS responsive di funzionare contro il viewport mobile per cui l’autore lo aveva pensato.
Detto questo, il tag in sé non è un fattore di ranking standalone documentato. Aggiungerlo non è una scorciatoia segreta per posizioni più alte. È un prerequisito per consegnare una pagina mobile usabile, proprio come fondamenta valide sono un prerequisito per una costruzione stabile (forse un paragone “grandioso” per una singola riga HTML, ma accurato).
Anche la connessione con i Core Web Vitals richiede buon senso. Un viewport tag mancante non provoca automaticamente un punteggio scadente di Cumulative Layout Shift. Una resa non corretta può compromettere l’usabilità mobile e contribuire a risultati deboli sull’esperienza della pagina, ma le metriche specifiche vanno comunque misurate. Non dedurre un singolo Core Web Vital da presenza o assenza di un tag.
La configurazione viewport, quindi, rientra in una più ampia mobile SEO checklist, insieme ai controlli misurati sui Core Web Vitals. È anche uno degli elementi di on-site SEO di base che devono restare coerenti tra i template.
Questa è la criticità prioritaria perché cambia l’assunzione di base del browser sulla larghezza della pagina. Senza la dichiarazione, i browser mobili rendono spesso alla larghezza desktop di circa 980 pixel, anche se il comportamento preciso varia in base al dispositivo, prima di scalare il risultato.
Il segnale visivo è una pagina desktop completa ma in miniatura. Le colonne vengono schiacciate invece che impilate. La navigazione c’è, ma è difficile da tappare. Il testo esiste “tecnicamente”, ma è scomodo da leggere.
Prima di riscrivere media query, ispeziona il sorgente consegnato e cerca name="viewport". Se manca, aggiungi questa dichiarazione al <head> condiviso:
<meta name="viewport" content="width=device-width, initial-scale=1">
Ricarica la pagina in modalità device mobile. Il layout può cambiare in modo significativo perché il browser sta finalmente valutando il CSS contro la larghezza prevista. A volte questa modifica mette in evidenza immagini, tabelle o contenitori troppo grandi. Il nuovo viewport non ha creato questi difetti: la resa precedente “zoomata fuori” li nascondeva.
Rimuovi user-scalable=no e restrizioni come maximum-scale=1. Tentano di impedire agli utenti di ingrandire la pagina.
“Disabilitare le capacità di zoom impostando user-scalable su no impedisce alle persone con condizioni di bassa visione di leggere e comprendere i contenuti della pagina. Inoltre, WCAG richiede almeno una scala 2×; tuttavia, la best practice è abilitare uno zoom 5×.”
Questo avviso arriva da MDN. Non è un caso teorico: l’HTTP Archive Web Almanac ha rilevato che il 28% delle home mobile nella sua base dati 2022 ha provato a disabilitare lo zoom. Circa una persona su quattro (28%, per evitare errori di arrotondamento) ha pubblicato una restrizione di accessibilità che non avrebbe dovuto esserci.
Questa impostazione compare spesso perché qualcuno voleva che l’interfaccia mobile fosse percepita come troppo controllata, soprattutto su form o navigazione. Però bloccare una funzione del browser non è una “riparazione” per un CSS instabile. Lascia lo zoom disponibile e sistema il layout che ha reso lo zoom poco comodo.
Non basta un singolo controllo. L’ispezione del sorgente conferma che la dichiarazione esiste. L’emulazione su dispositivo fa emergere i problemi visivi. Lighthouse valuta la configurazione di base. L’output renderizzato da Google conferma ciò che ha ricevuto il suo crawler smartphone.
Apri il sorgente della pagina live o il pannello DevTools Elements e cerca name="viewport". Verifica che l’elemento compaia dentro <head> e che contenga:
width=device-width, initial-scale=1
Controlla l’URL live, non solo un componente locale, un campo del CMS o un template di head condiviso. Il template può essere corretto, mentre un percorso specifico, una versione in cache o un tipo di pagina alternativo invia HTML diverso.
Ci siamo cascati anche noi: la partial dell’head conteneva la dichiarazione, ma una delle route renderizzate non l’ha mantenuta. In un team di due persone viene voglia di fidarsi del componente condiviso perché sai chi lo ha scritto (i sospetti sono solo due). Però l’HTML di produzione vota per davvero.
Chrome for Developers spiega che Lighthouse verifica un meta tag viewport in <head> il cui contenuto include width=. L’audit fallisce anche quando initial-scale è sotto 1.
PageSpeed Insights può eseguire il controllo su un URL live. Seleziona il risultato mobile. Il pass conferma la dichiarazione base del viewport; non certifica che funzioni tutto il design responsive.
Apri Chrome DevTools e attiva/disattiva la device toolbar con Cmd+Shift+M o Ctrl+Shift+M. Testa più di una larghezza e ricarica dopo aver attivato la modalità device.
Un viewport mancante spesso si manifesta come una pagina desktop rimpicciolita. Dopo la correzione, il contenuto dovrebbe riorganizzarsi per il viewport stretto. Controlla navigazione, form, banner cookie, immagini, tabelle, heading, media embedded e link lunghi. Sono più probabili da mostrare overflow rispetto a una hero section curata.
Lighthouse può confermare che un tag esista. Non può dirti che una tabella prezzi richiede lo scrolling orizzontale o che un menu copre il pulsante di checkout. La dichiarazione imposta l’ambiente di test; non valuta tutto ciò che contiene.
In Google Search Console, apri Ispezione URL, seleziona Test live URL e rivedi l’HTML renderizzato e lo screenshot. Verifica che contenuti importanti restino presenti e accessibili nella resa mobile.
Uso questo come conferma, non come sostituto dei test nel browser. Uno screenshot statico è utile per i guasti grossolani, ma ci credo meno per diagnosticare navigazione “sticky”, ritardi di interazione o overflow che compare solo dopo l’input (gli screenshot sono pessimi strumenti di debug).
La modifica del codice spesso richiede meno tempo della lettura dell’avviso dell’audit. La validazione è il vero lavoro. Se il viewport corretto mette in evidenza un layout rotto, indaga su CSS e dimensionamento dei contenuti invece di inventarti un altro valore di viewport per nasconderlo.
Su tutti i siti che gestiamo tramite SEOJuice, le dichiarazioni viewport mancanti o bloccanti per lo zoom sono tra gli alert mobile ricorrenti: un problema di una riga, facile da sistemare una volta e altrettanto facile da reintrodurre durante la ricostruzione di un template. Il nostro free SEO audit controlla la configurazione viewport insieme ad altri problemi on-page e mobile. Usalo se vuoi far emergere regressioni “silenziose” in automatico, invece di aprire Lighthouse manualmente per ogni URL.
È un elemento meta dentro il <head> della pagina che dice al browser come dimensionare e scalare inizialmente il layout per il dispositivo. La dichiarazione standard è <meta name="viewport" content="width=device-width, initial-scale=1">.
width=device-width fa sì che il layout viewport corrisponda alla larghezza dello schermo del dispositivo in pixel CSS, permettendo alle regole responsive di riorganizzare la pagina. initial-scale=1 la apre con una scala 1:1 invece di farla zoomare dentro o fuori in modo artificiale.
Non è documentato come fattore di ranking standalone. Controlla il modo in cui la pagina mobile viene renderizzata, mentre Google usa la versione mobile dei contenuti di un sito per indicizzazione e ranking. Trattalo come un prerequisito tecnico per l’usabilità mobile, non come un boost di ranking diretto.
In genere i browser mobili lo rendono a una larghezza dello schermo desktop di circa 980 pixel, poi riducono il risultato per farlo stare sul telefono. Gli utenti vedono un layout desktop minuscolo e il CSS responsive non opera sul viewport stretto che lo sviluppatore aveva previsto.
No. Questi valori possono impedire agli utenti di fare zoom. MDN identifica lo zoom disabilitato come un problema di accessibilità e specifica che WCAG richiede almeno una scala 2×, mentre consentire uno zoom 5× è una best practice. Tieni lo zoom abilitato.
Non da solo. Imposta il viewport mobile corretto, ma tabelle, immagini, embed o contenitori a larghezza fissa possono comunque sforare. Se lo scrolling orizzontale resta anche dopo l’aggiunta del tag, ispeziona l’elemento che supera il viewport e correggine il CSS.
Ispeziona il <head> della pagina live, esegui Lighthouse o PageSpeed Insights in modalità mobile e testa la pagina renderizzata in modalità device di Chrome. Per gli URL importanti, usa l’Ispezione URL in Search Console per rivedere l’output renderizzato dello smartphone di Googlebot come conferma finale.
Return the translated content inno credit card required