# Algebra I lesson SEO

The shared lesson template applies SEO to every published lesson, including lessons published later through the platform. Draft or unpublished lessons are excluded by the existing publication checks.

## Metadata and discoverability

- Unique editorial titles and descriptions, with description whitespace normalized and long descriptions shortened at a word boundary.
- Absolute canonical URLs on the main site, matched by Open Graph URLs.
- Article Open Graph metadata, language, section, organization authorship, keywords, and large Twitter/X preview cards.
- A dedicated 1200 × 630 social image generated from each published lesson's title and unit. Images are cached for up to one day on shared caches.
- Existing host-specific indexing policy remains inherited from the root layout.
- Existing sitemap publication filters include all published lessons.
- Visible organization byline, one main heading, real worked-example anchors, breadcrumbs, curriculum links, and previous/next lesson navigation.

## Structured data

Each lesson renders one safely escaped JSON-LD graph containing:

- `WebPage`
- `Article` + `LearningResource`
- `BreadcrumbList` + `ListItem`
- `ImageObject`
- `Quiz` + public `Question` prompts
- `FAQPage` + `Question` + `Answer`, matching visible FAQs
- `DefinedTermSet` + `DefinedTerm`, matching visible vocabulary
- `CreativeWork` + `LearningResource` for public worked examples
- `AlignmentObject` for the lesson's listed TEKS
- `EducationalAudience`
- `ItemList` for visible continuation links

The graph references the site's existing `Organization` / `EducationalOrganization` and `WebSite` entities. The resource hub's `CollectionPage` now has a stable ID shared with the lesson graph.

Private practice answer keys, written reference solutions, fabricated reviews/ratings, unsupported credentials, and invented publication dates are not emitted. The coordinator is not attributed as the author or reviewer of mathematical lessons.

Schema.org vocabulary describes the content; it does not guarantee Google rich results. FAQ markup is included for semantic accuracy, not as a promise of a FAQ search feature.

## Verification

Run from the project root:

```powershell
node scripts/audit-algebra-lesson-seo.mjs
node scripts/audit-algebra-lesson-seo.mjs --live
node scripts/audit-algebra-lesson-seo.mjs --live --all-pages
```

The audit reads published lesson records and writes `reports/algebra/lesson-seo-audit.json`. Live checks use localhost by default. `ALGEBRA_TEST_ORIGIN` may select another localhost port.

The full live run checks every rendered lesson, sitemap inclusion, PNG image dimensions, and invalid-image 404 handling. Preview images are saved under `.artifacts/algebra-seo/` for inspection.

After deployment, use Search Console to submit the live sitemap and inspect representative lesson URLs. Search engines must recrawl the production pages before changes appear in search.

## References

- [Google structured data policies](https://developers.google.com/search/docs/appearance/structured-data/sd-policies)
- [Google breadcrumb documentation](https://developers.google.com/search/docs/appearance/structured-data/breadcrumb)
- [Schema.org LearningResource](https://schema.org/LearningResource)
- [Schema.org Quiz](https://schema.org/Quiz)
