Structured Data Issues
What This Means
Structured data (schema markup) is code that helps search engines understand your content better. When implemented correctly, it can enable rich results in search (star ratings, prices, FAQs, etc.). Issues with structured data can prevent these enhanced search features or cause validation errors.
Impact on Your Business
- Rich results get higher click-through rates (up to 30% increase)
- Enhanced listings stand out in search results
- Product, review, and FAQ snippets increase engagement
- Recipe, event, and article cards improve discoverability
SEO Performance:
- Helps Google understand page content and purpose
- Improves content categorization
- Supports voice search and AI assistants
- Essential for Google Merchant Center
Trust and Credibility:
- Star ratings and reviews build trust
- Price and availability information helps users
- FAQ snippets answer questions directly in search
- Breadcrumbs improve navigation understanding
How to Diagnose
Method 1: Google Rich Results Test (Recommended)
- Navigate to Rich Results Test
- Enter your page URL or paste code
- Click "Test URL"
- Review results:
- Green checkmarks = valid structured data
- Yellow warnings = recommended improvements
- Red errors = must fix for rich results
What to Look For:
- "No rich results detected" - Missing or invalid schema
- Specific field errors (missing required properties)
- Warnings about recommended fields
- Detected item types and their validity
Method 2: Google Search Console
- Log in to Google Search Console
- Navigate to Enhancements section
- Review each structured data type:
- Products
- FAQs
- Breadcrumbs
- Articles
- Reviews
What to Look For:
- Error counts per item type
- Invalid items requiring fixes
- Valid with warnings items
- Trends over time
Method 3: Schema Markup Validator
- Navigate to Schema.org Validator
- Enter URL or paste code
- Review detected schemas and errors
Method 4: Browser DevTools
View structured data in page source:
- Open DevTools (
F12) - View Page Source (
Ctrl+U) - Search for
application/ld+jsonoritemscope - Validate the JSON structure
// Console: Extract all JSON-LD structured data
document.querySelectorAll('script[type="application/ld+json"]').forEach(script => {
try {
const data = JSON.parse(script.textContent);
console.log(data);
} catch (e) {
console.error('Invalid JSON-LD:', e);
}
});
Method 5: Lighthouse SEO Audit
- Open Chrome DevTools (
F12) - Navigate to "Lighthouse" tab
- Select "SEO" category
- Generate report
- Check for structured data issues in "Additional items to manually check"
Common Structured Data Types
Product Schema
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Premium Wireless Headphones",
"image": "https://example.com/headphones.jpg",
"description": "High-quality wireless headphones with noise cancellation",
"sku": "WH-1000XM4",
"brand": {
"@type": "Brand",
"name": "AudioTech"
},
"offers": {
"@type": "Offer",
"url": "https://example.com/headphones",
"priceCurrency": "USD",
"price": "299.99",
"availability": "https://schema.org/InStock",
"seller": {
"@type": "Organization",
"name": "Example Store"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "127"
}
}
Article Schema
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to Improve Website Performance",
"author": {
"@type": "Person",
"name": "Jane Smith"
},
"publisher": {
"@type": "Organization",
"name": "Tech Blog",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"datePublished": "2024-01-15",
"dateModified": "2024-03-20",
"image": "https://example.com/article-image.jpg",
"description": "Learn the best practices for optimizing website speed and performance."
}
FAQ Schema
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is structured data?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Structured data is code in a specific format that helps search engines understand your content better."
}
},
{
"@type": "Question",
"name": "How do I add structured data?",
"acceptedAnswer": {
"@type": "Answer",
"text": "You can add structured data using JSON-LD, Microdata, or RDFa formats in your HTML."
}
}
]
}
Breadcrumb Schema
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Products",
"item": "https://example.com/products"
},
{
"@type": "ListItem",
"position": 3,
"name": "Headphones",
"item": "https://example.com/products/headphones"
}
]
}
Local Business Schema
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Acme Coffee Shop",
"image": "https://example.com/shop.jpg",
"telephone": "+1-555-123-4567",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Portland",
"addressRegion": "OR",
"postalCode": "97201",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "45.5152",
"longitude": "-122.6784"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "07:00",
"closes": "19:00"
}
]
}
General Fixes
Fix 1: Add JSON-LD Structured Data
Preferred method - add to <head> section:
<head>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Product Name",
...
}
</script>
</head>
Fix 2: Fix Missing Required Properties
Common missing required fields:
| Schema Type | Required Properties |
|---|---|
| Product | name, image, offers (with price, priceCurrency, availability) |
| Article | headline, author, publisher, datePublished, image |
| LocalBusiness | name, address |
| FAQPage | mainEntity (array of Question) |
| Review | itemReviewed, author, reviewRating |
Fix 3: Correct Invalid Values
Fix invalid URLs:
// Bad - relative URL
"image": "/product.jpg"
// Good - absolute URL
"image": "https://example.com/product.jpg"
Fix invalid dates:
// Bad - informal date
"datePublished": "January 15, 2024"
// Good - ISO 8601 format
"datePublished": "2024-01-15"
Fix invalid prices:
// Bad - currency symbol in price
"price": "$29.99"
// Good - numeric value only
"price": "29.99",
"priceCurrency": "USD"
Fix 4: Match Structured Data to Page Content
Ensure structured data accurately reflects visible content:
// Must match the actual product name on the page
"name": "Exact Product Name As Shown"
// Must match the actual price displayed
"price": "299.99"
// Must reflect current availability
"availability": "https://schema.org/InStock"
Fix 5: Implement Multiple Schema Types
Combine related schemas:
<script type="application/ld+json">
[
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Company Name",
"url": "https://example.com",
"logo": "https://example.com/logo.png"
},
{
"@context": "https://schema.org",
"@type": "WebSite",
"url": "https://example.com",
"potentialAction": {
"@type": "SearchAction",
"target": "https://example.com/search?q={search_term_string}",
"query-input": "required name=search_term_string"
}
}
]
</script>
Fix 6: Add Recommended Properties
While not required, recommended properties improve rich result eligibility:
Product recommendations:
brandaggregateRatingreviewskuorgtindescription
Article recommendations:
dateModifiedmainEntityOfPagewordCountarticleSection
Platform-Specific Guides
Verification
After implementing structured data:
Test with Rich Results Test:
- Submit URL to Google's Rich Results Test
- Verify all items show as valid
- Check for any warnings or errors
Validate JSON syntax:
- Use a JSON validator
- Check for trailing commas, missing quotes
- Ensure proper nesting
Monitor Search Console:
- Wait 1-2 weeks for Google to reprocess
- Check Enhancement reports for status
- Monitor for new errors
Check rich results in search:
- Search for your content
- Look for enhanced listings
- Note: Rich results are not guaranteed
Common Mistakes
- Invalid JSON syntax - Missing commas, quotes, or brackets
- Using relative URLs - All URLs must be absolute
- Mismatched content - Schema doesn't reflect visible page content
- Missing required properties - Each schema type has required fields
- Incorrect date formats - Use ISO 8601 (YYYY-MM-DD)
- Fake or misleading data - Can result in manual actions
- Multiple conflicting schemas - Same type with different values
- Using deprecated properties - Check schema.org for current specs
- Not updating prices/availability - Must reflect current status
- Schema on wrong pages - Product schema only on product pages