Skip to main content
Glama

Audit website SEO

audit_website_seo
Read-only

Run an on-page SEO audit to score a site 0-100 and list prioritized issues (title, meta, headings, indexability, images, speed) with optional broken-link checking.

Instructions

Run an on-page SEO audit: 0-100 score and a prioritized list of issues (title, meta description, headings, canonical, indexability, structured data, Open Graph, images without alt, speed, robots.txt, sitemap, llms.txt and AI-crawler blocking), with optional broken-link checking and an internal crawl. Use it when asked to audit, review or improve a site's SEO, or to compare pages. Cost: $0.004 per page audited, billed to your Apify account; unreachable pages are free. Crawling multiplies cost: pages = urls x maxPagesPerSite at most. Runs the Apify actor kantolabs/website-seo-audit with your APIFY_TOKEN; maxTotalChargeUsd caps the spend per call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlsYesPages or domains to audit, e.g. ["https://www.python.org"].
timeoutSecsNoGive up after this many seconds (max 300, Apify's limit for synchronous runs). Default 280. For big batches, split the input into several calls.
maxPagesPerSiteNo1 (default) audits only the listed URLs. Higher values crawl internal links up to this many pages per start URL; each page is charged.
checkBrokenLinksNoRequest every link on each audited page and report 4xx/5xx/unreachable ones. Slower. Default false.
maxTotalChargeUsdNoHard spending cap for this call in USD, enforced by Apify: the run stops once it has charged this much. Default 1 (server setting KANTO_MAX_CHARGE_USD).
maxLinksToCheckPerPageNoUpper bound on link checks per page when checkBrokenLinks is on. Default 100.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.2.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds critical behavioral context beyond that: it costs $0.004 per page billed to an Apify account, unreachable pages are free, crawling multiplies cost, and maxTotalChargeUsd caps spend. It also mentions it runs an Apify actor with APIFY_TOKEN and synchronous timeouts. This fully discloses the cost and execution side-effects, going well beyond the annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense but well organized: it opens with the core function, then usage triggers, then cost and execution details. Every sentence adds value. It is longer than a single sentence but justified given the cost model and crawling behavior. It is front-loaded with the primary purpose, so an agent can quickly decide if it is the right tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, no output schema, and cost implications, the description is remarkably complete. It covers the input (URLs), the optional behaviors (broken links, crawl), the output (0-100 score and issue list), the cost model, and the spending cap. An agent has everything needed to decide whether to call it and how to set parameters responsibly. The lack of an output schema is mitigated by the explicit description of the return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all six parameters. The description adds valuable semantics: it explains that maxPagesPerSite defaults to 1 and that higher values crawl internal links, each page charged; it explains checkBrokenLinks as 'optional broken-link checking'; and it ties cost to pages. This enriches the schema meaning without redundancy. A small gap is not elaborating on maxLinksToCheckPerPage, but the schema does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Run'), a precise resource ('on-page SEO audit'), and enumerates the exact checklist (title, meta, headings, canonical, indexability, structured data, Open Graph, images, speed, robots.txt, sitemap, llms.txt, AI-crawler blocking) plus optional broken-link checking and crawling. It also gives explicit triggers ('when asked to audit, review or improve a site's SEO, or to compare pages'), clearly distinguishing it from sibling tools like check_domain_authority or check_website_traffic_rank.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool ('Use it when asked to audit, review or improve a site's SEO, or to compare pages'). It does not explicitly name alternative tools or exclusions, but the purpose is clear enough and the description adds cost guidance (unreachable pages free, crawling multiplier, spending cap) that helps an agent decide whether to invoke it. A slight gap is not naming sibling tools for contrast, but this is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.