Skip to content

SEO · honest schema

What ships in the markup

Structured data is where a site is most tempted to overclaim, because a crawler cannot argue with it. This page is the register: every schema.org type Motif emits, every type it refuses to emit, and the reason for each. The counts below are read from the catalog, and the page itself is noindex — it is documentation, not content.

Shipped

FAQPageevery component page and prompt pageCheck a live page →

Built from the asset's own record — size, dependencies, licence, audit score, stack — and from each prompt's run log. 289 component pages and 116 prompt pages, 4 question patterns in total.

BreadcrumbListcomponent, prompt and essay pagesCheck a live page →

Two levels, printed as the same trail the page shows at the top. No invented hierarchy.

Articleevery Learn essayCheck a live page →

headline, deck, dateModified and publisher — the fields the page actually renders. 91 essays, dated from the same field as the visible "updated" stamp.

DefinedTermSet/glossaryCheck a live page →

Ten terms defined by the behaviour they describe, each with a live example.

Deliberately absent

Productnot emitted

There is no product: no price, no SKU and no store. The Pro plan is a preview page with no checkout behind it, so a Product node would describe something that cannot be bought.

AggregateRating / Reviewnot emitted

Nothing on this site collects ratings. The a11y and quality numbers are automated audit scores from the source, not user reviews, and presenting them as ratings would be the exact overclaim the audits exist to prevent.

Offernot emitted

No checkout, no availability, no currency. The pricing page states what a plan would cost and says plainly that the button is a demo.

HowTonot emitted

The essays read like tutorials, and Google has been explicit that HowTo rich results are no longer shown for most sites. The pages already answer the question; the markup would be a claim with no audience.

Eventnot emitted

The build-a-thon windows and community days are computed dates for a solo project, not booked events with a venue, an organiser and tickets.

The origin problem

Every canonical, OG URL and sitemap entry resolves against https://www.56juqingba.com, which comes from NEXT_PUBLIC_SITE_URL when the deployment sets it and falls back to the placeholder domain in src/lib/site.ts otherwise. That placeholder is not a live domain, so an absolute canonical built from it is wrong until the site is deployed — which is exactly why the base is one constant with one override rather than strings scattered across metadata blocks.

The harness checks that every page's canonical uses this base and that no Product, Offer or AggregateRating node appears anywhere in the rendered HTML — the “absent” list above is verified, not just promised.