SEO for Single Page Applications: The Complete 2026 Guide · Nuxt SEO

[NuxtSEO](https://nuxtseo.com/ "Home")

- [Modules](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [Tools](https://nuxtseo.com/tools)
- [Pro](https://nuxtseo.com/pro)
- [Learn SEO](https://nuxtseo.com/learn-seo/nuxt) [Releases](https://nuxtseo.com/releases)

[1.4K](https://github.com/harlan-zw/nuxt-seo)

[Nuxt SEO on GitHub](https://github.com/harlan-zw/nuxt-seo)

Learn SEO

Master search optimization

Nuxt

 Vue

[SEO Checklist](https://nuxtseo.com/learn-seo/checklist) [Pre-Launch Warmup](https://nuxtseo.com/learn-seo/pre-launch-warmup) [Backlinks & Authority](https://nuxtseo.com/learn-seo/backlinks)

[Mastering Meta](https://nuxtseo.com/learn-seo/nuxt/mastering-meta)

- [Titles](https://nuxtseo.com/learn-seo/nuxt/mastering-meta/titles)
- [Meta Description](https://nuxtseo.com/learn-seo/nuxt/mastering-meta/descriptions)
- [Image Alt Text](https://nuxtseo.com/learn-seo/nuxt/mastering-meta/alt-text)
- [Social Sharing](https://nuxtseo.com/learn-seo/nuxt/mastering-meta/open-graph)
- [Rich Results](https://nuxtseo.com/learn-seo/nuxt/mastering-meta/rich-results)
- [Schema.org](https://nuxtseo.com/learn-seo/nuxt/mastering-meta/schema-org)
- [Twitter Cards](https://nuxtseo.com/learn-seo/nuxt/mastering-meta/twitter-cards)

[ Controlling Crawlers](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers)

- [Robots Txt](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers/robots-txt)
- [Sitemaps](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers/sitemaps)
- [Robot Meta Tag](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers/meta-tags)
- [Canonical Link Tag](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers/canonical-urls)
- [HTTP Redirects](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers/redirects)
- [Duplicate Content](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers/duplicate-content)
- [llms.txt](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers/llms-txt)

[ Routes & Rendering](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering)

- [URL Structure](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/url-structure)
- [Pagination](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/pagination)
- [Trailing Slashes](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/trailing-slashes)
- [Query Parameters](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/query-parameters)
- [Hreflang & i18n](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/i18n)
- [404 Pages](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/404-pages)
- [Dynamic Routes](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/dynamic-routes)
- [Internal Linking](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/internal-linking)
- [Programmatic SEO](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/programmatic-seo)
- [Rendering Modes](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/rendering)
- [Security](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/security)

[ Launch & Listen](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen)

- [Getting Indexed](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen/going-live)
- [Google Search Console](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen/search-console)
- [Core Web Vitals](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen/core-web-vitals)
- [Indexing Issues](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen/indexing-issues)
- [SEO Monitoring](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen/seo-monitoring)
- [Site Migration](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen/site-migration)
- [IndexNow](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen/indexnow)
- [Debugging](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen/debugging)
- [AI Search Optimization](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen/ai-optimized-content)

1. [Learn SEO](https://nuxtseo.com/learn-seo)

# SEO for Single Page Applications: The Complete 2026 Guide

How to optimize React, Vue, and Angular SPAs for search engines. Covers SSR, SSG, Core Web Vitals, and modern rendering strategies for JavaScript apps.

[![Harlan Wilton](https://avatars.githubusercontent.com/u/5326365?v=4)Harlan Wilton](https://x.com/harlan-zw)14 mins read Updated Apr 9, 2026

Single Page Applications (SPAs) have revolutionized the web by providing fluid, app-like experiences. However, they are notoriously difficult for search engines to index. In 2026, the challenge has grown: you are no longer just optimizing for Google’s "blue links," but for **AI Answer Engines** (ChatGPT, [Gemini](https://gemini.google.com), [Perplexity](https://perplexity.ai)) and **Agentic Crawlers** that often skip JavaScript execution entirely.

This guide is a framework-agnostic blueprint for making any SPA search-engine and AI-friendly, whether built with [React](https://react.dev), Vue, [Angular](https://angular.dev), [Svelte](https://svelte.dev), or vanilla JS.

---

## [1. What is a Single Page Application (SPA)?](#_1-what-is-a-single-page-application-spa)

An SPA is a web application or website that interacts with the user by dynamically rewriting the current web page with new data from the web server, instead of the default method of a browser loading entire new pages. This transition happens on the client side (in the browser) via JavaScript.

### [The Evolution of the SPA](#the-evolution-of-the-spa)

In the early days of the web, every click meant a full page reload. In the mid-2000s, **AJAX** (Asynchronous JavaScript and XML) allowed developers to update parts of a page without a refresh (think early Gmail).

By 2010, frameworks like **AngularJS** and **Backbone.js** standardized the SPA pattern. Today, **React**, **Vue**, **Svelte**, and **Angular** power millions of SPAs, from simple portfolios to complex tools like Figma and Spotify.

### [Why We Use Them](#why-we-use-them)

- **Speed**: Once the initial shell loads, transitions feel instant.
- **State Persistence**: Music can play in a footer while the user navigates pages.
- **Developer Experience**: Clear separation between the frontend (UI) and backend (API).

### [Common Examples of SPAs:](#common-examples-of-spas)

- **Gmail**: Smoothly switching between inbox and emails.
- **Spotify Web**: Browsing artists while audio remains uninterrupted.
- **Figma**: A professional design tool running in a single browser tab.
- **Trello**: Real-time board updates without page refreshes.

---

## [2. Why SPAs Struggle with SEO](#_2-why-spas-struggle-with-seo)

The architecture that makes SPAs fast for users makes them invisible to many crawlers. This is known as the **"Client-Side Rendering (CSR) Gap."**

### [Problem A: The Rendering Queue](#problem-a-the-rendering-queue)

Googlebot processes pages in two waves.

1. **Wave 1 (Crawl)**: It indexes the initial HTML returned by the server. In a pure SPA, this is an empty `<div id="app"></div>`.
2. **Wave 2 (Render)**: It places the URL in a queue to execute the JavaScript and see the actual content.

In 2026, Google's rendering engine is faster than ever, but the queue still exists. If your site has millions of pages or frequent content updates, you might wait days for the "real" content to be indexed.

### [Problem B: AI Agents & Cost-Cutting](#problem-b-ai-agents-cost-cutting)

AI models like GPT-4, Claude, and Gemini are trained by massive crawlers (`GPTBot`, `ClaudeBot`). These crawlers operate at a scale where **executing JavaScript is too expensive**. If your content is trapped behind a JS execution wall, these AI models will never "see" your text. This means:

- No citations in [ChatGPT](https://chatgpt.com) or Perplexity.
- No inclusion in AI Overviews (SGE).
- No training data for LLMs that could recommend your brand.

### [Problem C: Core Web Vitals (The INP Factor)](#problem-c-core-web-vitals-the-inp-factor)

Google now uses **Interaction to Next Paint (INP)** as a critical ranking factor. Pure SPAs often suffer from "Hydration Bloat." The browser's main thread is locked up while it downloads, parses, and executes a 500KB+ JavaScript bundle. If a user clicks a link while the JS is still booting, the page feels unresponsive. Google penalizes this sluggishness.

### [Problem D: Soft 404s](#problem-d-soft-404s)

In a traditional site, a missing page returns a **404 Not Found** status code from the server. In a pure SPA, the server returns the `index.html` shell (200 OK) for _every_ URL, and the JavaScript then decides to show a "Not Found" UI component. To a crawler, this looks like a valid page with thin content, which can hurt your domain's overall quality score.

---

## [3. What Search Engines (and Bots) See](#_3-what-search-engines-and-bots-see)

To fix your SPA SEO, you must first diagnose it.

### [Step 1: The "View Source" Test](#step-1-the-view-source-test)

Right-click your page and select **"View Page Source"**.

- **If you see empty tags**: You are relying 100% on JS rendering. You are invisible to most social bots (LinkedIn, Slack, X) and many AI crawlers.
- **If you see your text**: You are using SSR or SSG. You are in good shape.

### [Step 2: The Google Search Console Test](#step-2-the-google-search-console-test)

Use the **URL Inspection Tool** in GSC and click **"Test Live URL"**. Compare the "Crawled Page" (Initial HTML) with the "Rendered HTML" (Post-JS). If the content only appears in the latter, you have a "Wave 2" dependency.

### [Step 3: The "No JS" Browser Test](#step-3-the-no-js-browser-test)

Disable JavaScript in your browser (using Chrome DevTools or the Web Developer extension). If your site is a blank white screen, that is exactly what many secondary search engines and AI agents see.

---

## [4. When SPA SEO _Doesn't_ Matter](#_4-when-spa-seo-doesnt-matter)

It’s important to remember that not every app needs to be on the first page of Google. You can safely ignore most of this guide if:

- **Authentication is Mandatory**: If 100% of your content is behind a login (e.g., a bank, a private CRM, an admin panel), SEO is irrelevant.
- **The URL is the Product**: For tools like **Figma**, **Photopea**, or **VS Code Web**, the tool _itself_ is the destination. The _marketing_ site (`figma.com`) needs SEO, but the _editor_ (`figma.com/file/...`) does not.
- **Private Data Views**: Internal dashboards or employee portals.

**Action**: For these pages, use `meta name="robots" content="noindex"` to save crawl budget for your public pages.

---

## [5. Solutions Ranked: SSR > SSG > CSR](#_5-solutions-ranked-ssr-ssg-csr)

The solution to SPA SEO is to move rendering from the **Client** to the **Server** or **Build Process**.

### [A. Server-Side Rendering (SSR)](#a-server-side-rendering-ssr)

The server renders the page for every request and sends the full HTML to the browser.

- **How it works**: When a user hits `/about`, your Node/Go/Rust server executes the JS, builds the HTML, and sends it.
- **Best for**: E-commerce, news, social networks, and any site with dynamic, frequently changing content.
- **2026 Trend**: **Edge Rendering**. Rendering HTML at the network edge (Cloudflare Workers, Vercel Edge) to reduce Time to First Byte (TTFB).

### [B. Static Site Generation (SSG) / Prerendering](#b-static-site-generation-ssg-prerendering)

The pages are rendered **once** during the build process and served as static files.

- **How it works**: You run `npm run build`, and your tool creates `about.html`, `pricing.html`, etc.
- **Best for**: Blogs, documentation, marketing sites, and portfolios.
- **Constraint**: If you have 100,000 pages, build times become astronomical.

### [C. Incremental Static Regeneration (ISR)](#c-incremental-static-regeneration-isr)

A hybrid where pages are generated statically but updated in the background as new data comes in.

- **How it works**: The first user gets a static page. If it’s "stale," the server triggers a background update for the _next_ user.
- **Best for**: Large catalogs or high-traffic blogs.

### [D. Dynamic Rendering (The "Hack")](#d-dynamic-rendering-the-hack)

Serving static HTML to bots and the SPA to humans.

- **Status**: **Deprecated**. Google explicitly recommends against this in 2026. It is prone to "cloaking" (showing different content to bots vs humans), which can lead to manual penalties.

---

## [6. Technical Requirements for Modern SPA SEO](#_6-technical-requirements-for-modern-spa-seo)

Regardless of which framework you use, these technical "laws" apply to all SPAs.

### [Requirement 1: The History API (No Hashes)](#requirement-1-the-history-api-no-hashes)

**Never use `#` in your URLs for SEO pages.**

- ❌ `example.com/#/about`
- ✅ `example.com/about`

Search engines generally ignore everything after the `#`. Use the **HTML5 History API** to ensure every page has a unique, clean URL that can be indexed individually.

### [Requirement 2: Link Discovery (`<a href>`)](#requirement-2-link-discovery-a-href)

Crawlers "crawl" by following links. They **do not** click buttons or execute JavaScript `router.push()` commands. Ensure every link in your SPA is a standard anchor tag:

```
<!-- ✅ Correct: Crawler can follow this -->
<a href="/pricing">View Pricing</a>

<!-- ❌ Wrong: Crawler will ignore this -->
<button onclick="goToPricing()">View Pricing</button>
```

### [Requirement 3: Dynamic Metadata Management](#requirement-3-dynamic-metadata-management)

When your SPA switches pages, you must update the `<title>`, `<meta name="description">`, and `<link rel="canonical">` tags. If you are using pure CSR, these updates happen too late for many bots. If you use SSR, these tags are baked into the initial HTML. You can verify your tags are rendering correctly with a [meta tag checker](https://nuxtseo.com/tools/meta-tag-checker).

### [Requirement 4: Canonical Tag Strategy](#requirement-4-canonical-tag-strategy)

SPAs often suffer from "URL sprawl" (e.g., `?ref=twitter`, `?utm_source=...`). Every page should have a self-referencing canonical tag to tell Google which version of the URL is the "master" version.

### [Requirement 5: Handling 404s via Meta Tags](#requirement-5-handling-404s-via-meta-tags)

Since a pure SPA can't send a 404 HTTP status code, use the "Noindex" signal:

```
if (pageNotFound) {
  const meta = document.createElement('meta')
  meta.name = 'robots'
  meta.content = 'noindex'
  document.head.appendChild(meta)
}
```

---

## [7. Framework-Specific Quick Guides](#_7-framework-specific-quick-guides)

### [React / Next.js](#react-nextjs)

[Next.js](https://nextjs.org) is the industry leader for React SEO.

- **Strategy**: Use **App Router** and **Server Components** by default. They ship zero JS to the client for static parts of your page, which is incredible for INP.
- **Metadata**: Use the built-in `Metadata` API to handle titles and Open Graph tags.
- **SEO Tip**: Use the `<Image />` component for automatic WebP conversion and layout shift (CLS) prevention.

### [Vue / Nuxt](#vue-nuxt)

Nuxt provides an "SEO-by-default" experience for Vue developers.

- **Strategy**: Use **Nuxt SEO** module. It bundles Sitemap, Robots, Schema.org, and OG Image generation.
- **Performance**: Use **Vapor Mode** (Vue 3.5+) to reduce the hydration overhead for high INP scores.
- **SEO Tip**: Use `useSeoMeta()` for flat, typesafe metadata management.

### [Svelte / SvelteKit](#svelte-sveltekit)

[SvelteKit](https://svelte.dev/docs/kit) is famous for its "Zero-JS" philosophy.

- **Strategy**: SvelteKit's SSR is fast. Use `page.server.js` to fetch data before the page even reaches the client.
- **Performance**: Svelte's lack of a Virtual DOM makes it one of the best frameworks for hitting perfect Core Web Vitals scores.

### [Angular](#angular)

Angular has historically been the hardest for SEO, but **Angular Universal** (now part of the core `@angular/ssr` package) has changed that.

- **Strategy**: Enable Server-Side Rendering during project setup.
- **SEO Tip**: Use the `Meta` and `Title` services to update tags dynamically, ensuring they are injected into the SSR response.

---

## [8. Preparing for AI Search Engines](#_8-preparing-for-ai-search-engines)

AI answer engines (ChatGPT, Perplexity, Gemini) are increasingly citing web content. While their crawling behavior is still evolving, a few emerging patterns are worth considering.

### [Structured Data Helps AI Understand Your Content](#structured-data-helps-ai-understand-your-content)

Schema.org JSON-LD gives AI crawlers explicit signals about what your page contains. A `Product` schema with `offers` and `price` is more reliably parsed than price text scattered across a page. This is good practice for traditional SEO regardless.

### [Semantic HTML Improves Content Extraction](#semantic-html-improves-content-extraction)

AI crawlers that do process your page benefit from clean structure. Using `<main>`, `<article>`, and `<header>` helps them distinguish your core content from navigation chrome.

### [Direct Answer Formatting](#direct-answer-formatting)

Structure content as clear questions (H2) followed by concise answers. This increases the chance of your page being cited in AI overviews, though the exact ranking factors for AI citations are still poorly understood.

---

## [9. Essential Tools for SPA SEO](#_9-essential-tools-for-spa-seo)

1. **[Google Search Console](https://search.google.com/search-console)**: The source of truth for indexing status and Core Web Vitals. Use the URL Inspection tool to compare crawled vs rendered HTML.
2. **[PageSpeed Insights](https://pagespeed.web.dev/)**: Monitor **INP** and **LCP** scores, the two Core Web Vitals most affected by SPA architecture.
3. **[Screaming Frog](https://www.screamingfrog.co.uk/)**: A desktop crawler that can execute JavaScript and show you what "rendered" content looks like at scale.
4. **[Schema Validator](https://nuxtseo.com/tools/schema-validator)**: Validate your structured data markup is present and correct after SSR rendering.
5. **[Meta Tag Checker](https://nuxtseo.com/tools/meta-tag-checker)**: Verify your title tags and meta descriptions are server-rendered and within length limits.

---

## [10. Common Mistakes to Avoid (The "Don't Do" List)](#_10-common-mistakes-to-avoid-the-dont-do-list)

- **The "Heavy Shell"**: Putting your entire application logic in a single `main.js` file. Use **Code Splitting** to only load the code needed for the current page.
- **Lazy Loading Critical Content**: Never use `loading="lazy"` on your main "hero" image. It will tank your Largest Contentful Paint (LCP) score.
- **Infinite Scroll without URLs**: If users have to scroll to see more items, ensure you use "Load More" buttons with `href` links to paginated URLs (`/products/page/2`).
- **Ignoring the Main Thread**: Running heavy analytics or tracking scripts during page load. This causes high INP and frustrates both users and Google.

---

## [Summary: Your 2026 SPA SEO Checklist](#summary-your-2026-spa-seo-checklist)

1. **Move to SSR or SSG**: If the page is public, render it on the server.
2. **Audit for AI Agents**: Can an AI bot read your content without JS? (Use "View Source").
3. **Implement Schema.org**: Use JSON-LD to define your entities for AI extraction.
4. **Clean URLs**: Use History API, never use hashes.
5. **Standard Links**: Use `<a href>` for all internal navigation.
6. **Monitor INP**: Keep your main thread free for user interactions.

Building a modern SPA doesn't mean sacrificing your search presence. By moving from a "Client-Side Only" mindset to a **Hybrid Rendering** strategy, you can have the best of both worlds: a high-quality user experience and a high-quality search presence.

---

_Looking for a framework-specific guide?_

- [The Complete Nuxt SEO Guide](https://nuxtseo.com/learn-seo/nuxt)
- [Vue.js SPA SEO Module](https://nuxtseo.com/learn-seo/vue/spa)

[The 2026 SEO Checklist for Nuxt & Vue Pre-launch setup, post-launch verification, and ongoing monitoring. Interactive checklist with links to every guide.](https://nuxtseo.com/learn-seo/checklist) [Haven't launched yet? Start with the Pre-Launch Warmup](https://nuxtseo.com/learn-seo/pre-launch-warmup)

---

[Pre-Launch Warmup 5.7% of new pages reach the top 10 within a year. The ones that do started building authority before launch. Here's the 6-week playbook for Nuxt and Vue sites.](https://nuxtseo.com/learn-seo/pre-launch-warmup) 

On this page

- [1. What is a Single Page Application (SPA)?](#_1-what-is-a-single-page-application-spa)
- [2. Why SPAs Struggle with SEO](#_2-why-spas-struggle-with-seo)
- [3. What Search Engines (and Bots) See](#_3-what-search-engines-and-bots-see)
- [4. When SPA SEO Doesn't Matter](#_4-when-spa-seo-doesnt-matter)
- [5. Solutions Ranked: SSR > SSG > CSR](#_5-solutions-ranked-ssr-ssg-csr)
- [6. Technical Requirements for Modern SPA SEO](#_6-technical-requirements-for-modern-spa-seo)
- [7. Framework-Specific Quick Guides](#_7-framework-specific-quick-guides)
- [8. Preparing for AI Search Engines](#_8-preparing-for-ai-search-engines)
- [9. Essential Tools for SPA SEO](#_9-essential-tools-for-spa-seo)
- [10. Common Mistakes to Avoid (The "Don't Do" List)](#_10-common-mistakes-to-avoid-the-dont-do-list)
- [Summary: Your 2026 SPA SEO Checklist](#summary-your-2026-spa-seo-checklist)

[GitHub](https://github.com/harlan-zw/nuxt-seo) [ Discord](https://discord.com/invite/275MBUBvgP)

### [NuxtSEO](https://nuxtseo.com/ "Home")

- [Getting Started](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [MCP](https://nuxtseo.com/docs/nuxt-seo/guides/mcp)

Modules

- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)

### [NuxtSEO Pro](https://nuxtseo.com/pro "Home")

- [Getting Started](https://nuxtseo.com/pro)
- [Dashboard](https://nuxtseo.com/pro/dashboard)
- [Pro MCP](https://nuxtseo.com/docs/nuxt-seo-pro/mcp/installation)

### [Learn SEO](https://nuxtseo.com/learn-seo "Learn SEO")

Nuxt

- [Mastering Meta](https://nuxtseo.com/learn-seo/nuxt/mastering-meta)
- [Controlling Crawlers](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers)
- [Launch & Listen](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen)
- [Routes & Rendering](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering)
- [Staying Secure](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/security)

Vue

- [Vue SEO Guide](https://nuxtseo.com/learn-seo/vue)
- [Mastering Meta](https://nuxtseo.com/learn-seo/vue/mastering-meta)
- [Controlling Crawlers](https://nuxtseo.com/learn-seo/vue/controlling-crawlers)
- [SPA SEO](https://nuxtseo.com/learn-seo/vue/spa)
- [SSR Frameworks](https://nuxtseo.com/learn-seo/vue/ssr-frameworks)
- [SEO Checklist](https://nuxtseo.com/learn-seo/checklist)
- [Pre-Launch Warmup](https://nuxtseo.com/learn-seo/pre-launch-warmup)
- [Backlinks & Authority](https://nuxtseo.com/learn-seo/backlinks)

### [Tools](https://nuxtseo.com/tools "SEO Tools")

- [Social Share Debugger](https://nuxtseo.com/tools/social-share-debugger)
- [Robots.txt Generator](https://nuxtseo.com/tools/robots-txt-generator)
- [Meta Tag Checker](https://nuxtseo.com/tools/meta-tag-checker)
- [HTML to Markdown](https://nuxtseo.com/tools/html-to-markdown)
- [XML Sitemap Validator](https://nuxtseo.com/tools/xml-sitemap-validator)
- [Schema.org Validator](https://nuxtseo.com/tools/schema-validator)
- [Keyword Idea Generator](https://nuxtseo.com/tools/keyword-generator)
- [Keyword Research](https://nuxtseo.com/tools/keyword-research)
- [SERP Analyzer](https://nuxtseo.com/tools/serp-analyzer)
- [Domain Rankings](https://nuxtseo.com/tools/domain-rankings)

Copyright © 2023-2026 Harlan Wilton - [MIT License](https://github.com/harlan-zw/nuxt-seo/blob/main/license) · [mdream](https://mdream.dev)