Schema.org Implementation for AEO

Structured data primarily serves the AEO retrieval path. When AI systems search the web and evaluate pages for inclusion in their responses, Schema.org JSON-LD provides unambiguous, machine-readable context about what each page represents. Secondary GEO benefit: well-structured sites are more accurately represented in training data, which means the same schema that helps retrieval also improves how AI models learn about your entity.

This page provides complete, copy-pasteable JSON-LD templates for every major schema type relevant to AI discoverability. Each example uses realistic placeholder values that you can adapt for your own organization. Simply replace the company names, URLs, and specific details with your own information.

Organization

The Organization schema is the single most important structured data type for AEO. It establishes your entity identity in a format that AI systems can parse unambiguously. This schema answers fundamental questions: What is your organization? Where is it located? Who founded it? What does it do? How can people contact you? Where else does your organization have an official presence online?

The Organization schema should be placed in your root layout so it appears on every page of your site. This ensures that regardless of which page an AI system retrieves or indexes first, it will always have access to your core organizational information.

Place in Root Layout

Add your Organization schema to your root layout component so it appears in the HTML of every page. This ensures AI systems always have access to your core entity information regardless of which page they encounter first.

The example below includes over 20 properties to give AI systems a comprehensive understanding of your organization. Not every property will be relevant to every business, but include as many as accurately apply to your situation.

organization-schema.json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Acme Software Inc.",
  "alternateName": "Acme",
  "legalName": "Acme Software Inc.",
  "url": "https://acmesoftware.com",
  "logo": "https://acmesoftware.com/images/logo.png",
  "image": "https://acmesoftware.com/images/company-headquarters.jpg",
  "description": "Acme Software Inc. is a project management platform founded in 2019 and headquartered in Austin, Texas. The company provides team collaboration and workflow automation tools for distributed teams.",
  "slogan": "Collaborate without boundaries",
  "foundingDate": "2019-03-15",
  "founders": [
    {
      "@type": "Person",
      "name": "Jane Smith",
      "jobTitle": "CEO",
      "url": "https://acmesoftware.com/about/jane-smith",
      "sameAs": "https://www.linkedin.com/in/janesmith"
    },
    {
      "@type": "Person",
      "name": "John Doe",
      "jobTitle": "CTO",
      "url": "https://acmesoftware.com/about/john-doe",
      "sameAs": "https://www.linkedin.com/in/johndoe"
    }
  ],
  "numberOfEmployees": {
    "@type": "QuantitativeValue",
    "value": 85
  },
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "456 Innovation Drive, Suite 200",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78701",
    "addressCountry": "US"
  },
  "contactPoint": [
    {
      "@type": "ContactPoint",
      "contactType": "customer service",
      "email": "support@acmesoftware.com",
      "telephone": "+1-512-555-0199",
      "availableLanguage": ["English", "Spanish"],
      "hoursAvailable": {
        "@type": "OpeningHoursSpecification",
        "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
        "opens": "09:00",
        "closes": "18:00"
      }
    },
    {
      "@type": "ContactPoint",
      "contactType": "sales",
      "email": "sales@acmesoftware.com",
      "telephone": "+1-512-555-0200",
      "availableLanguage": ["English"]
    }
  ],
  "sameAs": [
    "https://www.linkedin.com/company/acme-software",
    "https://twitter.com/acmesoftware",
    "https://github.com/acme-software",
    "https://www.crunchbase.com/organization/acme-software",
    "https://www.facebook.com/acmesoftware"
  ],
  "knowsAbout": [
    "project management",
    "team collaboration",
    "workflow automation",
    "distributed teams",
    "agile methodology",
    "kanban boards",
    "sprint planning"
  ],
  "areaServed": [
    {
      "@type": "Country",
      "name": "United States"
    },
    {
      "@type": "Country",
      "name": "Canada"
    },
    {
      "@type": "Country",
      "name": "United Kingdom"
    }
  ],
  "iso6523Code": "0060:123456789",
  "naics": "541511",
  "parentOrganization": {
    "@type": "Organization",
    "name": "Acme Holdings LLC",
    "url": "https://acmeholdings.com"
  },
  "award": [
    "Best Project Management Tool 2023 - Software Awards",
    "Top 50 Startups to Watch - Austin Business Journal 2022"
  ],
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Acme Software Plans",
    "itemListElement": [
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Acme Free Plan"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Acme Pro Plan"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Acme Enterprise Plan"
        }
      }
    ]
  }
}

Key Properties Explained

  • sameAs: Links to your official profiles on other platforms. This helps AI systems connect your entity across the web and verify your official presence.
  • knowsAbout: Topics and areas of expertise. This directly influences what queries AI systems consider your organization relevant for.
  • founders: Named individuals with their roles. This adds credibility and helps with queries about company leadership.
  • contactPoint: How to reach your organization. Include multiple contact points for different purposes (sales, support, etc.).
  • areaServed: Geographic regions you serve. Critical for local and regional search contexts.
  • iso6523Code: International organization identifier. Adds another layer of entity verification.

WebSite + SearchAction

The WebSite schema tells AI systems about your website as a whole, separate from your organization. The SearchAction component is particularly valuable because it enables direct integration with search features. When an AI system knows your site has search functionality and understands the URL structure, it can potentially direct users to search results on your site for specific queries.

Like Organization, the WebSite schema should be placed in your root layout to appear on all pages.

website-schema.json
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Acme Software",
  "alternateName": "Acme Project Management",
  "url": "https://acmesoftware.com",
  "description": "Project management and team collaboration platform for distributed teams",
  "inLanguage": "en-US",
  "publisher": {
    "@type": "Organization",
    "name": "Acme Software Inc.",
    "url": "https://acmesoftware.com"
  },
  "potentialAction": {
    "@type": "SearchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://acmesoftware.com/search?q={search_term_string}"
    },
    "query-input": "required name=search_term_string"
  }
}

SearchAction Implementation

Replace the urlTemplate with your actual search URL structure. The placeholder{search_term_string}indicates where the search query should be inserted. This enables AI systems and search engines to construct direct links to search results on your site.

FAQPage

FAQPage schema is exceptionally valuable for AEO because it presents information in an explicit question-and-answer format that directly mirrors how users query AI systems. When someone asks an AI assistant a question that matches one of your FAQ questions, the structured Q&A format makes your content an ideal source for the response.

Use FAQPage schema on dedicated FAQ pages, product pages with frequently asked questions sections, and any content that naturally answers common questions about your product or service.

faqpage-schema.json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is Acme Software and what does it do?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Acme Software is a comprehensive project management platform designed for distributed teams. It combines task management, team collaboration, and workflow automation in a single application. The platform helps remote and hybrid teams stay organized, communicate effectively, and deliver projects on time."
      }
    },
    {
      "@type": "Question",
      "name": "How much does Acme Software cost?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Acme Software offers three pricing tiers. The Free plan supports up to 5 users with basic features. The Pro plan costs $12 per user per month and includes advanced features like time tracking and custom fields. The Enterprise plan has custom pricing and includes SSO, audit logs, and dedicated support."
      }
    },
    {
      "@type": "Question",
      "name": "Does Acme Software integrate with other tools?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, Acme Software integrates with over 50 popular tools including Slack, Microsoft Teams, Google Workspace, GitHub, GitLab, Jira, Salesforce, and Zapier. These integrations allow you to connect your existing workflow tools and automate repetitive tasks across platforms."
      }
    },
    {
      "@type": "Question",
      "name": "Can I import my data from other project management tools?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Acme Software supports direct imports from Asana, Trello, Monday.com, Basecamp, and Jira. The import wizard maps your existing projects, tasks, and team members automatically. Most imports complete within a few minutes, and your historical data including comments and attachments are preserved."
      }
    },
    {
      "@type": "Question",
      "name": "Is Acme Software suitable for agile teams?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Acme Software is designed with agile teams in mind. It includes native support for Scrum and Kanban methodologies with features like sprint planning, backlog management, story points, velocity tracking, and burndown charts. Teams can customize their workflow to match their specific agile process."
      }
    },
    {
      "@type": "Question",
      "name": "How does Acme Software handle data security?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Acme Software employs enterprise-grade security measures including AES-256 encryption for data at rest and TLS 1.3 for data in transit. We are SOC 2 Type II certified and GDPR compliant. Enterprise plans include additional features like SSO integration, role-based access controls, and audit logging for compliance requirements."
      }
    },
    {
      "@type": "Question",
      "name": "Does Acme Software have a mobile app?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, Acme Software offers native mobile apps for both iOS and Android devices. The mobile apps provide full functionality including task management, team chat, file sharing, and push notifications. You can work offline and your changes will sync automatically when you reconnect."
      }
    },
    {
      "@type": "Question",
      "name": "What kind of customer support does Acme Software provide?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "All Acme Software users have access to our help center documentation and community forums. Pro plan users receive email support with a 24-hour response time. Enterprise customers get priority support via phone, email, and chat with a dedicated account manager and guaranteed 4-hour response time for critical issues."
      }
    },
    {
      "@type": "Question",
      "name": "Can I try Acme Software before purchasing?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Absolutely. Acme Software offers a 14-day free trial of the Pro plan with no credit card required. You get full access to all Pro features during the trial period. At the end of the trial, you can choose to upgrade to a paid plan or continue with the Free plan with reduced features."
      }
    },
    {
      "@type": "Question",
      "name": "How do I cancel my Acme Software subscription?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "You can cancel your Acme Software subscription at any time from your account settings page. There are no cancellation fees or long-term contracts. When you cancel, your account will remain active until the end of your current billing period, and you can export all your data before the account converts to a Free plan."
      }
    }
  ]
}

Best Practices for FAQ Schema

  • Use natural question phrasing: Write questions the way users actually ask them, not how you might phrase them internally.
  • Provide complete answers: Each answer should fully address the question in 2-4 sentences. Avoid answers that require clicking through to learn more.
  • Match visible content: The schema questions and answers must exactly match content visible on the page.
  • Keep answers factual: Avoid promotional language in answers. Focus on providing accurate, helpful information.

Review + AggregateRating

Review and AggregateRating schemas provide social proof in a machine-readable format. When AI systems encounter these schemas, they can include rating information and review excerpts in their responses. This is particularly valuable when users ask comparative questions or want to know if a product or service is well-regarded.

Below are two examples: a single detailed review and an aggregate rating summary. Use the individual Review schema for testimonial pages or case studies. Use AggregateRating when you want to summarize overall customer sentiment.

Individual Review

review-schema.json
{
  "@context": "https://schema.org",
  "@type": "Review",
  "itemReviewed": {
    "@type": "SoftwareApplication",
    "name": "Acme Software",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "Web, iOS, Android"
  },
  "reviewRating": {
    "@type": "Rating",
    "ratingValue": 5,
    "bestRating": 5,
    "worstRating": 1
  },
  "author": {
    "@type": "Person",
    "name": "Michael Chen",
    "url": "https://www.linkedin.com/in/michaelchen",
    "jobTitle": "Director of Operations",
    "worksFor": {
      "@type": "Organization",
      "name": "TechStart Solutions"
    }
  },
  "datePublished": "2024-01-15",
  "reviewBody": "Acme Software has transformed how our remote team collaborates. After switching from our previous tool, we saw a 40% improvement in project completion rates within the first quarter. The interface is intuitive, the integrations work seamlessly with our existing stack, and the customer support team has been incredibly responsive. The sprint planning features in particular have helped us deliver more predictably. Highly recommended for any distributed team looking to improve their workflow.",
  "publisher": {
    "@type": "Organization",
    "name": "G2 Crowd",
    "url": "https://www.g2.com"
  }
}

Aggregate Rating

aggregate-rating-schema.json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Acme Software",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web, iOS, Android",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": 4.7,
    "bestRating": 5,
    "worstRating": 1,
    "ratingCount": 2847,
    "reviewCount": 1523
  }
}

Important Considerations

  • Authentic reviews only: Only use Review schema for genuine customer reviews. Fabricated reviews violate guidelines and damage trust.
  • Include author details: Reviews with verifiable author information (name, job title, company) carry more weight.
  • Keep ratings current: Update your AggregateRating schema when your actual ratings change significantly.

HowTo

HowTo schema is designed for instructional content that guides users through a process step by step. This schema type is particularly powerful for AEO because how-to queries are extremely common in AI interactions. When users ask an AI system how to accomplish something, well-structured HowTo content becomes a primary source for the response.

Use HowTo schema for tutorials, guides, setup instructions, and any content that walks users through a sequential process. Include as much detail as possible: estimated time, required tools, supplies needed, and clear descriptions for each step.

howto-schema.json
{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to Set Up Your First Project in Acme Software",
  "description": "A step-by-step guide to creating and configuring your first project in Acme Software, including team setup, task creation, and workflow customization.",
  "image": "https://acmesoftware.com/images/tutorials/first-project-hero.jpg",
  "totalTime": "PT15M",
  "estimatedCost": {
    "@type": "MonetaryAmount",
    "currency": "USD",
    "value": "0"
  },
  "tool": [
    {
      "@type": "HowToTool",
      "name": "Web browser (Chrome, Firefox, Safari, or Edge)"
    },
    {
      "@type": "HowToTool",
      "name": "Acme Software account (free or paid)"
    }
  ],
  "supply": [
    {
      "@type": "HowToSupply",
      "name": "List of team member email addresses"
    },
    {
      "@type": "HowToSupply",
      "name": "Project requirements or task list"
    }
  ],
  "step": [
    {
      "@type": "HowToStep",
      "position": 1,
      "name": "Create a new workspace",
      "text": "After logging into Acme Software, click the 'Create Workspace' button in the sidebar. Enter your workspace name, select your industry, and choose your team size. This helps Acme customize your experience with relevant templates and suggestions.",
      "url": "https://acmesoftware.com/docs/getting-started/create-workspace",
      "image": "https://acmesoftware.com/images/tutorials/step-1-create-workspace.jpg"
    },
    {
      "@type": "HowToStep",
      "position": 2,
      "name": "Invite your team members",
      "text": "Navigate to Workspace Settings and click 'Invite Members'. Enter the email addresses of your team members separated by commas or upload a CSV file. Assign each member a role: Admin, Member, or Guest. Team members will receive an email invitation with a link to join.",
      "url": "https://acmesoftware.com/docs/getting-started/invite-team",
      "image": "https://acmesoftware.com/images/tutorials/step-2-invite-team.jpg"
    },
    {
      "@type": "HowToStep",
      "position": 3,
      "name": "Create your first project",
      "text": "Click the '+' button next to Projects in the sidebar. Choose to start from scratch or select a template that matches your project type (Marketing Campaign, Software Development, Product Launch, etc.). Give your project a descriptive name and add a brief description.",
      "url": "https://acmesoftware.com/docs/getting-started/create-project",
      "image": "https://acmesoftware.com/images/tutorials/step-3-create-project.jpg"
    },
    {
      "@type": "HowToStep",
      "position": 4,
      "name": "Configure your workflow columns",
      "text": "Customize your project board by adding, renaming, or reordering workflow columns. Common setups include Backlog, To Do, In Progress, Review, and Done. Click 'Add Column' to create additional stages. Drag columns to reorder them according to your team's workflow.",
      "url": "https://acmesoftware.com/docs/getting-started/configure-workflow",
      "image": "https://acmesoftware.com/images/tutorials/step-4-configure-workflow.jpg"
    },
    {
      "@type": "HowToStep",
      "position": 5,
      "name": "Add your first tasks",
      "text": "Click 'Add Task' within any column to create your first tasks. Include a clear title, detailed description, due date, and assignee. Use labels to categorize tasks by type or priority. You can also use the quick-add feature by pressing 'N' anywhere on the board.",
      "url": "https://acmesoftware.com/docs/getting-started/add-tasks",
      "image": "https://acmesoftware.com/images/tutorials/step-5-add-tasks.jpg"
    },
    {
      "@type": "HowToStep",
      "position": 6,
      "name": "Set up integrations and notifications",
      "text": "Go to Project Settings and select the Integrations tab. Connect Acme to your team's communication tool (Slack or Microsoft Teams) to receive task updates in your channels. Configure notification preferences to control what updates you receive via email, push, or in-app notifications.",
      "url": "https://acmesoftware.com/docs/getting-started/integrations",
      "image": "https://acmesoftware.com/images/tutorials/step-6-integrations.jpg"
    }
  ]
}

Maximizing HowTo Schema Impact

  • Include totalTime: Use ISO 8601 duration format (PT15M for 15 minutes). This helps AI systems answer time-related queries.
  • Add images for each step: Visual learners benefit, and AI systems can reference the presence of visual aids.
  • Be specific with tools and supplies: List everything users need before they begin. This completeness adds value.
  • Link each step: If you have deeper documentation for individual steps, include those URLs.

ItemList

ItemList schema is ideal for ranking pages, comparison articles, curated collections, and any content that presents multiple items in a specific order. This schema type helps AI systems understand both the individual items and their relative positioning. When users ask for recommendations or top picks, ItemList content is well-suited to provide structured answers.

Use ItemList for content like top 10 lists, product comparisons, resource collections, and step-by-step processes where order matters.

itemlist-schema.json
{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "name": "Top 5 Project Management Tools for Remote Teams in 2024",
  "description": "A comprehensive comparison of the best project management software for distributed teams, evaluated on features, pricing, ease of use, and integrations.",
  "numberOfItems": 5,
  "itemListOrder": "https://schema.org/ItemListOrderDescending",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Acme Software",
      "url": "https://acmesoftware.com",
      "description": "Best overall project management tool for distributed teams with robust collaboration features and workflow automation."
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "ProjectFlow Pro",
      "url": "https://projectflowpro.com",
      "description": "Excellent choice for agile development teams with native Scrum and Kanban support."
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "TeamSync Hub",
      "url": "https://teamsync.io",
      "description": "Great for small teams on a budget with generous free tier and simple interface."
    },
    {
      "@type": "ListItem",
      "position": 4,
      "name": "WorkStation 360",
      "url": "https://workstation360.com",
      "description": "Enterprise-focused solution with advanced security features and compliance certifications."
    },
    {
      "@type": "ListItem",
      "position": 5,
      "name": "CollabBoard",
      "url": "https://collabboard.app",
      "description": "Best for creative teams with visual project planning and design collaboration tools."
    }
  ]
}

ItemList Best Practices

  • Use itemListOrder: Specify whether items are ordered by importance, chronologically, or unordered.
  • Include descriptions: Brief descriptions for each item help AI systems understand what each entry represents.
  • Maintain accuracy: Keep your lists updated. Outdated recommendations undermine credibility.

Article

Article schema is essential for blog posts, news articles, guides, and long-form content. This schema type provides crucial metadata including publication dates, author information, and publisher details. Date information is particularly important for AEO because AI systems often prioritize recent, authoritative content.

Include both datePublished and dateModified. When you update an article with new information, update the dateModified to signal freshness while preserving the original publication date.

article-schema.json
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How Remote Teams Can Improve Project Delivery by 40% Using Asynchronous Communication",
  "alternativeHeadline": "The Complete Guide to Async Communication for Distributed Teams",
  "description": "Learn proven strategies for implementing asynchronous communication in remote teams. This comprehensive guide covers tools, workflows, and best practices that have helped companies improve project delivery times by up to 40%.",
  "image": [
    "https://acmesoftware.com/images/blog/async-communication-hero-1x1.jpg",
    "https://acmesoftware.com/images/blog/async-communication-hero-4x3.jpg",
    "https://acmesoftware.com/images/blog/async-communication-hero-16x9.jpg"
  ],
  "datePublished": "2024-02-15T08:00:00-06:00",
  "dateModified": "2024-03-01T14:30:00-06:00",
  "author": {
    "@type": "Person",
    "name": "Sarah Williams",
    "url": "https://acmesoftware.com/blog/authors/sarah-williams",
    "jobTitle": "Head of Content",
    "image": "https://acmesoftware.com/images/team/sarah-williams.jpg",
    "sameAs": [
      "https://twitter.com/sarahwilliams",
      "https://www.linkedin.com/in/sarahwilliams"
    ]
  },
  "publisher": {
    "@type": "Organization",
    "name": "Acme Software Inc.",
    "url": "https://acmesoftware.com",
    "logo": {
      "@type": "ImageObject",
      "url": "https://acmesoftware.com/images/logo.png",
      "width": 600,
      "height": 60
    }
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://acmesoftware.com/blog/async-communication-guide"
  },
  "articleSection": "Remote Work",
  "wordCount": 3500,
  "keywords": ["async communication", "remote work", "project management", "distributed teams", "productivity"],
  "inLanguage": "en-US",
  "isAccessibleForFree": true,
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [".article-summary", ".key-takeaways"]
  }
}

Article Schema Details

  • Multiple image sizes: Provide images in different aspect ratios (1:1, 4:3, 16:9) for optimal display across platforms.
  • Author with credentials: Include the author's job title, profile URL, and social links to establish expertise.
  • speakable property: Identify sections suitable for text-to-speech, useful for voice assistant integration.
  • wordCount: Indicates content depth and helps AI systems assess comprehensiveness.

ContactPoint

ContactPoint schema provides detailed information about how to reach your organization. While this is often included within Organization schema, you may want a standalone ContactPoint schema on dedicated contact pages with expanded details like business hours, supported languages, and specific service areas.

This schema is valuable when users ask AI systems how to contact a company or what your support hours are.

contactpoint-schema.json
{
  "@context": "https://schema.org",
  "@type": "ContactPoint",
  "contactType": "customer service",
  "telephone": "+1-512-555-0199",
  "email": "support@acmesoftware.com",
  "url": "https://acmesoftware.com/contact",
  "availableLanguage": [
    {
      "@type": "Language",
      "name": "English",
      "alternateName": "en"
    },
    {
      "@type": "Language",
      "name": "Spanish",
      "alternateName": "es"
    },
    {
      "@type": "Language",
      "name": "French",
      "alternateName": "fr"
    }
  ],
  "hoursAvailable": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "08:00",
      "closes": "20:00",
      "validFrom": "2024-01-01",
      "validThrough": "2024-12-31"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday"],
      "opens": "10:00",
      "closes": "16:00",
      "validFrom": "2024-01-01",
      "validThrough": "2024-12-31"
    }
  ],
  "areaServed": {
    "@type": "Country",
    "name": "United States"
  },
  "productSupported": {
    "@type": "Product",
    "name": "Acme Software"
  }
}

ContactPoint Details

  • hoursAvailable: Specify your actual business hours. Include different schedules for different days.
  • availableLanguage: List all languages your support team can assist in.
  • contactType: Use standard values like "customer service", "sales", "technical support", "billing support".

SoftwareApplication

SoftwareApplication schema is essential for any company that offers software products. This schema type communicates what your software does, what platforms it runs on, how much it costs, and how well-reviewed it is. When users ask AI systems about software in your category, comprehensive SoftwareApplication schema helps your product surface in recommendations.

Include this schema on your main product page and on any page dedicated to describing your software application.

softwareapplication-schema.json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Acme Software",
  "alternateName": "Acme Project Manager",
  "description": "Acme Software is a comprehensive project management and team collaboration platform designed for distributed teams. Features include task management, sprint planning, time tracking, and workflow automation.",
  "applicationCategory": "BusinessApplication",
  "applicationSubCategory": "Project Management",
  "operatingSystem": "Web, Windows, macOS, iOS, Android",
  "url": "https://acmesoftware.com",
  "downloadUrl": "https://acmesoftware.com/download",
  "installUrl": "https://acmesoftware.com/install",
  "screenshot": [
    {
      "@type": "ImageObject",
      "url": "https://acmesoftware.com/images/screenshots/dashboard.jpg",
      "caption": "Acme Software Dashboard View"
    },
    {
      "@type": "ImageObject",
      "url": "https://acmesoftware.com/images/screenshots/kanban-board.jpg",
      "caption": "Acme Software Kanban Board"
    },
    {
      "@type": "ImageObject",
      "url": "https://acmesoftware.com/images/screenshots/sprint-planning.jpg",
      "caption": "Acme Software Sprint Planning View"
    }
  ],
  "featureList": [
    "Task Management",
    "Kanban Boards",
    "Sprint Planning",
    "Time Tracking",
    "Team Collaboration",
    "File Sharing",
    "Workflow Automation",
    "Reporting and Analytics",
    "Third-party Integrations",
    "Mobile Apps"
  ],
  "softwareVersion": "3.2.1",
  "releaseNotes": "https://acmesoftware.com/changelog",
  "datePublished": "2019-03-15",
  "offers": [
    {
      "@type": "Offer",
      "name": "Free Plan",
      "price": "0",
      "priceCurrency": "USD",
      "description": "Up to 5 users, basic features",
      "availability": "https://schema.org/InStock",
      "url": "https://acmesoftware.com/pricing#free"
    },
    {
      "@type": "Offer",
      "name": "Pro Plan",
      "price": "12",
      "priceCurrency": "USD",
      "priceSpecification": {
        "@type": "UnitPriceSpecification",
        "price": "12",
        "priceCurrency": "USD",
        "unitCode": "MON",
        "referenceQuantity": {
          "@type": "QuantitativeValue",
          "value": "1",
          "unitText": "user"
        }
      },
      "description": "Unlimited users, advanced features, integrations",
      "availability": "https://schema.org/InStock",
      "url": "https://acmesoftware.com/pricing#pro"
    },
    {
      "@type": "Offer",
      "name": "Enterprise Plan",
      "description": "Custom pricing, SSO, audit logs, dedicated support",
      "availability": "https://schema.org/InStock",
      "url": "https://acmesoftware.com/pricing#enterprise"
    }
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": 4.7,
    "bestRating": 5,
    "worstRating": 1,
    "ratingCount": 2847,
    "reviewCount": 1523
  },
  "author": {
    "@type": "Organization",
    "name": "Acme Software Inc.",
    "url": "https://acmesoftware.com"
  },
  "maintainer": {
    "@type": "Organization",
    "name": "Acme Software Inc.",
    "url": "https://acmesoftware.com"
  },
  "memoryRequirements": "4GB RAM recommended",
  "storageRequirements": "500MB available storage",
  "permissions": "Camera access for video calls, microphone access for voice messages",
  "softwareRequirements": "Modern web browser (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)",
  "softwareHelp": {
    "@type": "CreativeWork",
    "name": "Acme Software Documentation",
    "url": "https://acmesoftware.com/docs"
  }
}

SoftwareApplication Best Practices

  • featureList: Include your key features as an array. This directly informs feature-based queries.
  • Multiple offers: List all your pricing tiers with their respective prices and features.
  • screenshots: Include screenshots with descriptive captions to help AI systems describe your interface.
  • softwareRequirements: Be specific about browser versions, operating systems, and hardware needs.
  • softwareVersion: Keep this updated to show the product is actively maintained.

Product

Product schema is the standard for e-commerce and any page selling a specific item or service. This schema type provides comprehensive commercial information including pricing, availability, reviews, and product identifiers. Well-structured Product schema helps AI systems answer product-related queries and include your offerings in shopping recommendations.

Use Product schema on individual product pages, subscription plan pages, and any page focused on a specific purchasable item or service.

product-schema.json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Acme Pro Plan Annual Subscription",
  "description": "Annual subscription to Acme Software Pro Plan. Includes unlimited users, advanced project management features, time tracking, custom fields, workflow automation, and premium integrations with Slack, Microsoft Teams, GitHub, and 50+ other tools.",
  "image": [
    "https://acmesoftware.com/images/products/pro-plan-1x1.jpg",
    "https://acmesoftware.com/images/products/pro-plan-4x3.jpg",
    "https://acmesoftware.com/images/products/pro-plan-16x9.jpg"
  ],
  "sku": "ACME-PRO-ANNUAL",
  "mpn": "ACS-PRO-2024",
  "gtin13": "0012345678905",
  "brand": {
    "@type": "Brand",
    "name": "Acme Software",
    "logo": "https://acmesoftware.com/images/logo.png",
    "url": "https://acmesoftware.com"
  },
  "manufacturer": {
    "@type": "Organization",
    "name": "Acme Software Inc.",
    "url": "https://acmesoftware.com"
  },
  "category": "Software > Business Software > Project Management",
  "offers": {
    "@type": "Offer",
    "url": "https://acmesoftware.com/pricing",
    "price": "120.00",
    "priceCurrency": "USD",
    "priceValidUntil": "2024-12-31",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "seller": {
      "@type": "Organization",
      "name": "Acme Software Inc."
    },
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "MonetaryAmount",
        "value": "0",
        "currency": "USD"
      },
      "deliveryTime": {
        "@type": "ShippingDeliveryTime",
        "handlingTime": {
          "@type": "QuantitativeValue",
          "minValue": 0,
          "maxValue": 0,
          "unitCode": "DAY"
        },
        "transitTime": {
          "@type": "QuantitativeValue",
          "minValue": 0,
          "maxValue": 0,
          "unitCode": "DAY"
        }
      },
      "shippingDestination": {
        "@type": "DefinedRegion",
        "addressCountry": "US"
      }
    },
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "applicableCountry": "US",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "merchantReturnDays": 30,
      "returnMethod": "https://schema.org/ReturnByMail",
      "returnFees": "https://schema.org/FreeReturn"
    }
  },
  "review": {
    "@type": "Review",
    "reviewRating": {
      "@type": "Rating",
      "ratingValue": 5,
      "bestRating": 5
    },
    "author": {
      "@type": "Person",
      "name": "Jennifer Martinez"
    },
    "datePublished": "2024-01-22",
    "reviewBody": "The Pro Plan has been a game-changer for our team. The workflow automation features alone saved us hours each week. Worth every penny of the annual subscription."
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": 4.8,
    "reviewCount": 892,
    "bestRating": 5,
    "worstRating": 1
  },
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "name": "Subscription Type",
      "value": "Annual"
    },
    {
      "@type": "PropertyValue",
      "name": "User Limit",
      "value": "Unlimited"
    },
    {
      "@type": "PropertyValue",
      "name": "Storage",
      "value": "100GB per user"
    }
  ]
}

Product Schema Essentials

  • Product identifiers: Include sku, mpn, and gtin when available. These help with product verification.
  • offers: Include price, currency, availability, and validity dates. Use schema.org URLs for availability status.
  • Multiple images: Provide images in different aspect ratios for various display contexts.
  • shippingDetails: Include shipping costs and delivery times when applicable.
  • hasMerchantReturnPolicy: Specify your return policy details for increased trust signals.

LocalBusiness

LocalBusiness schema is critical for any organization with a physical location that customers can visit. This extends Organization schema with location-specific details including geographic coordinates, opening hours, and local amenities. When users ask AI systems about businesses in a specific area, LocalBusiness schema helps your location appear in responses.

Use LocalBusiness schema on location-specific pages. If you have multiple locations, create a separate LocalBusiness schema for each one.

localbusiness-schema.json
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Acme Software Austin Office",
  "alternateName": "Acme HQ",
  "description": "Headquarters of Acme Software Inc., a project management platform for distributed teams. Visit our Austin office for in-person consultations, training sessions, and enterprise demos.",
  "url": "https://acmesoftware.com/locations/austin",
  "logo": "https://acmesoftware.com/images/logo.png",
  "image": [
    "https://acmesoftware.com/images/locations/austin-exterior.jpg",
    "https://acmesoftware.com/images/locations/austin-lobby.jpg",
    "https://acmesoftware.com/images/locations/austin-meeting-room.jpg"
  ],
  "telephone": "+1-512-555-0199",
  "email": "austin@acmesoftware.com",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "456 Innovation Drive, Suite 200",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78701",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 30.2672,
    "longitude": -97.7431
  },
  "hasMap": "https://www.google.com/maps?cid=1234567890",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
      "opens": "08:00",
      "closes": "18:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Friday",
      "opens": "08:00",
      "closes": "17:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "10:00",
      "closes": "14:00"
    }
  ],
  "priceRange": "$$",
  "currenciesAccepted": "USD",
  "paymentAccepted": "Credit Card, Invoice",
  "areaServed": {
    "@type": "GeoCircle",
    "geoMidpoint": {
      "@type": "GeoCoordinates",
      "latitude": 30.2672,
      "longitude": -97.7431
    },
    "geoRadius": "50 mi"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": 4.9,
    "reviewCount": 127,
    "bestRating": 5,
    "worstRating": 1
  },
  "review": {
    "@type": "Review",
    "reviewRating": {
      "@type": "Rating",
      "ratingValue": 5,
      "bestRating": 5
    },
    "author": {
      "@type": "Person",
      "name": "David Thompson"
    },
    "datePublished": "2024-02-10",
    "reviewBody": "Visited the Acme office for an enterprise demo. The team was incredibly knowledgeable and the office space was impressive. They took the time to understand our needs and showed us exactly how the platform could help our organization."
  },
  "sameAs": [
    "https://www.linkedin.com/company/acme-software",
    "https://twitter.com/acmesoftware",
    "https://www.facebook.com/acmesoftware"
  ],
  "parentOrganization": {
    "@type": "Organization",
    "name": "Acme Software Inc.",
    "url": "https://acmesoftware.com"
  },
  "amenityFeature": [
    {
      "@type": "LocationFeatureSpecification",
      "name": "Free Parking",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Wheelchair Accessible",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Conference Rooms",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Free WiFi",
      "value": true
    }
  ],
  "isAccessibleForFree": false,
  "publicAccess": true
}

LocalBusiness Key Properties

  • geo coordinates: Include exact latitude and longitude for map integration.
  • openingHoursSpecification: Specify hours for each day of the week. Include special hours for holidays if relevant.
  • hasMap: Link to your Google Maps listing or another map service.
  • amenityFeature: List amenities like parking, wheelchair access, WiFi availability.
  • areaServed with GeoCircle: Define the geographic radius you serve from this location.

Combining Multiple Schemas on One Page

Most pages benefit from multiple schema types. A product page, for example, might include BreadcrumbList (for navigation context), Product (for the item itself), and FAQPage (for common questions about that product). Each schema type provides different information that helps AI systems understand the page comprehensively.

Include each schema as a separate script tag with type "application/ld+json". There is no limit to how many JSON-LD script tags you can include on a single page, though you should only include schemas that are genuinely relevant to the page content.

multiple-schemas.html
<!-- BreadcrumbList Schema -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://acmesoftware.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Products",
      "item": "https://acmesoftware.com/products"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Pro Plan",
      "item": "https://acmesoftware.com/products/pro-plan"
    }
  ]
}
</script>

<!-- Product Schema -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Acme Pro Plan",
  "description": "Professional project management for growing teams",
  "brand": {
    "@type": "Brand",
    "name": "Acme Software"
  },
  "offers": {
    "@type": "Offer",
    "price": "12.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
</script>

<!-- FAQPage Schema -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is included in the Pro Plan?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "The Pro Plan includes unlimited users, advanced features, and premium integrations."
      }
    }
  ]
}
</script>

Common Schema Combinations

  • Blog post: BreadcrumbList + Article + FAQPage (if includes FAQ section)
  • Product page: BreadcrumbList + Product + Review + FAQPage
  • How-to guide: BreadcrumbList + Article + HowTo
  • Location page: BreadcrumbList + LocalBusiness + FAQPage
  • Comparison article: BreadcrumbList + Article + ItemList

Validation Workflow

Before deploying structured data to production, validate it thoroughly. Malformed JSON-LD provides no benefit and may even harm your discoverability. Follow this validation workflow for every new schema implementation:

  1. Google Rich Results Test: Navigate to search.google.com/test/rich-results and paste your page URL or code snippet. This tool validates your JSON-LD syntax and checks whether the schema qualifies for Google's rich results. Even if you are focused on AEO rather than traditional SEO, this tool catches structural errors.
  2. Schema.org Validator: Use validator.schema.org to verify your markup against the official Schema.org specification. This catches issues that Google's tool might miss, especially for properties that Google does not use but AI systems might.
  3. View page source: After deployment, view the page source in your browser (Ctrl+U or Cmd+Option+U) and search for "application/ld+json". Confirm that your JSON-LD appears correctly in the rendered HTML. Check that dynamic values are populating correctly.
  4. Test with AI systems: Once your schema is live, ask ChatGPT, Claude, or Perplexity questions about your entity. While results will not appear immediately, monitoring over time helps you understand whether your structured data is being utilized. Compare responses before and after implementing comprehensive schema.

Common Schema Mistakes to Avoid

  • Missing @context: Every JSON-LD object must include "@context": "https://schema.org". Without it, the data is not valid JSON-LD.
  • Incorrect nesting: Schema types have specific requirements for nested objects. A Review inside a Product is different from a standalone Review.
  • Stale dates: dateModified values that are years old signal neglected content. Update these when you update content.
  • Schema-content mismatch: If your schema says the price is $99 but the page shows $129, this inconsistency damages trust. Keep schema synchronized with visible content.
  • Missing required properties: Some schema types have required properties. Check the Schema.org documentation for each type you implement.
  • Invalid URLs: All URLs in schema must be fully qualified (include https://) and must point to actual pages.

Implementation in Next.js

Next.js applications can inject JSON-LD schema using a script tag with dangerouslySetInnerHTML. Despite the intimidating name, this is the standard approach for inserting JSON-LD into Next.js pages. The key is to stringify your schema object and inject it into a script tag with the correct type attribute.

For organization-wide schema that should appear on every page, add it to your root layout:

app/layout.tsx
import { Metadata } from 'next'

const organizationSchema = {
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Acme Software Inc.",
  "url": "https://acmesoftware.com",
  "logo": "https://acmesoftware.com/images/logo.png"
}

export const metadata: Metadata = {
  title: 'Acme Software - Project Management for Teams',
  description: 'Collaborate without boundaries',
}

export default function RootLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <html lang="en">
      <head>
        <script
          type="application/ld+json"
          dangerouslySetInnerHTML={{
            __html: JSON.stringify(organizationSchema)
          }}
        />
      </head>
      <body>{children}</body>
    </html>
  )
}

For page-specific schema, create a reusable component that you can include on individual pages:

app/products/[slug]/page.tsx
interface JsonLdProps {
  data: Record<string, unknown>
}

function JsonLd({ data }: JsonLdProps) {
  return (
    <script
      type="application/ld+json"
      dangerouslySetInnerHTML={{
        __html: JSON.stringify(data)
      }}
    />
  )
}

export default function ProductPage() {
  const productSchema = {
    "@context": "https://schema.org",
    "@type": "Product",
    "name": "Acme Pro Plan",
    "description": "Professional project management"
  }

  const breadcrumbSchema = {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://acmesoftware.com" },
      { "@type": "ListItem", "position": 2, "name": "Pro Plan", "item": "https://acmesoftware.com/pro" }
    ]
  }

  return (
    <>
      <JsonLd data={productSchema} />
      <JsonLd data={breadcrumbSchema} />
      <main>
        <h1>Acme Pro Plan</h1>
      </main>
    </>
  )
}

Next.js Implementation Tips

  • Define schema as objects: Create your schema as JavaScript objects, then JSON.stringify them. This catches syntax errors at build time.
  • Use TypeScript: Define interfaces for your schema objects to catch property errors during development.
  • Dynamic values: For dynamic pages, generate schema properties from your data source (CMS, database, etc.).
  • Multiple schemas: Include multiple JsonLd components for pages that need several schema types.

Server Components

JSON-LD can be rendered in both Server Components and Client Components in Next.js 13+. For best performance, render schema in Server Components where the data is already available. This ensures the structured data is present in the initial HTML response without requiring client-side JavaScript execution.

Summary and Next Steps

Implementing comprehensive Schema.org markup is one of the highest-impact actions you can take for AEO. The structured data you add today will continue to benefit your AI discoverability as these systems become more sophisticated in understanding and utilizing semantic markup.

Start with the essentials: Organization and WebSite schema in your root layout. Then expand to page-specific schema types based on your content. Prioritize pages that answer common questions about your product or service.

Implementation Checklist

  • 1.Add Organization schema to root layout
  • 2.Add WebSite schema with SearchAction to root layout
  • 3.Add BreadcrumbList to all pages except homepage
  • 4.Add Article schema to blog posts and guides
  • 5.Add Product or SoftwareApplication schema to product pages
  • 6.Add FAQPage schema to FAQ sections and common question content
  • 7.Add HowTo schema to tutorials and instructional content
  • 8.Add LocalBusiness schema to location pages if applicable
  • 9.Validate all schema using the workflow described above
  • 10.Monitor AI system responses for improvements over time