Skip to content
Skill Authoring
Skill

/meta-tag-optimizer

Use this skill when the user says 'meta tags', 'title tag', 'meta description', 'optimize meta', 'SERP preview', or needs to write or optimize HTML meta tags for better search visibility and click-through rates. Do NOT use for schema markup or full site audits.

BOOST
From plugin
memstack
42587 skills2 commands4 hooks
Install
$ npx -y skills add cwinvestments/memstack --skill meta-tag-optimizer --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/meta-tag-optimizer

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use this skill when the user says 'meta tags', 'title tag', 'meta description', 'optimize meta', 'SERP preview', or needs to write or optimize HTML meta tags for better search visibility and click-through rates. Do NOT use for schema markup or full site audits.

SKILL.md

meta-tag-optimizer.SKILL.md
name: memstack-seo-meta-tag-optimizer
description: "Use this skill when the user says 'meta tags', 'title tag', 'meta description', 'optimize meta', 'SERP preview', or needs to write or optimize HTML meta tags for better search visibility and click-through rates. Do NOT use for schema markup or full site audits."
version: 1.0.0
license: "Proprietary, MemStack™ Pro by CW Affiliate Investments LLC. See LICENSE.txt"

🏷️ Meta Tag Optimizer: Scanning and optimizing page meta tags...

*Scans all pages for existing meta tags, identifies issues, and generates optimized replacements: titles, descriptions, Open Graph, canonical URLs, and robots directives.*

Activation

When this skill activates, output:

`🏷️ Meta Tag Optimizer, Scanning pages for meta tag issues...`

Then execute the protocol below.

| Context | Status | |---------|--------| | User says "optimize meta tags" or "fix meta tags" | ACTIVE | | User says "title tags" or "meta description" or "og tags" | ACTIVE | | Improving SEO for specific pages | ACTIVE | | Running a full site audit (broader scope) | DORMANT: use site-audit | | Adding structured data / JSON-LD | DORMANT: use schema-markup |

Anti-patterns

| Trap | Reality Check | |------|---------------| | "Same meta description on every page" | Duplicate descriptions get ignored by Google. Each page needs unique, relevant meta. | | "Title = just the page name" | "About" tells Google nothing. "About [Company] - [Key Differentiator]" ranks. | | "OG tags are optional" | Without og:image, your shared links look broken on social. No image = no clicks. | | "Canonical URLs don't matter" | Duplicate content splits ranking signals. Canonical tags consolidate authority to one URL. | | "Longer titles rank better" | Google truncates after ~60 chars. Truncated titles look unprofessional and lose clicks. |

Protocol

Step 1: Scan All Pages

Identify every page and its current meta tags:

# Find all page/route files
find app/ pages/ src/ -name "*.tsx" -o -name "*.jsx" -o -name "*.html" 2>/dev/null | grep -v node_modules | grep -v "_\|layout\|loading\|error\|not-found"

# Next.js metadata exports
grep -rn "export const metadata\|export function generateMetadata" --include="*.tsx" --include="*.ts" . | grep -v node_modules

# Check for global/shared metadata
cat app/layout.tsx 2>/dev/null | head -30

**Build the page inventory:**

| Page | Route | Has Title | Has Description | Has OG | Has Canonical | |------|-------|-----------|----------------|--------|--------------| | Homepage | `/` | ? | ? | ? | ? | | About | `/about` | ? | ? | ? | ? | | Pricing | `/pricing` | ? | ? | ? | ? | | Blog index | `/blog` | ? | ? | ? | ? | | Blog post | `/blog/[slug]` | ? | ? | ? | ? | | ... | ... | ... | ... | ... | ... |

Step 2: Audit Title Tags

# Find all title definitions
grep -rn "title:" --include="*.tsx" --include="*.ts" . | grep -v node_modules | grep -v "\.test\.\|\.spec\."

**Title tag rules:**

| Rule | Requirement | Check | |------|------------|-------| | Unique per page | No two pages share the same title | Compare all titles | | Length | 50-60 characters | Count characters | | Keyword placement | Primary keyword in first 40 chars | Review keyword position | | Brand suffix | " - [Brand]" or " \| [Brand]" at end | Consistent format | | No keyword stuffing | Keyword appears once, naturally | Read aloud test | | Compelling | Would you click this in search results? | Subjective but critical |

**Title optimization formula:**

[Primary Keyword]: [Value Proposition] | [Brand]

Examples:

  • ❌ "Home" → ✅ "Project Management for Small Teams | Acme"
  • ❌ "About Us" → ✅ "About Acme - Built by Developers, for Developers"
  • ❌ "Blog" → ✅ "Acme Blog: Tips for Remote Team Management"
  • ❌ "Contact" → ✅ "Contact Acme - Get a Free Consultation"

Step 3: Audit Meta Descriptions

# Find all description definitions
grep -rn "description:" --include="*.tsx" --include="*.ts" . | grep -v node_modules | grep -v "\.test\.\|\.spec\."

**Description rules:**

| Rule | Requirement | Check | |------|------------|-------| | Unique per page | No duplicates | Compare all descriptions | | Length | 150-155 characters | Count characters | | Includes keyword | Primary keyword present | Keyword search | | Includes CTA | Action-oriented language | Look for verbs | | Matches page content | Description reflects actual content | Manual review | | No truncation | Complete thought within limit | Check ending |

**Description formula:**

[What the page offers]. [Specific benefit or differentiator]. [CTA - action verb].

Examples:

  • ❌ "Welcome to our website" → ✅ "Manage projects 3x faster with Acme's all-in-one platform. Built for remote teams with real-time collaboration. Start free today."
  • ❌ "" (empty) → ✅ "Learn proven strategies for managing distributed teams. Practical tips from 10 years of remote-first experience. Read the latest posts."

Step 4: Audit Open Graph Tags

# Find OG tag definitions
grep -rn "openGraph\|og:" --include="*.tsx" --include="*.ts" --include="*.html" . | grep -v node_modules

**Required OG tags per page:**

| Tag | Required | Specification | |-----|----------|--------------| | `og:title` | Yes | Can differ from `<title>`, optimize for social, not search | | `og:description` | Yes | Can differ from meta description: more casual tone ok | | `og:image` | Yes | 1200x630px, < 5MB, shows product/brand/visual | | `og:url` | Yes | Canonical URL of the page | | `og:type` | Yes | `website` for homepage, `article` for blog posts | | `og:site_name` | Recommended | Brand name | | `twitter:card` | Recommended | `summary_large_image` for image-heavy shares | | `twitter:title` | Recommended | Can match og:title | | `twitter:description` | Recommended | Can match og:description | | `twitter:image` | Recommended | Can match og:image |

**Common og:image issues:**

  • ❌ No og:image → shared links show no preview (kills click-through)
  • ❌ Ima
Read more
Ships withmemstack

The structured skill framework for Claude Code: 131 professional skills for deployment, security, databases, content, marketing, and more. Skills activate automatically when you need them. Say "deploy this to Railway" and the right skill loads on demand.

Get the whole plugin

Other skills on memstack.