# Schema.org Structured Data Audit Report

**Page:** https://singoa.com/industries/manufacturing
**Source file:** `/singoa-landing/pages/industries/manufacturing.tsx`
**Date:** 2026-02-27
**Auditor:** Claude Opus 4.6 (Schema.org Specialist)

---

## Table of Contents

1. [Executive Summary](#1-executive-summary)
2. [Existing Schema Detection](#2-existing-schema-detection)
3. [Validation Results: Service Schema](#3-validation-results-service-schema)
4. [Validation Results: BreadcrumbList Schema](#4-validation-results-breadcrumblist-schema)
5. [Validation Results: FAQPage Schema](#5-validation-results-faqpage-schema)
6. [Critical Bug: Duplicate BreadcrumbList](#6-critical-bug-duplicate-breadcrumblist)
7. [Policy Violation: FAQPage Restriction](#7-policy-violation-faqpage-restriction)
8. [Missing Schema Opportunities](#8-missing-schema-opportunities)
9. [Rich Snippet Eligibility Summary](#9-rich-snippet-eligibility-summary)
10. [Generated JSON-LD: All Recommended Schemas](#10-generated-json-ld-all-recommended-schemas)
11. [Implementation Checklist](#11-implementation-checklist)

---

## 1. Executive Summary

The page currently implements **three** JSON-LD schema blocks: Service, BreadcrumbList, and FAQPage. All three use correct `@context` ("https://schema.org") and valid JSON-LD syntax. However, the audit uncovered the following issues:

| Severity | Issue | Impact |
|----------|-------|--------|
| **CRITICAL** | Duplicate BreadcrumbList rendered in HTML | Google may flag conflicting data or ignore both |
| **HIGH** | FAQPage schema on a non-government, non-healthcare site | Restricted since August 2023; will NOT generate FAQ rich results |
| **MEDIUM** | Service schema missing several recommended properties | Reduced eligibility for rich results |
| **MEDIUM** | No WebPage schema | Missing core page identity signal |
| **MEDIUM** | No Organization schema on this page | Weak entity association for Knowledge Graph |
| **LOW** | No SoftwareApplication schema for the product | Missed opportunity for product-level signals |
| **LOW** | Offer missing `price` or `priceSpecification` | Offer block is structurally incomplete |

**Overall grade: C+** -- The foundation is solid but there are compliance issues, a rendering bug, and significant missed opportunities.

---

## 2. Existing Schema Detection

Three JSON-LD `<script type="application/ld+json">` blocks are rendered server-side in the `<head>`:

| # | @type | @id / identifier | Lines in source |
|---|-------|-----------------|-----------------|
| 1 | Service | `https://singoa.com/industries/manufacturing#service` | 26-39 |
| 2 | BreadcrumbList | (no @id) | 41-49 |
| 3 | FAQPage | (no @id) | 64-72 |

Additionally, the **Breadcrumb component** (`/singoa-landing/components/layout/Breadcrumb.tsx`) injects a **second** BreadcrumbList JSON-LD block via its own `<Head>` tag (lines 15-32 of that file). This results in **two** BreadcrumbList blocks in the rendered HTML.

No Microdata or RDFa markup was detected.

---

## 3. Validation Results: Service Schema

**Source:** Lines 26-39 of `manufacturing.tsx`

```json
{
  "@context": "https://schema.org",
  "@type": "Service",
  "@id": "https://singoa.com/industries/manufacturing#service",
  "name": "Manufacturing AR Automation",
  "description": "AI-powered accounts receivable automation for manufacturers...",
  "url": "https://singoa.com/industries/manufacturing",
  "category": "Accounts Receivable Automation",
  "provider": {
    "@type": "Organization",
    "name": "Singoa",
    "url": "https://singoa.com",
    "logo": "https://singoa.com/icons/Logo.svg"
  },
  "serviceType": "Manufacturing AR Automation",
  "areaServed": { "@type": "Country", "name": "United States" },
  "audience": { "@type": "Audience", "audienceType": "Mid-Market Manufacturers ($50M-$500M)" },
  "offers": {
    "@type": "Offer",
    "description": "AI-powered manufacturing AR automation. 14-day free trial.",
    "priceCurrency": "USD",
    "url": "https://singoa.com/industries/manufacturing#contact-form"
  }
}
```

### Property-by-property validation

| Property | Value | Status | Notes |
|----------|-------|--------|-------|
| @context | "https://schema.org" | PASS | Correct HTTPS |
| @type | "Service" | PASS | Valid, not deprecated |
| @id | "...#service" | PASS | Good practice; absolute URL with fragment |
| name | "Manufacturing AR Automation" | PASS | Descriptive, not placeholder |
| description | (142 chars) | PASS | Good length |
| url | Absolute URL | PASS | Matches canonical |
| category | "Accounts Receivable Automation" | PASS | Valid text value |
| provider.@type | "Organization" | PASS | -- |
| provider.name | "Singoa" | PASS | -- |
| provider.url | Absolute URL | PASS | -- |
| provider.logo | Absolute URL (SVG) | WARN | Google prefers logo as ImageObject with width/height; SVG may not render in all contexts |
| serviceType | "Manufacturing AR Automation" | PASS | -- |
| areaServed | Country/United States | PASS | -- |
| audience | Audience type | PASS | -- |
| offers.@type | "Offer" | PASS | -- |
| offers.priceCurrency | "USD" | PASS | -- |
| offers.price | **MISSING** | FAIL | Offer with priceCurrency but no price is incomplete |
| offers.availability | **MISSING** | WARN | Recommended for Offer |
| offers.validFrom | **MISSING** | WARN | Recommended for Offer |

### Missing recommended properties for Service

- `hasOfferCatalog` -- Would allow linking to individual product modules
- `termsOfService` -- URL to terms
- `serviceOutput` -- What the service produces
- `brand` -- Brand entity
- `aggregateRating` -- If reviews/ratings exist
- `image` -- No image property on the Service

**Verdict: PASS with warnings.** Structurally valid but the Offer block is incomplete (priceCurrency without price is semantically awkward) and several recommended properties are absent.

---

## 4. Validation Results: BreadcrumbList Schema

**Source:** Lines 41-49 of `manufacturing.tsx`

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://singoa.com/" },
    { "@type": "ListItem", "position": 2, "name": "Industries", "item": "https://singoa.com/industries" },
    { "@type": "ListItem", "position": 3, "name": "Manufacturing AR Automation", "item": "https://singoa.com/industries/manufacturing" }
  ]
}
```

### Property-by-property validation

| Property | Value | Status | Notes |
|----------|-------|--------|-------|
| @context | "https://schema.org" | PASS | -- |
| @type | "BreadcrumbList" | PASS | -- |
| itemListElement | 3 items | PASS | Correct hierarchy depth |
| Each item.@type | "ListItem" | PASS | -- |
| Each item.position | 1, 2, 3 | PASS | Sequential, starts at 1 |
| Each item.name | Descriptive text | PASS | -- |
| Each item.item | Absolute URLs | PASS | -- |

**Verdict: PASS.** This block is correctly implemented per Google's BreadcrumbList documentation.

---

## 5. Validation Results: FAQPage Schema

**Source:** Lines 64-72 of `manufacturing.tsx` (data from lines 51-62)

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How does Singoa handle high-volume manufacturing invoicing...",
      "acceptedAnswer": { "@type": "Answer", "text": "Singoa processes thousands..." }
    }
    // ... 9 more Q&A pairs
  ]
}
```

### Property-by-property validation

| Property | Value | Status | Notes |
|----------|-------|--------|-------|
| @context | "https://schema.org" | PASS | -- |
| @type | "FAQPage" | PASS (syntax) | But see policy note below |
| mainEntity | 10 Question objects | PASS | -- |
| Each Question.name | Full question text | PASS | -- |
| Each Answer.text | Full answer text | PASS | Detailed, substantive answers |

### Structural validation: PASS

All 10 Q&A pairs have valid Question/@type and Answer/@type with text content. No placeholder text detected.

### POLICY VIOLATION: FAIL

**Since August 2023, Google restricts FAQ rich results to government and healthcare authority websites only.** Singoa.com is a SaaS company, not a government or healthcare authority site. This means:

- The FAQPage schema is **syntactically valid** but will **never generate FAQ rich snippets** in Google Search
- It is not harmful to keep (Google simply ignores it for rich results), but it creates false expectations
- The Q&A content is valuable for users; keep the FAQ section but consider replacing FAQPage schema with a more useful alternative (see Section 10)

---

## 6. Critical Bug: Duplicate BreadcrumbList

### The problem

The rendered HTML contains **two** BreadcrumbList JSON-LD blocks:

1. **Block A** (from `manufacturing.tsx` lines 41-49): Injected via `<Head>` in the page component. Uses hardcoded full URLs and names the last item "Manufacturing AR Automation".

2. **Block B** (from `Breadcrumb.tsx` component lines 15-32): Injected via `<Head>` in the reusable Breadcrumb component. Uses path-based URLs (`https://singoa.com/` + href) and the last item has **no `item` URL** (because the last breadcrumb has no `href` in the `breadcrumbItems` array).

### Why this is critical

- Google's documentation states there should be one BreadcrumbList per page
- Having two conflicting blocks (one with 3 items including URLs, one with 3 items where the last has no URL) creates ambiguity
- Google may pick the wrong one, pick neither, or flag a warning in Search Console
- The Breadcrumb component's version is actually **less complete** because the last item lacks an `item` URL

### Recommended fix

**Option A (preferred):** Remove the BreadcrumbList from the page-level `manufacturing.tsx` (lines 41-49 and line 88) and fix the Breadcrumb component to always include the `item` URL for the last element.

**Option B:** Remove the JSON-LD generation from the `Breadcrumb.tsx` component entirely and let each page manage its own breadcrumb schema. This gives more control per page.

Given that the page-level version is more complete (all items have URLs), Option B is the simpler immediate fix.

---

## 7. Policy Violation: FAQPage Restriction

As noted in Section 5, FAQPage rich results are **restricted to government and healthcare authority sites** since August 2023.

### Recommended action

1. **Remove** the FAQPage JSON-LD block (lines 64-72 and line 89 in `manufacturing.tsx`)
2. **Keep** the visual FAQ section on the page (it provides excellent user value)
3. **Do NOT replace with HowTo** -- HowTo rich results were removed in September 2023
4. Consider keeping the data as plain JSON-LD `Question`/`Answer` entities without the `FAQPage` wrapper if you want the content to be machine-readable without claiming rich result eligibility

---

## 8. Missing Schema Opportunities

### 8.1 WebPage (HIGH priority)

Every page should declare itself as a WebPage (or more specific subtype). This is the foundational identity schema that ties together all other schemas on the page.

**Impact:** Provides Google with page-level metadata, connects to the BreadcrumbList, and enables `speakable` and `mainEntity` relationships.

### 8.2 Organization (HIGH priority)

While `provider` inside the Service schema references an Organization, it is a minimal inline reference. A standalone Organization schema would:
- Strengthen Singoa's Knowledge Graph presence
- Provide complete contact, social, and branding information
- Be referenceable via `@id` from all other schemas on the page

### 8.3 SoftwareApplication (MEDIUM priority)

The page describes a specific software product (Singoa Manufacturing AR Automation). A SoftwareApplication schema would:
- Declare the product's category, operating system, and features
- Enable potential Software App rich results
- Provide a structured product identity separate from the Service

### 8.4 Product schemas for modules (LOW priority)

Each of the four modules (Invoice Automation, Deduction Management, EDI Integration, Credit Intelligence) could be represented as individual `Product` or `SoftwareApplication` entities linked via `hasOfferCatalog`. However, since these are features of a single product rather than separately purchasable items, this is lower priority.

### 8.5 HowTo -- DO NOT ADD

The user's request asks about HowTo for implementation process. **HowTo rich results were removed by Google in September 2023.** This schema type should NOT be added as it provides no rich result benefit.

### 8.6 Review/AggregateRating (CONDITIONAL)

The page does not currently display customer reviews or testimonials. If testimonials are added in the future, AggregateRating and Review schemas should be added to the Service or SoftwareApplication entity.

**Important:** Reviews must represent genuine customer feedback. Fabricated review schema violates Google's structured data guidelines and can result in manual actions.

---

## 9. Rich Snippet Eligibility Summary

| Schema Type | Current Status | Rich Result Eligible? | Notes |
|-------------|---------------|----------------------|-------|
| Service | Implemented | No dedicated rich result | Enhances Knowledge Graph understanding |
| BreadcrumbList | Implemented (duplicated) | **YES** -- Breadcrumb trail | Fix duplicate first |
| FAQPage | Implemented | **NO** -- Restricted to gov/health | Remove or keep without rich result expectation |
| WebPage | **Missing** | No dedicated rich result | Foundational; supports other rich results |
| Organization | **Missing** | Enhances Knowledge Panel | Critical for brand identity |
| SoftwareApplication | **Missing** | **YES** -- Software App results | Potential for app-style rich results |
| HowTo | Not implemented | **NO** -- Deprecated Sep 2023 | Do NOT add |

**Current rich result eligibility:** Only BreadcrumbList can trigger rich results, and it is at risk due to the duplicate rendering bug.

**After recommended changes:** BreadcrumbList (fix duplicate) and SoftwareApplication would be eligible for rich results. Organization strengthens Knowledge Panel eligibility.

---

## 10. Generated JSON-LD: All Recommended Schemas

Below is the complete recommended JSON-LD implementation for the manufacturing page. This replaces all existing schema blocks.

### 10.1 Organization Schema (NEW)

```json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://singoa.com/#organization",
  "name": "Singoa",
  "url": "https://singoa.com",
  "logo": {
    "@type": "ImageObject",
    "url": "https://singoa.com/icons/Logo.svg",
    "width": 200,
    "height": 50
  },
  "description": "AI-powered accounts receivable automation for mid-market businesses. Automates invoicing, collections, deduction management, and payment matching.",
  "foundingDate": "2024",
  "sameAs": [
    "https://twitter.com/singoa",
    "https://www.linkedin.com/company/singoa"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "sales",
    "url": "https://singoa.com/industries/manufacturing#contact-form",
    "availableLanguage": "English"
  },
  "areaServed": {
    "@type": "Country",
    "name": "United States"
  }
}
```

**Note:** Update `foundingDate`, `sameAs` URLs, and `logo` dimensions with actual values.

### 10.2 WebPage Schema (NEW)

```json
{
  "@context": "https://schema.org",
  "@type": "WebPage",
  "@id": "https://singoa.com/industries/manufacturing#webpage",
  "url": "https://singoa.com/industries/manufacturing",
  "name": "Manufacturing AR Automation | EDI & Deduction Management | Singoa",
  "description": "AI-powered accounts receivable automation for manufacturers. Automate invoicing, deduction management, EDI 810/850/856 compliance, and payment matching.",
  "isPartOf": {
    "@type": "WebSite",
    "@id": "https://singoa.com/#website",
    "name": "Singoa",
    "url": "https://singoa.com"
  },
  "about": {
    "@id": "https://singoa.com/industries/manufacturing#service"
  },
  "publisher": {
    "@id": "https://singoa.com/#organization"
  },
  "breadcrumb": {
    "@id": "https://singoa.com/industries/manufacturing#breadcrumb"
  },
  "inLanguage": "en-US",
  "datePublished": "2024-01-01",
  "dateModified": "2026-02-27"
}
```

**Note:** Update `datePublished` with the actual original publish date.

### 10.3 BreadcrumbList Schema (REVISED -- add @id, fix duplicate)

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "@id": "https://singoa.com/industries/manufacturing#breadcrumb",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://singoa.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Industries",
      "item": "https://singoa.com/industries"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Manufacturing AR Automation",
      "item": "https://singoa.com/industries/manufacturing"
    }
  ]
}
```

**Critical:** Remove the duplicate BreadcrumbList from the Breadcrumb component, OR remove this page-level block and fix the component. Do not render both.

### 10.4 Service Schema (REVISED -- enhanced properties)

```json
{
  "@context": "https://schema.org",
  "@type": "Service",
  "@id": "https://singoa.com/industries/manufacturing#service",
  "name": "Manufacturing AR Automation",
  "description": "AI-powered accounts receivable automation for manufacturers. Automates invoicing, deduction management, EDI compliance, and payment matching across the full order-to-cash cycle.",
  "url": "https://singoa.com/industries/manufacturing",
  "image": "https://singoa.com/images/industries/manufacturing-og.png",
  "category": "Accounts Receivable Automation",
  "serviceType": "Manufacturing AR Automation",
  "provider": {
    "@id": "https://singoa.com/#organization"
  },
  "brand": {
    "@id": "https://singoa.com/#organization"
  },
  "areaServed": {
    "@type": "Country",
    "name": "United States"
  },
  "audience": {
    "@type": "BusinessAudience",
    "audienceType": "Mid-Market Manufacturers",
    "numberOfEmployees": {
      "@type": "QuantitativeValue",
      "minValue": 100,
      "maxValue": 2000
    }
  },
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Manufacturing AR Automation Modules",
    "itemListElement": [
      {
        "@type": "OfferCatalog",
        "name": "Invoice Automation",
        "description": "Auto-generate EDI 810 invoices on shipment confirmation with 2-way and 3-way PO matching."
      },
      {
        "@type": "OfferCatalog",
        "name": "Deduction Management",
        "description": "AI auto-categorizes deductions by root cause with automated supporting document gathering. 75-90% invalid deduction recovery rate."
      },
      {
        "@type": "OfferCatalog",
        "name": "EDI Integration",
        "description": "Native EDI 850, 856, 810, 820, and 997 support with pre-send validation via SPS Commerce and TrueCommerce."
      },
      {
        "@type": "OfferCatalog",
        "name": "Credit Intelligence",
        "description": "Real-time AI credit scoring (0-100) with automated credit limit monitoring and early payment discount optimization."
      }
    ]
  },
  "offers": {
    "@type": "Offer",
    "description": "AI-powered manufacturing AR automation with 14-day free trial and 60-day implementation.",
    "priceCurrency": "USD",
    "price": "0",
    "priceValidUntil": "2026-12-31",
    "url": "https://singoa.com/industries/manufacturing#contact-form",
    "availability": "https://schema.org/OnlineOnly",
    "validFrom": "2024-01-01"
  },
  "termsOfService": "https://singoa.com/terms",
  "serviceOutput": {
    "@type": "Thing",
    "name": "Automated Accounts Receivable Management",
    "description": "Reduced DSO, automated invoice generation, AI-powered payment matching, and deduction recovery for manufacturing companies."
  }
}
```

**Key improvements over current version:**
- `provider` uses `@id` reference instead of inline (avoids data duplication)
- `audience` upgraded from generic `Audience` to `BusinessAudience` with employee count
- `hasOfferCatalog` lists the four product modules
- `offers.price` set to "0" to represent the free trial (or remove Offer entirely if no price disclosure is intended)
- `offers.availability` added
- `image` added (uses existing OG image)
- `brand`, `termsOfService`, `serviceOutput` added

### 10.5 SoftwareApplication Schema (NEW)

```json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "@id": "https://singoa.com/#software",
  "name": "Singoa",
  "description": "AI-powered accounts receivable automation platform for mid-market businesses. Modules include invoice automation, deduction management, EDI integration, credit intelligence, and payment matching.",
  "url": "https://singoa.com",
  "applicationCategory": "BusinessApplication",
  "applicationSubCategory": "Accounts Receivable Automation",
  "operatingSystem": "Web-based (Cloud SaaS)",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD",
    "description": "14-day free trial, no credit card required",
    "availability": "https://schema.org/OnlineOnly",
    "url": "https://singoa.com/industries/manufacturing#contact-form"
  },
  "featureList": [
    "AI-powered invoice automation with PO matching",
    "Deduction management with root-cause categorization",
    "EDI 810/850/856/820/997 compliance",
    "AI payment matching across all channels",
    "Real-time credit scoring and monitoring",
    "SAP, Oracle NetSuite, Epicor, Infor, SYSPRO, Dynamics 365, Sage integrations"
  ],
  "screenshot": "https://singoa.com/images/industries/manufacturing-og.png",
  "author": {
    "@id": "https://singoa.com/#organization"
  },
  "provider": {
    "@id": "https://singoa.com/#organization"
  }
}
```

**Note:** If actual pricing is available, replace `"price": "0"` with the actual starting price or use `priceSpecification` with a range.

---

## 10.6 Complete Combined Implementation

Below is the full replacement code for the JSON-LD section in `manufacturing.tsx`. This replaces lines 26-72 of the current file:

```typescript
/* --- JSON-LD schemas --- */
const organizationSchema = {
  '@context': 'https://schema.org',
  '@type': 'Organization',
  '@id': 'https://singoa.com/#organization',
  name: 'Singoa',
  url: 'https://singoa.com',
  logo: {
    '@type': 'ImageObject',
    url: 'https://singoa.com/icons/Logo.svg',
    width: 200,
    height: 50,
  },
  description:
    'AI-powered accounts receivable automation for mid-market businesses.',
  sameAs: [
    'https://twitter.com/singoa',
    'https://www.linkedin.com/company/singoa',
  ],
  contactPoint: {
    '@type': 'ContactPoint',
    contactType: 'sales',
    url: 'https://singoa.com/industries/manufacturing#contact-form',
    availableLanguage: 'English',
  },
  areaServed: { '@type': 'Country', name: 'United States' },
};

const webPageSchema = {
  '@context': 'https://schema.org',
  '@type': 'WebPage',
  '@id': 'https://singoa.com/industries/manufacturing#webpage',
  url: 'https://singoa.com/industries/manufacturing',
  name: 'Manufacturing AR Automation | EDI & Deduction Management | Singoa',
  description:
    'AI-powered accounts receivable automation for manufacturers. Automate invoicing, deduction management, EDI 810/850/856 compliance, and payment matching.',
  isPartOf: {
    '@type': 'WebSite',
    '@id': 'https://singoa.com/#website',
    name: 'Singoa',
    url: 'https://singoa.com',
  },
  about: { '@id': 'https://singoa.com/industries/manufacturing#service' },
  publisher: { '@id': 'https://singoa.com/#organization' },
  breadcrumb: {
    '@id': 'https://singoa.com/industries/manufacturing#breadcrumb',
  },
  inLanguage: 'en-US',
  datePublished: '2024-01-01',
  dateModified: '2026-02-27',
};

const breadcrumbSchema = {
  '@context': 'https://schema.org',
  '@type': 'BreadcrumbList',
  '@id': 'https://singoa.com/industries/manufacturing#breadcrumb',
  itemListElement: [
    {
      '@type': 'ListItem',
      position: 1,
      name: 'Home',
      item: 'https://singoa.com/',
    },
    {
      '@type': 'ListItem',
      position: 2,
      name: 'Industries',
      item: 'https://singoa.com/industries',
    },
    {
      '@type': 'ListItem',
      position: 3,
      name: 'Manufacturing AR Automation',
      item: 'https://singoa.com/industries/manufacturing',
    },
  ],
};

const serviceSchema = {
  '@context': 'https://schema.org',
  '@type': 'Service',
  '@id': 'https://singoa.com/industries/manufacturing#service',
  name: 'Manufacturing AR Automation',
  description:
    'AI-powered accounts receivable automation for manufacturers. Automates invoicing, deduction management, EDI compliance, and payment matching across the full order-to-cash cycle.',
  url: 'https://singoa.com/industries/manufacturing',
  image: 'https://singoa.com/images/industries/manufacturing-og.png',
  category: 'Accounts Receivable Automation',
  serviceType: 'Manufacturing AR Automation',
  provider: { '@id': 'https://singoa.com/#organization' },
  brand: { '@id': 'https://singoa.com/#organization' },
  areaServed: { '@type': 'Country', name: 'United States' },
  audience: {
    '@type': 'BusinessAudience',
    audienceType: 'Mid-Market Manufacturers',
    numberOfEmployees: {
      '@type': 'QuantitativeValue',
      minValue: 100,
      maxValue: 2000,
    },
  },
  hasOfferCatalog: {
    '@type': 'OfferCatalog',
    name: 'Manufacturing AR Automation Modules',
    itemListElement: [
      {
        '@type': 'OfferCatalog',
        name: 'Invoice Automation',
        description:
          'Auto-generate EDI 810 invoices on shipment confirmation with 2-way and 3-way PO matching.',
      },
      {
        '@type': 'OfferCatalog',
        name: 'Deduction Management',
        description:
          'AI auto-categorizes deductions by root cause with automated supporting document gathering.',
      },
      {
        '@type': 'OfferCatalog',
        name: 'EDI Integration',
        description:
          'Native EDI 850, 856, 810, 820, and 997 support with pre-send validation.',
      },
      {
        '@type': 'OfferCatalog',
        name: 'Credit Intelligence',
        description:
          'Real-time AI credit scoring with automated credit limit monitoring.',
      },
    ],
  },
  offers: {
    '@type': 'Offer',
    description:
      'AI-powered manufacturing AR automation with 14-day free trial and 60-day implementation.',
    priceCurrency: 'USD',
    price: '0',
    priceValidUntil: '2026-12-31',
    url: 'https://singoa.com/industries/manufacturing#contact-form',
    availability: 'https://schema.org/OnlineOnly',
  },
  termsOfService: 'https://singoa.com/terms',
};

const softwareSchema = {
  '@context': 'https://schema.org',
  '@type': 'SoftwareApplication',
  '@id': 'https://singoa.com/#software',
  name: 'Singoa',
  description:
    'AI-powered accounts receivable automation platform for mid-market businesses.',
  url: 'https://singoa.com',
  applicationCategory: 'BusinessApplication',
  applicationSubCategory: 'Accounts Receivable Automation',
  operatingSystem: 'Web-based (Cloud SaaS)',
  offers: {
    '@type': 'Offer',
    price: '0',
    priceCurrency: 'USD',
    description: '14-day free trial, no credit card required',
    availability: 'https://schema.org/OnlineOnly',
    url: 'https://singoa.com/industries/manufacturing#contact-form',
  },
  featureList: [
    'AI-powered invoice automation with PO matching',
    'Deduction management with root-cause categorization',
    'EDI 810/850/856/820/997 compliance',
    'AI payment matching across all channels',
    'Real-time credit scoring and monitoring',
    'SAP, Oracle NetSuite, Epicor, Infor, SYSPRO integrations',
  ],
  screenshot: 'https://singoa.com/images/industries/manufacturing-og.png',
  author: { '@id': 'https://singoa.com/#organization' },
  provider: { '@id': 'https://singoa.com/#organization' },
};
```

And update the `<Head>` section (currently lines 86-90) to:

```tsx
<Head>
  <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(organizationSchema) }} />
  <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(webPageSchema) }} />
  <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(breadcrumbSchema) }} />
  <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(serviceSchema) }} />
  <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(softwareSchema) }} />
</Head>
```

**Note:** The FAQPage schema (`faqSchema`) has been intentionally removed. The `faqData` array should remain for the visual FAQ section.

---

## 11. Implementation Checklist

### Immediate fixes (do first)

- [ ] **Remove duplicate BreadcrumbList**: Either remove the JSON-LD from `Breadcrumb.tsx` component (lines 15-32 and the `<Head>` block at lines 27-33) OR remove the page-level breadcrumb schema. Recommendation: remove it from the component to give pages control.
- [ ] **Remove FAQPage schema**: Delete the `faqSchema` constant (line 64-72) and its `<script>` tag (line 89). Keep the `faqData` array and visual FAQ section.

### Schema additions (implement together)

- [ ] **Add Organization schema** (Section 10.1): Update `sameAs` URLs, `foundingDate`, and `logo` dimensions with actual values.
- [ ] **Add WebPage schema** (Section 10.2): Update `datePublished` with actual publish date.
- [ ] **Enhance Service schema** (Section 10.4): Replace current Service block with enhanced version including `hasOfferCatalog`, `image`, `brand`, and `BusinessAudience`.
- [ ] **Add @id to BreadcrumbList** (Section 10.3): Add `@id` for cross-referencing from WebPage.
- [ ] **Add SoftwareApplication schema** (Section 10.5): New schema block for the product itself.

### Verification after deployment

- [ ] Run Google Rich Results Test: https://search.google.com/test/rich-results
- [ ] Validate in Schema Markup Validator: https://validator.schema.org/
- [ ] Check Google Search Console for structured data reports after next crawl
- [ ] Confirm only ONE BreadcrumbList appears in rendered HTML
- [ ] Confirm NO FAQPage schema appears in rendered HTML

### Future considerations

- [ ] If customer testimonials are added, implement Review and AggregateRating on the Service entity
- [ ] Consider adding Organization schema globally in `_app.tsx` or `_document.tsx` so it appears site-wide
- [ ] Replicate this audit pattern across all 12 industry pages
- [ ] Update `offers.price` and `priceValidUntil` when actual pricing is published

---

*Report generated 2026-02-27 by Claude Opus 4.6 (Schema.org Specialist Agent)*
