SEO
Every SEO rule svelte-vitals runs.
Resolved <head> metadata, structured data, and crawlability: what search engines actually see.
| Rule | Severity | Summary |
|---|---|---|
seo/title-presence |
🔴 critical | Every route should resolve a non-empty <title>. |
seo/canonical-url |
🟡 warning | Every route should include a <link rel=“canonical”> tag. |
seo/charset |
🟡 warning | The page should declare a character encoding with <meta charset>. |
seo/description-presence |
🟡 warning | Every route should include a <meta name=“description”>. |
seo/duplicate-description |
🟡 warning | Each route should have a unique meta description. |
seo/duplicate-title |
🟡 warning | Each route should have a unique <title>. |
seo/hreflang |
🟡 warning | hreflang alternates should use valid codes; x-default is recommended for selector/redirect pages. |
seo/html-lang |
🟡 warning | Your project’s app.html should set the lang attribute on <html>. |
seo/image-alt |
🟡 warning | Every <img> should have an alt attribute. |
seo/json-ld-relative-url |
🟡 warning | URLs in JSON-LD should be absolute. |
seo/json-ld-required-props |
🟡 warning | A recognized @type should include the properties its rich result requires. |
seo/json-ld-validity |
🟡 warning | A page’s JSON-LD must be valid JSON with @context and @type. |
seo/og-image |
🟡 warning | Every route should include a <meta property=“og”> tag. |
seo/og-title |
🟡 warning | Every route should include a <meta property=“og”> tag. |
seo/og-url |
🟡 warning | Every route should include an og with its canonical address. |
seo/robots-txt |
🟡 warning | Your project should provide a robots.txt file. |
seo/single-h1 |
🟡 warning | Each page should have exactly one <h1>. |
seo/sitemap-xml |
🟡 warning | Your project should provide a sitemap.xml file. |
seo/ssr-disabled |
🟡 warning | export const ssr = false makes a route’s content invisible to non-JS crawlers and slower to first paint. |
seo/viewport |
🟡 warning | Pages should declare a responsive viewport meta tag. |
seo/description-length |
🔵 info | The meta description should be 70–160 characters. |
seo/heading-level-skip |
🔵 info | Heading levels should not be skipped. |
seo/indexability |
🔵 info | A route should not be accidentally set to noindex. |
seo/json-ld |
🔵 info | Every route should include JSON-LD structured data. |
seo/json-ld-date-format |
🔵 info | Date properties in JSON-LD should be ISO-8601. |
seo/json-ld-deprecated-type |
🔵 info | Some schema types had their Google rich result dropped or restricted. |
seo/json-ld-placeholder |
🔵 info | JSON-LD should not contain unreplaced placeholder text. |
seo/og-description |
🔵 info | Every route should include an og. |
seo/sitemap-in-robots |
🔵 info | robots.txt should point crawlers at your sitemap. |
seo/title-length |
🔵 info | The document title should be 30–60 characters. |
seo/twitter-card |
🔵 info | Pages should declare a twitter for rich sharing on X/Twitter. |
See Configuration to change a rule’s severity or turn it off.