AI search optimisation audit: the raw supporting data workbook behind the SIS Technical SEO Audit.
This is the raw supporting data workbook behind the SIS Technical SEO Audit document. It's a multi-tab Google Sheet; the tabs are summarised below with representative rows. Where a tab runs to hundreds or thousands of near-duplicate rows (facet-parameter URLs, per-locale sitemap entries, per-page font requests), a representative sample and total count is shown rather than every row, since the pattern — not each individual URL — is the actionable finding. Full row-level detail lives in the source spreadsheet for anyone auditing a specific URL.
| Tab | Description |
|---|---|
| PageSpeed Checklist | Comprehensive report on page-speed recommendations |
| Homepage Hreflang Comments | Conflicts in hreflang — where the language does not match the output |
| XML Sitemap Comments | Pages within the XML sitemap that should not be included |
| Font Usage | How fonts are used (no action required) |
| Images Missing Alt Text | Images that should have alt text |
| Oversize Images | Images that should be compressed (aim for under 250kb) |
| Robots Blocked but Indexed | Pages Google has chosen to index despite robots.txt blocking |
Supporting data for the hreflang/regional-routing findings in the main audit — GA "Row Labels" pivot of sessions by declared country against locale path.
| Country | au | de | es | eu | it | jp | root | us |
|---|---|---|---|---|---|---|---|---|
| United Kingdom | 2 | 1 | 333 | 3 | 0 | 13,706 | 60 | |
| United States | 2 | 15 | 56 | 1 | 0 | 390 | 2,083 | |
| Italy | 29 | 1 | 218 | 2,185 | 52 | 4 | ||
| Germany | 2,005 | 3 | 303 | 2 | 0 | 57 | 1 | |
| Spain | 6 | 1,308 | 398 | 3 | 0 | 107 | 5 | |
| France | 5 | 1 | 211 | 6 | 966 | 1 | ||
| Canada | 0 | 1 | 631 | 0 | 0 | 196 | 22 | |
| Ireland | 0 | 0 | 526 | 0 | 0 | 42 | 1 | |
| Mexico | 0 | 310 | 65 | 0 | 0 | 8 | 133 | |
| Netherlands | 2 | 1 | 265 | 1 | 192 | 1 | ||
| Austria | 325 | 0 | 98 | 2 | 18 | 0 | ||
| Malaysia | 0 | 0 | 321 | 0 | 0 | 86 | 1 | |
| India | 0 | 0 | 0 | 262 | 0 | 0 | 135 | 3 |
| Belgium | 2 | 0 | 184 | 1 | 205 | 3 | ||
| Switzerland | 83 | 3 | 104 | 15 | 0 | 65 | 0 | |
| Indonesia | 0 | 0 | 116 | 0 | 0 | 141 | 7 | |
| Colombia | 0 | 159 | 27 | 0 | 12 | 57 | ||
| Portugal | 2 | 4 | 135 | 0 | 102 | 0 | ||
| Australia | 3 | 0 | 0 | 42 | 1 | 0 | 163 | 2 |
Compiled against the PLP `/shop-sis/all-products/football-packs`-style category template.
| # | Category | Issue observed / risk | Recommendation | Priority | Effort | CWV impacted |
|---|---|---|---|---|---|---|
| 1 | Images | Product tile images served via `?optimize=medium` but not visibly next-gen format | Serve WebP/AVIF with JPEG fallback; reduce canvas to actual rendered tile size | High | Low | LCP, page weight |
| 2 | Images | No confirmed width/height or aspect-ratio CSS on tile/loader images | Set explicit width/height so the browser reserves space before load | High | Low | CLS |
| 3 | Images | Layered-nav swatches/icons possibly loading as sprite-less individual requests | Consolidate into an SVG sprite or inline SVG | Medium | Medium | Requests, TBT |
| 4 | Images | Below-the-fold imagery (FAQ, footer WYSIWYG) loads with the page | Add `loading="lazy"` to all non-hero below-fold images | Low | Low | LCP, bandwidth |
| 5 | JavaScript | Magento RequireJS/JS bundling not confirmed minified/bundled | Enable JS minification/merging; confirm production deploy mode | High | Low | TBT, LCP |
| 6 | JavaScript | GTM + chat/reviews/personalisation scripts likely render-blocking in `<head>` | Load third-party tags async/defer; fire secondary tags on scroll/idle | High | Medium | TBT, INP, LCP |
| 7 | JavaScript | Heavy layered-nav (20 flavour values + facets) implies heavy knockout.js footprint | Audit UI component init cost; defer non-critical component init | Medium | High | TBT, INP |
| 8 | JavaScript | Compare/wishlist AJAX widgets instantiate on every tile even if rarely used | Lazy-initialise on user interaction, not page load | Low | High | TBT |
| 9 | CSS | Theme CSS/LESS not confirmed minified for a 7-item PLP | Enable minification/merging; consider critical-CSS inlining | High | Medium | LCP, render-blocking |
| 10 | CSS | Custom web fonts may render-block without a font-display strategy | Add `font-display: swap`; preload primary heading/body fonts | Medium | Low | LCP, CLS |
| 11 | Server/Caching | FPC/CDN caching not confirmed to cover facet query-string variants | Ensure Varnish/Fastly caches or excludes facet URLs from crawl/index | High | Medium | TTFB |
| 12 | Server/Caching | Static asset versioning present but not fully verified on all responses | Confirm `Cache-Control`/immutable headers at the CDN edge | Low | Low | Repeat-visit load |
| 13 | Server/Caching | TTFB not measured for this URL; layered-nav aggregation queries can be slow | Profile TTFB with WebPageTest; check indexer status/flat catalog | High | Medium | TTFB, LCP |
| 14 | Third-Party Scripts | Trustpilot, social icons, SiS+ membership modules add extra requests | Audit necessity per page; load conditionally via GTM triggers | Medium | Low | TBT, requests |
| 15 | Structural/Layered Nav | Full facet list (20 flavours + category + caffeine + price) renders in DOM on load | Consider virtualising/lazy-rendering the filter panel until opened | Low | High | DOM size, TBT |
| 16 | Accessibility/Perceived Perf | Generic "Loading…" gif and no-JS banner signal heavy client-side dependency | Confirm loader is small/cached; evaluate more server-rendered content | Low | Medium | Perceived load, LCP |
| 17 | Measurement | No live Core Web Vitals field/lab data attached yet | Run PSI (mobile + desktop) and WebPageTest against this exact URL first | High | Low | All CWV |
| Hreflang | URL | Declared language | Comment |
|---|---|---|---|
| de-at | /de/ | English | |
| de-de | /de/ | German | |
| en | /eu/ | English | |
| en-au | /au/ | English | |
| en-BE / en-CH / en-DE / en-DK / en-ES / en-FR / en-IE / en-IT / en-NL / en-NO / en-SE | /eu/ | English | 11 duplicate regional tags all pointing to the same URL |
| en-gb | / | English | |
| en-US | /us/ | English | |
| es-AR / es-CO / es-MX / es-PR / es-US | /us/ | Spanish | Not Spanish — Spanish-language tag pointing to English `/us/` content |
| es-es | /es/ | Spanish | Correct |
| it-it | /it/ | Italian | |
| ja / ja-jp | /jp/ | Japanese | |
| x-default | / | English | Should x-default and en-gb share the same URL? (Confirmed: yes, this is correct practice.) |
Categories of non-indexable/redirect entries found across the `sitemap.xml`, `de_sitemap.xml`, `eu_sitemap.xml`, `it_sitemap.xml`, `es_sitemap.xml`, `au_sitemap.xml`, `us_sitemap.xml` and `jp_sitemap.xml` feeds:
Font-loading audit across a broad crawl of URLs. Two dominant patterns account for the large majority of rows:
Confirms the SEO audit's finding that the US Supplements category page (`/us/supplements`) is the concentrated problem area — the large majority of missing-alt-text rows in this tab come from that single page, e.g. `Advanced_Multivitamin.png`, `Super_Strength_Omega_3_1.png`, `Vitamin_D3_1.png` and equivalent product images, each appearing without alt text.
| Source page | Image | Size (MB) |
|---|---|---|
| /eu/ | SiSBlog-CyclingFuellingBeginners-1416x900_1.png | 1.39 |
| /eu/shop-by-need/energy/go-energy-bars | SET3_-_Category_Page_Launch_-_960x960.png | 1.30 |
| /sports-nutrition/de/which-energy-powder-is-right-for-me/ | August-Sep-Articles-SiS-1600x500-V12.png | 1.30 |
| /football-premium-pack | Football_Lifestyle.jpg | 1.27 |
| /sports-nutrition (fr/it/de post-sitemaps) | SiS-INEOS-Soigneur-day-in-the-life-social-Blog-2000×900.jpg | 1.24 (repeated across 6+ locale sitemap entries) |
| /sports-nutrition | TFH-Nic-1200x1200-1.png | 1.20 (repeated across fr/es/it locale entries) |
| /sports-nutrition (fr/it/de/eu post-sitemaps) | Exhausted_Runner_Thumbnail.jpg | 1.09 |
| /sports-nutrition (fr/it) | sarah-h.png | 1.04 |
| /sports-nutrition (fr/it) | SiS-Blog-Marathon-Training-Thumbnail-750x848px.png | 1.03 |
| /sports-nutrition (fr/it/de) | recovery-blog-2.jpeg | 0.83 |
| /sports-nutrition (fr/it/de) | Website-825-x-510-002.png | 0.81 |
| /sports-nutrition (fr/it) | Eilish-Mc.jpeg | 0.74 |
The pattern: the same handful of blog hero/campaign images are duplicated in size cost across every locale's WordPress sitemap (FR/IT/DE/ES), multiplying the real compression opportunity — fixing the source asset once resolves it across every locale simultaneously.
Backing detail for the audit's headline "9,270 pages indexed despite being blocked in robots.txt" finding. The tab is dominated by faceted-search URL combinations on `/it/catalogsearch/result/index/` — `caffeine=`, `flavour=`, `pack_size=` and `game_time=` parameters combined in every permutation, e.g.:
This is the concrete evidence behind the audit's Robots.txt section: the catch-all `Disallow: /*?` rule blocks these from crawling, but because they were already indexed before the block (or discovered via internal/external links), they remain in Google's index — hence the recommended temporarily-unblock-then-reblock remediation sequence in the main audit document.