---
title: "SEO Audit & Content Prompts"
description: "Pre-built MCP prompts for SEO audits and content creation. Run site-wide audits, analyze specific pages, generate article outlines—through any MCP client."
canonical_url: "https://nuxtseo.com/pro/docs/reference/mcp/audit-prompts"
last_updated: "2026-05-06T18:46:21.622Z"
---

Pre-built prompts that chain multiple MCP tools into complete workflows. Run complete SEO audits using real GSC data, or generate content briefs and articles.

## SEO Audits

### seo_audit_site

Complete site-wide SEO audit using real Google Search Console data. Analyzes trends, identifies opportunities, and creates a prioritized action plan.

<table>
<thead>
  <tr>
    <th>
      Parameter
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Default
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        siteUrl
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      -
    </td>
    
    <td>
      Site URL (optional if single GSC-connected site)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        period
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        28d
      </code>
    </td>
    
    <td>
      Analysis period: <code>
        7d
      </code>
      
      , <code>
        28d
      </code>
      
      , <code>
        3m
      </code>
      
      , <code>
        6m
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        brandTerms
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      -
    </td>
    
    <td>
      Brand terms for brand/non-brand split (comma-separated)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        focusArea
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        all
      </code>
    </td>
    
    <td>
      Focus: <code>
        growth
      </code>
      
      , <code>
        defense
      </code>
      
      , <code>
        quick-wins
      </code>
      
      , <code>
        all
      </code>
    </td>
  </tr>
</tbody>
</table>

```ts
// Full audit
seo_audit_site({
  period: '28d',
  focusArea: 'all'
})

// Quick wins only
seo_audit_site({
  period: '28d',
  focusArea: 'quick-wins'
})

// With brand analysis
seo_audit_site({
  period: '3m',
  brandTerms: 'nuxt seo, nuxtseo',
  focusArea: 'all'
})
```

#### Focus Areas

<table>
<thead>
  <tr>
    <th>
      Focus
    </th>
    
    <th>
      What It Analyzes
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        quick-wins
      </code>
    </td>
    
    <td>
      Striking distance keywords (positions 4-20)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        growth
      </code>
    </td>
    
    <td>
      Opportunity and zero-click keywords
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        defense
      </code>
    </td>
    
    <td>
      Decay and declining keywords
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        all
      </code>
    </td>
    
    <td>
      All presets for complete view
    </td>
  </tr>
</tbody>
</table>

#### Workflow

The prompt runs these tools in sequence:

1. **gsc_query(type=timeseries)** - Overall trends (clicks, impressions, position)
2. **gsc_query(type=pages)** - Top 10 performing pages
3. **gsc_query(type=analysis)** - Analysis presets based on focus area
4. **gsc_query(type=countries)** / **gsc_query(type=devices)** - Traffic distribution
5. **keyword_research(type=rankings)** - Compare GSC vs DataForSEO (optional)

#### Output

Returns a structured audit report:

- **Performance Summary** - Overall trend, total metrics, top traffic sources
- **Quick Wins** - Striking distance keywords with actions
- **Growth Opportunities** - High impressions, low CTR keywords
- **Defense Priorities** - Declining keywords needing attention
- **Issues** - Zero-click keywords, cannibalization, technical issues
- **Prioritized Action Plan** - Numbered list with specific keywords/pages

---

### seo_audit_page

Deep-dive SEO audit for a specific page using GSC performance data. Identifies ranking keywords, optimization opportunities, and content gaps.

<table>
<thead>
  <tr>
    <th>
      Parameter
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Default
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        pageUrl
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      required
    </td>
    
    <td>
      Full URL of the page to audit
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        siteUrl
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      -
    </td>
    
    <td>
      Site URL (optional if single site)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        period
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        28d
      </code>
    </td>
    
    <td>
      Analysis period
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        includeSerp
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      <code>
        true
      </code>
    </td>
    
    <td>
      Include SERP analysis for top keywords
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        includeKeywordResearch
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      <code>
        true
      </code>
    </td>
    
    <td>
      Include related keyword research
    </td>
  </tr>
</tbody>
</table>

```ts
// Full page audit
seo_audit_page({
  pageUrl: 'https://mysite.com/docs/getting-started',
  period: '28d'
})

// Quick audit (no SERP/keyword research)
seo_audit_page({
  pageUrl: 'https://mysite.com/docs/getting-started',
  includeSerp: false,
  includeKeywordResearch: false
})
```

#### Workflow

1. **gsc_query(type=page-detail)** - All keywords ranking for this page
2. **gsc_query(type=keywords)** - Check for keyword cannibalization
3. **keyword_research(type=serp)** - Competition for top keywords (optional)
4. **keyword_research(type=research)** - Find related keyword gaps (optional)

#### Output

Returns a page-specific audit:

- **Performance Summary** - Total clicks/impressions, primary keyword, trend
- **Keyword Rankings Table** - All keywords with status indicators
- **Optimization Opportunities** - Title, content, and linking suggestions
- **Technical Recommendations** - Meta, headers, schema, images
- **Action Plan** - Prioritized changes with expected impact

---

## Content Workflow

The content prompts work together:

```text
keyword_research(type=research) → content_brief → article_generation
```

1. **Research keywords** - Find target keywords for topic
2. **Create brief** - Generate structured outline
3. **Write article** - Generate full content following the style guide

### content_brief

Generate a structured outline for an article. Use after keyword research.

<table>
<thead>
  <tr>
    <th>
      Parameter
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Default
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        topic
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      required
    </td>
    
    <td>
      Main topic for the article
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        targetKeywords
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      required
    </td>
    
    <td>
      Comma-separated target keywords (3-5)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        competitorUrls
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      -
    </td>
    
    <td>
      Comma-separated URLs to differentiate from
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        pageType
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        technical
      </code>
    </td>
    
    <td>
      <code>
        technical
      </code>
      
      , <code>
        marketing
      </code>
      
      , or <code>
        tutorial
      </code>
    </td>
  </tr>
</tbody>
</table>

```ts
content_brief({
  topic: 'Adding Schema.org to Nuxt Pages',
  targetKeywords: 'nuxt schema.org, useSchemaOrg nuxt, nuxt structured data',
  pageType: 'technical'
})
```

#### Output Structure

1. **Primary search intent** - What the user wants to accomplish
2. **Unique angle** - How to differentiate from competitors
3. **H2 sections** (4-6) - Each with:

  - Heading text
  - Bullet points to cover
  - Target keywords to use
4. **Key questions** - Questions users ask about the topic
5. **Frontmatter suggestion** - Title and related pages

---

### article_generation

Generate a full article from an outline. Embeds the complete Writing Guide rules.

<table>
<thead>
  <tr>
    <th>
      Parameter
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Default
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        outline
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      required
    </td>
    
    <td>
      Content brief from <code>
        content_brief
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        targetWordCount
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        1500
      </code>
    </td>
    
    <td>
      Target length (500-5000)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        includeCodeExamples
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        true
      </code>
    </td>
    
    <td>
      Include code examples
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        sitemapUrls
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      -
    </td>
    
    <td>
      Comma-separated site URLs for internal linking
    </td>
  </tr>
</tbody>
</table>

```ts
article_generation({
  outline: '# Content Brief\n\n## Primary Intent...',
  targetWordCount: '2000',
  includeCodeExamples: 'true',
  sitemapUrls: '/docs/schema-org/getting-started, /docs/seo-utils/getting-started'
})
```

#### Gap Markers

The output includes markers for content that needs follow-up:

```md
[STAT NEEDED: percentage of sites with broken meta tags]
[VERIFY: does this work in Nuxt 4?]
[EXAMPLE NEEDED: real-world product schema]
[LINK: internal link to related page]
```

Review the article and fill these gaps before publishing.

---

## Chaining Prompts

### SEO Audit → Content Creation

Use audit data to drive content decisions:

```ts
// 1. Run site audit to find opportunities
const audit = await seo_audit_site({ focusArea: 'growth' })

// 2. Pick a keyword opportunity
const targetKeyword = audit.opportunities[0].keyword

// 3. Research related keywords
const keywords = await keyword_research({ type: 'research', topic: targetKeyword })

// 4. Create content brief
const brief = await content_brief({
  topic: targetKeyword,
  targetKeywords: keywords.keywords.slice(0, 5).map(k => k.keyword).join(', ')
})

// 5. Generate article
const article = await article_generation({ outline: brief })
```

### Page Audit → Optimization

Fix underperforming pages:

```ts
// 1. Audit the page
const audit = await seo_audit_page({
  pageUrl: 'https://mysite.com/docs/meta-tags'
})

// 2. Get the striking-distance keywords
const opportunities = audit.keywords.filter(k => k.pos >= 4 && k.pos <= 20)

// 3. Update title/content based on recommendations
// The audit provides specific title suggestions and content gaps
```
