Third audit in the series (June 58/100 → July plan → now 64/100). Robots, titles, and product schema offers are genuinely fixed. But the six meta-catalog products slipped back into the sitemap, the review rating still isn't in the schema despite 708 server-rendered reviews, and the July performance fix was written but never shipped to main.
Every item below was verified against the live site today — fetched with a browser UA, not assumed from the repo.
Disallow: /search is live for all crawler groups — open since June (#3 on the original list).Disallow: /cart (no trailing slash) now actually matches /cart.*-meta-catalog and *tiktok* PDPs out of the crawl across all locales.Allow: /products/*?*country=*&*currency=* rules override the parameter disallow — the "Unable to check product pages" Merchant Center blocker is resolved.ProductGroup markup renders 110 variants, each with price, currency, availability, and GTIN. The June "no offers in Product JSON-LD" gap is closed.June's cleanup had the products sitemap down to 7 URLs. Today it lists 13 products again — all six *-meta-catalog ads-only products returned. The seo.hidden metafield was evidently lost or reverted. Robots.txt now disallows those URLs, which creates the worst combination: in the sitemap but blocked from crawling — Search Console will flag "indexed, though blocked by robots.txt" and the URLs can still index from the sitemap reference alone, with no page content.
seo.hidden = 1 on the six meta-catalog products (admin metafield — survives in Shopify, not the theme repo, so check what wiped it). Robots disallow alone is not a substitute.The collections sitemap now carries /collections/eg-gift-app (the free-gift app's internal collection), /collections/sellable-bags, and /collections/nanobag-1 alongside the six placeholder style collections. Internal plumbing is being offered to Google as landing pages.
seo.hidden on eg-gift-app / sellable-bags / nanobag-1; the style collections get the same treatment or real content (see below).Same issues, third audit in a row for most of them. Ordered by expected impact.
Judge.me server-renders data-average-rating='4.84' with 708 reviews (up from 639 in July) right in the HTML, already grouped across duplicates — but neither the ProductGroup schema nor anything else on the page emits aggregateRating. Zero occurrences on PDP and homepage. This is the single cheapest rich-result win on the site: star ratings in product SERPs and eligibility for review snippets.
aggregateRating block attached to the ProductGroup @id, or enable Judge.me's rich-snippets toggle. Unblocked since July.Commit e12ee58 (defer jQuery + slick, async slick.css) is still only on the Shubham branch — not on main. The live PDP head confirms it: jquery.min.js and slick.js load parser-blocking with no defer, while vendor.js and theme.js are deferred around them. PDP HTML is still 1.3 MB, and both Hotjar and Clarity still run together. Today's Lighthouse mobile lab run: homepage 30/100 (LCP 9.0s, TBT 7.5s), PDP 30/100 (LCP 13.8s, TBT 10.0s, 11.7 MB total weight, 34s of script bootup) — essentially where June left it. The two wins that did ship (Font Awesome and Intelligems removed) were eaten by everything that didn't. CLS is a clean 0 on both pages.
The five market PDPs (nanobag-int/-sg/-uk-1/-ca/-eu) plus nanobag-daypack-us remain live, self-canonical, and in the sitemap next to the canonical reusable-shopping-bags. And the storefront MCP (/api/mcp) still returns 10 products for "reusable shopping bag" — all six meta-catalog products, market dups, now including a new nanobag-au — while omitting the canonical PDP entirely. Any AI shopping agent asking Nanobag what it sells gets the ads-only catalog. (Consolidation is archived per client decision; this is the standing cost of that choice, worth restating once per audit.)
seo.hidden doesn't filter MCP/UCP, channel publication does. Verify the Meta feed doesn't depend on Online Store publication first.The PDP's H1 still renders the variant ("Standard Black"), not the product. The literal Zipify template string {!= form_name !} still ships as a real second <h1> on the PDP, homepage (which has 4 H1s total), and pages. Third audit with both present.
<template> or removed if the popup is dead./de-de/products/reusable-shopping-bags serves the byte-identical English title and meta description. Bodies and homepages are translated; the product-level SEO fields never were. Every non-English market competes in Google with an English snippet.
meta_title/meta_description via the translations API — same translationsRegister kit already used for homepage sections (scripts/ has the pattern).The ProductGroup name is still the internal "Nanobag - US". Its description (shared across 8 products including the Meta ads feed) still describes the discontinued Mini and Air and contradicts the on-page comparison table on weights.
Six style collections (/collections/standard|xl|sling|micro|air|pack) still serve unmodified Shopify placeholder copy with bare one-word titles. /pages/page is still the stale Winter Sale LP; /pages/go-nanobag-eu is a 200 JS-redirect page with no title tag at all. All in the sitemap.
40 of 138 <img> on the PDP lack alt text — proportionally better than June (58%→71% covered), and part of the remainder is payment icons. The alt-text audit doc in the repo covers the product gallery set.
Ordered by impact ÷ effort. Items 1–3 are metafield/admin changes — no theme deploy risk at all.
| # | Action | Where | Effort |
|---|---|---|---|
| 1 | Re-apply seo.hidden to the 6 meta-catalog products; find out what reverted it | Shopify admin metafields | 15 min |
| 2 | Emit aggregateRating (4.84 / 708) in the ProductGroup schema | theme.liquid JSON-LD or Judge.me toggle | ~1 h |
| 3 | Hide eg-gift-app / sellable-bags / nanobag-1 collections + the two ghost pages from sitemap | Shopify admin | 15 min |
| 4 | Cherry-pick the jQuery/slick deferral to main — after a fresh pre-consent EU QA pass | e12ee58 → main | ~1 h + QA |
| 5 | Fix the Zipify {!= form_name !} H1 leak and the variant-name H1 | theme snippets | ~2 h |
| 6 | Translate product meta title/description for the 8 non-English locales | translations API script | ~2 h |
| 7 | Rewrite the shared product description (drop Mini/Air, fix weights) + public product name | Shopify admin — copy task | ~1 h |
| 8 | Unpublish meta-catalog products from Online Store channel (fixes MCP catalog) — verify Meta feed dependency first | Shopify admin channels | 30 min + check |