Overview
Every validation generates a completeness score from 0 to 100 for each detected schema type. The score measures how thoroughly the markup covers required, recommended, and optional properties defined by Schema.org and Google’s rich results requirements.
How It Works
1. After validation, each schema type is scored independently
2. Scoring weights:
– Required properties: highest weight
– Recommended properties: medium weight
– Optional properties: lower weight
3. Missing required properties significantly reduce the score
4. Score is displayed per schema type and as an overall average
Tier Availability
| Tier | Available |
|——|———–|
| Free | No |
| Pro | Yes |
| Agency | Yes |
| Enterprise | Yes |
Related Features
– Auto-Fix Suggestions: Get code to improve your score
– Rich Snippet Eligibility: Check if score meets Google’s thresholds
– Site-Wide Score: Aggregated score across all validated URLs
Quick Start: Understand Your Completeness Score
Step 1: Validate a URL (see URL Validation docs)
Step 2: Review the score breakdown
– Score is per schema type (e.g., Article gets 78, BreadcrumbList gets 95)
– Overall site score is the average of all type scores
– Each type shows: required met/total, recommended met/total, optional met/total
Step 3: Focus on improving required properties first
– Required properties have 3x weight in scoring
– Missing one required property can drop your score 10-15 points
– Required properties directly impact rich snippet eligibility
Example interpretation:
– Score 90-100: Excellent. Meets all rich snippet requirements.
– Score 75-89: Good. Most properties present; consider adding recommended ones.
– Score 60-74: Fair. Key properties missing; improvements recommended.
– Score <60: Needs work. Missing required properties; won’t show rich results.
Technical Details
Scoring Algorithm
The completeness score uses weighted formula:
Score = (Σ(required_met × 3) + Σ(recommended_met × 2) + Σ(optional_met × 1)) / max_possible_points × 100
Where:
– required_met = number of required properties present
– recommended_met = number of recommended properties present
– optional_met = number of optional properties present
– max_possible_points = max_required × 3 + max_recommended × 2 + max_optional × 1
Example Calculation: Article Type
Article requirements per Schema.org:
– Required: headline, author, datePublished (3 properties)
– Recommended: image, description, dateModified, publisher (4 properties)
– Optional: url, mainEntityOfPage, keywords, articleBody, wordCount (5 properties)
– Max possible points: (3 × 3) + (4 × 2) + (5 × 1) = 22 points
Scenario 1: Minimal Article
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "My Article",
"author": {"@type": "Person", "name": "John Doe"},
"datePublished": "2024-03-15"
}
– Required present: 3/3 = 9 points
– Recommended present: 0/4 = 0 points
– Optional present: 0/5 = 0 points
– Score: 9 / 22 × 100 = 40.9
Scenario 2: Complete Article
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "My Article",
"author": {"@type": "Person", "name": "John Doe"},
"datePublished": "2024-03-15",
"image": "https://example.com/image.jpg",
"description": "Article summary",
"dateModified": "2024-03-16",
"publisher": {"@type": "Organization", "name": "My Blog"},
"url": "https://example.com/article",
"mainEntityOfPage": {"@type": "WebPage", "@id": "https://example.com/article"},
"keywords": ["topic1", "topic2"],
"articleBody": "Full article text..."
}
– Required present: 3/3 = 9 points
– Recommended present: 4/4 = 8 points
– Optional present: 4/5 = 4 points
– Score: 21 / 22 × 100 = 95.5
Tier-Specific Scoring
Free tier:
– Scores limited to supported types (Article, FAQPage, BreadcrumbList, Organization, WebSite)
– Only required properties counted for other types
Pro tier:
– Full scoring for 25 curated types
– Recommended/optional weights applied
Agency/Enterprise:
– Full scoring for all schema.org types
– Custom type definitions can adjust weights
Response Example with Score Breakdown
Request:
{"data_url": "https://example.com/recipe"}
Response:
{
"success": true,
"data": {
"url": "https://example.com/recipe",
"validation_id": "val_recipe_123",
"overall_score": 78,
"score_breakdown": {
"Recipe": {
"score": 78,
"max_score": 100,
"required": {
"name": true,
"author": true,
"prepTime": true,
"cookTime": true,
"recipeYield": true,
"recipeIngredient": true,
"recipeInstructions": true,
"total_met": 7,
"total_required": 7,
"points_earned": 21,
"points_available": 21
},
"recommended": {
"image": false,
"description": false,
"totalTime": true,
"recipeCategory": false,
"total_met": 1,
"total_recommended": 4,
"points_earned": 2,
"points_available": 8
},
"optional": {
"keywords": false,
"url": true,
"aggregateRating": false,
"total_met": 1,
"total_optional": 3,
"points_earned": 1,
"points_available": 3
},
"improvement_suggestions": [
{"property": "image", "weight": "recommended", "impact": "+4 points", "priority": "high"},
{"property": "description", "weight": "recommended", "impact": "+2 points", "priority": "high"}
]
}
},
"schema_types_evaluated": ["Recipe"],
"errors": [],
"warnings": [
{
"type": "Recipe",
"property": "image",
"message": "Recommended property missing"
}
]
}
}
Score Ranges and Actions
| Score Range | Status | Recommended Action |
|————-|——–|——————-|
| 90-100 | Excellent | Ready for rich snippets; maintain current markup |
| 75-89 | Good | Add recommended properties for better visibility |
| 60-74 | Fair | Add multiple missing properties; check eligibility |
| <60 | Poor | Fix required properties; markup incomplete |
References
– Schema.org Property Documentation: https://schema.org/docs/documents.html
– Google Rich Results Requirements: https://developers.google.com/search/docs/appearance/structured-data
– Recipe Schema Type Specification: https://schema.org/Recipe
– Scoring Methodology Best Practices: https://example.com/docs/scoring-methodology
– W3C Schema.org Vocabulary: https://schema.org/