Page is set to “noindex” in Next.js
A <meta name="robots" content="noindex"> tells search engines to leave the page out of results entirely — the single most damaging SEO mistake because the page simply disappears. It is very often a leftover from a staging or “coming soon” environment that shipped to production. If it is not deliberate, it is an emergency.
Framework fixes
Symptoms
How VibeCheck catches it
In your widget · Problems
Page is set to "noindex"
To your coding agent · MCP
agent › get_detected_issues
→ { detector: "seo", issue: "Page is set to "noindex"", threshold: "<meta name="robots" content> includes 'noindex'" }
The same string in your widget and in your agent’s context — no screenshot, no copy-paste.
Root causes
The fix for Next.js
Control indexing via the metadata robots field, gated by environment so production always indexes.
export const metadata: Metadata = {
robots: { index: process.env.VERCEL_ENV === 'production', follow: true },
}Steps
- Search the codebase for “noindex” (meta tag and
X-Robots-Tagheader) - Ensure production never emits it; gate it strictly to non-prod
- Request re-indexing in Search Console once removed
FAQ
- How fast will my page come back after removing
noindex? - It returns on the next crawl, which can be hours to weeks. Request indexing in Google Search Console to speed it up once the tag is gone.
- Is there a header version of
noindexI might be missing? - Yes — the
X-Robots-TagHTTP header does the same thing and is easy to overlook. Check your server/CDN config as well as the meta tag. - What is the correct tag for pages I do want indexed?
- You do not need any robots tag for the default indexable behaviour. Only add a robots meta when you specifically want to restrict indexing.