The 2026 SEO Checklist for Nuxt & Vue
- Check the deployed HTML, crawler access, sitemap, and response status before requesting indexing.
- Measure Core Web Vitals at the 75th percentile. A good score does not guarantee rankings.
- llms.txt is optional documentation delivery. Google Search does not use it for visibility or rankings.
- Publish useful public content when it is ready. A fixed warmup period does not guarantee indexing.
Before launch, check for a leftover noindex tag, missing sitemap pages, and repeated descriptions. Use the post-launch checks to inspect what crawlers receive.
Every item links to a framework-specific guide. For full walkthroughs, see Getting Indexed for Nuxt or Vue.
Pre-Launch Checklist
- SSR implemented or prerendering configured (Nuxt · Vue)
- Route rules configured for special cases (hybrid rendering, static pages)
- Hydration errors resolved (check browser console for mismatches, see debugging guides for Nuxt · Vue)
- "View Source" tested on deployed site (meta tags and content visible in raw HTML)
- SSR framework chosen if using Vue SPA (framework comparison)
- Page titles configured per route, descriptive and unique, with important words near the start (Nuxt · Vue)
- Meta descriptions set per page, specific and unique; Google may use a different snippet (Nuxt · Vue)
- Social sharing tags configured (OG image, Twitter Card) (Nuxt · Vue)
- Schema.org structured data added for applicable content types (Nuxt · Vue)
- llms.txt configured if documentation tools in your workflow use it (Nuxt · Vue)
- Structured data checked in Google Rich Results Test; social metadata checked in Facebook Debugger
- URL structure uses hyphens (not underscores), lowercase paths, descriptive slugs (Nuxt · Vue)
- Trailing slashes handled consistently: pick one style, redirect the other (Nuxt · Vue)
- Dynamic routes configured with unique meta per route param (Nuxt · Vue)
- Equivalent URL variants use consistent canonical hints; distinct query content has its own indexing policy (Nuxt · Vue)
- Pagination uses self-referencing canonicals (Nuxt · Vue)
- 404 pages return proper 404 status code, not 200 soft 404 (Nuxt · Vue)
- robots.txt configured, including AI agent permissions (Nuxt · Vue)
- XML sitemap generated with all indexable pages (Nuxt · Vue)
- Canonical URLs set on every page (Nuxt · Vue)
- Meta robots tags configured for noindex pages (Nuxt · Vue)
- Permanent redirects use 301 or 308 where appropriate; temporary moves use temporary redirects; unnecessary chains removed (Nuxt · Vue)
- Duplicate content resolved: www vs non-www, query parameters (Nuxt · Vue)
- Images optimized with useful alt text; offscreen images lazy-loaded, important initial-viewport images loaded promptly (Nuxt · Vue)
- Interaction to Next Paint (INP) optimized: break up long tasks, use
scheduler.yield() - Critical CSS inlined, non-critical CSS deferred
- JavaScript code-split by route
- Fonts preloaded (WOFF2 format)
- CDN configured for static assets
Post-Launch Checklist
- GSC property created and verified (Nuxt · Vue)
- Sitemap submitted via GSC (Nuxt · Vue)
- URL Inspection tool tested on key pages (check rendered HTML)
- Page Indexing report reviewed: investigate important excluded pages against their intended indexing policy
- IndexNow configured to notify participating engines of content changes (Nuxt · Vue)
- Indexing status checked for important pages with URL Inspection (Nuxt · Vue)
- Rendered HTML verified via URL Inspection tool (meta tags appear in rendered output)
- Soft 404 errors resolved (404 pages must return 404 status, not 200)
- Duplicate exclusions reviewed against intended canonical URLs; expected exclusions distinguished from mistakes
- Orphan pages linked from sitemap or internal navigation
- Google generative AI performance reviewed in the current Search Console report (Nuxt · Vue)
- Content tested in ChatGPT, Perplexity, and Gemini (verify citation accuracy)
- Brand mentions tracked on authoritative third-party sites
- OG images tested in Facebook Debugger (clear cache if needed)
- Twitter Cards validated (compose tweet without posting to preview card)
- Slack and Discord link previews tested (OG tags control unfurls)
Ongoing Monitoring
SEO degrades silently. A plugin update breaks your schema markup, a deploy adds noindex to a template, a redirect chain forms over three months of URL changes. These tasks catch regressions before they compound.
- GSC Performance report reviewed (track impressions, clicks, CTR, and the report's stated scope)
- Page Indexing report checked for new errors
- p75 INP monitored for responsiveness regressions
- Broken links scanned
- SEO monitoring tools reviewed (Nuxt · Vue)
- Competitor rankings and AI citation share tracked
- Content gaps investigated using Search Console queries and the pages that answer them
- Backlink profile reviewed (identify new links, lost links, investigate unexpected links; use disavow only when Google's criteria apply)
- Full technical SEO audit (crawl site with Screaming Frog or Sitebulb)
- Redirect chains audited and flattened
- Internal link audit performed: orphan pages, crawl depth, broken links (Nuxt · Vue)
- Structured data updated for deprecated types (Google removes schema types periodically)
- Canonical URL configuration verified (GSC shows user-declared vs Google-selected canonical)
- If your documentation workflow uses llms.txt, update its relevant sections
- Site migration checklist followed if domain or URL structure changed (Nuxt · Vue)
- IndexNow or URL submission used for urgent updates (Nuxt · Vue)
- Redirects tested after URL structure changes (intended permanent or temporary status, correct destination)
- GSC URL Inspection re-run on changed pages
- Search rankings monitored weekly for 60 days post-migration
Mistakes to Check
Check these conditions when public pages are missing, metadata is incorrect, or navigation is slow.
scheduler.yield(), and watch your p75 weekly.Automate the Hard Parts
Modules handle sitemap generation, crawler rules, and metadata defaults. You still need to check the deployed output.
Nuxt
This command installs the bundled SEO modules. Configure them for your site and check the deployed output:
npx nuxt module add @nuxtjs/seoThe Nuxt SEO module sets up XML sitemaps, robots.txt (with AI crawler rules), schema.org via useSchemaOrg(), canonical URLs, trailing slash normalization, and OG image generation. Version 6 also sets up llms.txt, Markdown versions of each page, and skew protection. See the full Nuxt SEO learning path for details on every item.
Vue SPAs don't get this for free: there's no build-time module wiring up sitemaps and rendering strategy, so each item is a decision you make explicitly. Pick a rendering strategy first (prerendering or an SSR framework), since sitemaps, meta tags, and crawler access all depend on which one you choose. Coming from vue-meta? The migration guide covers switching to Unhead. See the full Vue SEO learning path for the rest.
What's Next
Launching soon? The Pre-Launch Warmup guide shows how to prepare public content and technical checks before launch.
Already live? Start with the post-launch section above. Highest impact first: submit your sitemap to Search Console, verify SSR rendering, and fix soft 404s.
Want to verify right now? Use these tools to inspect the deployed output:
- Meta Tag Checker: Are your titles, descriptions, and OG tags rendering?
- XML Sitemap Validator: Does your sitemap include all indexable pages?
- Schema Validator: Does your structured data use valid vocabulary? Check Google eligibility separately.
- Social Share Debugger: How do your links look on Twitter, Slack, and Discord?
Building habits? Bookmark this page. The weekly, monthly, and quarterly sections above keep your SEO from quietly degrading.