Accessibility · Next.js (App Router)
Why my site needs a viewport meta tag in Next.js (App Router)
Mobile browsers fall back to rendering at desktop width and scaling the result down, so all your text is unreadably small and every tap target is tiny. It also means Google treats the page as not mobile-friendly, which matters because indexing is mobile-first.
The fix for Next.js (App Router)
13x detects your framework from the response and hands you this version rather than the generic one — below 50% confidence it hedges and gives you the generic one instead.
// app/layout.tsx
import type { Viewport } from "next";
export const viewport: Viewport = {
width: "device-width",
initialScale: 1,
};Next adds a sensible default, so a missing tag usually means a hand-written <head> overriding it.
On a different stack? The general version of this fix explains what 13x checks and why it matters, without assuming a framework.
Check your Next.js (App Router) site
113 deterministic checks against your live URL, in about 30 seconds. Framework detected from the response, so every fix comes back in the form your stack actually uses.
No signup. Results in 30 seconds.