Implements technical SEO: meta tags, JSON-LD structured data, sitemaps, crawlability fixes. Use when adding schema markup, JSON-LD, robots.txt updates, canonical URLs, Open Graph tags, or improving crawlability.
77
96%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
<title> + <meta name="description"> per public page<title> + description.robots.txt.
robots.txt.robots.txt allows public pages.
Disallow: entries; resubmit sitemap.export const metadata: Metadata = {
title: 'Product Name — Short Descriptor',
description: 'Concise 150-160 char description with primary keyword.',
alternates: { canonical: 'https://example.com/page-slug' },
openGraph: {
title: 'Product Name — Short Descriptor',
description: 'Concise description for social sharing.',
url: 'https://example.com/page-slug',
type: 'website',
images: [{ url: 'https://example.com/og-image.jpg', width: 1200, height: 630 }],
},
twitter: { card: 'summary_large_image', title: 'Product Name — Short Descriptor', images: ['https://example.com/og-image.jpg'] },
robots: { index: true, follow: true },
};Constraints: title 50–60 chars · description 150–160 chars · OG image 1200×630 px · noindex only on admin/draft pages.
function StructuredData({ breadcrumbs, article }: Props) {
const breadcrumbLd = {
'@context': 'https://schema.org', '@type': 'BreadcrumbList',
itemListElement: breadcrumbs.map((crumb, i) => ({ '@type': 'ListItem', position: i + 1, name: crumb.label, item: crumb.url })),
};
const articleLd = {
'@context': 'https://schema.org', '@type': 'Article',
headline: article.title, description: article.summary,
image: article.imageUrl, datePublished: article.publishedAt,
dateModified: article.updatedAt, author: { '@type': 'Person', name: article.author },
};
return (
<>
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(breadcrumbLd) }} />
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(articleLd) }} />
</>
);
}Validate: curl -s https://example.com/page | pup 'script[type=application/ld+json] text{}' | jq . then run Google's Rich Results Test (https://search.google.com/test/rich-results).
<lastmod> only if accurateUser-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /preview/
Sitemap: https://example.com/sitemap.xml7a69a05
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.