The features page structures your product capabilities so AI can match you to specific feature queries and side-by-side comparisons. When someone asks AI "which project management tools have Gantt charts?" — this is the data that gets you included.
The features page turns your product capabilities into structured data that AI can index, compare, and cite in recommendations.
featureList property takes an array of strings describing each capability. AI uses these to match your product to feature-specific queries and build comparison tables.applicationCategory tells AI what kind of software this is, so features are evaluated in the right context — "real-time collaboration" means different things for a design tool vs. a database.offers reference on the SoftwareApplication node lets AI connect features to pricing, enabling "which tools have X feature under $50/month?" queries.Each field in the template below serves a specific role in how AI systems discover, classify, and recommend your business.
Researched and tested by Minnesota AI
nameurlapplicationCategoryoffersnameurlCopy this prompt and paste it into Claude, ChatGPT, Cursor, or any AI coding tool. It will ask for your business details and generate ready-to-use JSON-LD schema for your page.
You are implementing AIFDS-compliant JSON-LD structured data for a SaaS Features page. AIFDS (AI-Friendly Data Structure) is a schema framework built on research into which structured data fields AI systems actually read, parse, and use when deciding whether to cite a page. Documentation at aifds.org. Before generating any code, ask me for the following information in a single numbered list. Do not generate schema until I have answered every required field. REQUIRED — do not proceed without these: 1. Answer 2. Application category 3. Company name 4. Domain 5. Features page title 6. Feature 7. Product name 8. Question OPTIONAL — ask for these but proceed if I skip them: 1. Any additional details not covered above Once I provide the information, output a complete JSON-LD script block ready to paste into the <head> of my HTML page. Output requirements: - Valid JSON-LD wrapped in <script type="application/ld+json"> tags - schema.org vocabulary only - Every AIFDS-required field for this industry and page type included - Include this data attribute on the script tag: data-aifds="aifds.org SaaS Features" - No placeholder text — omit missing optional fields rather than fill with examples - After the code block, list any optional fields skipped that would strengthen AI citation
Generated schema follows the AIFDS framework. Fields were selected based on research into AI crawler behavior. View the research at minnesota.ai
Copy the template below and replace every YOUR_* value with your own data. This block belongs in a <script type="application/ld+json"> tag in the <head> of your features page.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "SoftwareApplication",
"@id": "https://YOUR_DOMAIN.com/#software",
"name": "YOUR_PRODUCT_NAME",
"url": "https://YOUR_DOMAIN.com",
"applicationCategory": "YOUR_APPLICATION_CATEGORY",
"featureList": [
"YOUR_FEATURE_1",
"YOUR_FEATURE_2",
"YOUR_FEATURE_3",
"YOUR_FEATURE_4",
"YOUR_FEATURE_5",
"YOUR_FEATURE_6"
],
"offers": { "@id": "https://YOUR_DOMAIN.com/pricing/#offers" }
},
{
"@type": "Organization",
"@id": "https://YOUR_DOMAIN.com/#organization",
"name": "YOUR_COMPANY_NAME",
"url": "https://YOUR_DOMAIN.com"
},
{
"@type": "WebPage",
"@id": "https://YOUR_DOMAIN.com/features/#webpage",
"url": "https://YOUR_DOMAIN.com/features/",
"name": "YOUR_FEATURES_PAGE_TITLE",
"isPartOf": { "@id": "https://YOUR_DOMAIN.com/#website" },
"about": { "@id": "https://YOUR_DOMAIN.com/#software" }
},
{
"@type": "BreadcrumbList",
"@id": "https://YOUR_DOMAIN.com/features/#breadcrumb",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://YOUR_DOMAIN.com/" },
{ "@type": "ListItem", "position": 2, "name": "Features", "item": "https://YOUR_DOMAIN.com/features/" }
]
},
{
"@type": "FAQPage",
"@id": "https://YOUR_DOMAIN.com/features/#faqpage",
"mainEntity": [
{
"@type": "Question",
"name": "YOUR_QUESTION_1",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_ANSWER_1"
}
},
{
"@type": "Question",
"name": "YOUR_QUESTION_2",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_ANSWER_2"
}
}
]
}
]
}
Use an array of plain strings, where each string is a concise description of one capability. For example: ["Real-time collaboration", "Custom dashboards", "API access", "Role-based permissions"]. Avoid marketing language like "blazing fast" or "world-class" — AI needs functional descriptions it can match against user queries. Each string should answer "what does this feature do?" in a few words.
No. The features page lists all product capabilities in one place using featureList. The pricing page structures which features belong to which tier using Offer nodes. They serve different purposes: the features page answers "what can this product do?" while the pricing page answers "what do I get at each price point?" Use the offers reference on the features page to connect the two.
Include every meaningful capability — there is no strict limit. However, focus on features that differentiate your product and that users actually search for. A list of 6–15 features is typical for most SaaS products. Avoid padding the list with generic items like "cloud-based" or "secure" that apply to every SaaS tool. Each feature should be specific enough that AI can use it to distinguish your product from competitors.