Overview
Playwright SEO matchers for Next.js apps
seokit adds two Playwright matchers for page SEO contracts:
| Matcher | What it does |
|---|---|
toHaveMetadata | HTML → Next-like metadata object → compare |
toHaveJsonLd | JSON-LD scripts → compare |
await expect(page).toHaveMetadata({
lang: "en",
title: /Acme/,
description: /.+/,
alternates: {
canonical: "https://example.com/en",
languages: {
en: "https://example.com/en",
"x-default": "https://example.com/en",
},
},
robots: { index: true, follow: true },
});
await expect(page).toHaveJsonLd([{ "@type": "Organization" }]);In scope / out of scope
| In seokit | Use Playwright directly |
|---|---|
| Page metadata (title, description, canonical, hreflang, robots meta) | response?.ok(), status, headers |
| JSON-LD on HTML pages | robots.txt / sitemap XML (see example app.seokit.spec.ts) |