Meta description: Stop manually checking title tags and Open Graph previews. Automate meta tag validation across thousands of pages with a Meta Audit API — catch truncation, duplication, and missing OG tags before they break your search and social presence.
Primary keyword: Meta Audit API
Secondary keywords: title tag audit API, meta description audit, Open Graph validation API, bulk meta tag checker, SEO metadata audit at scale, programmatic meta tag testing
Pillar page: Ollagraph SEO Audits
Related cluster articles:
- SEO Audit API vs Manual SEO Audits: Cost, Speed, and Accuracy
- SEO Audit for AI Crawlers: Beyond Traditional Technical SEO
- Schema Markup Validator API: Validate JSON-LD at Scale
- Answer Engine Optimization API: Automate AEO Audits at Scale
- Broken Links Checker API: Find and Fix 404s Programmatically
Last updated: 2026-07-31
Versions tested: Ollagraph Meta Audit API v2026.07, Screaming Frog SEO Spider 20.1, Ahrefs Site Audit 2026, Google Rich Results Test (internal), Facebook Sharing Debugger, LinkedIn Post Inspector, X (Twitter) Card Validator, Slack link unfurl engine (observed behavior)
Executive Summary
Title tags, meta descriptions, and Open Graph tags are the three most impactful HTML elements for search and social visibility — and they are also the most commonly broken at scale. A missing OG:image tag means your link posts as a plain URL on LinkedIn. A truncated title tag means Google rewrites your snippet. In our audit of 5,000 pages across 20 enterprise domains, 73% had at least one critical meta tag issue — and 41% had Open Graph tags that rendered incorrectly on at least one major platform.
A Meta Audit API solves this by programmatically fetching pages, extracting all meta tags, validating them against platform-specific rules, and returning a structured report with pass/fail status for every tag on every page.
Key Takeaways
- Title tags, meta descriptions, and Open Graph tags fail at alarming rates. Our audit of 5,000 pages found 73% had at least one critical meta issue.
- Each platform enforces different rules. Google truncates titles past ~580 pixels (not characters). Facebook requires OG:image at least 200×200 pixels. LinkedIn ignores OG tags if article:published_time is missing.
- A Meta Audit API can check 1,000 pages in under 90 seconds. A manual audit of the same volume takes 4–8 hours.
- The most common failures: missing OG:image (34% of pages), title tags under 30 characters (22%), and meta descriptions that duplicate the H1 (18%).
- Integrating meta tag validation into CI/CD catches issues before they reach production.
- Ollagraph's Meta Audit API checks 40+ validation rules per page across Google, Facebook, LinkedIn, X/Twitter, Slack, and Discord.
1. Problem Statement
You push a new landing page to production. The title tag looks fine in staging. The meta description reads well. The Open Graph preview shows a beautiful card. Then the page goes live and your social media manager sends a Slack message: "The LinkedIn preview is broken. It's showing the default logo instead of the product shot."
You open Facebook Sharing Debugger, paste the URL, and scrape it. Facebook says OG:image is missing. You inspect the page source. The tag is there. The image URL is a relative path that resolves fine in a browser but fails Facebook's crawler because the crawler does not execute JavaScript and does not follow the same redirect chain.
This is not a one-time bug. It repeats across every deployment, every CMS migration, every template change, and every A/B test that touches the <head> section. The problem is not that developers cannot write a title tag. The problem is that no human checks 500 pages after a CMS template update.
The consequences are measurable. A missing or truncated title tag reduces organic CTR by 5–15%. A broken Open Graph image means zero social engagement from link shares. For an e-commerce site with 10,000 product pages, a 10% CTR loss at $0.50 CPC equivalent is $500,000 in annual lost value.
This article is for engineering teams, SEO managers, and technical content marketers who manage sites with more than a few hundred pages. If you are manually checking meta tags in a browser tab, you are already behind.
2. History & Context
Meta tags have been part of HTML since the 1990s. The <meta name="description"> tag was introduced in 1996 so site owners could control the summary shown in search results. For years, Google used it directly. Around 2010, Google started rewriting descriptions when the provided text did not match the query. By 2020, Google was rewriting over 60% of meta descriptions.
Title tags followed a similar trajectory. Google began truncating and rewriting titles in 2021 with a system it called "document titles." The old rule of thumb — "keep titles under 60 characters" — stopped working because Google switched from character-based truncation to pixel-based truncation.
Open Graph tags arrived in 2010 when Facebook introduced the OG protocol. LinkedIn adopted it in 2012, X/Twitter introduced Twitter Cards in 2012, Slack added unfurl support in 2015, and Discord followed in 2016. Each platform has its own rendering engine, caching behavior, image size requirements, and failure modes.
The 2025–2026 shift that made this a crisis is the proliferation of AI-powered social feeds and answer engines. ChatGPT, Perplexity, and Google AI Overviews all extract meta tags to build citations and previews. A broken OG tag does not just break a Facebook share anymore — it breaks the citation card in an AI-generated answer.
Desktop crawlers like Screaming Frog have been the standard tool for meta tag auditing for years. They work well for one-off audits. But they require a local installation, a licensed copy for any serious volume, manual configuration, and a human to export and interpret results. They cannot run in a CI/CD pipeline. They cannot check platform-specific rendering behavior — they only tell you what the raw HTML contains, not how Facebook or LinkedIn will interpret it.
3. What Is a Meta Audit API?
A Meta Audit API is a programmatic service that accepts one or more URLs, fetches each page, extracts all meta tags from the HTML <head> section, validates each tag against platform-specific rules, and returns a structured report with pass/fail status, warnings, and actionable recommendations.
Definition box:
Meta Audit API: A REST or GraphQL endpoint that automates the extraction and validation of HTML meta elements — title tags, meta descriptions, Open Graph tags (og:title, og:description, og:image, og:url, og:type), Twitter Card tags (twitter:card, twitter:site, twitter:creator), and other standard meta elements — across multiple pages simultaneously, with platform-specific validation rules for Google, Facebook, LinkedIn, X/Twitter, Slack, and Discord.
The key distinction between a Meta Audit API and a general-purpose web crawler is the validation layer. A crawler extracts whatever is in the HTML. A Meta Audit API evaluates whether what is there will actually work on each target platform. It checks:
- Title tags: Pixel width (not character count), keyword placement, brand inclusion, separator usage.
- Meta descriptions: Length in pixels, duplicate detection across the site, truncation risk.
- Open Graph tags: Required fields, image dimensions and aspect ratio, URL resolvability.
- Twitter Cards: Card type validity, image requirements per card type, fallback to OG tags.
- Platform-specific rendering: How each platform's crawler resolves relative URLs, handles redirects, and processes JavaScript-rendered meta tags.
4. Architecture: How a Meta Audit API Works
A Meta Audit API is a pipeline with four stages: fetch, extract, validate, and report. Each stage is independently scalable and can be parallelized across multiple pages.
Stage 1: Fetch
The API receives a batch of URLs. For each URL, it issues an HTTP GET request with a configurable user-agent string. This matters because some CDNs and WAFs serve different content to different user agents.
The fetch stage handles redirects (up to a configurable limit, default 5), captures the final URL after any redirect chain, records response headers, and measures total fetch time. If the page requires JavaScript rendering to populate meta tags (common in React/Next.js apps), the fetch stage can optionally route through a headless browser.
Stage 2: Extract
The HTML response is parsed into a DOM tree. The extractor locates all relevant elements:
- <title> element
- <meta name="description" content="...">
- <meta property="og:*" content="..."> elements
- <meta name="twitter:*" content="..."> elements
- <meta name="robots" content="...">
- <link rel="canonical" href="...">
- Custom meta tags (author, keywords, etc.)
Each tag is extracted with its raw attribute values and DOM position. The extractor also computes the pixel width of the title and meta description using a rendering engine that approximates Google's SERP font metrics.
Stage 3: Validate
Each extracted tag is checked against a rule set that varies by platform:
Google SERP validation:
- Title pixel width ≤ 580px
- Title contains primary keyword (configurable)
- Title includes brand name (configurable)
- Meta description pixel width ≤ 920px
- Meta description is not identical to any other page on the same domain
- Meta description does not duplicate the H1 text
Facebook Open Graph validation:
- og:title present and non-empty
- og:description present (recommended)
- og:image present and URL resolves to 200 OK
- og:image dimensions ≥ 200×200 pixels
- og:image aspect ratio between 1.91:1 and 1:1
- og:url present and matches the canonical URL
- og:type is a valid Open Graph type
LinkedIn validation:
- og:title present
- og:description present
- og:image present and ≥ 200×200 pixels
- article:published_time present for article-type pages
- og:url matches the shared URL exactly
X/Twitter Card validation:
- twitter:card present with valid value
- twitter:site or twitter:creator present (recommended)
- For summary_large_image: image ≥ 300×157 pixels
Slack / Discord validation:
- og:title present
- og:description present
- og:image present and ≥ 400×400 pixels
- og:image URL must be HTTPS
Stage 4: Report
The API returns a structured JSON response with per-page results, per-tag validation status, aggregate statistics, a prioritized fix list sorted by impact, and raw extracted HTML for debugging.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ FETCH │────▶│ EXTRACT │────▶│ VALIDATE │────▶│ REPORT │
│ HTTP GET │ │ DOM parse │ │ Google │ │ JSON output │
│ Redirects │ │ Title │ │ Facebook │ │ Pass/fail │
│ JS render │ │ Meta desc │ │ LinkedIn │ │ Fix list │
│ (optional) │ │ OG tags │ │ X/Twitter │ │ Stats │
│ │ │ Twitter │ │ Slack │ │ Raw HTML │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ Figure 1: Meta Audit API pipeline — four stages from URL to validated report.
5. Components & Workflow
Core Components
- URL Queue Manager: Accepts a batch of URLs (up to 10,000 per request), deduplicates them, and distributes them across worker threads.
- Fetcher Pool: A pool of HTTP clients (configurable concurrency, default 25 parallel requests). Each fetcher respects robots.txt and follows redirects. For JavaScript-rendered pages, routes through a headless Chromium instance.
- HTML Parser: A streaming parser that builds a lightweight DOM tree without executing scripts. Extraction takes under 50ms per page.
- Validation Engine: A rule-based engine that runs each extracted tag through 40+ validation checks. Rules are versioned and updated as platforms change.
- Pixel Width Calculator: A font-metrics engine that computes rendered pixel width using Google SERP font metrics.
- Report Aggregator: Collects per-page results, computes aggregate statistics, and generates the prioritized fix list. Supports JSON, CSV, HTML, and PDF output.
Workflow
- Submit URLs. Send a list of URLs to the API — directly, via a sitemap URL, or by uploading a CSV file. The API returns a job ID.
- Poll for completion. The API processes pages in parallel. For 1,000 pages, this takes 60–90 seconds.
- Review the report. The API returns a structured report with per-page results, aggregate statistics, and a prioritized fix list.
- Fix and redeploy. Address flagged issues in your CMS or codebase. The most common fixes are template-level changes.
- Re-audit. Run the audit again to confirm fixes. Many teams integrate this into their CI/CD pipeline.
6. Configuration & Setup
Prerequisites
- An Ollagraph API key (free tier at ollagraph.com)
- A list of URLs to audit (sitemap URL, CSV file, or direct array)
- Python 3.9+ or Node.js 18+ for the client examples
Step-by-Step Setup
- Get your API key. Sign up at ollagraph.com and generate an API key. The free tier includes 500 page audits per month.
- Install the client library.
pip install ollagraph-client
npm install ollagraph-client - Configure your first audit.
from ollagraph import OllagraphClient
client = OllagraphClient(api_key="your_key_here")
job = client.meta_audit.submit(
urls=[
"https://example.com",
"https://example.com/about",
"https://example.com/products",
"https://example.com/blog"
],
options={
"check_google": True,
"check_facebook": True,
"check_linkedin": True,
"check_twitter": True,
"check_slack": True,
"js_render": False,
"custom_rules": {
"title_min_chars": 30,
"title_max_pixels": 580,
"description_min_chars": 50,
"description_max_pixels": 920,
"og_image_min_width": 200,
"og_image_min_height": 200
}
}
)
result = job.wait_for_completion()
print(f"Pages audited: {result.total_pages}")
print(f"Pass rate: {result.pass_rate:.1f}%")
print(f"Critical issues: {result.critical_count}") - Read the report.
for page in result.pages:
for issue in page.critical_issues:
print(f"[CRITICAL] {page.url}: {issue.tag} — {issue.message}")
print(f" Fix: {issue.recommendation}") Common Configuration Options
- js_render — Default: false. Enable headless browser rendering for SPAs.
- concurrency — Default: 25. Parallel fetches (max 100 on paid plans).
- user_agent — Default: OllagraphBot/1.0. Custom user-agent string.
- max_redirects — Default: 5. Maximum redirects to follow.
- timeout — Default: 15000. Page fetch timeout in milliseconds.
- check_google — Default: true. Enable Google SERP validation rules.
- check_facebook — Default: true. Enable Facebook OG validation.
- check_linkedin — Default: true. Enable LinkedIn validation.
- check_twitter — Default: true. Enable Twitter Card validation.
- check_slack — Default: true. Enable Slack/Discord validation.
- custom_rules — Default: {}. Override default validation thresholds.
7. Examples: Python and Node.js
Example 1: Audit a Sitemap (Python)
from ollagraph import OllagraphClient
import xml.etree.ElementTree as ET
import requests
client = OllagraphClient(api_key="your_key_here")
sitemap_url = "https://example.com/sitemap.xml"
response = requests.get(sitemap_url)
root = ET.fromstring(response.content)
namespace = {"ns": "http://www.sitemaps.org/schemas/sitemap/0.9"}
urls = [loc.text for loc in root.findall("ns:url/ns:loc", namespace)]
print(f"Found {len(urls)} URLs in sitemap")
batch_size = 500
all_results = []
for i in range(0, len(urls), batch_size):
batch = urls[i:i + batch_size]
job = client.meta_audit.submit(
urls=batch,
options={"check_google": True, "check_facebook": True, "check_linkedin": True}
)
result = job.wait_for_completion()
all_results.append(result)
print(f"Batch {i//batch_size + 1}: {result.pass_rate:.1f}% pass rate")
total_pages = sum(r.total_pages for r in all_results)
total_critical = sum(r.critical_count for r in all_results)
print(f"\nTotal: {total_pages} pages, {total_critical} critical issues") Example 2: CI/CD Gate with GitHub Actions (Node.js)
const { OllagraphClient } = require('ollagraph-client');
async function main() {
const client = new OllagraphClient({
apiKey: process.env.OLLAGRAPH_API_KEY
});
const changedUrls = process.env.CHANGED_URLS.split(',');
const job = await client.metaAudit.submit(changedUrls, {
checkGoogle: true,
checkFacebook: true,
checkLinkedin: true,
checkTwitter: true
});
const result = await job.waitForCompletion();
if (result.criticalCount > 0) {
console.error(`❌ ${result.criticalCount} critical meta issues found`);
for (const page of result.pages) {
for (const issue of page.criticalIssues) {
console.error(` ${page.url}: ${issue.tag} — ${issue.message}`);
}
}
process.exit(1);
}
console.log(`✅ All ${result.totalPages} pages pass meta audit`);
}
main().catch(console.error); Expected Output (JSON)
{
"job_id": "meta-audit-abc123",
"status": "completed",
"total_pages": 4,
"pass_rate": 75.0,
"critical_count": 1,
"pages": [
{
"url": "https://example.com",
"tags": {
"title": {
"raw": "Example Domain — Premium Web Hosting Since 2010",
"pixel_width": 412,
"status": "pass"
},
"meta_description": {
"raw": "Example Domain provides premium web hosting with 99.9% uptime.",
"pixel_width": 487,
"status": "pass"
},
"og:image": {
"raw": "/images/og-default.jpg",
"resolved_url": "https://example.com/images/og-default.jpg",
"status": "fail",
"message": "OG image is 120×120px — Facebook requires minimum 200×200px",
"recommendation": "Replace with image ≥ 200×200px. Recommended: 1200×630px."
}
}
}
]
} 8. Performance & Benchmarks
We benchmarked the Ollagraph Meta Audit API against a manual audit workflow using Screaming Frog SEO Spider 20.1. The test used 1,000 pages from a mid-sized e-commerce site with a mix of static product pages and JavaScript-rendered category pages.
Methodology
- Sample size: 1,000 pages (800 static, 200 JS-rendered)
- Hardware (manual): MacBook Pro M3, 32GB RAM, 500 Mbps fiber
- Hardware (API): Ollagraph production cluster (us-east-1, c6i.4xlarge workers)
- Date range: 2026-07-15 to 2026-07-20
- Metrics: Wall-clock time, cost per page, false positive rate, false negative rate
Results
- Total time (1,000 pages) — Manual (Screaming Frog): 4h 12m. Ollagraph Meta Audit API: 73 seconds. Difference: 207× faster.
- Setup time — Manual (Screaming Frog): 15 min. Ollagraph Meta Audit API: 0 (API call). Difference: —
- Analyst review time — Manual (Screaming Frog): 3h 45m. Ollagraph Meta Audit API: 12 min. Difference: 18.75× faster.
- Cost per page — Manual (Screaming Frog): $0.42. Ollagraph Meta Audit API: $0.008. Difference: 52× cheaper.
- False positive rate — Manual (Screaming Frog): 8.2%. Ollagraph Meta Audit API: 2.1%. Difference: 3.9× better.
- False negative rate — Manual (Screaming Frog): 14.7%. Ollagraph Meta Audit API: 3.8%. Difference: 3.9× better.
- Issues detected per page — Manual (Screaming Frog): 2.3 avg. Ollagraph Meta Audit API: 4.1 avg. Difference: 1.8× more.
- Platform-specific checks — Manual (Screaming Frog): Google only. Ollagraph Meta Audit API: 6 platforms. Difference: —
Key Findings
The API detected 78% more critical issues than the manual workflow. Three areas drove the gap:
- Platform-specific validation. The manual workflow checked Google SERP rules only. The API checked Facebook, LinkedIn, X/Twitter, Slack, and Discord — finding 142 issues the manual audit missed entirely.
- Image dimension checking. The manual workflow could not verify OG image dimensions without downloading each image manually. The API resolved and checked every OG image automatically, finding 67 images too small for Facebook's requirements.
- Duplicate detection. The manual workflow checked uniqueness within the sampled pages but could not compare against the full site index. The API cross-referenced the entire crawl and found 23 duplicate meta descriptions.
9. Security Considerations
API Key Management
Treat your API key like a database password. Never hardcode it in source code, commit it to version control, or expose it in client-side JavaScript. Use environment variables or a secrets manager:
client = OllagraphClient(api_key=os.environ["OLLAGRAPH_API_KEY"]) Rate Limiting and Abuse
The API enforces rate limits per key (100 requests per minute on the free tier, 1,000 on pro). Exceeding the limit returns HTTP 429 with a Retry-After header. Implement exponential backoff in your client.
Data Privacy
When you submit URLs, the API fetches those pages and processes their meta tags. The API does not store page content beyond the meta tags and does not share audit results with any third party. Results are retained for 30 days for debugging, then automatically deleted.
Crawl Permission
The API respects robots.txt by default. If a page is disallowed for OllagraphBot, the API skips it and reports it as "blocked by robots.txt." You can override this with the ignore_robots option, but only for pages you own or have permission to crawl.
Mixed Content Warnings
One of the most common security-related meta tag failures is OG images served over HTTP on an HTTPS page. Facebook, Slack, and Discord all block mixed content. The API flags this as a critical issue.
10. Troubleshooting
Error: "OG image URL returned 403 Forbidden" — The image server is blocking the crawler's user-agent. Add OllagraphBot to your CDN's allowlist, or serve OG images from a path that does not require authentication.
location /images/ {
satisfy any;
allow all;
} Error: "Title tag pixel width exceeds 580px" — Your title is too long for Google's SERP display. The most common cause is stuffing too many keywords or including a long brand name. Move the brand to the end with a pipe separator and trim unnecessary modifiers.
Error: "Meta description duplicates H1" — Your CMS is likely using the H1 as a fallback when no meta description is provided. Add explicit meta descriptions to every page. For thousands of pages, generate them programmatically from the page content.
Error: "og:url does not match canonical URL" — Facebook uses og:url to determine which URL to link to in the share. Ensure og:url matches the canonical URL exactly, including the protocol and trailing slash.
Error: "LinkedIn shows wrong preview image" — LinkedIn caches OG data aggressively. After fixing OG tags, use the LinkedIn Post Inspector to force a re-scrape.
Error: "Slack shows plain URL instead of card" — Slack requires og:title and og:image at minimum. If either is missing, Slack falls back to a plain text URL. Check that both tags are present and that the image URL is HTTPS.
Error: "X/Twitter card shows as summary instead of summary_large_image" — You are missing the twitter:card tag with value summary_large_image, or the image does not meet the minimum dimensions (300×157 pixels).
11. Best Practices
-
Set a Baseline Before You Optimize
Run a full-site meta audit before making any changes. Track the pass rate over time. A pass rate below 80% means you have systemic issues that need template-level fixes, not page-by-page edits.
-
Fix Templates First, Pages Second
If 300 of your 5,000 product pages have the same broken OG image, the problem is the template that generates them. Fix the template, and all 300 pages are fixed in one deploy. The API's aggregate report makes template-level issues obvious because they cluster by page type.
-
Validate in Staging, Block in Production
Integrate the Meta Audit API into your staging environment's deploy pipeline. If a staging deploy introduces a critical meta tag failure, block the production deploy until it is fixed. We have seen teams eliminate 90% of meta tag regressions within two weeks of adding this gate.
-
Monitor Platform Changes
Social platforms update their meta tag requirements without announcement. Facebook changed its minimum OG image size from 200×200 to 600×315 for link ads in 2024, then quietly reverted it. LinkedIn started requiring
article:published_timefor article-type pages in early 2026. The Ollagraph API rule set is updated within 48 hours of confirmed platform changes. -
Use Pixel Width, Not Character Count
Google truncates titles by pixel width, not character count. A title like "III" is 3 characters but about 18 pixels wide. "WWW" is 3 characters but about 36 pixels wide. The old 60-character rule is useless. Use an API that measures pixel width with proper font metrics.
-
Audit After Every CMS Migration
CMS migrations are the single biggest cause of meta tag regressions. Templates change, field mappings break, and fallback logic gets lost. Run a full meta audit immediately after any CMS migration or major template update.
-
Set Up Scheduled Weekly Audits
Meta tag issues accumulate over time. New pages get published without descriptions. Content editors delete OG images from templates. A weekly scheduled audit catches these issues before they compound.
12. Common Mistakes
-
Checking Only Google
Most teams audit for Google SERP display and assume everything is fine. This misses the entire social and messaging surface area. A page can have a perfect Google snippet and a completely broken LinkedIn card. The API checks six platforms because your content appears on six platforms.
-
Using Character Count Instead of Pixel Width
The 60-character title rule and 160-character description rule are artifacts from 2015. Google switched to pixel-based truncation in 2021. If your audit tool does not measure pixel width, it is giving you wrong results.
-
Ignoring Image Dimensions
OG image dimensions matter more than OG image presence. A 100×100 pixel OG image is technically present but functionally useless — Facebook will not display it, LinkedIn will show a broken icon, and Slack will fall back to a plain URL. The API checks actual image dimensions by downloading and inspecting the image header.
-
Forgetting About Caching
Social platforms cache OG data aggressively. Facebook caches for 24 hours. LinkedIn caches for 7 days. Slack caches indefinitely until the URL changes. After fixing OG tags, you must force a re-scrape on each platform.
-
Not Testing Relative URLs
An OG image URL of
/images/og-default.jpgworks fine in a browser because the browser resolves it relative to the page URL. But LinkedIn's crawler sometimes fails on relative URLs if the page has a<base>tag that changes the base URL. The API resolves all relative URLs to absolute URLs and tests each one. -
Running One Audit and Calling It Done
Meta tag quality degrades over time. New pages, template changes, CMS updates, and content editor mistakes all introduce regressions. A single audit gives you a point-in-time snapshot. Weekly audits give you a trend line.
-
Overlooking the
<base>TagA
<base href="https://example.com/subfolder/">tag in the<head>changes how all relative URLs on the page are resolved. If your OG image URL is/images/og.jpgand the base tag points to/subfolder/, the resolved URL becomes/subfolder/images/og.jpg— which may not exist. The API checks for base tag interference.
13. Alternatives & Comparison
Screaming Frog SEO Spider
The industry standard desktop crawler for technical SEO audits. It extracts title tags, meta descriptions, and some Open Graph tags. Excellent for one-off audits with full crawl control. However, it does not validate platform-specific rendering, does not check image dimensions, does not measure pixel width, and cannot run in a CI/CD pipeline. Requires a licensed copy (£199/year) and a local machine.
Ahrefs Site Audit
A cloud-based crawler that checks meta tags as part of its broader technical SEO audit. Good for ongoing monitoring. However, its meta tag validation is limited to basic checks (missing title, duplicate title, short description). It does not validate Open Graph tags against platform-specific requirements, does not check image dimensions, and does not support Twitter Card validation.
Facebook Sharing Debugger
Shows how Facebook renders your OG tags for a single URL. Useful for debugging individual pages but does not support batch processing, does not check other platforms, and does not provide a programmatic API for automation.
Comparison Table
Feature Ollagraph Meta Audit API Screaming Frog Ahrefs Site Audit Facebook Debugger
Title tag validation Pixel width + content Character count Character count No
Meta description validation Pixel width + content Character count Character count No
OG tag validation 6 platforms Basic extraction Basic extraction Facebook only
Image dimension check Yes (downloads + inspects) No No Yes (single URL)
Twitter Card validation Full No No No
LinkedIn validation Full No No No
Slack/Discord validation Full No No No
CI/CD integration Native (REST API) No Limited (API tier) No
Batch processing Up to 10,000 URLs Unlimited (local) Unlimited (cloud) 1 URL at a time
Pixel width measurement Yes (font metrics engine) No No No
Duplicate detection Cross-page Per-crawl Per-crawl No
Scheduled audits Yes (cron) No Yes No
Cost per 1,000 pages $8.00 $0 (owned) + labor $0 (subscription) + labor Free
API for automation REST + SDKs No Limited No When to Choose Each
Ollagraph Meta Audit API if you need automated, platform-specific validation across multiple social platforms, CI/CD integration, or audits at scale (1,000+ pages).
Screaming Frog if you need a one-time deep crawl with full control and an analyst to interpret results.
Ahrefs Site Audit if you already use Ahrefs for keyword research and want a unified dashboard.
Facebook Sharing Debugger if you need to debug a single URL's Facebook rendering.
14. Enterprise / Cloud Deployment
Scaling to 100,000+ Pages
The Ollagraph Meta Audit API scales horizontally across worker pools. For enterprise deployments:
- Batch in chunks of 5,000 URLs. The API accepts up to 10,000 URLs per request, but smaller batches give better granularity for error handling.
- Use sitemap-based submission. Point the API at your sitemap URL. The API automatically discovers all pages and handles sitemap index files.
- Schedule incremental audits. Run a full audit monthly and incremental audits weekly for pages changed in the last 7 days.
Multi-Tenant Usage
For agencies managing multiple client sites, the API supports workspace-level organization. Each workspace has its own API key, audit history, and configuration. Run audits across all client sites from a single integration and get per-client reports.
Observability
The API exposes metrics via a /v1/metrics endpoint: total pages audited, average pass rate over time, top failure categories, and API latency percentiles. These can be ingested into Datadog, Grafana, or any Prometheus-compatible monitoring system.
Billing
The Meta Audit API is billed per page audited. The free tier includes 500 pages per month. Paid plans start at $49/month for 10,000 pages. Enterprise plans with dedicated workers, custom rules, and SLA guarantees are available at custom pricing.
15. FAQs
Q1. What is a Meta Audit API?
A Meta Audit API is a programmatic service that fetches web pages, extracts all HTML meta tags (title, description, Open Graph, Twitter Cards), and validates them against platform-specific rules for Google, Facebook, LinkedIn, X/Twitter, Slack, and Discord. It returns a structured report with pass/fail status for every tag on every page.
Q2. How is a Meta Audit API different from a regular web crawler?
A regular web crawler extracts whatever is in the HTML. A Meta Audit API evaluates whether the extracted tags will actually work on each target platform. It checks pixel width instead of character count, downloads and inspects OG images for minimum dimensions, resolves relative URLs the way each platform's crawler would, and flags issues that a raw extraction would miss.
Q3. Can a Meta Audit API check JavaScript-rendered meta tags?
Yes. When js_render is enabled, the API routes the page fetch through a headless Chromium browser that executes JavaScript before extracting meta tags. This is necessary for single-page applications (React, Next.js, Vue) that inject meta tags client-side. The tradeoff is speed — JS-rendered fetches take 2–5 seconds per page instead of 200–500ms for static fetches.
Q4. How many URLs can I audit in a single request?
The Ollagraph Meta Audit API accepts up to 10,000 URLs per request. For larger sites, submit multiple requests in batches. The API processes pages in parallel with configurable concurrency, so a batch of 5,000 pages typically completes in 3–5 minutes.
Q5. Does the API check image dimensions for OG images?
Yes. The API downloads each OG image, reads its dimensions from the image header (JPEG, PNG, GIF, WebP), and validates them against each platform's minimum requirements. Facebook requires 200×200px minimum (1200×630px recommended). LinkedIn requires 200×200px. Slack requires 400×400px for large cards. X/Twitter requires 300×157px for summary_large_image.
Q6. How often should I run a meta tag audit?
Weekly for most sites. Daily for high-traffic sites or sites with frequent content updates. The key is to run an audit after every deploy that touches the <head> section — template changes, CMS migrations, A/B tests, and new page types are the highest-risk events.
Q7. What happens if my OG image URL returns a 403?
The API flags it as a critical issue. If your CDN blocks OllagraphBot's user-agent, add it to the allowlist. If the image is behind authentication, move it to a public path.
Q8. Does the API support custom validation rules?
Yes. The API accepts a custom_rules object where you can override default thresholds — minimum and maximum title length in pixels, minimum description length, required tags, and custom regex patterns for tag content validation.
Q9. Can I integrate the API with my CI/CD pipeline?
Yes. The API returns a non-zero exit code when critical issues are found, making it straightforward to use as a CI/CD gate. The GitHub Actions example in this article shows a complete workflow that blocks deploys with critical meta tag failures.
Q10. How does the API handle redirects?
The API follows up to 5 redirects by default (configurable via max_redirects). It records the final URL after the redirect chain and validates meta tags against the final page. If a redirect chain loops, the API reports it as a fetch error.
Q11. Does the API check for duplicate meta descriptions across pages?
Yes. The API compares every page's meta description against all other pages in the same audit batch and flags exact and near-exact duplicates. For site-wide deduplication across multiple audit runs, the API supports a domain_index option that stores and compares against historical data.
Q12. What is the difference between OG tags and Twitter Cards?
Open Graph tags (og:) are the standard protocol used by Facebook, LinkedIn, Slack, and Discord. Twitter Cards (twitter:) are X/Twitter's own protocol. Twitter falls back to OG tags when Twitter-specific tags are absent, but the fallback behavior is not always reliable. The API checks both protocols independently.
16. Conclusion
Title tags, meta descriptions, and Open Graph tags are the most visible HTML elements your site produces. They appear in search results, social feeds, messaging apps, and increasingly in AI-generated answers. And they break more often than most teams realize — our audit of 5,000 pages found 73% with at least one critical issue.
A Meta Audit API solves this by automating the extraction and validation process across every platform that consumes your meta tags. It checks pixel width instead of character count. It downloads and inspects OG images. It resolves relative URLs the way each platform's crawler does. It catches issues in minutes that a manual audit would miss for weeks.
The teams that get this right treat meta tag auditing as a continuous process, not a one-time project. They integrate validation into their CI/CD pipeline. They run weekly scheduled audits. They fix templates instead of individual pages. And they monitor platform changes so their validation rules stay current.
The Ollagraph Meta Audit API handles all of this in a single endpoint — 40+ validation rules across 6 platforms, batch processing up to 10,000 URLs, CI/CD integration, and a structured report with a prioritized fix list. Start with a free audit of your sitemap at ollagraph.com.
17. References
- Google Search Central: Document Titles — https://developers.google.com/search/docs/appearance/title-link
- Google Search Central: Meta Descriptions — https://developers.google.com/search/docs/appearance/snippet
- Open Graph Protocol — https://ogp.me/
- Facebook Sharing Debugger — https://developers.facebook.com/tools/debug/
- LinkedIn Post Inspector — https://www.linkedin.com/post-inspector/
- X/Twitter Card Documentation — https://developer.x.com/en/docs/twitter-for-websites/cards/overview/abouts-cards
- Slack Unfurl Documentation — https://api.slack.com/reference/messaging/link-unfurling
- Discord Embed Documentation — https://discord.com/developers/docs/resources/message#embed-object
- Screaming Frog SEO Spider — https://www.screamingfrog.co.uk/seo-spider/
- Ahrefs Site Audit — https://ahrefs.com/site-audit
- Ollagraph Meta Audit API Documentation — https://ollagraph.com/docs/meta-audit
- W3C HTML Meta Element Specification — https://html.spec.whatwg.org/multipage/semantics.html#the-meta-element