SEO

Make your app visible on search engines and ready for social sharing.

Tools

  • Nuxt SEO: Manages meta tags, sitemaps, robots.txt, and structured data for better search engine visibility.

Configuration

Most SEO is ready out of the box. Change these only if you need custom settings:

  • app/composables/useSeo.ts – manages meta tags, sitemap rules, and private pages
  • shared/config.ts – basic SEO settings:
    shared/config.ts
    appName: 'ShipAhead', // Your site name
    brandingImages: {
      openGraphImage: '/images/open-graph.png', // Social image (1200x630px)
    },
    privatePaths: ['/admin/**', '/profile/**'], // Pages hidden from search engines
    

How It Works

  • Page titles and descriptions come from your locale files (e.g. locales/en.json).
  • Fallbacks if missing:
    • common.siteTagline → title
    • common.siteDescription → description
  • Automatically generates:
    • Meta tags - titles, descriptions, Open Graph, Twitter Cards
    • Sitemap - all public pages at /sitemap.xml
    • Robots.txt - control indexing
    • JSON.LD - structured data for Google rich snippets

Usage

  • Automatic SEO for Pages: Add titles and descriptions in locale files:
    {
      "pages.about.title": "About ShipAhead",
      "pages.about.description": "Learn more about our SaaS boilerplate.",
      "common.siteTagline": "Default Site Tagline",
      "common.siteDescription": "Default Site Description"
    }
    
    • For /about, use pages.about.title and pages.about.description
    • Multi-language ready: add to es.json, fr.json, etc.
  • Manual SEO Override: For blogs or custom pages, use setSeo:
    slug
    const { setSeo } = useSeo();
    const blog = // fetch blog data...
    
    setSeo({
      pageTitle: blog.title,
      pageDescription: blog.excerpt,
      image: blog.imageUrl // Optional: Social sharing image
    });
    
    • Works with multi-language pages too
    • Lets you control exactly what Google and social platforms show