SEO checks in CI
A pipeline should fail on a template mistake you can see in the HTML fixture. It should not crawl production on every commit.
Assert the invariants
On the rendered fixture: one title, a canonical that matches the route, a viewport, a lang attribute, and no noindex unless the route is private. Those catches pay for themselves the first time a layout flag ships to the marketing site.
Leave the crawl outside CI
A full spider is slow, flaky, and rude to your own origin if it runs on every pull request. Run Fix SEO Today when the release touches navigation, robots, or the sitemap. There is no API to fail the build on our crawl. Do not block the merge on a network call to a vendor.
Schema in the fixture
If the template emits JSON-LD, parse it in the test and require @type. Snapshot tests of an entire @graph are brittle. Assert the nodes you mean, especially Article versus WebPage, so a plugin update cannot silently retitle the entity.
Fixtures, not production
The test should not depend on DNS.
Few assertions
A red build must be a real defect.
Crawl on release
The product check covers the site the fixture cannot.