Skip to content

Test your website now

Free, no card. We read only public pages.

Run free audit →

Mobile readiness · High severity

Viewport Meta Tag Missing: Declare the Intended Mobile Layout

Fix a missing or empty viewport declaration. Set a suitable responsive baseline, preserve zoom, and test actual layout rather than presence-only metadata.

Published · Updated

What the check tests

Check
mobile.viewport.present - Viewport meta tag present
Passes when
Every page needs <meta name="viewport" content="width=device-width, initial-scale=1">.
Scope
graded on every page crawled
Severity
High
Fix effort
small - under an hour
Impact when fixed
high

In one paragraph

Viewport meta tag missing means the source check did not find a non-empty viewport declaration. Some mobile browsers may use a wider virtual layout and scale the result, but behaviour varies. Provide an appropriate responsive baseline and verify typography, controls, content, and zoom. A tag's presence does not automatically make the design mobile-friendly, and absence does not switch off all responsive CSS features.

Why it matters

The layout viewport influences available CSS width and width-based media queries. On some mobile configurations, a desktop-like virtual width can prevent intended narrow-width breakpoints matching. Other responsive properties and browser recovery can still operate; do not claim every CSS query stops working.

Viewport dimensions use CSS coordinates rather than a simple hardware-pixel count. Device density, scaling, rotation, and browser UI can affect what the user sees. Actual mobile usability requires testing the complete layout and interactions.

A declaration should support user enlargement rather than impose unnecessary zoom caps. Width configuration, initial scaling, and maximum or user-scalable restrictions are related but separate settings. Do not add restrictive boilerplate merely because it is copied alongside a viewport example.

How WebAuditOS evaluates this finding

The supplied rule reads the first source meta name=viewport, matching its name without case sensitivity. Non-empty content passes; absent or empty content fails at the documented severity. Error or unparseable responses are not graded.

It does not validate every setting, duplicate conflict, actual layout, or runtime insertion. Width and zoom have separate checks. A nonsensical non-empty value can satisfy this presence rule while failing to provide the intended browser result.

How to fix it

  1. Inspect the exact public source and all metadata generators. Identify whether a different template, inherited head, or late script produces the observed absence or duplicate declaration.
  2. For an ordinary responsive page, a common explicit baseline is:
<meta name="viewport" content="width=device-width, initial-scale=1">

This is illustrative, not a claim that every environment requires both keys. Current browser guidance also supports width=device-width without an explicit initial scale in suitable layouts.

  1. Keep zoom available. Do not add user-scalable=no or a restrictive maximum-scale as a generic mobile fix. Review the actual enlargement and reflow experience separately.
  2. Put the intended declaration in the initial document head where practical, rather than depending on a delayed script that can create an initial wrong-size layout or reflow.
  3. Fix actual content sizing. Responsive grids, media, long strings, tables, and fixed-position layers still need appropriate CSS. The metadata does not automatically resize every element correctly.
  4. Test portrait and landscape, zoom, form focus, virtual-keyboard behaviour, and dialogs on representative supported devices. One emulated viewport is not the complete mobile environment.
  5. Review other template types, including product, account, documentation, and relevant error pages. A correct homepage does not prove all systems emit the same head.
  6. Rescan presence, width, and zoom settings, then assess real usability. Do not claim a green presence result guarantees indexing, search ranking, or accessibility.

What the fix can break

Changing the viewport can expose CSS that assumed a wide layout. Repair overflow and positioning rather than restoring a desktop-width illusion solely to hide bugs.

Different libraries can compete over the tag. Consolidate ownership and verify the final response instead of adding another conflicting declaration.

Do not disable zoom to make a screenshot resemble a design mock-up. Preserve the user's ability to read and operate the page.

Questions

Does a missing tag disable every responsive feature?

No. It can change the layout width and which breakpoints match, but responsive CSS and browser behaviour are broader than this declaration.

Does any non-empty value prove correct setup?

No. The supplied rule checks presence; other settings and actual layout need review.

Is initial-scale=1 always mandatory?

No universal claim follows. Use an appropriate baseline and test the supported layout and scaling behaviour.

Review width configuration, zoom restrictions, and the mobile usability guide.

Standards and sources

  • web.dev mobile-friendly

In the report

Test this on your own site

Every scan runs mobile.viewport.present on every page it crawls, on every plan. The finding carries this id, so a line in a report can be matched to the explanation above - and the free scan needs no account.