Sec. 02 — The defect census
What the catalog is telling Google
Five defect classes, each found in the live data, each a line item in the Database Manager job description. Counts are from a 799-product sample of the public Searchspring feed unless noted; percentages describe the sample, not the full 104,348-product catalog — the full run is deliverable #1.
Mojibake in names
“Nano Flex Ratcheting Attachment Set 14–19mm (NORA150XL)” — a double-encoded en-dash, live in the H1 and the JSON-LD name. 8 of 799 sampled names carry artifacts (1/4\x94, Airlift\x99).
Evidence: /vim-tools-nano-flex-ratcheting-attachment-set-14-19mm-nora150xl/ ; Searchspring search.jsonUPC shown, no gtin
The OTC 7378 page displays “UPC: 731413001376” but the Product JSON-LD has no gtin; its description is percent-encoded and priceValidUntil is hard-coded.
Evidence: /otc-7378-torque-wrench-50-250/ sourceAttribute casing
The custom availability attribute is cased three ways in the sample — “US” 247, “us” 103, blank 449 — so any rule that keys on it silently misses a third of rows.
Evidence: Searchspring sample of 799 itemsPart-number convention
133 of 799 names omit the “(part #)” convention the rest of the catalog follows, which weakens exact-match search and Merchant Center matching.
Evidence: Searchspring sampleMiscategorized items
A “Wiha 14-Piece SoftFinish Screwdriver Set” sits under Hand Tools › Wrenches › Torque Wrenches › Torque Wrench Accessories. Facets are only In Stock / Brand / Price — no drive size, torque range or type.
Evidence: /wiha-14-piece-softfinish-screwdriver-set-30284/ ; /torque-wrenches/ facetsSold-out still ranking
Torque Wrenches: 358 items, 122 “Out of Stock” (34%). The sold-out OTC 7378 ranks #3 in native search for “torque wrench” — a dead end at the top of results.
Evidence: /torque-wrenches/ facet counts ; native searchThe schema patch
One template change fixes every product that has this defect — and it's the change that decides whether 104k listings match cleanly in Google Merchant Center. Google requires gtin for products that have one; you already display the UPC.
Now — /otc-7378-torque-wrench-50-250/{
"@type": "Product",
"name": "OTC 7378 Torque Wrench 50-250",
"description": "The%20OTC%20Accutorq…",
"sku": "OTC7378",
/* no gtin — UPC 731413001376 in page text only */
"offers": {
"priceValidUntil": "2027-09-19",
"availability": "…OutOfStock"
}
}
Patched template{
"@type": "Product",
"name": "OTC 7378 Torque Wrench 50-250",
"description": "The OTC Accutorq…",
"sku": "OTC7378",
"gtin12": "731413001376",
"mpn": "7378",
"offers": {
"priceValidUntil": "{{dynamic +1yr}}",
"availability": "…OutOfStock"
}
}
Evidence: OTC 7378 PDP source; Google Merchant Center product-data spec (gtin required where it exists).