SEO Audit & Metadata Checker: Title, Meta, Canonical avatar

SEO Audit & Metadata Checker: Title, Meta, Canonical

Pricing

from $3.00 / 1,000 page auditeds

Go to Apify Store
SEO Audit & Metadata Checker: Title, Meta, Canonical

SEO Audit & Metadata Checker: Title, Meta, Canonical

Audit pages or crawl a website for on-page SEO: titles, meta descriptions, canonicals, hreflang, Open Graph, structured data, headings, alt text, redirects, robots and response time. Every page gets clear issues and a 0–100 score.

Pricing

from $3.00 / 1,000 page auditeds

Rating

0.0

(0)

Developer

Pavel Tashev

Pavel Tashev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

What does SEO Audit & Metadata Checker do?

SEO Audit & Metadata Checker audits web pages for on-page SEO and extracts their metadata: title, meta description, canonical, hreflang, Open Graph, Twitter cards, structured data, headings, image alt text, redirects, robots directives and server response time. Every page gets a list of plain-language issues (error, warning or notice) and a 0–100 SEO score.

Audit a list of pages, or turn on crawling to follow links across a whole website (optionally seeded from its sitemap) and get a site summary with duplicate titles, duplicate meta descriptions, the most common issues and the slowest pages. Because it runs on the Apify platform, you can schedule weekly audits, call it through the API, and send results to Google Sheets, Slack, Make, Zapier or n8n.

Why use this SEO audit tool?

  • Find what hurts rankings before Google does: missing or duplicate titles, noindex pages, canonicals pointing elsewhere, redirect chains, pages blocked for Googlebot, broken status codes.
  • Check social previews: Open Graph and Twitter card tags for every page.
  • Validate structured data: schema.org types from JSON-LD and microdata, and invalid JSON-LD blocks.
  • Monitor sites on a schedule and compare scores over time.
  • Audit many client sites at once for agencies, or run it before and after a site migration.
  • Affordable: pay per page audited, a fraction of the price of most audit tools.

How to audit a website for SEO

  1. Click Try for free.
  2. In Pages or websites, enter page URLs or a domain such as example.com.
  3. To audit a whole site, turn on Crawl the website and set Maximum pages per website.
  4. Click Start.
  5. Open the Output tab: Overview shows score and key metrics per page, Issues lists the problems, Metadata and Technical show the details. In crawl mode, the Site summary link opens the per-site report.

Input

FieldDescriptionDefault
Pages or websitesPage URLs or domains.
Crawl the websiteFollow same-site links instead of auditing only the listed pages.off
Maximum pages per websiteCrawl limit per site (up to 5,000).50
Maximum crawl depthClicks away from the start page.3
Also use the sitemapAdd pages from the sitemap when crawling.on
Include subdomainsFollow links to blog.example.com etc.off
Only crawl / Skip URLs matchingGlobs, text or /regex/ patterns.
Respect robots.txtSkip pages disallowed for crawlers. Turn off only for your own sites.on
Parallel requests per websitePoliteness setting.5
Slow response threshold (ms)Flag slower pages.2000
Include full structured dataAdd parsed JSON-LD objects.off

Example input:

{
"startUrls": ["example.com"],
"crawl": true,
"maxPagesPerSite": 200,
"excludePatterns": ["*/tag/*"]
}

Output

One item per page. A real example (shortened) from auditing https://www.python.org/about/:

{
"url": "https://www.python.org/about/",
"finalUrl": "https://www.python.org/about/",
"statusCode": 200,
"score": 94,
"errors": 0,
"warnings": 0,
"notices": 3,
"indexable": true,
"issues": [
{ "severity": "notice", "code": "title-too-short", "message": "The title has 26 characters; 30–60 is typical." },
{ "severity": "notice", "code": "meta-description-too-short", "message": "The meta description has only 52 characters." },
{ "severity": "notice", "code": "missing-canonical", "message": "The page has no canonical link." }
],
"redirectCount": 0,
"responseTimeMs": 112,
"title": "About Python™ | Python.org",
"titleLength": 26,
"titlePixelWidth": 220,
"metaDescription": "The official home of the Python Programming Language",
"metaDescriptionLength": 52,
"canonical": null,
"lang": "en",
"viewport": "width=device-width, initial-scale=1.0",
"h1": ["Python is powerful... and fast; plays well with others; runs everywhere; is friendly & easy to learn; is Open."],
"h1Count": 1,
"wordCount": 692,
"openGraph": { "title": "Welcome to Python.org", "image": "https://www.python.org/static/opengraph-icon-200x200.png", "type": "website" },
"structuredDataTypes": ["WebSite"],
"imagesCount": 1,
"imagesMissingAlt": 0,
"internalLinks": 163,
"externalLinks": 17,
"robotsTxtAllowed": true,
"mixedContentCount": 0
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. Pages that could not be loaded, non-HTML files and pages skipped by robots.txt appear with an error message and are not charged.

Checks and data fields

AreaFieldsIssues flagged
HTTPstatusCode, redirectChain, redirectCount, responseTimeMs, contentTypehttp-error, redirect-chain, redirected, slow-response, not-https
Indexingindexable, metaRobots, xRobotsTag, canonical, canonicalIsSelf, robotsTxtAllowednoindex, nofollow-page, canonical-to-other-url, multiple-canonicals, missing-canonical, blocked-by-robots-txt
Title & descriptiontitle, titleLength, titlePixelWidth (estimate), metaDescription, metaDescriptionLengthmissing-title, empty-title, multiple-titles, title-too-long, title-too-short, missing-meta-description, meta-description-too-long/short, duplicate-title, duplicate-meta-description (crawl)
Contenth1, h1Count, headingCounts, wordCount, lang, charset, viewportmissing-h1, multiple-h1, thin-content, missing-lang, missing-viewport, missing-charset
Internationalhreflanginvalid-hreflang
SocialopenGraph, twitterCardmissing-open-graph
Structured datastructuredDataTypes, microdataTypes, structuredData (optional)invalid-structured-data, no-structured-data
Images & linksimagesCount, imagesMissingAlt, internalLinks, externalLinks, nofollowLinks, mixedContentCount, faviconimages-missing-alt, mixed-content

Score: 100 minus a penalty for each distinct issue type on the page: error −20, warning −8, notice −2 (minimum 0).

Site summary (crawl mode): key-value record SITE_SUMMARY with pages audited, average score, status codes, number of pages per issue, duplicate title and meta description groups, slowest pages and why the crawl stopped.

How much does an SEO audit cost?

This Actor uses pay-per-event pricing: you pay per HTML page audited. Pages that fail to load, return an error status, are not HTML or are skipped by robots.txt are free. See the Pricing tab for the current price per 1,000 pages. You can set a maximum cost per run; crawling stops cleanly when it is reached.

Tips

  • Start small: crawl 50 pages first, then raise the limit.
  • Large sites: use Skip URLs matching for tag, search and pagination URLs, and keep depth at 2–3.
  • Schedule a weekly crawl and compare averageScore in the site summary.
  • Staging sites: turn off Respect robots.txt only for sites you own.

More website audit tools:

FAQ and limitations

Does it render JavaScript? No. It audits the HTML the server returns, like most search engine crawlers see on the first pass. Content injected later by JavaScript is not included.

Does it measure Core Web Vitals? No. responseTimeMs is the server response time (including redirects), not a Lighthouse score.

Is the title pixel width exact? No, it is an estimate based on average character widths in Google's desktop font.

Does it collect personal data? No emails or phone numbers are extracted. Full structured data is off by default.

Blocked pages? Some sites refuse automated requests (HTTP 403 or 429); these pages are reported with an error and not charged.

Need another check? Open an issue in the Issues tab. Only audit websites you are allowed to crawl.