Free SEO Tool · No Signup Required

Viewport Meta Tag Checker

Read the viewport tag a page actually serves: whether it sets width=device-width and initial-scale, whether it appears more than once, and whether it stops visitors pinch-zooming into small print. One URL, one fetch, and the verdict right here.

https://

Read-only. One fetch of the page from our server, and nothing is written to your site.

  • No signup, no email
  • Same result every run
  • Blocked zoom flagged
  • Duplicate tags counted
  • Any public URL
  • Free, no daily cap
What we checked

5 rows, one URL. One GET of the page as VerandBot/1.0, redirects followed, 12 second timeout, the served HTML only, no browser render. We count every meta element named viewport, then split the first one's content on commas (and semicolons) into properties and read width, initial-scale, maximum-scale and user-scalable.

How the verdict is read

No tag, more than one tag, a fixed numeric width, no width and no initial-scale either, or blocked zoom is a fail. Zoom counts as blocked when user-scalable is no or 0, or maximum-scale is 1 or less. A missing width beside an initial-scale, a missing or non-1 initial-scale, and a maximum-scale between 1 and 2 (which the W3C's test rule fails) are marked review.

What it cannot see

A tag added by JavaScript after load. Any tag after the first: only the first one's value is read, although every one is counted. Anything past the first 100,000 characters of HTML. The whole document is scanned, so a tag inside an HTML comment or a script counts. Whether the layout really fits a phone is not tested: CSS, wide images and horizontal scroll need a render. minimum-scale and viewport-fit appear in the value shown but are not graded, and whether a given browser honours a zoom block is up to the browser.

About this tool

How the Viewport Meta Tag Checker reads your page.

One fetch, one tag, four properties. The card is the tool in motion on an example page, looped, and each step lights up while the card is doing it.

01

One request, the served HTML

The tool fetches the URL you typed as VerandBot, follows redirects to the page that answers, and reads the HTML the server sent. Nothing is rendered, so a tag that only JavaScript adds later is not there to find.

02

Every viewport tag is counted

Each meta element named viewport is found and counted. One is the goal. Two is a fail on its own, because the value we read and the value a phone applies may not be the same one.

03

The value becomes properties

The content string is split into its parts: is width set to device-width, is initial-scale 1, and is anything stopping a visitor from zooming in.

04

The standard tag to copy

When a row fails or needs review, the card shows the one-line tag that fixes every row at once. The endpoint returns no fix text for this check; that line is written by the page, and labelled so.

The viewport tag, explained

What the meta viewport tag does, and why blocking zoom is the costly mistake.

One line in the head decides how wide a page is on a phone and whether a visitor may enlarge it. Here is what each part of it does, the errors that turn up on real sites, and where Google's old mobile test went.

What the tag does

A phone's screen is a few hundred CSS pixels wide, and most of the web was built for screens three or four times wider. When mobile browsers arrived, they solved that by pretending: with no instruction from the page, they lay it out at a desktop width and shrink the result to fit the screen. When we loaded a page with no viewport tag in Chrome's mobile emulation at a 390-pixel phone width, the page was laid out 980 pixels wide. Text arrives at a third of its intended size, and the visitor has to pinch and pan to read anything.

The viewport meta tag is how a page opts out of that. It sits in the <head>, written as <meta name="viewport" content="...">, and tells the browser how wide the layout should be and how zoomed in it should start. A responsive stylesheet depends on it: media queries measure the layout width, so on a page without the tag they see 980 pixels and serve the desktop layout to every phone. That is why the tag is the first thing to check when a page with a perfectly good mobile design still looks tiny on a phone.

The standard value

Almost every page wants the same line, the one MDN and web.dev both give:

<meta name="viewport" content="width=device-width, initial-scale=1">

width=device-width sets the layout width to the screen's width in CSS pixels, so a 390-pixel phone gets a 390-pixel layout and your media queries fire. initial-scale=1 says to open the page at 100 percent, neither zoomed in nor out. Nothing else is needed, and in particular nothing that limits zoom. Anything added to that line should have a reason you can name.

Each property, and what this checker does with it

The content value is a comma-separated list of name and value pairs. These are the ones that turn up in practice:

PropertyTypical valueWhat it does, and how it is graded here
widthdevice-widthThe layout width. device-width matches the screen; a number fixes it, so width=1024 lays a 1024-pixel page out on every phone. Graded: a number fails; missing is a fail, or a review when initial-scale is set.
initial-scale1The zoom level the page opens at. 1 is 100 percent. Graded: missing, or anything other than 1, is marked for review.
maximum-scaleunsetHow far a visitor may zoom in. At 1 or below, they cannot zoom in at all. Graded: 1 or less fails as blocked zoom; between 1 and 2 is marked for review.
user-scalableunsetWhether zooming is allowed at all. no or 0 switches it off. Graded: either value fails as blocked zoom.
minimum-scaleunsetHow far a visitor may zoom out. Rarely useful. Shown in the raw value, not graded.
viewport-fitcoverWhether the page may draw under a phone's notch and rounded corners. Shown in the raw value, not graded.

One detail worth knowing: in the same Chrome emulation, a tag carrying only initial-scale=1, with no width at all, still produced a 390-pixel layout. The browser derived the width from the scale. That is why this checker fails a fixed number but marks a missing width for review when initial-scale is there, and why the standard line sets both anyway: it states the intent in the way every reference and audit tool expects to read it.

Blocking zoom is an accessibility problem

The two properties that limit zoom, user-scalable=no and a low maximum-scale, are the ones that cause real harm. A visitor with low vision, or anyone reading a phone in sunlight, enlarges text by pinching. Take that away and small print stays small.

The Web Content Accessibility Guidelines cover this under Success Criterion 1.4.4, Resize Text, at Level AA: "Except for captions and images of text, text can be resized without assistive technology up to 200 percent without loss of content or functionality." The W3C's own test rule for that criterion, "Meta viewport allows for zoom", fails a tag with user-scalable=no or a maximum-scale below 2. The open-source axe-core engine applies the same two tests and maps them to 1.4.4. This checker is slightly more lenient on the second: it counts zoom as blocked at a maximum-scale of 1 or less, where the visitor cannot enlarge the page at all, and marks anything between 1 and 2 for review rather than passing it silently.

Be precise about the effect. The W3C rule itself notes that most modern mobile browsers either ignore the zoom limit by default or offer an accessibility setting that overrides it, so on many phones a visitor can still pinch. The tag is still a failure in every accessibility audit that tests it, and it is still the page telling the browser to stop people enlarging the text. For a firm whose pages carry disclosures, fee tables or risk statements in small type, that is the wrong instruction to be giving. Developer tools such as webhint and axe-core already flag it; it is less often explained to the people who own the words in that small print.

Common errors

  • No tag at all. Older themes, hand-built landing pages and some email-to-web exports ship without one. The page renders at desktop width on every phone.
  • A fixed width. width=1024 or width=980, left over from a site designed before responsive layouts. In our emulation test width=1024 produced a 1024-pixel layout on a 390-pixel screen.
  • Two viewport tags. Usually a theme's tag plus one added by a plugin or a tag manager. They can disagree. When we loaded a page with a device-width tag followed by a width=1200 tag, Chrome applied the second and laid the page out 1200 pixels wide; reversed, it applied the device-width one. This checker reads the first tag's value, so with two it may be reporting the one a phone ignores. It fails the page on the count alone for that reason. Keep exactly one.
  • user-scalable=no copied from an app template. Web-app starter kits set it to make a site feel like a native app. On a content site it does nothing useful and blocks zoom.
  • maximum-scale=1 to stop form zoom. iPhones zoom in when a visitor taps a form field whose text is under 16 pixels, and capping the scale is a common way to suppress that. The fix that does not block zoom is a 16-pixel font size on inputs.
  • Semicolons instead of commas. width=device-width; initial-scale=1 is common. Chrome still applied it in our test but logged an error, "';' is not a valid key-value pair separator. Please use ',' instead." This checker accepts either separator, so it will not flag it; use commas.
  • initial-scale other than 1. A value like 0.5 opens the page zoomed out, which reproduces the tiny-text problem the tag exists to solve.
  • A spelling slip. width=device width with a space, or device_width, is not recognised, so the page falls back to whatever the browser decides.

What Lighthouse checks, and where the Mobile-Friendly Test went

Google retired its Mobile-Friendly Test, the test's API and the Search Console Mobile Usability report on 1 December 2023, and pointed site owners to Lighthouse instead. Many pages that rank for a mobile friendly test still link to a tool that no longer exists. Lighthouse's viewport audit, as web.dev documents it, looks for a viewport meta tag in the head, a content attribute on it, and width= inside that attribute. It is a presence check. The zoom question is asked in Lighthouse's accessibility section and in engines like axe-core, not in the viewport audit itself.

This checker is not a whole-page mobile test either, and it does not claim to be. It reads one tag, precisely. Text size, tap-target spacing, content wider than the screen and layout shifts all need the page rendered on a phone-sized screen, which Lighthouse and Chrome DevTools' device mode do. Use this to confirm the tag is right, and a render to confirm the layout that depends on it.

viewport-fit=cover and notched phones

Phones with a notch or rounded corners draw a page inside a safe rectangle by default, leaving bands at the edges. Adding viewport-fit=cover lets the page fill the whole screen, and in exchange the stylesheet has to keep text and buttons clear of the notch using the env(safe-area-inset-top) family of CSS values. It is a design choice for full-bleed layouts, not a fix, and a site that adds it without the padding rules can put its navigation under the camera cut-out. This checker shows it in the tag's value and leaves it ungraded for that reason.

What a good tag looks like

One tag, in the head, near the top: width=device-width, initial-scale=1, separated by a comma, with no user-scalable and no maximum-scale. Add viewport-fit=cover only if the design has been built for it. Then check again after any theme update, plugin install or tag-manager change, because those are how a second tag arrives.

Why this one

Why choose Verand's Viewport Meta Tag Checker?

Six things that are true of this tool, each one backed by a line in the code that runs it.

No signup, no email wall

The request carries a URL and nothing else. There is no account, no session and no database behind the tool, so there is nothing for us to keep about you.

Reads the value, not just the tag

A presence check passes a tag that blocks zoom. This one splits the content value into its properties and reports the width, the starting scale, the zoom limit and how many viewport tags the page carries.

Deterministic

The tag is read by a fixed parser with fixed thresholds. No model reads it, so the same page gives the same answer every time.

Built on the product's page audit

The fetch and the missing-tag check are the ones Verand's deep crawl runs on every page of every customer site. The property read is added on top for this page, and the card says which is which.

Names what it cannot see

No render, so no tag added by JavaScript and no verdict on the layout itself. Only the first tag's value is read. The card says so beside the result rather than in a footnote.

$0, no daily cap

Each run is one page fetch with no paid render behind it, so it is never metered. The one limit is a courtesy to the sites being fetched: 20 checks a minute per visitor.

Questions

Frequently Asked Questions About the Viewport Meta Tag Checker

What the tag is, what a pass looks like, and the two properties to leave out.

What is the viewport meta tag?

A meta element in the page's head, named viewport, that tells mobile browsers how wide to lay the page out and how zoomed in to open it. Without it, phones lay the page out at a desktop width and shrink it to fit: in our test in Chrome's mobile emulation, a page with no tag was laid out 980 pixels wide on a 390-pixel screen. With width=device-width, the layout matches the screen and a responsive stylesheet's media queries work as designed.

What does a passing viewport tag look like?

Exactly one tag named viewport whose content is width=device-width, initial-scale=1, with no user-scalable=no and no maximum-scale of 1 or less. That passes every row this checker grades. Adding viewport-fit=cover does not change the verdict; it is shown in the value and left ungraded because it is a design choice rather than an error.

Does the viewport tag affect Google rankings?

Google has not published the tag as a ranking factor, and this page will not claim it is one. What Google does document is mobile-first indexing: it crawls and indexes pages with a smartphone crawler, so the version of the page that counts is the one a phone gets. A page without the tag is laid out at desktop width on that phone, which is a poor page for the people Google sends, whatever the ranking effect.

Is Google's Mobile-Friendly Test still available?

No. Google retired the Mobile-Friendly Test, its API and the Search Console Mobile Usability report on 1 December 2023 and points site owners to Lighthouse. This checker is not a replacement mobile friendly checker: it reads the viewport tag and nothing else. For text size, tap targets and content wider than the screen, run Lighthouse or Chrome DevTools' device mode, which render the page.

Should I use user-scalable=no or maximum-scale=1?

No, neither. Both stop visitors enlarging the page, which fails the W3C's test rule for WCAG 1.4.4, Resize Text; that rule fails user-scalable=no and any maximum-scale below 2. Many modern mobile browsers override the limit, but the instruction is still wrong for anyone who needs larger text. If maximum-scale=1 was added to stop iPhones zooming into form fields, give inputs a font size of at least 16 pixels instead.

What happens if a page has two viewport tags?

The browser picks one, and it may not be the one you expect. In our test in Chrome's mobile emulation, the later tag won: a device-width tag followed by a width=1200 tag gave a 1200-pixel layout. We did not test Safari. This checker counts every tag but reads only the first one's value, so it fails the page on the count alone. Find where the second comes from, usually a plugin or a tag manager, and remove it.

After the check

Let every visitor zoom in. Then give them something worth reading closely.

A correct viewport tag makes a page readable on a phone, not worth reading. Verand writes articles from your own expertise and credentials, so both Google and the AI assistants have something of yours to name. It then tracks where you rank and where ChatGPT, Gemini, Perplexity, Claude and Google's AI answers mention you, and gates every draft so a claim your regulator would not allow never publishes.

Verand

Content built to rank in Google and get cited by ChatGPTPerplexityGeminiClaude, with every claim checked before it goes live.

support@verand.ai

© 2026 Verand. All rights reserved. TermsPrivacyAI policyAccessibilitySecurity
Not legal advice. Compliance packs are researched from the regulators' own text and tested by Verand, not reviewed by a licensed attorney.