All rules
optional
Rule: structured-data-completeWeight: 4/100

Rule: structured-data-complete

Different schema types have different required fields. An Article without a headline, a Product without a name, a FAQ without mainEntity — these are structurally valid JSON-LD but functionally useless for rich results. This rule goes beyond @context/@type validation and checks type-specific required fields.

Run the check
$ npx indxel check
Look for structured-data-complete in the output

What it checks

For each JSON-LD block with a recognized @type, Indxel checks that the required fields for that type are present. Supported types and their required fields: Article (headline, author, datePublished), Product (name, description), FAQPage (mainEntity), Organization (name, url), WebSite (name, url), BreadcrumbList (itemListElement), HowTo (name, step), SoftwareApplication (name, applicationCategory).

Thresholds

PASS

All recognized schema types have their required fields present

WARN

One or more recognized schema types are missing required fields

Edge cases

1

Unrecognized @type values (e.g., custom types not in Indxel's list) are skipped. The rule only validates types it knows about.

2

Nested objects count: if Article requires 'author' and you provide author: { '@type': 'Organization', name: 'Acme' }, that passes. An empty author: {} does not.

3

Arrays count: FAQPage requires mainEntity. An empty array (mainEntity: []) technically passes presence check but is functionally empty. Indxel checks for presence, not emptiness of arrays.

4

If structured-data-valid fails (missing @context or @type), this rule is still run on blocks that do have @type.

Configuration

indxel.config.ts
// indxel.config.ts
import { defineSEO } from "indxel";

export default defineSEO({
  rules: {
    "structured-data-complete": true, // enabled by default
  },
});

// Required fields by type:
// Article:              headline, author, datePublished
// Product:              name, description
// FAQPage:              mainEntity
// Organization:         name, url
// WebSite:              name, url
// BreadcrumbList:       itemListElement
// HowTo:               name, step
// SoftwareApplication:  name, applicationCategory

Frequently asked questions

What types does Indxel know about?

Indxel validates required fields for: Article, Product, FAQPage, Organization, WebSite, BreadcrumbList, HowTo, and SoftwareApplication. Other types are ignored by this rule but still pass structured-data-present and structured-data-valid.

How do I find the required fields for a schema type?

Check schema.org for the official specification. Google's Rich Results documentation lists which fields are required vs recommended for each type. Indxel's checks align with Google's required fields.

Related rules

structured-data-present

optional — 4/100

structured-data-valid

optional — 2/100

structured-data-duplicates

optional — 2/100

Validate your SEO now

$npx indxel check
Get startedBrowse all rules
Indxel

SEO validation that runs in your terminal and blocks bad deploys.

GitHubnpm

Product

  • Documentation
  • Pricing
  • Plus Plan
  • CI/CD Guard
  • Indexation
  • Free Tools
  • Blog

Comparisons

  • vs Semrush
  • vs Ahrefs
  • vs Moz
  • vs Screaming Frog
  • All comparisons

Integrations

  • Vercel
  • GitHub Actions
  • Netlify
  • Docker
  • All integrations

Resources

  • Frameworks & use cases
  • Next.js
  • For freelancers
  • For agencies
  • SEO Glossary

Built with care. MIT Licensed.

PrivacyTermsLegalContact