Title tag missing
What this means
Section titled “What this means”Every HTML page must have a <title> tag. Google uses it as the default text in search result links, and browsers use it in tabs and history. A missing title is not a minor omission. It is the clearest possible signal to search engines that a page was not prepared for indexing.
How to fix it
Section titled “How to fix it”Next.js App Router
Section titled “Next.js App Router”Export a metadata object from app/layout.tsx or the individual page file.
export const metadata = { title: 'My Site',}For per-page titles, export metadata from the page itself.
export const metadata = { title: 'About | My Site',}See nextjs-root-metadata-missing if the root layout has no metadata export at all.
Next.js Pages Router
Section titled “Next.js Pages Router”Import Head from next/head and add a <title> in every page component.
import Head from 'next/head'
export default function About() { return ( <> <Head> <title>About | My Site</title> </Head> <main>Your content</main> </> )}SvelteKit
Section titled “SvelteKit”Add <svelte:head> with a <title> to each page component.
<svelte:head> <title>About | My Site</title></svelte:head>
<main>Your content</main>Call useHead() with a title property in each page component.
<script setup>useHead({ title: 'About | My Site' })</script>
<template> <main>Your content</main></template>Add a <title> inside the layout’s <head>, passed as a prop from each page.
---interface Props { title: string }const { title } = Astro.props---<!doctype html><html lang="en-GB"> <head> <title>{title}</title> </head> <body><slot /></body></html>---import Layout from '../layouts/Layout.astro'---<Layout title="About | My Site"> <main>Your content</main></Layout>Plain HTML
Section titled “Plain HTML”<!doctype html><html lang="en-GB"> <head> <title>About | My Site</title> </head> <body>Your content</body></html>Verify the fix
Section titled “Verify the fix”curl -s https://example.com | grep -i '<title'You should see your <title> tag in the output. Alternatively, re-run the audit:
npx orino audit https://example.comThe title-missing check should now pass.