Audit Standard / 2026.4
Rule explorer: Audit Standard 2026.4
Every check that defines technical readiness in MaxiMarket Audit Standard 2026.4, exactly as the audit applies it. Open a rule to see what it checks, why it matters, how to fix it, where its authority comes from and how much it counts.
Guides by topic: technical SEO audit rules, AI readiness, structured data and ecommerce product data.
Authority levels
- A search engine documents it as required for a specific outcome, such as Google eligibility.
- Strongest external authority
- Defined by an open standard or vocabulary: HTML, WCAG, IETF RFCs, Schema.org, Sitemaps, Open Graph.
- Recommended in official platform documentation, such as Google Search Central or an AI platform.
- Widely accepted practice with a cited source, but no official requirement.
- MaxiMarket’s own advice. Never presented as a search engine or platform requirement.
- MaxiMarket methodology
Filter
Showing 14 rules and 0 observations.
Rules
Rules pass or fail. A failed rule becomes a finding in your report; scored rules also count toward the Technical Score.
Document metadata
SEO-CHARSET-001Character encoding is declared once, as UTF-8DocumentWarning when failedWeight 2Technical SearchAI DiscoveryMachine Readability
- What this checks
- The meta charset elements: how many there are and their value.
- Why it matters
- HTML allows at most one meta charset element and only the value utf-8; a wrong or conflicting declaration can garble text for every consumer.
- How to fix
- Keep a single <meta charset="utf-8"> and serve the document as UTF-8.
- Expected
- At most one meta charset, with the value utf-8.
- Applies to
- Pages with at least one meta charset element.
- Authority
- Open standard / Schema.org · RequiredHTML Standard, for pages that declare meta charset.
- Technical Score
- Weight 2 of 3A wrong or conflicting encoding declaration can garble the text for every consumer.
- How MaxiMarket detects it
- Reports when there is more than one meta element with a charset attribute, or its value is not utf-8 (ASCII case-insensitive, surrounding whitespace ignored). Pages without meta charset are not applicable.
- Sources
- HTML Standard: character encoding declaration — WHATWG, verified 2026-09-26
SEO-LANGUAGE-001Page language is declaredDocumentWarning when failedWeight 2Technical SearchAI DiscoveryMachine Readability
- What this checks
- Whether the root html element has a non-empty lang attribute.
- Why it matters
- WCAG requires the default human language of a page to be programmatically determinable, and the HTML Standard encourages a lang attribute on the root element for speech synthesis and translation tools.
- How to fix
- Add a lang attribute with the page language to the <html> element.
- Expected
- The root <html> element declares the page language, such as lang="en".
- Applies to
- Every retrieved page.
- Authority
- Open standard / Schema.org · RequiredRequired for WCAG 2.2 Level A conformance (Success Criterion 3.1.1); the HTML Standard encourages the lang attribute.
- Technical Score
- Weight 2 of 3A WCAG Level A requirement for every page.
- How MaxiMarket detects it
- Reports when the first html element has no lang attribute or an empty one. The language value is not validated.
- Sources
- WCAG 2.2 Understanding SC 3.1.1 Language of Page — W3C, verified 2026-09-26
- HTML Standard: the html element — WHATWG, verified 2026-09-26
SEO-LANGUAGE-002Page language is a well-formed BCP 47 tagDocumentWarning when failedWeight 1AI DiscoveryMachine Readability
- What this checks
- Whether the html lang value conforms to the BCP 47 (RFC 5646) language tag syntax.
- Why it matters
- HTML requires the lang value to be a valid BCP 47 language tag; a malformed tag cannot identify the language for assistive technology or language processing.
- How to fix
- Use a BCP 47 language tag, such as en, en-GB or zh-Hant.
- Expected
- The lang value is a valid BCP 47 language tag, such as en or de-CH.
- Applies to
- Pages whose html element has a non-empty lang attribute.
- Authority
- Open standard / Schema.org · RequiredRequired by the HTML Standard for the lang attribute.
- Technical Score
- Weight 1 of 3A malformed lang value is declared but unusable; it only applies when lang is present.
- How MaxiMarket detects it
- Reports when a non-empty lang value is not well-formed under the RFC 5646 ABNF (language, script, region, variant, extension and private-use subtags, private-use tags and the listed grandfathered tags), case-insensitively. Subtags are not checked against the IANA registry, so a well-formed but unregistered tag passes.
- Sources
- HTML Standard: the lang and xml:lang attributes — WHATWG, verified 2026-09-26
- RFC 5646 (BCP 47): Tags for Identifying Languages — IETF, verified 2026-09-26
Canonicalization
SEO-CANONICAL-002Only one canonical is declaredDocumentWarning when failedWeight 2Technical SearchAI Discovery
- What this checks
- The number of rel=canonical link elements, and of canonical entries in HTTP Link headers.
- Why it matters
- RFC 6596 asks for a single canonical; when several are declared, Google may ignore them.
- How to fix
- Keep a single rel=canonical link element (and at most one canonical Link header).
- Expected
- At most one canonical per method.
- Applies to
- Pages that declare at least one canonical, in a link element or an HTTP Link header.
- Authority
- Open standard / Schema.org · RequiredRFC 6596 and Google canonicalization guidance.
- Technical Score
- Weight 2 of 3Several canonical declarations may make search engines ignore all of them.
- How MaxiMarket detects it
- Reports when the HTML contains more than one link element whose rel includes canonical, or the HTTP Link headers contain more than one rel=canonical entry. Disagreement between the two methods is SEO-CANONICAL-008.
- Sources
- RFC 6596: The Canonical Link Relation — IETF, verified 2026-09-26
- How to specify a canonical URL — Google Search Central, verified 2026-09-26
SEO-CANONICAL-006Canonical target is directly retrievableDocumentWarning when failedWeight 2Technical SearchAI Discovery
- What this checks
- The HTTP status of the canonical URL when it differs from the final URL.
- Why it matters
- RFC 6596 advises against canonical targets that redirect or return an error, and Google wants canonical URLs that are accessible and indexable.
- How to fix
- Point the canonical at the final, directly reachable URL of the preferred page.
- Expected
- HTTP 200 without a redirect.
- Applies to
- Pages whose declared canonical resolves to a different URL than the final URL.
- Authority
- Open standard / Schema.org · RecommendedRFC 6596 and Google canonicalization guidance.
- Technical Score
- Weight 2 of 3A canonical that redirects or errors points search engines at a URL they cannot use.
- How MaxiMarket detects it
- One bounded request to the canonical URL through the same destination checks as the audit (public HTTP(S) destinations only, no redirects followed, 5-second limit). Reports a redirect status or a 4xx. Server errors, throttling, timeouts and refused destinations are not evaluated.
- Sources
- RFC 6596: The Canonical Link Relation — IETF, verified 2026-09-26
- How to specify a canonical URL — Google Search Central, verified 2026-09-26
SEO-CANONICAL-007Canonical target does not declare another canonicalDocumentWarning when failedWeight 1Technical SearchAI Discovery
- What this checks
- The canonical declared by the canonical target page.
- Why it matters
- RFC 6596 advises against chains of canonical designations; search engines may ignore a chained canonical.
- How to fix
- Point the canonical directly at the final preferred URL.
- Expected
- The target is its own canonical, or declares none.
- Applies to
- Pages whose canonical target was retrieved as HTML with HTTP 200.
- Authority
- Open standard / Schema.org · RecommendedRFC 6596 guidance.
- Technical Score
- Weight 1 of 3A chained canonical may be ignored, but the chain usually still reaches the preferred page.
- How MaxiMarket detects it
- Uses the same request as SEO-CANONICAL-006. When the target answers 200 with HTML (read up to 512 KiB), reports when its first canonical link element resolves to a URL other than the target itself.
- Sources
- RFC 6596: The Canonical Link Relation — IETF, verified 2026-09-26
Images and media
MEDIA-IMG-ALT-001Images have text alternativesDocumentWarning when failedWeight 1Technical SearchAI DiscoveryMachine Readability
- What this checks
- img elements without an alt attribute.
- Why it matters
- WCAG 1.1.1 (Level A) requires a text alternative for non-text content, and Google calls alt text the most important image metadata.
- How to fix
- Add an alt attribute to every img: a description for meaningful images, alt="" for decorative ones.
- Expected
- Every img has an alt attribute (empty for decorative images).
- Applies to
- Pages with at least one img element.
- Authority
- Open standard / Schema.org · RequiredWCAG 2.2 Level A.
- Technical Score
- Weight 1 of 3A WCAG Level A requirement and Google image guidance. Lowered to 1 in 2026.3: the search effect depends on each image's role, and decorative images correctly use alt="".
- How MaxiMarket detects it
- Reports when an img element has no alt attribute and no other accessible name or hiding: aria-label, aria-labelledby, role="presentation" or role="none", and aria-hidden="true" are accepted. Alt text quality is not judged.
- Sources
- WCAG 2.2 Understanding SC 1.1.1 Non-text Content — W3C, verified 2026-09-26
- Google image SEO best practices — Google Search Central, verified 2026-09-26
- HTML Standard: requirements for providing text to act as an alternative for images — WHATWG, verified 2026-09-26
Sitemaps
INDEX-SITEMAP-002Sitemap is well-formedIndexingWarning when failedWeight 2Technical SearchAI Discovery
- What this checks
- Whether each retrieved sitemap is well-formed XML with a urlset or sitemapindex root.
- Why it matters
- The Sitemaps protocol defines a sitemap as XML beginning with urlset (or sitemapindex for index files); a malformed file cannot be processed as a sitemap.
- How to fix
- Regenerate the sitemap as well-formed UTF-8 XML following the Sitemaps protocol.
- Expected
- Each sitemap is a well-formed XML document whose root is urlset or sitemapindex.
- Applies to
- Origins where at least one sitemap was retrieved.
- Authority
- Open standard / Schema.org · RequiredRequired by the Sitemaps XML format.
- Technical Score
- Weight 2 of 3A malformed sitemap cannot be processed at all.
- How MaxiMarket detects it
- Reports when at least one retrieved sitemap is malformed, has another root element, or contains a DTD or entity declaration, which MaxiMarket rejects for safety. Gzip-compressed sitemaps are not supported and namespaces are not validated.
- Sources
- Sitemaps XML format — Sitemaps.org, verified 2026-09-26
INDEX-SITEMAP-007Sitemap lastmod values are valid W3C DatetimeIndexingInfo when failedWeight 1Technical SearchAI Discovery
- What this checks
- The format of lastmod values in the inspected sitemaps.
- Why it matters
- The sitemap protocol requires W3C Datetime; Google uses lastmod only when it is consistently accurate, and a malformed value cannot be used.
- How to fix
- Write lastmod as YYYY-MM-DD or as a full timestamp with a time zone, such as 2026-09-26T08:00:00+00:00.
- Expected
- W3C Datetime: YYYY, YYYY-MM, YYYY-MM-DD, or a date with hh:mm[:ss[.s]] and a time zone.
- Applies to
- Retrieved, well-formed sitemaps with at least one lastmod value.
- Authority
- Open standard / Schema.org · RecommendedSitemaps XML protocol.
- Technical Score
- Weight 1 of 3Malformed lastmod values are ignored; the URLs are still listed.
- How MaxiMarket detects it
- Reports when a lastmod of an inspected url or sitemap entry does not match a W3C Datetime form or has an impossible date or time. Whether the dates are accurate is not verifiable and not checked.
- Sources
- Sitemaps XML format — Sitemaps.org, verified 2026-09-26
- Build and submit a sitemap — Google Search Central, verified 2026-09-26
Structured data (general)
STRUCTURED-JSONLD-002JSON-LD blocks parse as JSONStructured dataWarning when failedWeight 2Technical SearchAI DiscoveryMachine Readability
- What this checks
- Whether each inspected JSON-LD block parses as JSON.
- Why it matters
- JSON-LD is JSON; a block that cannot be parsed cannot be read as structured data by any consumer.
- How to fix
- Validate the JSON-LD block and fix syntax errors such as trailing commas, unescaped quotes or unclosed brackets.
- Expected
- Every JSON-LD block is valid JSON.
- Applies to
- Pages with at least one JSON-LD block.
- Authority
- Open standard / Schema.org · RequiredRequired by the JSON-LD 1.1 data format.
- Technical Score
- Weight 2 of 3An unparseable JSON-LD block loses all the data it contains.
- How MaxiMarket detects it
- Reports when at least one inspected JSON-LD block fails JSON parsing. Blocks skipped because of size or count limits are not counted as invalid.
- Sources
- JSON-LD 1.1 — W3C, verified 2026-09-26
Product and Offer data
STRUCTURED-OFFER-006Offer price is machine-readableOfferWarning when failedWeight 2Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- The format of Offer price and priceSpecification.price values, and AggregateOffer lowPrice and highPrice.
- Why it matters
- Schema.org asks for "." as the decimal separator and for the currency in priceCurrency, not in the price.
- How to fix
- Write prices such as 1299.00, without currency symbols or thousands separators.
- Expected
- A number, or a string of digits with an optional "." decimal part.
- Applies to
- Pages with at least one inspected Offer or AggregateOffer price value linked from a fully inspected Product.
- Authority
- Open standard / Schema.org · RecommendedSchema.org Offer usage guidance.
- Technical Score
- Weight 2 of 3A price that is not machine-readable cannot be interpreted reliably.
- How MaxiMarket detects it
- Reports when an inspected price value (linked from a fully inspected Product) is neither a finite non-negative JSON number nor a string of digits with an optional "." and digits (surrounding whitespace ignored). Missing prices are STRUCTURED-OFFER-001 and -002.
- Sources
- Schema.org Offer — Schema.org, verified 2026-09-26
STRUCTURED-OFFER-008priceValidUntil is not in the pastOfferWarning when failedWeight 1Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- priceValidUntil of each inspected Offer against the audit time.
- Why it matters
- After priceValidUntil the price is by definition no longer available, so the offer information is stale.
- How to fix
- Update or remove priceValidUntil.
- Expected
- Absent, or not yet passed.
- Applies to
- Pages with at least one inspected Offer declaring priceValidUntil.
- Authority
- Open standard / Schema.org · RecommendedSchema.org Offer definition; Google merchant listing recommendation.
- Technical Score
- Weight 1 of 3An expired priceValidUntil makes offer data stale.
- How MaxiMarket detects it
- Reports when an ISO 8601 priceValidUntil has passed in every time zone at the audit time (a date is valid through its whole day). Unparseable values are not evaluated.
- Sources
- Schema.org Offer — Schema.org, verified 2026-09-26
- Merchant listing structured data — Google Search Central, verified 2026-09-26
Social metadata
SOCIAL-OG-URL-001Open Graph URL is presentDocumentInfo when failedNot scoredAI DiscoverySocial Discovery
- What this checks
- Whether a page that declares Open Graph metadata has a non-empty og:url.
- Why it matters
- The Open Graph protocol lists og:url among the four properties required for every page, as the canonical URL of the object.
- How to fix
- Add <meta property="og:url" content="..."> with the canonical URL of the page.
- Expected
- Pages that use Open Graph declare <meta property="og:url"> with the canonical URL.
- Applies to
- Pages that declare any well-formed og:* meta property; pages without Open Graph metadata are not applicable.
- Authority
- Open standard / Schema.org · RequiredOpen Graph protocol, for pages that use Open Graph.
- Technical Score
- Not scoredShare-preview markup is outside the Technical Score.
- How MaxiMarket detects it
- Reports when Open Graph inspection is complete, the page declares at least one well-formed og:* meta property, and no og:url has a non-empty value.
- Sources
- The Open Graph protocol — Open Graph protocol, verified 2026-09-26
SOCIAL-OG-URL-002Open Graph URL matches the canonical URLDocumentInfo when failedNot scoredAI DiscoverySocial Discovery
- What this checks
- og:url against the declared canonical URL.
- Why it matters
- The Open Graph protocol defines og:url as the canonical URL; a different value splits the page's identity between share previews and search.
- How to fix
- Set og:url to the canonical URL.
- Expected
- The same URL.
- Applies to
- Pages that use Open Graph and declare both a non-empty og:url and a canonical URL.
- Authority
- Open standard / Schema.org · RecommendedOpen Graph protocol, for pages that use Open Graph.
- Technical Score
- Not scoredShare-preview markup is outside the Technical Score.
- How MaxiMarket detects it
- Resolves the first non-empty og:url and the first canonical against the final URL, ignoring fragments, and reports when they differ.
- Sources
- The Open Graph protocol — Open Graph protocol, verified 2026-09-26
- How to specify a canonical URL — Google Search Central, verified 2026-09-26