seokit

Overview

Two Playwright expect matchers for SEO checks

seokit adds two Playwright matchers. Wire them with extendSeokitExpect and assert page SEO contracts. That is the whole product.

MatcherWhat it does
toHaveMetadataHTML → metadata object → compare
toHaveJsonLdJSON-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 seokitUse Playwright directly
Page metadata (title, description, canonical, hreflang, robots meta)response?.ok(), status, headers
JSON-LD on HTML pagesrobots.txt / sitemap XML (see example app.seokit.spec.ts)

Next

On this page