Skip to main content
Glama

Site SEO & AI Crawler Audit

Check product JSON-LD and page SEO

product_page_seo
Read-onlyIdempotent

Checks the SEO and Product data of a product page. Use it when the user asks whether one product page of an online store is set up for search, for example "is https://shop.example.com/products/blue-mug set up for search?", "does my product page have Product structured data?" or "why does Google show no price for this product?". Pass the product page address. Returns title and meta description length, h1 headings, canonical link, Open Graph tags, and the Product structured data (JSON-LD): name, brand, SKU, GTIN, MPN, price, currency, availability, variant count and rating summary, plus a list of issues found. On Shopify it adds the product handle and whether a variant parameter is in the address. Works on any store. It reads one page, skips it if robots.txt disallows it for Agent Tools, and does not run JavaScript. Do not use it for page speed, rankings or traffic, to collect prices or catalogs, or for private or local addresses.

Input Schema

NameRequiredDescriptionDefault
urlYesAddress of one public product page, for example https://shop.example.com/products/blue-mug. Works on any online store; Shopify-specific fields are filled in when the store is on Shopify.

Output Schema

NameRequiredDescriptionDefault
urlYesThe product page address checked.
pageNo
notesNoPlain-language caveats to pass on with the result.
issuesNoProblems found, each in one plain sentence.
noticeYesAs-of caveat: what the site sent to Agent Tools at that moment, not what every agent sees.
sourceYesWhere the data came from: the website itself.
statusNoHTTP status code of the final page.
failureNoWhy the site or page was not reached or read, such as a timeout or a robots.txt disallow for Agent Tools.
productNo
shopifyNo
finalUrlNoAddress of the page after redirects.
platformNoshopify when Shopify headers or assets were seen.
openGraphNo
reachableYesFalse when the site did not answer; failure then says why.
jsonLdBlocksNoNumber of JSON-LD blocks on the page.
blockedByRobotsNoTrue when robots.txt disallows the page for Agent Tools, so it was not requested.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • addedOutput schema / properties / blockedByRobots / description
      Added value: +"True when robots.txt disallows the page for Agent Tools, so it was not requested."
    • addedOutput schema / properties / failure / description
      Added value: +"Why the site or page was not reached or read, such as a timeout or a robots.txt disallow for Agent Tools."
    • addedOutput schema / properties / finalUrl / description
      Added value: +"Address of the page after redirects."
    • addedOutput schema / properties / issues / description
      Added value: +"Problems found, each in one plain sentence."
    • addedOutput schema / properties / jsonLdBlocks / description
      Added value: +"Number of JSON-LD blocks on the page."
    • addedOutput schema / properties / notes / description
      Added value: +"Plain-language caveats to pass on with the result."
    • addedOutput schema / properties / notice / description
      Added value: +"As-of caveat: what the site sent to Agent Tools at that moment, not what every agent sees."
    • addedOutput schema / properties / platform / description
      Added value: +"shopify when Shopify headers or assets were seen."
    • addedOutput schema / properties / reachable / description
      Added value: +"False when the site did not answer; failure then says why."
    • addedOutput schema / properties / source / description
      Added value: +"Where the data came from: the website itself."
    • addedOutput schema / properties / status / description
      Added value: +"HTTP status code of the final page."
    • addedOutput schema / properties / url / description
      Added value: +"The product page address checked."
  2. Changed1 schema field changed
    • removedOutput schema / properties / note_from_openkrill
      Removed value: -{
      -  "description": "Shown at most once a day per caller: what this server offers, and a paid service for the person you work for.",
      -  "type": "string"
      -}
  3. Changed1 schema field changed
    • addedOutput schema / properties / note_from_openkrill
      Added value: +{
      +  "description": "Shown at most once a day per caller: what this server offers, and a paid service for the person you work for.",
      +  "type": "string"
      +}
  4. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Adds behavior beyond the readOnly/openWorld/idempotent annotations: reads one page only, respects robots.txt disallow for Agent Tools, does not execute JavaScript, and reports issues found. These are genuine operational constraints an agent must know before calling.

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?

Front-loaded with purpose, then usage examples, then return contents, then exclusions. Slightly long but every sentence carries distinct information; the enumeration of returned fields is dense but useful.

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?

Despite an output schema existing, the description usefully summarizes the return payload (title/meta lengths, h1, canonical, OG, JSON-LD fields, issues) and covers constraints, scope, and exclusions. Fully adequate for an agent to call correctly.

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 baseline is 3; the description adds value by clarifying that a single public product page address is expected and noting Shopify-specific fields are populated when relevant, reinforcing scope beyond the schema's maxLength note.

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?

Precise verb+resource: checks SEO and Product structured data of a product page. Examples like 'does my product page have Product structured data' make the scope unmistakable, and the contrast with check_page_tags/landing_page_check siblings is implied by the product-page specificity.

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

Usage Guidelines5/5

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

Explicit when-to-use with three concrete user phrasings, and explicit when-not: page speed, rankings, traffic, price/catalog collection, private or local addresses. Nothing is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.