Panduan Viewport Meta Tag

Apa viewport meta tag melakukan, mengapa ini membuat responsive design berfungsi pada mobile, correct configuration, attribute reference, dan umum mistakes.

Pertama kali diterbitkan: 2 Jul 2026 · Terakhir diperbarui: 3 Agu 2026 · Lanjutan

viewport meta tag — <meta name="viewport" content="width=device-width, initial-scale=1"> — hints untuk browser untuk size layout viewport untuk device's width di CSS pixels alih-alih sebuah legacy ~980px fallback beberapa mobile browser gunakan. Tanpa ini, phones dapat render halaman di itu wider fallback dan shrink ini, producing tiny text, horizontal scroll, dan responsive breakpoints itu dapat tidak apply sebagai yang dimaksud. ini adalah tidak sebuah peringkat factor itself, tetapi -nya presence adalah satu dari hal Google documents sebagai indicating mobile-friendliness, dan -nya absence adalah sebuah classic mobile usability failure. tidak pernah force pengguna-scalable=Tidak atau sebuah restrictive maximum-scale — ini fails W3C's accessibility conformance aturan untuk zoom dan dapat lock out rendah-vision pengguna, though browser dapat override ini (iOS 10+ ignores ini oleh default). Test ini dengan Lighthouse atau PageSpeed Insights: Search Console's Mobile Usability report dan Mobile-Friendly Test adalah retired December 1, 2023.

TL;DR — viewport meta tag — <meta name="viewport" content="width=device-width, initial-scale=1"> — hints browser untuk size layout viewport untuk device’s width di CSS pixels alih-alih sebuah legacy ~980px fallback beberapa mobile browser gunakan, yang adalah apa lets responsive CSS media kueri evaluate terhadap device’s nyata width pada mobile. Missing atau misconfigured, ini adalah sebuah classic mobile usability failure (tiny text, horizontal scroll). ini adalah tidak sebuah peringkat factor — Google documents -nya presence sebagai satu hal -nya mobile-friendliness evaluation memeriksa untuk, dan Tidak lebih daripada itu. tidak pernah force user-scalable=no / restrictive maximum-scale: ini fails W3C’s ACT accessibility aturan untuk zoom, though browser overrides exist (iOS 10+ ignores ini oleh default). Google dan Bing merekomendasikan identical tag. Test dengan Lighthouse / PageSpeed Insights — Search Console’s Mobile Usability report dan Mobile-Friendly Test adalah retired December 1, 2023.

Bukti untuk klaim ini The viewport meta tag lets authors control viewport width and scaling so responsive layouts render at device width. Cakupan: Browser viewport behavior. Tingkat keyakinan: tinggi · Diverifikasi: MDN: Viewport meta tag Bukti untuk klaim ini Pages should not disable browser zoom because users must be able to enlarge content for accessibility. Cakupan: WCAG resize-text requirement and viewport guidance. Tingkat keyakinan: tinggi · Diverifikasi: W3C WAI: Understanding Resize Text

masalah ini solves: ~980px virtual viewport

untuk memahami tag Anda memiliki untuk memahami apa ini adalah overriding. Ketika mobile browser adalah baru, lack dari sebuah viewport tag dimaksudkan beberapa dari them akan fall back untuk sebuah fixed layout width dari roughly 980px dan render di itu size — sebuah deliberate accommodation so desktop-sized, pre-responsive situs tidak akan completely break pada early smartphones. browser lalu scaled hasil down untuk physical screen. MDN’s own framing: “If the site isn’t designed to work well on small viewports and this tag is omitted, some mobile browsers render the site using a fixed initial containing block width, typically 980px.” (terjemahan) “jika situs tidak designed untuk berfungsi well pada kecil viewports dan ini tag adalah omitted, beberapa mobile browser render situs menggunakan sebuah fixed awal containing block width, typically 980px.” — ini adalah sebuah browser-spesifik fallback, tidak sebuah universal spec constant.

consequence, di Google’s own kata: “Without a viewport meta tag, mobile devices render pages at typical desktop screen widths and then scale the pages down, making them difficult to read.” (terjemahan) “Tanpa sebuah viewport meta tag, mobile devices render halaman di typical desktop screen widths dan lalu scale halaman down, membuat them difficult untuk baca.” Anda mendapatkan unreadable text, forced pinch-zooming, dan horizontal scrolling — textbook symptoms dari sebuah halaman flagged “not mobile-friendly.” (terjemahan) “tidak mobile-friendly.”

Setting tag “lets you control the width and scaling of the viewport so that it’s sized correctly on all devices.” (terjemahan) “lets Anda control width dan scaling dari viewport so itu ini adalah sized correctly pada semua devices.”

Layout viewport vs. visual viewport (di bawah hood)

Dua “viewports” (terjemahan) “viewports” adalah di play, dan ini adalah worth mempertahankan them straight:

  • layout viewport adalah area halaman lays out ke dan itu fixed-position elements attach untuk. width=device-width sets ini untuk device’s screen width di CSS pixels.
  • visual viewport adalah apa pengguna adalah saat ini looking di — yang perubahan ketika mereka pinch-zoom. Zooming perubahan visual viewport tanpa mengubah layout viewport.

alasan ini penting untuk SEO dan CSS: Anda responsive media kueri (@media (max-width: 600px) dan friends) adalah evaluated terhadap layout viewport. jika layout viewport adalah stuck di sebuah legacy ~980px fallback karena ada Tidak viewport tag, sebuah phone dapat match Anda desktop breakpoints alih-alih Anda sempit ones. MDN puts ini plainly: “Tanpa it, Anda responsive design dengan breakpoints dan media queries mungkin tidak berfungsi sebagai yang dimaksud pada mobile browsers.” (terjemahan) “Tanpa ini, Anda responsive design dengan breakpoints dan media kueri dapat tidak berfungsi sebagai yang dimaksud pada mobile browser.” tag adalah apa membuat device-width layout viewport so Anda yang dimaksud breakpoints evaluate correctly.

Bukti untuk klaim ini Without an appropriate viewport hint, narrow responsive breakpoints may not match as intended against the wider virtual layout viewport; it is too absolute to say CSS media queries never fire. Cakupan: production HTML and HTTP responses Tingkat keyakinan: tinggi · Diverifikasi: Responsive web design

correct tag, dan di mana ini goes

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- ...the rest of your head... -->
</head>

Put ini tinggi di <head>, near charset, sebelum konten-dependent tags. ini adalah nilai Google, Bing, dan Lighthouse semua merekomendasikan — verbatim, ini adalah perbaiki Lighthouse itself suggests. jangan overthink nilai: width=device-width, awal-scale=1 adalah jawaban untuk essentially setiap responsive situs.

Attribute reference

content attribute adalah sebuah comma-separated list dari directives. MDN adalah canonical attribute-oleh-attribute reference; di sini’s apa setiap satu melakukan:

DirectiveApa ini melakukanNotes
widthControls (minimum) pixel width dari viewportsebuah seluruh angka 1–10000, atau special nilai device-width ( screen width di CSS pixels). gunakan device-width.
initial-scalezoom ratio antara device width dan viewport pada muatsebuah angka 0.0–10.0. gunakan 1.
minimum-scaleminimum zoom tingkat diizinkanharus menjadi ≤ maximum-scale. iOS 10+ ignores ini oleh default.
maximum-scalemaximum zoom-di diizinkanharus menjadi ≥ minimum-scale. iOS 10+ ignores ini oleh default. jangan restrict ini.
user-scalableApakah pengguna dapat zoom (yes/no, default yes)iOS 10+ ignores ini oleh default. Setting no adalah sebuah accessibility anti-pattern — leave ini.
interactive-widgetBagaimana interactive UI (e.g. virtual keyboards) memengaruhi viewportnilai: resizes-visual (default), resizes-content, overlays-content. Newer; sebagian besar SEO konten omits ini.
viewport-fitBagaimana viewport menangani display cutouts (notches)nilai: auto (default), contain (fits di dalam largest rectangle itu menghindari cutout), cover (fills display — pair dengan CSS env() safe-area-inset variables so konten tidak land di bawah cutout).

viewport-fit dan interactive-widget adalah keduanya browser-layout edge cases — display-cutout dan virtual-keyboard menangani, respectively — tidak SEO directives; sebagian besar SEO-focused guides skip them entirely.

sebuah kecil tetapi nyata gotcha dari Lighthouse’s own docs: setting initial-scale di bawah 1 dapat trigger sebuah legacy double-tap-untuk-zoom perilaku itu menambahkan interaction delay — lainnya alasan untuk stick dengan initial-scale=1 alih-alih getting clever.

tidak pernah disable zoom: user-scalable=no adalah sebuah anti-pattern

Anda’ll masih temukan user-scalable=no (atau maximum-scale=1) copy-pasted ke old theme boilerplate, biasanya dari sebuah developer siapa tidak ingin pinch-zoom “messing up” (terjemahan) “messing up” mereka layout. ini adalah wrong pada dua counts:

  1. ini fails web’s own accessibility conformance test untuk zoom, dan ini berfungsi terhadap WCAG’s intent. W3C’s ACT aturan “Meta viewport allows for zoom” (terjemahan) “Meta viewport memungkinkan untuk zoom” (aturan b4f0c3) applies untuk apa pun viewport tag itu sets user-scalable atau maximum-scale, dan -nya expectation adalah jelas: tag harus tidak set user-scalable=no, dan maximum-scale harus tidak menjadi set di bawah 2. ( aturan carries stated assumptions — ini tidak apply jika halaman memiliki Tidak terlihat konten, offers lainnya cara untuk resize text, atau tidak pernah perlu untuk reflow past sebuah 320×256 CSS-pixel area — tetapi sebuah typical responsive halaman tidak memenuhi itu exceptions.) Per MDN: “Disabling zooming capabilities oleh setting user-scalable untuk a value dari no mencegah orang experiencing low vision conditions dari menjadi able untuk baca dan understand halaman konten. Additionally, WCAG requires a minimum dari 2× scaling; namun, itu best practice adalah untuk enable a 5× zoom.” (terjemahan) “Disabling zooming capabilities oleh setting tidak terdefinisi untuk sebuah nilai dari tidak terdefinisi mencegah orang experiencing rendah vision conditions dari menjadi able untuk baca dan memahami halaman konten. Additionally, WCAG memerlukan sebuah minimum dari 2× scaling; namun, best practice adalah untuk enable sebuah 5× zoom.” Blocking zoom locks out tepat pengguna siapa perlu ini sebagian besar.
  2. ini adalah juga browser-spesifik, tidak universal. iOS Safari 10 dan kemudian ignore user-scalable=no dan restrictive maximum-scale oleh default — itu’s sebuah iOS override, tidak sebuah perubahan untuk ACT aturan atau untuk WCAG’s intent. So pada sebuah besar share dari mobile traffic setting accomplishes tidak ada apa pun, sementara pada browser itu melakukan masih honor ini (older Android WebViews, beberapa di-app browser) ini actively fails accessibility test di atas. Zero upside, nyata downside — dan jangan treat “iOS ignores it” (terjemahan) “iOS ignores ini” sebagai proof markup adalah accessible di mana-mana.
Bukti untuk klaim ini `user-scalable=no` and `maximum-scale` below 2 fail the cited ACT rule's expectation under its assumptions, and disabling zoom harms low-vision users; an automated ACT failure is not by itself a complete universal WCAG conformance determination. Cakupan: production HTML and HTTP responses Tingkat keyakinan: tinggi · Diverifikasi: Viewport meta tag

aturan adalah sederhana: jangan touch zoom. width=device-width, initial-scale=1 dan tidak ada apa pun else.

adalah ini sebuah peringkat factor?

menjadi precise di sini, karena sebuah lot dari SEO konten overstates ini. Di sini’s persis apa Google documents, dan di mana line untuk industry inference sits.

«What Google documents: the viewport tag is not a direct ranking factor. Google’s own supported-meta-tags doc says plainly that “presence of this tag indicates to Google that the page is mobile friendly” — that’s the whole documented claim: presence signals mobile-friendliness. Google doesn’t document the tag as scored, as a rendering guarantee, or as proof a page’s responsive design is actually good.

Bukti untuk klaim ini Google documents that viewport-meta presence indicates a page is mobile friendly, but that statement does not establish that the tag itself is a ranking factor, a display guarantee or sufficient evidence of responsive quality. Cakupan: production HTML and HTTP responses Tingkat keyakinan: tinggi · Diverifikasi: Meta tags and attributes that Google supports

» (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian empat puluh lima, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

Di mana practitioners connect dots (industry inference, tidak sebuah Google citation): sebuah missing atau misconfigured viewport tag adalah sebuah umum root penyebab dari mobile-usability failures (tiny text, horizontal scroll, unusable tap targets) itu SEOs umumnya memahami untuk degrade mobile pengalaman halaman. itu connection adalah reasonable dan widely held di industry, tetapi ini adalah sebuah practitioner inference tentang mengapa tag penting — tidak sesuatu Google’s docs state sebagai sebuah peringkat chain.

So honest framing: tag itself tidak scored, dan perbaiki ini karena sebuah halaman tanpa ini renders badly pada phones — tidak karena Google documents ini sebagai sebuah peringkat lever, direct atau indirect. pertahankan ini terpisah dari pengindeksan mobile-pertama too: itu’s sebuah distinct Google Search concept tentang yang versi dari Anda halaman Google primarily menggunakan untuk pengindeksan dan peringkat; viewport tag adalah tentang bagaimana itu mobile HTML renders di sebuah browser, penuh berhenti.

Bukti untuk klaim ini Mobile-first indexing means Google primarily uses the mobile content for indexing and ranking; it is a separate Google Search concept from the browser's viewport rendering contract. Cakupan: production HTML and HTTP responses Tingkat keyakinan: tinggi · Diverifikasi: Mobile-first indexing best practices

cara test ini — tooling changed di 2023

ini adalah di mana sebagian besar older guides adalah stale. pada December 1, 2023, Google retired Search Console’s Mobile Usability report, Mobile-Friendly Test alat, dan Mobile-Friendly Test API (announced April 2023, confirmed menyelesaikan itu December). Google’s reasoning adalah itu lainnya alat memiliki matured — “banyak other robust resources untuk evaluating mobile usability memiliki emerged, including Lighthouse dari Chrome.” (terjemahan) “banyak lainnya robust resources untuk evaluating mobile usability memiliki emerged, including Lighthouse dari Chrome.” So jika sebuah tutorial tells Anda untuk open Search Console → Mobile Usability untuk periksa Anda viewport, itu report Tidak lebih lama ada.

Layer ini memeriksa alih-alih relying pada satu alat: konfirmasi tag ada di mentah disajikan HTML (tidak hanya setelah JavaScript berjalan), konfirmasi Anda responsive breakpoints sebenarnya apply di phone widths, test zooming untuk 200% tanpa layout breaking ( resize perilaku WCAG’s intent adalah dibangun sekitar), dan spot-periksa di lebih daripada satu browser — sebuah iOS Safari-hanya periksa dapat hide sebuah zoom-restriction bug itu Android atau di-app browser masih enforce.

Anda saat ini toolkit:

  • Lighthouse (di Chrome DevTools). relevant audit secara historis baca “Melakukan tidak memiliki a <meta name="viewport"> tag dengan width atau initial-scale” (terjemahan) “melakukan tidak memiliki sebuah tidak terdefinisi tag dengan tidak terdefinisi atau tidak terdefinisi” — ini fails unless <head> memiliki sebuah meta name="viewport" milik siapa content mencakup width=. sebagai dari Lighthouse 13 ini adalah folded ke “Optimize viewport untuk mobile” (terjemahan) “mengoptimalkan viewport untuk mobile” insight.
  • PageSpeed Insights — berjalan Lighthouse plus field Core Web Vitals data.
  • Chrome DevTools device toolbar — emulate phone dimensions dan eyeball ini.
  • Bing’s Mobile Friendliness Test alat — Bing memeriksa viewport dan zoom-control configuration too, dan recommends yang sama tag Google melakukan.
  • View sumber / nyata-device periksa — sometimes fastest test adalah untuk hanya look di <head> pada Anda phone.

umum mistakes

  • Tidak tag di semua (“viewport tidak set” (terjemahan) “viewport tidak set”) — halaman renders di legacy desktop-ish width dan shrinks.
  • sebuah hardcoded pixel width like width=1024 alih-alih device-width — sebuah tag ada, tetapi ini masih tidak match halaman untuk device. Lighthouse dan nyata mobile-friendliness keduanya ingin sebuah usable width= nilai, tidak hanya apa pun tag.
  • initial-scale di bawah 1 — dapat trigger legacy double-tap-zoom delay.
  • user-scalable=no / restrictive maximum-scale — copy-pasted dari old boilerplate; accessibility anti-pattern, ignored pada iOS anyway.

untuk di mana ini sits di lebih luas mobile berfungsi — configuration, konten parity, speed — see mobile SEO hub, mobile SEO checklist, dan mobile-pertama pengindeksan. untuk tag itself sebagai bagian dari wider pada-halaman tag family, meta tags cluster adalah map.

Tambahkan catatan pakar

Sematkan kutipan pakar

Orang baru? Buat profilnya yang belum diklaim di /admin/experts/ → Sematkan kutipan pakar terlebih dahulu.