SEO Metadata Generator — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited SEO Metadata Generator (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill generates a complete set of SEO metadata for any web page — title tag, meta description, Open Graph tags, Twitter Card tags, and JSON-LD structured data — all in a single ready-to-paste HTML snippet. It analyzes the page's content and purpose, chooses the right structured data schema (Article, Product, WebPage, FAQPage, etc.), and optimizes every field for both search engines and social sharing.
Use this when building a new page, auditing existing metadata, or ensuring consistent SEO across a site.
Copy this file to .agents/skills/seo-metadata-generator/SKILL.md in your project root.
Then describe the page or share its content and ask:
Provide: the page's main content or purpose, the primary keyword, the page URL, the site name, and an available OG image URL (or a placeholder if none exists yet).
Add the "Prompt / Instructions" section to your .cursorrules file. Open the page template or content file and ask Cursor to generate the metadata.
Describe the page content, primary keyword, URL, site name, and page type. Include the instructions below.
When asked to generate SEO metadata, follow these steps:
https://example.com/og-image.png as a placeholder if not provided)Primary Keyword — Brand Name or Primary Keyword: Descriptive SubtitleBrand Name — Short Value Propositionog:title — can match the title tag or be slightly more descriptive (up to 95 chars for social)og:description — can match the meta description or be more conversational for social sharing (up to 200 chars)og:image — use the provided URL; add og:image:width (1200) and og:image:height (630) for proper displayog:image:alt — descriptive alt text for the image (not "image of..." — just describe what's in it)og:url — the canonical page URLog:type — article for blog posts, website for all other pages, product for e-commerceog:site_name — the site nametwitter:card — use summary_large_image for pages with a meaningful OG image; summary otherwisetwitter:title — same as og:titletwitter:description — same as og:descriptiontwitter:image — same as og:imagetwitter:image:alt — same as og:image:alttwitter:site — @twitterhandle (use placeholder @yourbrand if not provided)Article schema (with author, datePublished, dateModified, headline, image)Product schema (with name, description, offers, brand)FAQPage schema (with mainEntity array of Question/Answer pairs)HowTo schema (with step array)SoftwareApplication schemaWebPage schema (with name, description, url)WebSite schema + Organization schemaAlways include @context: "https://schema.org" and @type. Use realistic values, not "string" placeholders.
<head> section. Add comments to separate sections. Do not include <html>, <head>, or <body> tags — just the meta tags and script.Input to Agent:
"Use the SEO Metadata Generator skill. Page: a blog post titled 'How to Optimize React Performance'. Primary keyword: 'react performance optimization'. URL: https://devblog.example.com/blog/react-performance-optimization. Site: DevBlog. Author: Sarah Chen. Published: 2026-03-15. OG image: https://devblog.example.com/images/react-perf-og.png"
Output from Agent:
```html <!-- Primary Meta Tags --> <title>React Performance Optimization: A Complete Guide — DevBlog</title> <meta name="description" content="Learn proven React performance optimization techniques — memoization, lazy loading, bundle splitting, and more. Cut your app's render time today."> <link rel="canonical" href="https://devblog.example.com/blog/react-performance-optimization">
>
<!-- Open Graph / Facebook --> <meta property="og:type" content="article"> <meta property="og:url" content="https://devblog.example.com/blog/react-performance-optimization"> <meta property="og:site_name" content="DevBlog"> <meta property="og:title" content="React Performance Optimization: A Complete Guide"> <meta property="og:description" content="Proven techniques to speed up your React app — memoization, lazy loading, bundle splitting, and profiling. Cut render time and improve user experience."> <meta property="og:image" content="https://devblog.example.com/images/react-perf-og.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"> <meta property="og:image:alt" content="Code editor showing React component optimization with useMemo highlighted">
>
<!-- Twitter Card --> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@devblog"> <meta name="twitter:title" content="React Performance Optimization: A Complete Guide"> <meta name="twitter:description" content="Proven techniques to speed up your React app — memoization, lazy loading, bundle splitting, and profiling. Cut render time and improve user experience."> <meta name="twitter:image" content="https://devblog.example.com/images/react-perf-og.png"> <meta name="twitter:image:alt" content="Code editor showing React component optimization with useMemo highlighted">
>
<!-- JSON-LD Structured Data --> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "How to Optimize React Performance", "description": "Learn proven React performance optimization techniques — memoization, lazy loading, bundle splitting, and more.", "image": "https://devblog.example.com/images/react-perf-og.png", "url": "https://devblog.example.com/blog/react-performance-optimization", "datePublished": "2026-03-15", "dateModified": "2026-03-15", "author": { "@type": "Person", "name": "Sarah Chen" }, "publisher": { "@type": "Organization", "name": "DevBlog", "url": "https://devblog.example.com" }, "mainEntityOfPage": { "@type": "WebPage", "@id": "https://devblog.example.com/blog/react-performance-optimization" } } </script> ```
>
Notes: - Title is 57 characters — within the 50–60 target. - Meta description is 154 characters — within the 150–160 target. - Replace@devblogwith your actual Twitter handle. - UpdatedateModifiedwhenever the post is significantly updated.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.