noindex on public page
What this means
Section titled “What this means”noindex tells search engines not to include a page in their index. On staging this is intentional. On your production homepage it is a critical problem: the page cannot rank for anything. The check looks for noindex in both the <meta name="robots"> tag and the X-Robots-Tag HTTP response header.
The most common cause is a staging-environment robots directive that was accidentally deployed to production.
How to fix it
Section titled “How to fix it”Find where noindex is being set and remove it.
Next.js App Router
Section titled “Next.js App Router”Search app/layout.tsx and any page.tsx files for a robots metadata field:
// app/layout.tsx — remove noindex or set explicitly to indexexport const metadata = { robots: { index: true, follow: true, },}If environment-based logic is setting noindex in staging and index in production, confirm the production environment variable is set correctly.
Next.js Pages Router
Section titled “Next.js Pages Router”Search for noindex in any <Head> components across your pages and _app.tsx:
// Remove this from any page or _app.tsx<meta name="robots" content="noindex" />SvelteKit
Section titled “SvelteKit”Search all +layout.svelte and +page.svelte files:
<!-- Remove this from any layout or page --><svelte:head> <meta name="robots" content="noindex" /></svelte:head>Check app.vue, layouts, and any page that calls useSeoMeta or useHead:
// Remove or correct thisuseSeoMeta({ robots: 'noindex' })
// Change to:useSeoMeta({ robots: 'index, follow' })Check your base layout for a robots meta tag:
<!-- Remove this from Layout.astro or any page --><meta name="robots" content="noindex" />X-Robots-Tag header
Section titled “X-Robots-Tag header”If noindex is coming from an HTTP header rather than a meta tag, check your server or middleware config. In Next.js, check next.config.js for a custom headers configuration:
// next.config.js — remove any noindex from the headers arraymodule.exports = { async headers() { return [ { source: '/(.*)', headers: [ // Remove this line: { key: 'X-Robots-Tag', value: 'noindex' }, ], }, ] },}Verify the fix
Section titled “Verify the fix”Check the response for any noindex directive:
# Check meta tagcurl -s https://yourdomain.com/ | grep -i 'robots'
# Check response headercurl -I https://yourdomain.com/ | grep -i 'x-robots'Neither output should contain noindex. Re-run orino audit to confirm the check passes.