Meta Description Analyzer
Pricing
$2.99/month + usage
Meta Description Analyzer
Meta description analyzer that checks any URL for missing or incorrectly sized meta descriptions, so SEO teams can catch and fix issues before they cost search rankings.
Pricing
$2.99/month + usage
Rating
0.0
(0)
Developer

ZeroBreak
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Meta Description Analyzer: Audit Meta Descriptions Across Any List of URLs
Meta Description Analyzer fetches pages and checks whether their meta description tags are present, the right length, and formatted correctly for search engines. Give it a list of URLs and get back a result per page showing the description text, character count, and a plain status: ok, too_short, too_long, or missing.
It also pulls Open Graph and Twitter card descriptions alongside the standard meta tag, so you're not guessing about what social platforms read. No full site crawl needed.
Use cases
- Pre-launch SEO audits: catch missing or oversized meta descriptions before a site goes live
- Post-migration checks: verify meta descriptions survived a CMS or template change intact
- Content team reviews: build a list of pages that need description work, without manual clicking
- Client reporting: pull bulk meta tag data for SEO audits faster than any manual process
- Scheduled monitoring: run on a schedule to catch regressions when new pages are published
What data does this actor extract?
Each result maps to one URL and looks like this:
{"inputUrl": "https://apify.com","url": "https://apify.com/","httpStatus": 200,"pageTitle": "Apify: Full-Stack Web Scraping and Data Extraction Platform","titleLength": 56,"metaDescription": "Apify is the full-stack web scraping and data extraction platform. Get started with ready-made scrapers or build your own.","metaDescLength": 121,"metaDescStatus": "ok","ogDescription": "Apify is the full-stack web scraping and data extraction platform.","twitterDescription": "","scrapedAt": "2025-01-15T10:23:45.123456+00:00","error": null}
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | - | Single URL to analyze. Combined with urls if both are provided. |
urls | array | - | List of URLs to check, one per line. |
maxUrls | integer | 100 | Maximum number of URLs to process per run (hard cap: 1,000). |
requestTimeoutSecs | integer | 30 | Per-request timeout in seconds. Increase for slow servers. |
proxyConfiguration | object | Datacenter (Anywhere) | Proxy type and location for requests. Optional. |
Example input
{"urls": ["https://apify.com","https://apify.com/about","https://apify.com/pricing"],"maxUrls": 100,"requestTimeoutSecs": 30,"proxyConfiguration": { "useApifyProxy": true }}
Output
The metaDescStatus field is the quickest way to find problems:
| Status | Meaning |
|---|---|
ok | Meta description is 70-160 characters. |
too_short | Under 70 characters. Consider expanding. |
too_long | Over 160 characters. Likely truncated in search results. |
missing | No meta description tag found on the page. |
error | Page could not be fetched. Check the error field. |
Full output field reference:
| Field | Type | Description |
|---|---|---|
inputUrl | string | The original URL submitted. |
url | string | Final URL after following any redirects. |
httpStatus | integer | HTTP status code (200, 404, etc.). |
pageTitle | string | Text of the <title> tag. |
titleLength | integer | Character count of the page title. |
metaDescription | string | Content of the meta description tag. Empty string if missing. |
metaDescLength | integer | Character count of the meta description. 0 if missing. |
metaDescStatus | string | SEO status: ok, too_short, too_long, missing, or error. |
ogDescription | string | Open Graph og:description content. Empty if not present. |
twitterDescription | string | Twitter card twitter:description content. Empty if not present. |
scrapedAt | string | ISO 8601 UTC timestamp of when the page was fetched. |
error | string | Error message if the request failed. Null on success. |
How it works
- Takes the URL list from input (single
url,urlslist, or both combined and deduplicated) - Caps the list at
maxUrlsand logs a warning if URLs were dropped - Fetches each page with a realistic browser User-Agent, following redirects automatically
- Parses the HTML to extract the meta description, OG description, and Twitter card description
- Classifies the meta description by character length against the 70-160 character range
- Pushes each result to the dataset
FAQ
What counts as the right meta description length?
Google typically truncates descriptions longer than 155-160 characters in search snippets. Descriptions under 70 characters tend to look thin. The actor flags anything outside 70-160 as too_short or too_long.
Does the actor work on JavaScript-rendered pages?
It uses standard HTTP requests and reads what the server returns before JavaScript runs. If a site builds its meta description client-side (React, Vue, etc.) without server-side rendering, the tag may be empty or absent in the response. Check whether the site uses SSR or pre-rendering if results look off.
Can I check hundreds of URLs at once?
Yes. Pass a list of up to 1,000 URLs via the urls input. The actor processes them in sequence and rotates proxies if you have that configured.
What happens if a page returns a 404 or other error?
The actor records the HTTP status and an error message in that row and keeps processing the rest of the list. It does not stop the run.
Does it follow redirects?
Yes. The final URL after all redirects goes into the url field. The original input stays in inputUrl, so you can see both.
Integrations
Connect Meta Description Analyzer with other tools using Apify integrations. Push results to Google Sheets, trigger a Slack alert when missing descriptions are found, or wire it into Make and Zapier. You can also use webhooks to kick off a downstream action as soon as the run finishes.