agentsclimarketplace

Meta data optimization

Skill thisisAhsanIqbal/nextjs-seo-audit/skills/meta-data-optimization

AI Agent Skills for SEO auditing , 11 SKILL.md files that teach Cursor, Claude Code, Copilot & more to perform comprehensive SEO audits. Zero dependencies.

Install
npx -y skills add thisisAhsanIqbal/nextjs-seo-audit --skill meta-data-optimization

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Validates title tags, meta descriptions, Open Graph tags, and Twitter Cards. Use when auditing or fixing meta data for search engine and social media optimisation. For canonical URLs and robots directives, see the technical-seo skill.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

3.6 KB, as published. Nobody here has run it

Meta Data Optimization

Audit title, description, Open Graph, and Twitter Card meta tags.

Note: Canonical URLs, robots directives, and indexability checks are handled by the technical-seo skill. Do not duplicate those checks here.

1. Title tag

CheckRuleStatus
Missing <title>Critical for SEO❌ FAIL
Title < 30 charactersToo short⚠️ WARN
Title > 60 charactersMay be truncated in SERPs⚠️ WARN
Title 30–60 charactersOptimal length✅ PASS
Title is ALL CAPS (and > 5 chars)Perceived as spammy⚠️ WARN

Title quality checks

  • Keyword at start (position 0): ✅ PASS "Best placement"
  • Keyword near start (position ≤ 20): ✅ PASS
  • Keyword late (position > 20): ⚠️ WARN "Place keyword earlier"
  • Separator present (|, -, , , :): ✅ PASS "Good brand + keyword pattern"
  • Power words (best, guide, ultimate, how to, tips, review, top, free, new, proven): ✅ PASS "May improve CTR"
  • Contains number: ✅ PASS "Numbers in titles can boost CTR"

2. Meta description

CheckRuleStatus
Missing <meta name="description">Needs one for SERP snippets❌ FAIL
Description < 120 charactersToo short⚠️ WARN
Description > 160 charactersMay be truncated⚠️ WARN
Description 120–160 charactersOptimal✅ PASS

3. Character encoding

CheckStatus
<meta charset="utf-8"> or <meta http-equiv="Content-Type"> present✅ PASS
Neither present⚠️ WARN "Add charset meta tag"

4. Open Graph tags

Check for these required OG tags:

TagMissing =
og:title⚠️ WARN
og:description⚠️ WARN
og:image⚠️ WARN
og:url⚠️ WARN
og:type⚠️ WARN
  • All present → ✅ PASS "All required Open Graph tags present"
  • All missing → ❌ FAIL "No Open Graph tags found — social sharing will use defaults"

OG image dimensions

If og:image exists, check for og:image:width and og:image:height:

  • Both present → ✅ PASS
  • Missing → ⚠️ WARN "Missing og:image:width / og:image:height"

5. Twitter Card tags

Check for these required tags:

TagMissing =
twitter:card⚠️ WARN
twitter:title⚠️ WARN
twitter:description⚠️ WARN
  • All present → ✅ PASS
  • All missing → ⚠️ WARN "No Twitter Card tags found"

Note: Twitter tags can be in either <meta name="twitter:*"> or <meta property="twitter:*"> format.

Edge cases

  • Next.js generates <title> and meta tags via the metadata export or generateMetadata() — audit the rendered HTML, not the source code
  • Some sites use <meta property="title"> instead of <title> — flag as ⚠️ WARN "Use standard <title> tag"
  • Duplicate <title> tags in the document → ❌ FAIL "Only one <title> allowed"
  • If OG tags exist but <title> / <meta description> are missing, flag both — OG tags do not substitute for standard meta tags
  • Twitter falls back to OG tags when twitter:* tags are absent — note this but still recommend explicit Twitter tags for full control

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.