Vue

9 / 10

Vue

SEO in Nuxt: Rendering, Meta, and Schema

Nuxt gives Vue apps real HTML to rank with. Configuring useSeoMeta, canonical URLs, sitemaps, and structured data the framework way.

Single-page apps earned their poor SEO reputation honestly: crawlers met an empty div and JavaScript they might or might not run. Nuxt exists partly to end that, real HTML on first response, but server rendering alone is the floor. Ranking well means handling meta, canonicals, and structured data with the same discipline as any content site.

Meta tags, the Nuxt way

useSeoMeta is the workhorse: title, description, and the Open Graph and Twitter fields, typed, deduplicated, and reactive to the page's data.

  • Set a title template once in the app config so every page inherits the brand suffix.
  • On dynamic routes, derive title and description from the fetched content, inside the same setup that fetched it.
  • Write descriptions for click-through, not keyword density; they are ad copy for the results page.

The plumbing that separates rankings from excuses

Every indexable page needs a canonical URL, one hostname, one casing, trailing-slash policy decided and enforced with redirects. Generate the sitemap from your real routes and content sources rather than maintaining it by hand, and mark private surfaces noindex instead of hoping nobody links to them. The Nuxt SEO module family handles sitemaps, robots, and schema.org with configuration instead of ceremony.

Structured data and honest performance

JSON-LD for articles, products, organization, and breadcrumbs makes your pages legible to machines and eligible for rich results; generate it from the same data that renders the page so the two never disagree. Then remember that crawlers measure experience: Core Web Vitals come largely from image discipline and JavaScript restraint, and no meta tag compensates for a page that takes six seconds to become useful.