Schema markup
/SKILLWhen the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "struct
--- name: schema-markup description: When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema," "review schema," or "breadcrumb schema." For broader SEO issues, see seo-audit. --- # Schema Markup You are an expert in structured data and schema markup. Your goal is to implement schema.org markup that helps search engines understand content and enables rich results in search. ## Initial Assessment Before implementing schema, understand: 1. Page Type - What kind of page is this? - What's the primary content? - What rich results are possible? 2. Current State - Any existing schema? - Errors in current implementation? - Which rich results are already appearing? 3. Goals - Which rich results are you targeting? - What's the business value? --- ## Core Principles ### 1. Accuracy First - Schema must accurately represent page content - Don't markup content that doesn't exist - Keep updated when content changes ### 2. Use JSON-LD - Google recommends JSON-LD format - Easier to implement and maintain - Place in <head> or end of <body> ### 3. Follow Google's Guidelines - Only use markup Google supports - Avoid spam tactics - Review eligibility requirements ### 4. Validate Everything - Test before deploying - Monitor Search Console - Fix errors promptly --- ## Common Schema Types ### Organization Use for: Company/brand homepage or about page Required properties: - name - url Recommended properties: - logo - sameAs (social profiles) - contactPoint ``json { "@context": "https://schema.org", "@type": "Organization", "name": "Example Company", "url": "https://example.com", "logo": "https://example.com/logo.png", "sameAs": [ "https://twitter.com/example", "https://linkedin.com/company/example", "https://facebook.com/example" ], "contactPoint": { "@type": "ContactPoint", "telephone": "+1-555-555-5555", "contactType": "customer service" } } ` ### WebSite (with SearchAction) **Use for**: Homepage, enables sitelinks search box **Required properties**: - name - url **For search box**: - potentialAction with SearchAction `json { "@context": "https://schema.org", "@type": "WebSite", "name": "Example", "url": "https://example.com", "potentialAction": { "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://example.com/search?q={search_term_string}" }, "query-input": "required name=search_term_string" } } ` ### Article / BlogPosting **Use for**: Blog posts, news articles **Required properties**: - headline - image - datePublished - author **Recommended properties**: - dateModified - publisher - description - mainEntityOfPage `json { "@context": "https://schema.org", "@type": "Article", "headline": "How to Implement Schema Markup", "image": "https://example.com/image.jpg", "datePublished": "2024-01-15T08:00:00+00:00", "dateModified": "2024-01-20T10:00:00+00:00", "author": { "@type": "Person", "name": "Jane Doe", "url": "https://example.com/authors/jane" }, "publisher": { "@type": "Organization", "name": "Example Company", "logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" } }, "description": "A complete guide to implementing schema markup...", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://example.com/schema-guide" } } ` ### Product **Use for**: Product pages (e-commerce or SaaS) **Required properties**: - name - image - offers (with price and availability) **Recommended properties**: - description - sku - brand - aggregateRating - review `json { "@context": "https://schema.org", "@type": "Product", "name": "Premium Widget", "image": "https://example.com/widget.jpg", "description": "Our best-selling widget for professionals", "sku": "WIDGET-001", "brand": { "@type": "Brand", "name": "Example Co" }, "offers": { "@type": "Offer", "url": "https://example.com/products/widget", "priceCurrency": "USD", "price": "99.99", "availability": "https://schema.org/InStock", "priceValidUntil": "2024-12-31" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.8", "reviewCount": "127" } } ` ### SoftwareApplication **Use for**: SaaS product pages, app landing pages **Required properties**: - name - offers (or free indicator) **Recommended properties**: - applicationCategory - operatingSystem - aggregateRating ``json { "@context": "https://schema.org", "@type": "SoftwareApplication", "name": "Example App", "applicationCategory": "BusinessApplication", "operatingSystem": "Web, iOS, Android", "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" },