Error Certain ? Unknown Platform: Pages served without prerendering 60 page(s) were served without prerendering: no version header and no generator body class, so what a search engine receives is the empty shell. 60 pages of 60 100% rule Evidence
Platform: Pages served without prerendering 60 page(s) were served without prerendering: no version header and no generator body class, so what a search engine receives is the empty shell.
Affected 60 pages of 60
Attributed to NetSuite platform
Rule prerender/not-applied
Source rule Evidence (25) / → fetch.headers — 1 field page:p000#fetch.headers/ → body.seoSupportClass — false page:p000#body.seoSupportClass/Department-1 → fetch.headers — 1 field page:p001#fetch.headers/Department-1 → body.seoSupportClass — false page:p001#body.seoSupportClass/department-1 → fetch.headers — 1 field page:p002#fetch.headers/department-1 → body.seoSupportClass — false page:p002#body.seoSupportClass/department-1/custitem_colour/Grey → fetch.headers — 1 field page:p003#fetch.headers/department-1/custitem_colour/Grey → body.seoSupportClass — false page:p003#body.seoSupportClass/department-1/custitem_colour/Grey/custitem_material/Paper/custitem_size/Small → fetch.headers — 1 field page:p004#fetch.headers/department-1/custitem_colour/Grey/custitem_material/Paper/custitem_size/Small → body.seoSupportClass — false page:p004#body.seoSupportClass/department-1/custitem_material/Paper → fetch.headers — 1 field page:p005#fetch.headers/department-1/custitem_material/Paper → body.seoSupportClass — false page:p005#body.seoSupportClass/department-1/custitem_size/Small → fetch.headers — 1 field page:p006#fetch.headers/department-1/custitem_size/Small → body.seoSupportClass — false page:p006#body.seoSupportClass/department-1/section-1 → fetch.headers — 1 field page:p007#fetch.headers/department-1/section-1 → body.seoSupportClass — false page:p007#body.seoSupportClass/department-1/section-1/aisle-1 → fetch.headers — 1 field page:p008#fetch.headers/department-1/section-1/aisle-1 → body.seoSupportClass — false page:p008#body.seoSupportClass/department-1/section-1/aisle-2 → fetch.headers — 1 field page:p009#fetch.headers/department-1/section-1/aisle-2 → body.seoSupportClass — false page:p009#body.seoSupportClass/department-1/section-1/aisle-3 → fetch.headers — 1 field page:p010#fetch.headers/department-1/section-1/aisle-3 → body.seoSupportClass — false page:p010#body.seoSupportClass/department-1/section-2 → fetch.headers — 1 field page:p011#fetch.headers/department-1/section-2 → body.seoSupportClass — false page:p011#body.seoSupportClass/department-1/section-2/aisle-1 → fetch.headers — 1 field page:p012#fetch.headersFix NetSuite support, naming the URLs and the absence of x-prerender-version; and Setup > SuiteCommerce Advanced > Set Up Web Site for the domain configuration — a configuration change
Request the affected URLs with a browser user agent and confirm the response carries no x-prerender-version header. Check that the domain is the one configured on the Web Site record: prerendering follows the configured shopping domain, not an alias. Raise a support case with the URLs and the response headers, because the renderer is platform-side and not configurable from the account. evidence capped at 25 of 120 pointers Warning Certain ? Unknown Published landing pages missing from the sitemap 82 of 82 published landing pages are not in the sitemap (for example /about-the-fixture, /guide-1, /guide-2), so they are found only if something links to them. site-wide — rule Evidence
Published landing pages missing from the sitemap 82 of 82 published landing pages are not in the sitemap (for example /about-the-fixture, /guide-1, /guide-2), so they are found only if something links to them.
Affected site-wide
Attributed to cause not attributed
Rule discovery/sitemap-landing-gap
Source rule Evidence (25) Discovery › sitemap › byType — 2 fields discovery:sitemap#byTypeCMS page cms-about — 8 fields cms:cms-aboutCMS page cms-guide-1 — 8 fields cms:cms-guide-1CMS page cms-guide-2 — 8 fields cms:cms-guide-2CMS page cms-guide-3 — 8 fields cms:cms-guide-3CMS page cms-guide-4 — 8 fields cms:cms-guide-4CMS page cms-guide-5 — 8 fields cms:cms-guide-5CMS page cms-guide-6 — 8 fields cms:cms-guide-6CMS page cms-guide-7 — 8 fields cms:cms-guide-7CMS page cms-guide-8 — 8 fields cms:cms-guide-8CMS page cms-guide-9 — 8 fields cms:cms-guide-9CMS page cms-guide-10 — 8 fields cms:cms-guide-10CMS page cms-guide-11 — 8 fields cms:cms-guide-11CMS page cms-guide-12 — 8 fields cms:cms-guide-12CMS page cms-guide-13 — 8 fields cms:cms-guide-13CMS page cms-guide-14 — 8 fields cms:cms-guide-14CMS page cms-guide-15 — 8 fields cms:cms-guide-15CMS page cms-guide-16 — 8 fields cms:cms-guide-16CMS page cms-guide-17 — 8 fields cms:cms-guide-17CMS page cms-guide-18 — 8 fields cms:cms-guide-18CMS page cms-guide-19 — 8 fields cms:cms-guide-19CMS page cms-guide-20 — 8 fields cms:cms-guide-20CMS page cms-guide-21 — 8 fields cms:cms-guide-21CMS page cms-guide-22 — 8 fields cms:cms-guide-22CMS page cms-guide-23 — 8 fields cms:cms-guide-23Fix Commerce Categories and Site Management Tools > Pages, the affected page records; and the Web Site record’s sitemap generation — a configuration change
Confirm each affected page is published rather than a draft, and that its type gives it a route of its own. Check that the page is attached to this Web Site record: the sitemap is generated per site. Regenerate the sitemap and re-crawl to confirm the pages appear. Warning Certain ? Unknown A multi-language storefront declares no hreflang alternates This storefront publishes 3 languages and 58 indexable page(s) declare no hreflang alternates, so each translation competes with the others in search instead of being grouped with them. 58 pages of 58 100% rule Evidence
A multi-language storefront declares no hreflang alternates This storefront publishes 3 languages and 58 indexable page(s) declare no hreflang alternates, so each translation competes with the others in search instead of being grouped with them.
Affected 58 pages of 58
Attributed to SuiteCommerce core
Rule seo/hreflang-missing-multilang
Source rule Evidence (25) / → head.hreflang — 0 entries page:p000#head.hreflang/department-1 → head.hreflang — 0 entries page:p002#head.hreflang/department-1/custitem_colour/Grey → head.hreflang — 0 entries page:p003#head.hreflang/department-1/custitem_colour/Grey/custitem_material/Paper/custitem_size/Small → head.hreflang — 0 entries page:p004#head.hreflang/department-1/custitem_material/Paper → head.hreflang — 0 entries page:p005#head.hreflang/department-1/custitem_size/Small → head.hreflang — 0 entries page:p006#head.hreflang/department-1/section-1 → head.hreflang — 0 entries page:p007#head.hreflang/department-1/section-1/aisle-1 → head.hreflang — 0 entries page:p008#head.hreflang/department-1/section-1/aisle-2 → head.hreflang — 0 entries page:p009#head.hreflang/department-1/section-1/aisle-3 → head.hreflang — 0 entries page:p010#head.hreflang/department-1/section-2 → head.hreflang — 0 entries page:p011#head.hreflang/department-1/section-2/aisle-1 → head.hreflang — 0 entries page:p012#head.hreflang/department-1/section-2/aisle-2 → head.hreflang — 0 entries page:p013#head.hreflang/department-1/section-2/aisle-3 → head.hreflang — 0 entries page:p014#head.hreflang/department-1/section-3 → head.hreflang — 0 entries page:p015#head.hreflang/department-1/section-3/aisle-1 → head.hreflang — 0 entries page:p016#head.hreflang/department-1/section-3/aisle-2 → head.hreflang — 0 entries page:p017#head.hreflang/department-1/section-3/aisle-3 → head.hreflang — 0 entries page:p018#head.hreflang/department-2 → head.hreflang — 0 entries page:p019#head.hreflang/department-2/section-1 → head.hreflang — 0 entries page:p020#head.hreflang/department-2/section-1/aisle-1 → head.hreflang — 0 entries page:p021#head.hreflang/department-2/section-1/aisle-2 → head.hreflang — 0 entries page:p022#head.hreflang/department-2/section-1/aisle-3 → head.hreflang — 0 entries page:p023#head.hreflang/department-2/section-2 → head.hreflang — 0 entries page:p024#head.hreflang/department-2/section-2/aisle-1 → head.hreflang — 0 entries page:p025#head.hreflangFix An extension that adds alternate-language links to the head; core supplies no mechanism, so there is no configuration field to set — a code change
List the host serving each configured language from availableHosts. Add an extension that emits a rel="alternate" hreflang link per host on every indexable page, including a self-referencing entry. Add an x-default entry pointing at the host a visitor with no matching language should receive. Re-crawl each host and confirm the alternates agree with one another. evidence capped at 25 of 58 pointers Warning Certain ? Unknown Commerce categories missing from the sitemap 52 of 52 commerce category pages are not in the sitemap (for example /department-1, /department-1/section-1, /department-1/section-1/aisle-1), so search engines find them only if something links to them. 52 categories of 52 100% rule Evidence
Commerce categories missing from the sitemap 52 of 52 commerce category pages are not in the sitemap (for example /department-1, /department-1/section-1, /department-1/section-1/aisle-1), so search engines find them only if something links to them.
Affected 52 categories of 52
Attributed to cause not attributed
Rule discovery/sitemap-category-gap
Source rule Evidence (25) Discovery › sitemap › byType — 2 fields discovery:sitemap#byTypeCategory 100 — 5 fields category:100Category 110 — 6 fields category:110Category 111 — 6 fields category:111Category 112 — 6 fields category:112Category 113 — 6 fields category:113Category 120 — 6 fields category:120Category 121 — 6 fields category:121Category 122 — 6 fields category:122Category 123 — 6 fields category:123Category 130 — 6 fields category:130Category 131 — 6 fields category:131Category 132 — 6 fields category:132Category 133 — 6 fields category:133Category 200 — 5 fields category:200Category 210 — 6 fields category:210Category 211 — 6 fields category:211Category 212 — 6 fields category:212Category 213 — 6 fields category:213Category 220 — 6 fields category:220Category 221 — 6 fields category:221Category 222 — 6 fields category:222Category 223 — 6 fields category:223Category 230 — 6 fields category:230Category 231 — 6 fields category:231Fix The commerce category records (Display in Site, and the primary URL flag), and the Web Site record’s sitemap generation — a configuration change
Check Display in Site on the affected category records: the sitemap generator skips categories that are not displayed. Confirm each category has a primary URL: a non-primary URL is an alias and is not listed. Regenerate the sitemap and re-crawl to confirm the categories appear. Warning Certain ? Unknown The two render passes emit different placeholders 20 rendered page(s) emit different placeholders in the two passes: 1 present only in the browser (data-view:Synthetic.Promo#0). On this release the browser rebuilds the content area, so the cost is a flash rather than a wrong page — until the site is upgraded. 20 pages of 20 100% rule Evidence
The two render passes emit different placeholders 20 rendered page(s) emit different placeholders in the two passes: 1 present only in the browser (data-view:Synthetic.Promo#0). On this release the browser rebuilds the content area, so the cost is a flash rather than a wrong page — until the site is upgraded.
Affected 20 pages of 20
Attributed to cause not attributed
Rule prerender/placeholder-parity
Source rule Evidence (20) / → body.placeholders.hash — "4d14087380bf915899f6d5d49d312898539b61fd6a9890dc464274beb9a74c38" page:p000#body.placeholders.hash/Department-1 → body.placeholders.hash — "0bb677128af3a2f3a593548daf421958afa5a41f58d3c5e1f36e4a74df48a2f0" page:p001#body.placeholders.hash/department-1 → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p002#body.placeholders.hash/department-1/custitem_colour/Grey → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p003#body.placeholders.hash/department-1/custitem_colour/Grey/custitem_material/Paper/custitem_size/Small → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p004#body.placeholders.hash/department-1/custitem_material/Paper → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p005#body.placeholders.hash/department-1/custitem_size/Small → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p006#body.placeholders.hash/department-2 → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p019#body.placeholders.hash/department-3 → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p031#body.placeholders.hash/department-4 → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p035#body.placeholders.hash/guide-41 → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p039#body.placeholders.hash/guide-65 → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p040#body.placeholders.hash/guide-66 → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p041#body.placeholders.hash/guide-69 → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p042#body.placeholders.hash/product-1 → body.placeholders.hash — "027cdde8372314c61189a9381e497c2eafa5586632574588019b3c10e4942fd3" page:p043#body.placeholders.hash/product-10 → body.placeholders.hash — "027cdde8372314c61189a9381e497c2eafa5586632574588019b3c10e4942fd3" page:p044#body.placeholders.hash/product-100 → body.placeholders.hash — "027cdde8372314c61189a9381e497c2eafa5586632574588019b3c10e4942fd3" page:p045#body.placeholders.hash/product-101 → body.placeholders.hash — "027cdde8372314c61189a9381e497c2eafa5586632574588019b3c10e4942fd3" page:p046#body.placeholders.hash/search?keywords=Grey → body.placeholders.hash — "55cfead92b605aa0fb8b72a0410b532a66e732e860a22fe401c9020ef90257cc" page:p058#body.placeholders.hash/this-page-does-not-exist-8c3dcdd1 → body.placeholders.hash — "0bb677128af3a2f3a593548daf421958afa5a41f58d3c5e1f36e4a74df48a2f0" page:p059#body.placeholders.hashFix The templates that wrap a [data-view] or [data-cms-area] element in a condition, and any view that adds or removes placeholders after render — a code change
Find the placeholders the comparison names and the condition that decides whether they are emitted. Remove isPageGenerator from around the placeholder element itself (CORR-027): it may gate the content inside, never the container. Emit the same number of element children in both passes, even when the children are empty server-side. Re-crawl and confirm the placeholder hashes match. Warning Certain ? Unknown Pages sharing one <title> 5 indexable page(s) share a <title> with another page across 1 duplicated title(s), so they compete with each other in search results. 5 pages of 58 9% rule Evidence
Pages sharing one <title> 5 indexable page(s) share a <title> with another page across 1 duplicated title(s), so they compete with each other in search results.
Affected 5 pages of 58
Attributed to cause not attributed
Rule seo/title-duplicate
Source rule Evidence (5) /department-1/custitem_colour/Grey → head.title — "{{title}} | Deep Synthetic Store" page:p003#head.title/department-1/custitem_colour/Grey/custitem_material/Paper/custitem_size/Small → head.title — "{{title}} | Deep Synthetic Store" page:p004#head.title/department-1/custitem_material/Paper → head.title — "{{title}} | Deep Synthetic Store" page:p005#head.title/department-1/custitem_size/Small → head.title — "{{title}} | Deep Synthetic Store" page:p006#head.title/search?keywords=Grey → head.title — "{{title}} | Deep Synthetic Store" page:p058#head.titleFix Commerce Category › Page Title for a category; the facet `titleToken` and `titleSeparator` in the Facets configuration for a facet page; Item record › Web Store › Page Title for a product — a content change
Group the pages named in the evidence by the title they share. For a facet page inheriting its parent category title, set `titleToken` on the facet so the rendered title names the selected value. For two records sharing a Page Title, rewrite one so each title describes only its own page. Re-crawl and confirm each page returns a distinct <title>. Warning Certain ? Unknown Canonical URLs point at a different host 5 page(s) declare a canonical URL on a different host (www.deep-synthetic.example{{path}}), which asks search engines to index that host instead of this one. 5 pages of 58 9% rule Evidence
Canonical URLs point at a different host 5 page(s) declare a canonical URL on a different host (www.deep-synthetic.example{{path}}), which asks search engines to index that host instead of this one.
Affected 5 pages of 58
Attributed to cause not attributed
Rule seo/canonical-cross-host
Source rule Evidence (5) /department-1/custitem_colour/Grey → head.canonical — "https://www.deep-synthetic.example{{path}}" page:p003#head.canonical/department-1/custitem_colour/Grey/custitem_material/Paper/custitem_size/Small → head.canonical — "https://www.deep-synthetic.example{{path}}" page:p004#head.canonical/department-1/custitem_material/Paper → head.canonical — "https://www.deep-synthetic.example{{path}}" page:p005#head.canonical/department-1/custitem_size/Small → head.canonical — "https://www.deep-synthetic.example{{path}}" page:p006#head.canonical/search?keywords=Grey → head.canonical — "https://www.deep-synthetic.example{{path}}" page:p058#head.canonicalFix Setup > SuiteCommerce Advanced > Set Up Web Site › the Website record domain, then any extension or theme template that writes an absolute canonical — a configuration change
Decide which host is the canonical one for this storefront. Correct the Website record domain, or the extension that hard-codes a host, so the canonical is built from the serving hostname. Redirect the other host to the canonical one so the two stop competing. Re-crawl and confirm each canonical names the serving host. Warning Likely ? Unknown Pages with less visible text than their type needs 58 indexable page(s) carry less visible text than their page type needs, the thinnest at 18 words. 58 pages of 58 100% rule Evidence
Pages with less visible text than their type needs 58 indexable page(s) carry less visible text than their page type needs, the thinnest at 18 words.
Affected 58 pages of 58
Attributed to cause not attributed
Rule seo/thin-content
Source rule Evidence (25) / → body.visibleWordCount — 48 page:p000#body.visibleWordCount/department-1 → body.visibleWordCount — 22 page:p002#body.visibleWordCount/department-1/custitem_colour/Grey → body.visibleWordCount — 21 page:p003#body.visibleWordCount/department-1/custitem_colour/Grey/custitem_material/Paper/custitem_size/Small → body.visibleWordCount — 21 page:p004#body.visibleWordCount/department-1/custitem_material/Paper → body.visibleWordCount — 21 page:p005#body.visibleWordCount/department-1/custitem_size/Small → body.visibleWordCount — 21 page:p006#body.visibleWordCount/department-1/section-1 → body.visibleWordCount — 22 page:p007#body.visibleWordCount/department-1/section-1/aisle-1 → body.visibleWordCount — 22 page:p008#body.visibleWordCount/department-1/section-1/aisle-2 → body.visibleWordCount — 22 page:p009#body.visibleWordCount/department-1/section-1/aisle-3 → body.visibleWordCount — 22 page:p010#body.visibleWordCount/department-1/section-2 → body.visibleWordCount — 22 page:p011#body.visibleWordCount/department-1/section-2/aisle-1 → body.visibleWordCount — 22 page:p012#body.visibleWordCount/department-1/section-2/aisle-2 → body.visibleWordCount — 22 page:p013#body.visibleWordCount/department-1/section-2/aisle-3 → body.visibleWordCount — 22 page:p014#body.visibleWordCount/department-1/section-3 → body.visibleWordCount — 22 page:p015#body.visibleWordCount/department-1/section-3/aisle-1 → body.visibleWordCount — 22 page:p016#body.visibleWordCount/department-1/section-3/aisle-2 → body.visibleWordCount — 22 page:p017#body.visibleWordCount/department-1/section-3/aisle-3 → body.visibleWordCount — 22 page:p018#body.visibleWordCount/department-2 → body.visibleWordCount — 22 page:p019#body.visibleWordCount/department-2/section-1 → body.visibleWordCount — 22 page:p020#body.visibleWordCount/department-2/section-1/aisle-1 → body.visibleWordCount — 22 page:p021#body.visibleWordCount/department-2/section-1/aisle-2 → body.visibleWordCount — 22 page:p022#body.visibleWordCount/department-2/section-1/aisle-3 → body.visibleWordCount — 22 page:p023#body.visibleWordCount/department-2/section-2 → body.visibleWordCount — 22 page:p024#body.visibleWordCount/department-2/section-2/aisle-1 → body.visibleWordCount — 22 page:p025#body.visibleWordCountFix Commerce Category › Description for a category page; Item record › Web Store › Detailed Description for a product; the SMT page content for a landing page — a content change
Fill the description field on the record behind each page named in the evidence. Confirm the text appears in the prerendered document and not only after the client pass, which is what a search engine reads. Re-crawl and confirm the visible word count rises above the threshold for the type. evidence capped at 25 of 58 pointers Warning Certain ? Unknown Product structured data with fields absent or malformed 15 Product/Offer node(s) across 15 page(s) are incomplete: image absent. A rich result needs every one of them. 15 pages of 15 100% rule Evidence
Product structured data with fields absent or malformed 15 Product/Offer node(s) across 15 page(s) are incomplete: image absent. A rich result needs every one of them.
Affected 15 pages of 15
Attributed to SuiteCommerce core
Rule structured/product-incomplete
Source rule Evidence (15) /product-1 → head.jsonLd[0].validation[0] — 4 fields page:p043#head.jsonLd[0].validation[0]/product-10 → head.jsonLd[0].validation[0] — 4 fields page:p044#head.jsonLd[0].validation[0]/product-100 → head.jsonLd[0].validation[0] — 4 fields page:p045#head.jsonLd[0].validation[0]/product-101 → head.jsonLd[0].validation[0] — 4 fields page:p046#head.jsonLd[0].validation[0]/product-102 → head.jsonLd[0].validation[0] — 4 fields page:p047#head.jsonLd[0].validation[0]/product-103 → head.jsonLd[0].validation[0] — 4 fields page:p048#head.jsonLd[0].validation[0]/product-104 → head.jsonLd[0].validation[0] — 4 fields page:p049#head.jsonLd[0].validation[0]/product-105 → head.jsonLd[0].validation[0] — 4 fields page:p050#head.jsonLd[0].validation[0]/product-106 → head.jsonLd[0].validation[0] — 4 fields page:p051#head.jsonLd[0].validation[0]/product-107 → head.jsonLd[0].validation[0] — 4 fields page:p052#head.jsonLd[0].validation[0]/product-108 → head.jsonLd[0].validation[0] — 4 fields page:p053#head.jsonLd[0].validation[0]/product-109 → head.jsonLd[0].validation[0] — 4 fields page:p054#head.jsonLd[0].validation[0]/product-11 → head.jsonLd[0].validation[0] — 4 fields page:p055#head.jsonLd[0].validation[0]/product-110 → head.jsonLd[0].validation[0] — 4 fields page:p056#head.jsonLd[0].validation[0]/product-111 → head.jsonLd[0].validation[0] — 4 fields page:p057#head.jsonLd[0].validation[0]Fix The item record fields the JSON-LD reads (Store tab: Page Title, Store Display Image, pricing and stock), and the PDP view that builds the Offer node — a content change
Fill the absent fields on the affected item records. Where availability is the absent field, check whether the PDP hides prices for anonymous shoppers: ProfileModel.hidePrices() omits price and availability from the Offer node, and the markup must then not claim to be an Offer. Re-crawl and confirm each Offer node carries price, priceCurrency and availability. Warning Certain ? Unknown Pages that never finished booting in the browser 2 page(s) never finished booting in the browser: 0 had mounted at least one extension module, and the renderer collected 0 uncaught error(s) and 2 console error(s) on them. Every client-side measurement for those pages is reported as unavailable rather than as a bad score. 2 pages of 30 7% rule Evidence
Pages that never finished booting in the browser 2 page(s) never finished booting in the browser: 0 had mounted at least one extension module, and the renderer collected 0 uncaught error(s) and 2 console error(s) on them. Every client-side measurement for those pages is reported as unavailable rather than as a bad score.
Affected 2 pages of 30
Attributed to cause not attributed
Rule prerender/readiness-timeout
Source rule Evidence (2) /Department-1 → body.placeholders.hash — "0bb677128af3a2f3a593548daf421958afa5a41f58d3c5e1f36e4a74df48a2f0" page:p001#body.placeholders.hash/this-page-does-not-exist-8c3dcdd1 → body.placeholders.hash — "0bb677128af3a2f3a593548daf421958afa5a41f58d3c5e1f36e4a74df48a2f0" page:p059#body.placeholders.hashFix The extension entry points that mount on the affected pages, and their define dependency arrays — a code change
Open an affected page with the console visible and read the first uncaught error: an unresolved module id throws before mountToApp and stops every extension after it (07 § 9). Check for a readiness signal built on setTimeout(fn, 0) (CORR-033), which resolves before the thing it was waiting for. Confirm every extension service the page calls on load returns, rather than hanging. Re-crawl and confirm the page reaches a ready state. Warning Certain ? Unknown Pages sharing one meta description 5 indexable page(s) share a meta description with another page across 1 duplicated description(s), so their search snippets are identical. 5 pages of 58 9% rule Evidence
Pages sharing one meta description 5 indexable page(s) share a meta description with another page across 1 duplicated description(s), so their search snippets are identical.
Affected 5 pages of 58
Attributed to cause not attributed
Rule seo/meta-description-duplicate
Source rule Evidence (5) /department-1/custitem_colour/Grey → head.metaDescription — "{{title}}: a hand-written category page for the deep-depth tests." page:p003#head.metaDescription/department-1/custitem_colour/Grey/custitem_material/Paper/custitem_size/Small → head.metaDescription — "{{title}}: a hand-written category page for the deep-depth tests." page:p004#head.metaDescription/department-1/custitem_material/Paper → head.metaDescription — "{{title}}: a hand-written category page for the deep-depth tests." page:p005#head.metaDescription/department-1/custitem_size/Small → head.metaDescription — "{{title}}: a hand-written category page for the deep-depth tests." page:p006#head.metaDescription/search?keywords=Grey → head.metaDescription — "{{title}}: a hand-written category page for the deep-depth tests." page:p058#head.metaDescriptionFix Commerce Category › Meta Description for a category; Item record › Web Store › Meta Tag HTML for a product; the SMT page settings for a landing page — a content change
Group the pages named in the evidence by the description they share. Rewrite each so it describes only the products or content on that page. Where a facet page inherits the parent category description, decide whether the facet should be canonicalised to the category instead. Re-crawl and confirm each description is distinct. Info Certain ? Unknown Facet pages beyond the SEO limits still return 200 1 facet combination(s) beyond the configured SEO limits still return 200 when requested. The limits suppress the links in the generated HTML and nothing more: they do not make these pages unavailable or tell a search engine to ignore them. site-wide — rule Evidence
Facet pages beyond the SEO limits still return 200 1 facet combination(s) beyond the configured SEO limits still return 200 when requested. The limits suppress the links in the generated HTML and nothing more: they do not make these pages unavailable or tell a search engine to ignore them.
Affected site-wide
Attributed to SuiteCommerce core
Rule discovery/facet-over-limit-reachable
Source rule Evidence (2) Discovery › facetUrls — 4 entries discovery:facetUrlsEnvironment › seoRelevant › facetsSeoLimits — 3 fields env:seoRelevant.facetsSeoLimitsFix Setup > SuiteCommerce Advanced > Configuration, the Facets SEO limits group; and the robots.txt field on the Web Site record — a configuration change
Decide whether these combinations should be excluded or merely unlinked. The configuration only unlinks them. To exclude them, disallow the facet path or parameter pattern in robots.txt. Confirm the over-limit pages carry a canonical pointing at the page that should rank instead. Info Heuristic ? Unknown The <h1> and the <title> are the same string 1 page(s) use one string for both the <h1> and the <title>, so the title adds nothing a shopper cannot already see on the page. 1 page of 58 (home) 2% rule Evidence
The <h1> and the <title> are the same string 1 page(s) use one string for both the <h1> and the <title>, so the title adds nothing a shopper cannot already see on the page.
Affected 1 page of 58 (home)
Attributed to cause not attributed
Rule seo/h1-equals-title
Source rule Evidence (2) / → head.title — "Deep Synthetic Store" page:p000#head.title/ → body.headings[0] — 3 fields page:p000#body.headings[0]Fix Item record › Web Store › Page Title for a product; Commerce Category › Page Title for a category; the SMT page settings for a landing page — a content change
Decide what the title should add that the heading does not: the brand, the parent category, the model number, or the offer. Rewrite Page Title on the record that supplies it, leaving the page heading alone. Keep the result inside the length seo/title-length checks. Info Certain ? Unknown Product and listing pages publish no BreadcrumbList 38 category and facet and search page(s) publish no BreadcrumbList, so search results for them show the raw URL path instead of a readable trail. 38 pages of 38 100% rule Evidence
Product and listing pages publish no BreadcrumbList 38 category and facet and search page(s) publish no BreadcrumbList, so search results for them show the raw URL path instead of a readable trail.
Affected 38 pages of 38
Attributed to SuiteCommerce core
Rule structured/breadcrumb-missing
Source rule Evidence (25) /department-1 → head.jsonLd — 0 entries page:p002#head.jsonLd/department-1/custitem_colour/Grey → head.jsonLd — 0 entries page:p003#head.jsonLd/department-1/custitem_colour/Grey/custitem_material/Paper/custitem_size/Small → head.jsonLd — 0 entries page:p004#head.jsonLd/department-1/custitem_material/Paper → head.jsonLd — 0 entries page:p005#head.jsonLd/department-1/custitem_size/Small → head.jsonLd — 0 entries page:p006#head.jsonLd/department-1/section-1 → head.jsonLd — 0 entries page:p007#head.jsonLd/department-1/section-1/aisle-1 → head.jsonLd — 0 entries page:p008#head.jsonLd/department-1/section-1/aisle-2 → head.jsonLd — 0 entries page:p009#head.jsonLd/department-1/section-1/aisle-3 → head.jsonLd — 0 entries page:p010#head.jsonLd/department-1/section-2 → head.jsonLd — 0 entries page:p011#head.jsonLd/department-1/section-2/aisle-1 → head.jsonLd — 0 entries page:p012#head.jsonLd/department-1/section-2/aisle-2 → head.jsonLd — 0 entries page:p013#head.jsonLd/department-1/section-2/aisle-3 → head.jsonLd — 0 entries page:p014#head.jsonLd/department-1/section-3 → head.jsonLd — 0 entries page:p015#head.jsonLd/department-1/section-3/aisle-1 → head.jsonLd — 0 entries page:p016#head.jsonLd/department-1/section-3/aisle-2 → head.jsonLd — 0 entries page:p017#head.jsonLd/department-1/section-3/aisle-3 → head.jsonLd — 0 entries page:p018#head.jsonLd/department-2 → head.jsonLd — 0 entries page:p019#head.jsonLd/department-2/section-1 → head.jsonLd — 0 entries page:p020#head.jsonLd/department-2/section-1/aisle-1 → head.jsonLd — 0 entries page:p021#head.jsonLd/department-2/section-1/aisle-2 → head.jsonLd — 0 entries page:p022#head.jsonLd/department-2/section-1/aisle-3 → head.jsonLd — 0 entries page:p023#head.jsonLd/department-2/section-2 → head.jsonLd — 0 entries page:p024#head.jsonLd/department-2/section-2/aisle-1 → head.jsonLd — 0 entries page:p025#head.jsonLd/department-2/section-2/aisle-2 → head.jsonLd — 0 entries page:p026#head.jsonLdFix The theme template that renders the breadcrumb trail, and its view — a code change
Render the breadcrumb through the core breadcrumb view rather than a bespoke template, so its getViewJsonLd() contribution reaches the head. Where the trail is bespoke, add a BreadcrumbList node whose items match the rendered trail exactly. Re-crawl and confirm the head carries a BreadcrumbList with one item per level. evidence capped at 25 of 38 pointers