# OGKit
> Open Graph lint for web, extension, and CLI. Markdown versions of these pages are available at the linked `.md` URLs or by sending `Accept: text/markdown`.
OGKit checks Open Graph and social-preview metadata. It is a linter (web scan, browser extension, CLI/CI), not an OG image generator.
Canonical site: https://ogkit.akr.moe
## Documentation index
Sitemap documentation pages for this locale are listed below as markdown. Rule ids are a public API — do not rename them.
- [Rules index](https://ogkit.akr.moe/rules.md)
- [Ruleset changelog](https://ogkit.akr.moe/rules/changelog.md)
### Rules
- [og-title-missing — Missing og:title](https://ogkit.akr.moe/rules/og-title-missing.md)
- [og-type-missing — Missing og:type](https://ogkit.akr.moe/rules/og-type-missing.md)
- [og-url-missing — Missing og:url](https://ogkit.akr.moe/rules/og-url-missing.md)
- [og-image-missing — Missing og:image](https://ogkit.akr.moe/rules/og-image-missing.md)
- [og-description-missing — Missing og:description](https://ogkit.akr.moe/rules/og-description-missing.md)
- [og-site-name-missing — Missing og:site_name](https://ogkit.akr.moe/rules/og-site-name-missing.md)
- [twitter-card-missing — Missing twitter:card](https://ogkit.akr.moe/rules/twitter-card-missing.md)
- [twitter-card-invalid — Invalid twitter:card value](https://ogkit.akr.moe/rules/twitter-card-invalid.md)
- [meta-tag-conflicting-duplicates — Conflicting duplicate meta tags](https://ogkit.akr.moe/rules/meta-tag-conflicting-duplicates.md)
- [meta-attribute-wrong — Wrong meta attribute (name vs property)](https://ogkit.akr.moe/rules/meta-attribute-wrong.md)
- [og-image-relative-url — og:image is a relative path](https://ogkit.akr.moe/rules/og-image-relative-url.md)
- [og-url-relative — og:url is a relative path](https://ogkit.akr.moe/rules/og-url-relative.md)
- [og-image-not-https — og:image is not HTTPS](https://ogkit.akr.moe/rules/og-image-not-https.md)
- [og-url-not-https — og:url is not HTTPS](https://ogkit.akr.moe/rules/og-url-not-https.md)
- [og-url-canonical-mismatch — og:url does not match canonical](https://ogkit.akr.moe/rules/og-url-canonical-mismatch.md)
- [og-url-final-url-mismatch — og:url does not match final URL after redirects](https://ogkit.akr.moe/rules/og-url-final-url-mismatch.md)
- [og-image-redirects — og:image URL redirects](https://ogkit.akr.moe/rules/og-image-redirects.md)
- [title-truncation-risk — Title may be truncated on some platforms](https://ogkit.akr.moe/rules/title-truncation-risk.md)
- [description-too-long — Description exceeds platform display budgets](https://ogkit.akr.moe/rules/description-too-long.md)
- [description-too-short — Description is very short](https://ogkit.akr.moe/rules/description-too-short.md)
- [og-title-matches-title — og:title is identical to
](https://ogkit.akr.moe/rules/og-title-matches-title.md)
- [meta-unescaped-html-entities — Meta content has HTML entity or markup issues](https://ogkit.akr.moe/rules/meta-unescaped-html-entities.md)
- [og-image-dimensions-too-small — og:image smaller than recommended 1200×630](https://ogkit.akr.moe/rules/og-image-dimensions-too-small.md)
- [og-image-aspect-ratio-crop-risk — Image aspect ratio risks platform cropping](https://ogkit.akr.moe/rules/og-image-aspect-ratio-crop-risk.md)
- [og-image-declared-size-mismatch — og:image:width/height does not match actual pixels](https://ogkit.akr.moe/rules/og-image-declared-size-mismatch.md)
- [og-image-bytes-exceeds-platform-budget — Image exceeds a platform byte budget](https://ogkit.akr.moe/rules/og-image-bytes-exceeds-platform-budget.md)
- [og-image-content-type-mismatch — Image Content-Type does not match actual format](https://ogkit.akr.moe/rules/og-image-content-type-mismatch.md)
- [og-image-alt-missing — Missing og:image:alt](https://ogkit.akr.moe/rules/og-image-alt-missing.md)
- [og-image-forbidden — Image URL requires auth or returns 403](https://ogkit.akr.moe/rules/og-image-forbidden.md)
- [robots-blocks-social-crawlers — robots / X-Robots-Tag blocks social previews](https://ogkit.akr.moe/rules/robots-blocks-social-crawlers.md)
- [ua-content-diverged — Different User-Agents received different HTML](https://ogkit.akr.moe/rules/ua-content-diverged.md)
- [og-tags-require-javascript — OG tags appear to require client-side JavaScript](https://ogkit.akr.moe/rules/og-tags-require-javascript.md)
### Other docs
- [/cli](https://ogkit.akr.moe/cli.md)
- [/platforms](https://ogkit.akr.moe/platforms.md)
- [/platforms/facebook](https://ogkit.akr.moe/platforms/facebook.md)
- [/platforms/x](https://ogkit.akr.moe/platforms/x.md)
- [/platforms/linkedin](https://ogkit.akr.moe/platforms/linkedin.md)
- [/platforms/slack](https://ogkit.akr.moe/platforms/slack.md)
- [/platforms/discord](https://ogkit.akr.moe/platforms/discord.md)
- [/platforms/whatsapp](https://ogkit.akr.moe/platforms/whatsapp.md)
- [/platforms/telegram](https://ogkit.akr.moe/platforms/telegram.md)
- [/platforms/google](https://ogkit.akr.moe/platforms/google.md)
- [/blog](https://ogkit.akr.moe/blog.md)
- [/blog/crawler-user-agents-open-graph](https://ogkit.akr.moe/blog/crawler-user-agents-open-graph.md)
- [/blog/dynamic-og-image-next-satori](https://ogkit.akr.moe/blog/dynamic-og-image-next-satori.md)
- [/blog/open-graph-cache-and-rescrape](https://ogkit.akr.moe/blog/open-graph-cache-and-rescrape.md)
- [/blog/open-graph-checklist-ogkit](https://ogkit.akr.moe/blog/open-graph-checklist-ogkit.md)
- [/blog/open-graph-ci-lint-regression](https://ogkit.akr.moe/blog/open-graph-ci-lint-regression.md)
- [/blog/open-graph-image-engineering](https://ogkit.akr.moe/blog/open-graph-image-engineering.md)
- [/blog/open-graph-tools-comparison](https://ogkit.akr.moe/blog/open-graph-tools-comparison.md)
- [/blog/preview-open-graph-localhost-staging](https://ogkit.akr.moe/blog/preview-open-graph-localhost-staging.md)
- [/blog/required-open-graph-meta-tags](https://ogkit.akr.moe/blog/required-open-graph-meta-tags.md)
- [/blog/social-platforms-og-card-differences](https://ogkit.akr.moe/blog/social-platforms-og-card-differences.md)
- [/blog/spa-open-graph-ssr-prerender](https://ogkit.akr.moe/blog/spa-open-graph-ssr-prerender.md)
- [/blog/what-open-graph-really-solves](https://ogkit.akr.moe/blog/what-open-graph-really-solves.md)
- [/blog/why-your-open-graph-card-is-blank](https://ogkit.akr.moe/blog/why-your-open-graph-card-is-blank.md)
- [/privacy](https://ogkit.akr.moe/privacy.md)
## Tools and marketing
- [Homepage](https://ogkit.akr.moe/index.md)
- [/scan](https://ogkit.akr.moe/scan.md)
- [/rescrape](https://ogkit.akr.moe/rescrape.md)
- [/consulting](https://ogkit.akr.moe/consulting.md)
## Also from Akara
- [akr.moe](https://akr.moe) — Akara Chen's site (hub)
- [2code](https://2code.akr.moe) — Terminal workstation for projects, worktrees, and agents
- [Angel Engine](https://ag.akr.moe) — Local desktop for coding agents