Meta Tags & Open Graph Checker: Bulk SEO + Schema avatar

Meta Tags & Open Graph Checker: Bulk SEO + Schema

Pricing

from $0.80 / 1,000 url checkeds

Go to Apify Store
Meta Tags & Open Graph Checker: Bulk SEO + Schema

Meta Tags & Open Graph Checker: Bulk SEO + Schema

Bulk meta tags checker: title and meta description lengths, canonical, noindex, hreflang, Open Graph and Twitter card tags (og:image tested), JSON-LD schema.org types with missing rich-result fields, and SEO problems per URL. Callable by AI agents via MCP. $1 per 1,000 URLs.

Pricing

from $0.80 / 1,000 url checkeds

Rating

0.0

(0)

Developer

Datawright Labs

Datawright Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

For AI agents: Use when asked to check or extract meta tags, the title and meta description, canonical, robots/noindex, hreflang, Open Graph or Twitter card tags, social preview images, or JSON-LD / schema.org structured data for one or many URLs. Call with urls (required), optional outputFilter (all, problems, issues), checkOgImage (default true), includeRawJsonLd and userAgent (browser, googlebot, facebook, mobile). Returns one row per URL: title, titleLength, metaDescription, metaDescriptionLength, canonical, indexable, h1, lang, openGraph, ogImageCheck, twitter, hreflang, schemaTypes, schemaItems (with missing rich-result properties), problems, warnings. Cost: $0.001 per URL ($1 per 1,000); unreachable, blocked and 4xx/5xx pages and invalid inputs free.

For people: Tell your AI agent "check the meta tags and social previews of every page in our sitemap and list the pages missing a description or og:image" and it hands the list to this tool, then reads back the fixes. No pasting URLs into an online meta tag checker one at a time, and 1,000 pages cost $1.

Bulk meta tags checker and Open Graph checker for hundreds or thousands of URLs in one run. Paste a list of pages and this SEO meta tag analyzer loads each one (following redirects) and extracts everything search engines and social networks read: the title tag and meta description with their lengths, canonical URL, meta robots / X-Robots-Tag (noindex, nofollow), hreflang alternates, H1, html lang, viewport, favicon, every Open Graph tag (og:title, og:description, og:image, og:url, og:type, og:site_name) and Twitter card tag, and the JSON-LD schema.org structured data types on the page. It tests that the og:image actually loads, flags schema.org items missing the properties Google needs for rich results, and gives each page a plain-English problems and warnings list. A SUMMARY record lists duplicate titles and meta descriptions across the run.

No proxies, no API keys and no browser: results export to CSV, Excel, JSON or Google Sheets, or run on a schedule to catch meta tag regressions after every release.

What does this meta tags checker do?

  • 🏷️ SEO meta tags: title and meta description (with character counts and length warnings), canonical (self or pointing elsewhere, conflicting canonicals), meta robots and X-Robots-Tag (noindex / nofollow), H1 count, lang, charset, viewport, favicon, keywords, author, generator.
  • 🖼️ Open Graph and Twitter card checker: every og: and twitter: tag, with the og:image requested to confirm it returns an image (status, content type, size). Missing og:title / og:image and broken preview images are flagged, so links look right when shared on Facebook, LinkedIn, X, Slack, WhatsApp or iMessage.
  • 🧩 Structured data (schema.org) extractor: JSON-LD types (Product, Article, Organization, BreadcrumbList, FAQPage, Recipe, Event, JobPosting, LocalBusiness, VideoObject...), microdata and RDFa types, invalid JSON-LD blocks, and items missing the properties Google requires for rich results. Turn on Include raw JSON-LD to get the full parsed structured data.
  • 🌍 Hreflang checker: every alternate language URL, invalid language codes, duplicates, missing self-reference and missing x-default.
  • 🤖 Desktop, Googlebot, Facebook crawler or iPhone user agent, to see what each crawler gets.
  • 🧹 Bulk-friendly: full URLs or bare domains, de-duplicated, up to 50 pages in parallel (at most 4 per host). Bot-challenge pages and 4xx/5xx errors are reported free.

Use cases

  • SEO audits: find pages with missing, too long or duplicate titles and meta descriptions, noindex by mistake, or canonicals pointing elsewhere.
  • Social sharing QA: make sure every blog post, product and landing page has og:title, og:image and a Twitter card before a campaign.
  • Rich results: list which pages carry Product, Article, FAQ or Breadcrumb schema and which required properties are missing.
  • Site migrations and releases: re-run after a deploy and compare titles, canonicals and robots tags.
  • Competitor research and link previews: extract titles, descriptions, Open Graph images and schema data from any list of URLs.
  • Scheduled monitoring: run weekly with Only URLs with problems and get an email, Slack message or webhook when something breaks.

How to use it

  1. Paste URLs into URLs, one per line (or get every page of a site with the Sitemap URL Extractor first).
  2. Optionally choose Which URLs to save, the User agent, and whether to Include raw JSON-LD.
  3. Click Start, then open the Overview or Social previews table, or export the results.

Input example

{
"urls": [
"https://apify.com",
"https://github.com/apify/crawlee",
"https://www.bbc.com/news"
],
"checkOgImage": true,
"outputFilter": "all"
}

Output example

{
"url": "https://apify.com/",
"status": "ok",
"finalUrl": "https://apify.com/",
"statusCode": 200,
"title": "Apify: Marketplace of ready-to-run tools for AI",
"titleLength": 47,
"metaDescription": "Cloud platform for web scraping, browser automation, AI agents, and data for AI...",
"metaDescriptionLength": 151,
"canonical": "https://apify.com/",
"canonicalIsSelf": true,
"metaRobots": null,
"indexable": true,
"h1": "Get real-time web data for your AI",
"h1Count": 1,
"lang": "en",
"openGraph": { "title": "Apify: Marketplace of ready-to-run tools for AI", "image": "https://apify.com/og-image/home", "type": "website", "url": "https://apify.com/", "siteName": "Apify" },
"ogImageCheck": { "statusCode": 200, "contentType": "image/png", "bytes": null, "ok": true },
"twitter": { "card": "summary_large_image", "site": "@apify" },
"hreflang": [],
"schemaTypes": ["Organization", "WebSite", "SoftwareApplication", "Offer"],
"schemaItems": [{ "type": "Organization", "name": "Apify", "missing": [] }],
"ok": true,
"problems": [],
"warnings": [],
"checkedAt": "2026-10-25T20:30:00.000Z"
}

Pages that can't be loaded (DNS failure, timeout, refused), bot-challenge pages and pages returning HTTP 4xx/5xx come back with status: "error", "blocked" or "http-error" and are free. The SUMMARY record in the key-value store has the counts plus duplicate titles and meta descriptions.

How much does a meta tag check cost?

You pay $0.001 per page checked ($1 per 1,000 URLs), including the og:image test. Unreachable, blocked and 4xx/5xx pages and invalid inputs are free, and URLs skipped by Which URLs to save are free too. No start fee.

JobPagesCost
Audit a 300-page website300$0.30
Weekly meta tag monitor for 1,000 pages~4,000/month~$4/month
Open Graph and schema data for 20,000 URLs20,000$20
  • Apify's free plan includes $5 of monthly credit, enough for about 5,000 pages a month.
  • Paid Apify plans get automatic discounts: Silver -10%, Gold and above -20%.
  • Set Maximum cost per run to cap spend; the Actor stops cleanly at the limit.

Bulk meta tags checker vs. the alternatives

This ActorOnline meta tag / OG preview checkersBrowser extensionsSEO crawler licenses
Thousands of URLs per run✅❌ one at a time❌ one tab at a time✅
Title, description, canonical, robots, hreflang✅partly✅✅
Open Graph + Twitter card with og:image test✅✅partlypartly
JSON-LD schema types + missing rich-result fields✅❌partly✅
CSV / Excel / JSON / Sheets export, schedules, webhooks✅❌❌varies
Callable by AI agents (MCP)✅❌❌❌
Cost model$1 per 1,000 pages, no subscriptionfree, manualfree, manualyearly license

Use it as an API (Python, JavaScript, cURL)

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("datawright-labs/meta-tags-checker").call(run_input={"urls": ["https://apify.com", "https://example.com"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["input"], item.get("title"), item.get("openGraph", {}).get("image"), item.get("problems"))

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('datawright-labs/meta-tags-checker').call({ urls: ['https://apify.com'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL

curl -X POST "https://api.apify.com/v2/acts/datawright-labs~meta-tags-checker/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" -d '{"urls":["https://apify.com"],"outputFilter":"all"}'

Use it from your AI agent (MCP)

Your AI assistant or agent can run this Actor as a tool through Apify's MCP server, so it can audit meta tags on its own while you chat. Add this server to any MCP client that supports remote (Streamable HTTP) servers:

{
"mcpServers": {
"datawright-meta-tags-checker": {
"url": "https://mcp.apify.com?tools=datawright-labs/meta-tags-checker"
}
}
}

On first use your browser opens to sign in to Apify (OAuth). If your client can't do OAuth, add "headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" } instead. The tool shows up as datawright-labs--meta-tags-checker, with the same input fields as above, and the agent reads the results with get-dataset-items. Then just ask, for example:

Check the meta tags of these 50 blog posts and list the ones with a missing og:image, a title over 60 characters or no Article schema.

Want several Datawright tools at once? Comma-separate them: https://mcp.apify.com?tools=datawright-labs/meta-tags-checker,datawright-labs/sitemap-url-extractor. Runs are billed per result, exactly like normal runs.

FAQ

How do I check the meta tags of a website?

Paste its URLs and run. Each row has the title, meta description, canonical, robots, Open Graph, Twitter and schema data of one page, plus a problems list of what to fix. To check a whole site, get its URLs from the Sitemap URL Extractor first.

How long should a title tag and meta description be?

Google typically shows about 50-60 characters of a title and 150-160 characters of a description. This checker warns above 60 / 160 and below 15 / 50 characters, and lists duplicates across your pages in the SUMMARY record.

How do I check Open Graph tags and the og:image?

Every og: tag is extracted, and with Check that og:image loads on (default) the image URL is requested to confirm it returns an image. Use the Facebook link preview bot user agent to see exactly what Facebook's crawler gets.

Can it extract JSON-LD structured data?

Yes. schemaTypes lists the schema.org types found, schemaItems lists each item and any properties missing for Google rich results, and Include raw JSON-LD adds the full parsed JSON-LD so you can extract product prices, article dates, ratings or organization details.

Does it render JavaScript?

No, it reads the HTML the server sends, which is what most social crawlers (Facebook, LinkedIn, X, Slack) see too. Meta tags injected only by client-side JavaScript show up as missing, which is worth fixing anyway.

Does it check hreflang?

Yes: every alternate URL with its language code, plus invalid codes, duplicates, a missing self-reference and a missing x-default. Hreflang return links on the other pages aren't fetched.

More tools from Datawright Labs

Tip: pair it with the Sitemap URL Extractor to audit the meta tags of every page in a sitemap, and the Redirect Checker to make sure old URLs land on pages with the right canonical.

Made by Datawright Labs: reliable, fairly priced web data tools. Questions or a missing feature? Open an issue on the Issues tab; we usually reply within a day.