How to extract titles and meta tags in bulk
If you are auditing a site, planning a migration, or checking Open Graph tags before a campaign, you need the same fields for every page, in one spreadsheet. The Bulk SEO Metadata Extractor fetches each page once and returns title, description, canonical, robots, hreflang, H1, Open Graph, Twitter cards and JSON-LD types.
- Open the tool on Apify. The form is prefilled with three well-known pages, so Start works right away.
- Paste a URL list, or switch Mode to every page in the sitemap and give the homepage.
- Set a page cap. 1,000 is the default. Lower it for a cheap first pass.
- Run it, then export JSON, CSV or Excel, or use the Open Graph and Twitter view.
What you get
- Title and meta description with lengths, so too-long or missing tags are easy to sort.
- Canonical, robots and indexability. It flags noindex and whether the canonical points at itself.
- Every H1, Open Graph and Twitter card tag, including og:image.
- JSON-LD schema types such as Organization, Product, Article and FAQPage, plus a count of invalid JSON-LD blocks.
- A run summary with missing titles, descriptions, canonicals, H1s and og:images, and the top duplicate titles.
Who it is for
SEO agencies who need a site-wide title and meta description sheet. Content and social teams who want to check Open Graph tags before sharing links. Developers and AI agents who want link-preview data as stable JSON.
A real sample
From a real run on November 12, 2026, at 8:04 AM Central, URLs mode, 10 inputs: 7 pages extracted in under 3 seconds. The 404, the JSON file and the invalid URL came back as free error rows.
| Page | Title length | Description length | Canonical | H1s | JSON-LD types |
|---|---|---|---|---|---|
| wordpress.org | 55 | 90 | self | 1 | Organization, ImageObject, WebSite, WebPage |
| apify.com | 48 | 143 | self | 1 | Organization, PostalAddress, ContactPoint, WebSite |
| web.dev | 7 | 66 | self | 0 | Article, Organization, WebSite, SearchAction |
| python.org | 21 | 52 | missing | 5 | WebSite, SearchAction |
| httpbin.org/status/404 | error HTTP 404, not charged | ||||
And one row as the tool returns it, shortened:
{
"url": "https://wordpress.org/",
"statusCode": 200,
"title": "Blog Tool, Publishing Platform, and CMS | WordPress.org",
"titleLength": 55,
"metaDescriptionLength": 90,
"canonical": "https://wordpress.org/",
"canonicalIsSelf": true,
"isIndexable": true,
"h1Count": 1,
"jsonLdTypes": ["Organization", "ImageObject", "WebSite", "WebPage"],
"status": "ok"
}
There is a public example too: titles and meta tags for three well-known pages.
How it compares
This is the spreadsheet view. Our SEO Audit Tool is the scored report, with a 0 to 100 grade and the top fixes in plain English. Use this tool when you want every tag in columns you can filter. Use the audit when you want a client-ready list of what to fix first. When we priced it on November 12, 2026, a leading Apify metadata scraper we compared charged $5 per 1,000 pages. Ours is $2 per 1,000, the same as our audit, so the two read as a set.
What it costs
$2 per 1,000 HTML pages that answered 2xx and were parsed. No start fee. 404s, non-HTML files, timeouts, robots.txt skips and invalid inputs are free, as is the run summary. A 500-page sitemap costs $1.00. You can cap spend with max pages or the run's maximum charge.
Questions
What metadata does it extract?
Title and meta description, with lengths, canonical, meta robots and X-Robots-Tag, hreflang, html lang, every H1, Open Graph and Twitter card tags, JSON-LD schema types, viewport, favicon and word count.
Can I run it on a whole site?
Yes. Switch to sitemap mode, give a homepage or a sitemap URL, and it reads robots.txt, sitemap indexes and gzip files, then extracts every listed page up to your cap.
Does it score the pages?
No. It reports what the page says, as a clean spreadsheet. For scores and a list of fixes, use the SEO Audit Tool.
Are 404s and PDFs charged?
No. You pay only for HTML pages that answered 2xx and were parsed. 404s, non-HTML files, timeouts, robots.txt skips and invalid inputs are free.
Will it see tags that JavaScript adds later?
No. It uses plain HTTP, not a browser, so tags injected after the page loads are not seen. That is a real limit on some single-page apps.
Do you log in or collect personal data?
No. It only reads public pages and respects robots.txt by default. Nothing behind a login is fetched.