OG / Twitter / JSON-LD Meta Tag Validator
Pricing
Pay per usage
OG / Twitter / JSON-LD Meta Tag Validator
Validate Open Graph, Twitter Card, and JSON-LD meta tags on a public page; emit per-field pass/warn/fail with structured fix-hints, ready for n8n/Make/Sheets alerts.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Nikita S
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Validate the most common social-preview and structured-data meta tags on a public page and emit one row per checked field with pass / warn / fail plus a structured fixHint string for every issue. Built for SEO engineers, growth marketers, and content teams that want to push validation results into n8n / Make / Sheets / Slack / Supabase.
What it checks
For every URL it fetches (HEAD-equivalent GET, capped at maxBytes):
- Open Graph (
og:*):title,description,image,url,type,site_name,locale. - Twitter Card (
twitter:*):card,title,description,image,site,creator. - JSON-LD: presence of at least one parseable
@typeblock. Per-block@typecollected. - Plain HTML basics:
<title>,meta name="description", canonical link.
For each missing / empty / invalid field it emits status: 'fail' | 'warn' and a short fixHint string ready to drop into a Slack message or a Sheets cell.
Who it is for
- SEO engineers who want a per-field pass/fail report on a list of pages, with fix-hints.
- Growth marketers running pre-launch QA on landing pages.
- Content teams that need to confirm a page's OpenGraph + Twitter card before pushing it to social.
- Web agencies offering pre-launch audits as a service.
Quick start
{"urls": ["https://example.com"],"strict": false}
Each successful URL produces:
- one
summaryrow with the URL, final URL after redirects, HTTP status, and counts of pass / warn / fail. - one
fieldrow per checked field, withstatusand (if not pass)fixHint.
Example field row:
{"_kind": "field","url": "https://example.com","field": "og:image","status": "fail","fixHint": "Add <meta property=\"og:image\" content=\"https://...\">. Recommended size 1200x630."}
Input
| Field | Type | Default | Notes |
|---|---|---|---|
urls | string[] (required) | — | Public HTTP(S) URLs to validate. |
strict | bool | false | If true, recommended-but-not-required fields also fail when missing. |
timeoutSec | int | 15 | Per-URL fetch timeout in seconds. |
maxBytes | int | 2000000 | Truncate page body at this many bytes. |
followRedirects | bool | true | Follow HTTP redirects. |
Output
Dataset row kinds:
field— per checked field. Carriesurl,field,status(pass/warn/fail),fixHint.summary— per URL. Carriesurl,finalUrl,status,pass,warn,fail,checkedFields,meta.error— failed fetch.
SUMMARY KV record: { ok, total, succeeded, failed, strict, perUrl: [{ url, ok, pass, warn, fail }, ...] }.
Pricing
This Actor is Pay Per Event on the Apify Store:
apify-actor-start— flat per run.url_validated— charged once per URL successfully processed.
For local tests, Actor.charge is a no-op (no usage billed, no payout).
Limits
- Designed for public HTML pages. Login-walled content, paywalls, and JS-rendered SPAs are out of scope.
- The Actor does not execute JavaScript — only server-rendered HTML is parsed.
maxBytestruncates the body before parsing; very large pages may be missing trailing meta tags.
FAQ
Q: Is strict: true recommended for most pages?
A: Use strict: false for a friendlier baseline. Switch to strict: true for production launch gates when you want every recommended field enforced.
Q: My page has no JSON-LD — is that a fail?
A: It's a warn in non-strict mode (recommended to add), fail in strict mode. The Actor does not enforce a particular JSON-LD type — it just checks for presence and parseability.
Q: How does this differ from html-meta-extractor?
A: html-meta-extractor is a broad pull of all meta / OG / Twitter / JSON-LD. og-meta-validator focuses on validating a single OpenGraph + Twitter + JSON-LD spec (required fields, type allow-list, JSON-LD presence) and is best used as a per-URL QA check.
Q: Can I run it on a private/intranet site? A: Only if the Actor host can reach it without auth and over plain HTTP(S).
Related Actors
html-meta-extractor— broad pull of all meta / OG / Twitter / JSON-LD.jsonld-extractor-validator— extract and validate JSON-LD blocks per URL.html-link-classifier— classify anchor links on a page (internal / external / nofollow / sponsored / ugc).http-status-batch— confirm URLs are reachable before validating meta.
Support
Open an issue on the Actor's Apify Store page (Report an issue link on the right rail) or contact the developer through the Store profile.
License
MIT — see Apify Store page for the canonical text.