Schema Markup
How AIO Radar generates structured data to help search engines and AI understand your content.
What is Schema Markup?
Schema markup is structured data that helps search engines and AI assistants understand the content and context of your pages. It uses a standardized vocabulary from Schema.org to describe things like businesses, products, events, and more.
Why This Matters
Schema states the facts of your page in a form machines do not have to infer: who you are,
what you sell, when you are open.
Why Schema Matters for AI
Search Engines
Schema markup enables:
AI Assistants
AI systems use schema to:
Schema Types Generated
AIO Radar automatically detects your site type and generates appropriate schema:
Organization/LocalBusiness
For all sites - describes your business:
{
"@context": "https://schema.org",
"@type": "TravelAgency",
"name": "Example Travel Tours",
"url": "https://example.com",
"description": "Costa Rica adventure tour specialists",
"telephone": "+1-555-123-4567",
"email": "info@example.com"
}WebSite
Site-level information:
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Example Travel Tours",
"url": "https://example.com",
"potentialAction": {
"@type": "SearchAction",
"target": "https://example.com/search?q={search_term_string}"
}
}TourTrip / Product
For tour operators and e-commerce:
{
"@context": "https://schema.org",
"@type": "TourTrip",
"name": "Costa Rica Volcano Adventure",
"description": "8-day guided tour of Costa Rica's volcanic landscapes",
"touristType": "Adventure travelers",
"itinerary": {
"@type": "ItemList",
"itemListElement": [...]
}
}BreadcrumbList
Navigation breadcrumbs:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@id": "https://example.com",
"name": "Home"
}
}
]
}Business Type Detection
AIO Radar analyzes your content to detect your business type:
| Detected Type | Schema Generated |
|---|---|
| Tour Operator | TravelAgency, TourTrip |
| Restaurant | Restaurant, Menu |
| Hotel | LodgingBusiness, Hotel |
| Retail | LocalBusiness, Product |
| Service Business | ProfessionalService |
| Healthcare | MedicalBusiness |
| Legal | LegalService |
| General | Organization |
Viewing Schema
In WordPress Admin
Go to AIO Radar → Schema to see:
As JSON
Fetch schema via API:
curl "https://aioradar.vercel.app/api/sites/{id}/schema" \
-H "Authorization: Bearer your_api_key"As Script Tags
Get ready-to-use script tags:
curl "https://aioradar.vercel.app/api/sites/{id}/schema?format=script" \
-H "Authorization: Bearer your_api_key"Returns:
<script type="application/ld+json">{"@context":"https://schema.org",...}</script>Implementing Schema
Automatic Implementation
The AIO Radar plugin can automatically inject schema into your pages:
<head> automaticallyManual Implementation
Copy schema from the admin panel or API and add to your theme:
In theme's header.php:
<?php
// Get AIO Radar schema
$schema = get_option('aio_schema_templates');
if ($schema) {
foreach ($schema as $type => $data) {
echo '<script type="application/ld+json">';
echo json_encode($data, JSON_UNESCAPED_SLASHES);
echo '</script>';
}
}
?>Using WordPress Hooks
add_action('wp_head', function() {
$client = new AIO_API_Client();
$schema = $client->get_schema('script');
if ($schema && !empty($schema['scripts'])) {
foreach ($schema['scripts'] as $script) {
echo $script;
}
}
});Schema Settings
Configure at AIO Radar → Settings → Schema:
| Setting | Description | Default |
|---|---|---|
| Auto-inject | Add schema to pages automatically | Enabled |
| Include WebSite | Add WebSite schema | Enabled |
| Include Breadcrumbs | Add BreadcrumbList | Enabled |
| Business type | Override detected type | Auto-detect |
Validating Schema
Google Rich Results Test
Test your schema at Google's Rich Results Test:
Schema.org Validator
Validate JSON-LD at Schema Markup Validator:
Best Practices
Be Accurate
Schema should reflect actual content:
Be Complete
Include all relevant properties:
{
"@type": "TravelAgency",
"name": "Example Tours",
"url": "https://example.com",
"telephone": "+1-555-123-4567",
"email": "info@example.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "San José",
"addressCountry": "CR"
},
"openingHours": "Mo-Fr 09:00-17:00"
}Keep Updated
Regenerate schema when you:
Troubleshooting
Schema Not Appearing
Check:
Wrong Business Type
Solution:
Validation Errors
Common fixes: