Science in Sport
Commerce Document 7 of 7
SIS — SCIENCE IN SPORT
SEO AUDIT
17 Aug 2026Google Doc
Topic COMMERCE
Owner dergal@gmail.com
File Type Google Doc
Last Modified 17 Aug 2026
Document 07 of 07
COMMERCE

SIS — SCIENCE IN SPORT
SEO AUDIT

Technical SEO audit for Science in Sport: crawl & indexation, sitemap hygiene, page speed, schema, E-E-A-T and GEO.

File Type
Google Doc
Owner
dergal@gmail.com
Last Modified
17 Aug 2026
Topic
COMMERCE
Introduction

This document provides an executive introduction and summary of the Technical SEO Audit for Science in Sport (SIS). The audit has identified several critical crawl and indexation conflicts that are actively restricting organic visibility, alongside opportunities to improve site performance and sitemap hygiene. Issues are categorised and prioritised by their direct impact on search engine crawling, link equity consolidation, and overall SEO performance.

1. High-priority: crawl & indexation conflicts
  • Indexed but blocked pages: over 9,270 parameter pages are currently indexed by Google despite being blocked in robots.txt. Because Google cannot crawl these pages, it cannot process the on-page noindex tags. These URLs must be temporarily unblocked to allow Google to process the tags, followed by rectifying the internal links that point to them, and then re-blocking to conserve crawl budget.
  • Blocked inbound links: external domains link to internal pages explicitly disallowed by robots.txt, trapping valuable PageRank. A full audit is required to unblock valid pages and 301-redirect obsolete ones.
  • Robots.txt errors: the file contains deprecated `Noindex:` directives (unsupported since 2019) and severe redundancy from a catch-all `/*?` rule.
2. Medium-priority: sitemap & site performance
  • XML sitemap hygiene: sitemaps are bloated with non-indexable URLs — blank pages, internal search pages, redirects. Must be cleansed to exclusively contain 200 OK, canonical, indexable URLs; deprecated `<changefreq>`/`<priority>` tags should be removed.
  • Page speed (oversized media): the homepage background image is significantly oversized (1.7MB) and needs resizing/compression.
  • JavaScript rendering risks: some text elements render exclusively via JavaScript, risking search engine and LLM comprehension. CSS fallbacks should ensure visibility if JS fails.
3. Low-priority: quick fixes
  • Broken links & staging URLs: several blog links are broken, plus an internal link incorrectly pointing to a staging environment (mcstaging).
  • Indexable order confirmation: the Italian order confirmation page is exposed to search engines and needs an immediate noindex tag.
Priority matrix
PriorityIssue categoryResourceIssueActionEffortImpact
HighCrawl & IndexationDeveloperIndexed but blocked pagesUnblock, fix internal links, re-blockMedMed
HighCrawl & IndexationDeveloperBlocked inbound linksAudit, unblock or 301 obsolete pagesMedHigh
HighCrawl & IndexationInternalRobots.txt errorsUse meta noindex; remove redundant rulesMedLow
MediumSitemap & PerformanceInternalXML sitemap hygieneRemove non-indexable/redirecting URLs, deprecated tagsLowMed
MediumSitemap & PerformanceInternalPage speedResize/compress homepage imageLowHigh
MediumSitemap & PerformanceDeveloperJS renderingCSS fallback for JS-only textHighHigh
LowQuick fixesInternalBroken linksFix blog links, remove staging linksLowMed
LowQuick fixesInternalOrder confirmationNoindex the IT order confirmation pageLowMed
Crawl & indexation

Google Search Console data reveals a significant crawl efficiency problem on scienceinsport.com: the majority of the site's ~76,000 tracked pages sit outside the index. A large part is by design (parameter/utility pages correctly excluded), but a substantial and growing share is not — 9,270 URLs are indexed despite being blocked in robots.txt, pointing to a breakdown between what the site tells search engines to crawl and what it tells them to index. Any URL with a parameter is blocked, plus redundant additional blocking for product category, flavour and caffeine parameters; account login pages are also indexed.

Robots.txt

There is duplication, redundancy and unsupported syntax in the live robots.txt file.

  • Noindex use: the file uses `Noindex:` extensively, but Google officially dropped support for this directive on 1 September 2019 — search engines ignore it. Pages linked elsewhere can still appear in results. Fix: use a `<meta name="robots" content="noindex">` tag or `X-Robots-Tag: noindex` header, and make sure the page is crawlable so the tag can be seen — if it's `Disallow`ed, Googlebot never sees the noindex tag at all.
  • Severe redundancy — the catch-all `/?`: a top-level `Disallow: /?` rule blocks any URL containing a question mark, making every subsequent `/*?...` line (price, flavour, caffeine, cat, product_category, product_type, p) completely redundant.
  • Also remove the line `Disallow: /index.php/`.

(Full current robots.txt — sitemaps, faceted-nav rules and international blog sitemap references — is preserved as reference material in the source audit; the key structural findings above are the actionable items.)

Blocked inbound links

External domains — including topically relevant cycling, running and triathlon blogs and sites (e.g. gcn.eu, cyclingnews.com, trainingpeaks.com, capovelo.com, saracens.com, and well over 150 others captured in the audit) — link to internal pages disallowed by robots.txt. Because crawlers are explicitly told not to crawl these URLs, they can't process ranking signals or pass authority through the rest of the site, artificially restricting organic visibility.

Recommendations: (1) audit blocked URLs receiving inbound links to determine current purpose; (2) unblock and 301-redirect obsolete pages to rescue trapped link equity; (3) unblock valid, user-facing pages so they can be crawled and indexed normally.

Blocked by robots.txt — the "indexed though blocked" conflict

"Indexed, though blocked by robots.txt" occurs because robots.txt controls crawling, not indexing — Google can add a discovered URL to its index even when forbidden from crawling the content. SIS has an unusually high number of these: 42.4k URLs blocked by robots.txt, of which 9.3k are indexed anyway. Because robots.txt prevents Googlebot from accessing the page, Google never sees the noindex tags, canonical tags, or redirect status codes already implemented.

Step-by-step fix: (1) temporarily unblock the affected URLs in robots.txt so Google can crawl and process indexing/canonical instructions; (2) verify noindex meta tags are correctly implemented; (3) wait for Google to recrawl and de-index (can take a few weeks); (4) fix internal linking — run a crawl to find internal links pointing to these parameterised URLs and point them to canonical versions instead; (5) once dropped from the index, re-block in robots.txt to save crawl budget going forward.

XML sitemap hygiene & optimisation

The sitemaps are generally in good condition but carry hygiene issues: a large volume of non-indexable URLs (blank pages, internal tag/search pages, template URLs), redirected URLs present within the sitemap files, deprecated `<changefreq>`/`<priority>` tags that modern search engines ignore, and `<lastmod>` dates stretching back to 2016 that may not reflect meaningful content updates.

Recommendations: cleanse non-indexable URLs and apply noindex to tag pages; remove redirected entries and point sitemap URLs directly to final destinations; strip deprecated `<changefreq>`/`<priority>` tags to reduce file size; validate `<lastmod>` accuracy so it reflects real content changes, not legacy creation dates.

Representative issues found across the sitemap set: blank search pages across every locale (GB/DE/EU/IT/ES/AU/US/JP), Google-verification HTML pages that shouldn't be indexed, a large batch of `/jp/` sitemap redirects (dozens of stale category/product paths), and template pages (`lp-template-*`) that should never have been indexed in the first place, repeated across all locale sitemaps.

Page resource / cache-busting issue

Google is finding URLs with a timestamp appended as a query parameter — e.g. `custom.css?Wednesday 29th of July 2026 10:54:03 PM` on the blog. Because the timestamp makes every request unique, these files bypass CDN and browser caching entirely, forcing a fresh download on every request and unnecessarily degrading page load speed, server load and crawl efficiency.

Recommendations: identify and remove the CMS/plugin/theme behaviour generating dynamic timestamp parameters; use static versioning (e.g. `?v=1.2`) instead; consider disallowing the specific parameter footprint in robots.txt if it serves no SEO purpose.

Internal links to non-canonical URLs

Internal links point to non-canonical URLs at scale, particularly from category pages to product pages (missing trailing slashes, extended category paths) — contributing to 1,870 affected pages flagged by Google. Example: the main header links to `/sports-nutrition` while the canonical is `/sports-nutrition/`. Forcing search engines to crawl non-canonical links dilutes link equity, wastes crawl budget, and delays indexation of core revenue-driving product pages.

Recommendations: update product grid link logic to output strict absolute canonical URLs; resolve trailing-slash inconsistencies; strip embedded category paths from product links so they point to the clean root product URL.

Page speed

Core Web Vitals are currently poor site-wide: zero URLs classed as "good" on mobile — 2,356 URLs "poor," a further 1,268 "need improvement" — across product, category and blog templates alike, driven primarily by slow server response and heavy JS execution. On the example URL tested (`/sports-nutrition/es/the-benefits-of-vitamin-d3/`), Time to First Byte alone took 1.1s before rendering could begin, Largest Contentful Paint landed at 4.2s, and the page wasn't interactive until 7.1s.

Recommendations, in order: reduce server response time (TTFB) first, since it blocks every subsequent request; reduce JavaScript execution time (defer/remove non-critical scripts — see PayPal SDK below); address the font, image, third-party script and CSS bloat issues detailed below in combination, since together they move URLs from "poor" to "good."

Fonts

Over 20 different fonts are used across the site, with most pages loading 8+ fonts, currently relying on externally hosted libraries (Google Fonts, campaign sites). Modern browsers now partition caches per site, eliminating the old "already cached" benefit of third-party font CDNs, while introducing unnecessary DNS lookups, GDPR risk (passing visitor data to Google), and a poor initial-load experience.

Recommendations: self-host all web fonts (.woff2) from the SIS domain; remove external `<link>` requests to font CDNs; preload the 1–2 most critical above-the-fold fonts; match fallback system fonts closely to prevent layout shift; self-hosting also removes the GDPR risk of leaking EU visitor IPs to third parties.

Image compression & optimisation

A significant number of images are served uncompressed, contributing heavily to page bloat. Most can be compressed to roughly 10% of current size with no noticeable quality loss. Largest offenders identified include a 1.39MB blog hero image, a 1.30MB category launch banner, and several other 1MB+ blog and campaign images repeated across multiple locale sitemaps.

Recommendations: bulk-compress existing assets; default to WebP for new images; right-size dimensions to a maximum of 2× the on-page display size (not full-resolution source files); automate resize/compress/WebP-conversion at the CMS or CDN level going forward.

PayPal SDK — render-blocking & sitewide loading

The PayPal JS SDK (125kb) fires render-blocking, pausing page rendering while it downloads and executes — and it currently loads on every page template, including blog articles and category pages with no checkout functionality present, mirroring the "load everything everywhere" CSS bloat pattern found elsewhere.

Recommendations: add the `defer` attribute to the PayPal `<script>` tag; restrict loading to templates where a PayPal button or "Pay in 3" message actually renders (product, cart, checkout) and strip it from blog/category/informational pages; consider a facade/lazy-load pattern below the fold; audit whether both `messages` and `buttons` components are needed on every instance.

CSS bloat

Only 9% of the main CSS file is actively used during a standard page load — severe bloat stemming from Magento 2's monolithic compilation architecture, which merges homepage, product, checkout and dashboard styles into single global files (`styles-m.css`, `styles-l.css`), worsened by third-party modules (Amasty, PageBuilder) injecting full stylesheets globally and heavy unused libraries (Slick slider, large font-icon packs). 91% of `styles-m.min.css` is unused on most pages it loads into; uncompressed the file is 2MB.

Recommendations: implement CSS code-splitting by template rather than one monolithic bundle; conditionally load extension/library CSS only on pages where those elements render; prune bloated icon packs down to a custom SVG sprite of only the icons actually used; investigate splitting CSS delivery by device to stop mobile users downloading desktop-only rules.

Security & manual actions

The active Content-Security-Policy header is limited to `upgrade-insecure-requests;`, which forces HTTPS but does not actively block unapproved scripts. An extensive `Content-Security-Policy-Report-Only` list monitors and reports on unauthorised scripts/resources but does not prevent them from executing. No manual actions are currently flagged in Google Search Console.

Social — X / Twitter

Search engines actively crawl and index official social profiles to strengthen brand entity mapping and speed discovery of new content; X in particular can trigger real-time post carousels on branded SERPs and increasingly feeds Google Discover and AI Overviews. The official SiS account (40,000+ followers) currently posts roughly once a year — a missed opportunity for fast-crawled brand signals, authority validation and real-time visibility.

Recommendations: re-establish a consistent posting cadence; treat X as an immediate distribution channel for new URLs to accelerate indexation; use regular posting to populate branded SERP carousels and feed Discover/AI Overviews; build distribution into editorial workflow so every new post/landing page is shared automatically on launch.

Schema

The homepage carries only baseline `WebSite` and `Organization` schema, with `Organization` outputting just `url` and `logo` — missing a major opportunity to feed comprehensive entity data into Google's Knowledge Graph.

Recommendations: expand `Organization` schema with `name`, `foundingDate` (to establish historical authority and trust), and a `sameAs` array linking to all official social profiles, Wikipedia and other authoritative brand profiles; keep `WebSite` schema intact alongside the expanded markup.

Missing alt text

Image alt text is generally strong sitewide, but specific high-value sections are missing it entirely — notably the US Supplements category page, where nearly every product image lacks alt text. This weakens both accessibility and image SEO/GEO (generative engine optimisation), since AI models rely on alt text to understand image context.

Recommendations: audit high-value category/product pages for missing alt attributes, using the US Supplements page as a baseline; write concise, descriptive alt text incorporating relevant keywords; standardise the CMS upload workflow to make alt text mandatory going forward; treat alt text as dual-purpose — accessibility plus AI-readable product context.

404 user experience

A self-inflicted 404 fires for a broken internal template asset path (`loaderImageHref` failing to resolve and being requested literally, unencoded) — likely on every page load where this loading-spinner template fires, wasting crawl/request cycles and generating log noise on Magento's bare default error page.

Recommendations: investigate the `Magento_Ui` template referencing `loaderImageHref` to fix the variable resolution; audit server logs for how frequently this malformed URL is requested, since a templating fault like this repeats across every page using it.

Hreflang

There is a note that Chinese (ZH) and French (FR) hreflang appear in some sections (e.g. articles) but not consistently sitewide — flagged for deeper investigation.

The current configuration contains significant regional mapping errors. Most critically, five Spanish regional tags (es-AR, es-CO, es-MX, es-PR, es-US) all point to `/us/`, which hosts English content — a direct language/region conflict.

Recommendations: remove or remap the Spanish-region tags currently pointing to English `/us/` content, or localise a proper Latin-America Spanish variant; keep `x-default` and `en-gb` pointing to the same root URL (correct, current best practice); verify the `/de/` directory's actual on-page language matches its `de-at`/`de-de` hreflang tags (currently noted internally as English, which — if accurate — is a severe hreflang violation); consolidate the 11 separate English regional tags (en-FR, en-ES, en-IT, etc.) that all point to the identical `/eu/` URL down to a single `en` tag, since a single non-geo-varying URL doesn't need 11 duplicate tags.

Clicks by region

Hreflang is only a hint, but when correctly configured it normally routes traffic to the right location. Because SiS hreflang is predominantly English, non-English-speaking traffic likely falls back to the UK root, and English-speaking traffic to `/eu/`.

Countrydeeseuitroot/UKus
United Kingdom21333313,70660
United States2155613902,083
Italy2912182,185524
Germany2,00533032571
Spain61,30839831075
France5121169661
Mexico03106508133
Internal links to noindexed search pages

The site generates a large volume of internal links pointing directly to internal search-result pages. Although visually hidden from the UI, search bots parse the underlying HTML and discover them anyway. Because these pages are correctly noindexed, Google flags them as "Excluded by 'noindex' tag" — but the sheer volume forces crawlers to continuously discover, crawl and hit a dead end, wasting crawl budget that should go to revenue-generating pages.

Recommendations: audit templates, hidden nav menus and dynamic filter modules to strip the HTML generating these hidden links entirely; investigate whether faceted navigation is inadvertently generating them as part of background state management.

E-E-A-T: author attribution

Blog articles rely on generic team aliases ("The Performance Solutions Team") rather than named individual authors. Because sports nutrition falls under Google's Your Money or Your Life (YMYL) criteria, clear E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) is vital — generic bylines prevent search engines and readers from verifying real-world qualifications.

Recommendations: replace generic bylines with named, credentialed writers (nutritionists, performance scientists, dietitians); build dedicated author bio pages with qualifications, certifications and links to authoritative external profiles; implement `Person` schema (not `Organization`) in `BlogPosting`/`Article` structured data; introduce a "Fact-Checked / Scientifically Reviewed By" callout for high-impact health claims.

E-E-A-T: About Us page

The About Us page shows weak-to-moderate E-E-A-T — functioning as a transactional marketing page rather than a trust-building asset. It asserts authority with phrases like "born from science" without demonstrating it: no named experts, verifiable company details, formulation process or third-party accreditations surfaced, though legal policies are accessible and the connection to the publicly listed parent company (Science in Sport plc) is legitimate but buried.

Recommendations: incorporate founding dates, company history, R&D facility detail and formulation transparency; introduce named, credentialed team members and link to supporting research; prominently feature Informed-Sport/anti-doping accreditation, awards and media mentions; surface registered business address, company number and leadership team to complement the existing legal links.

GEO (Generative Engine Optimisation)

SiS is already being surfaced and discussed within AI answer engines (see Sentiment below), but several technical issues elsewhere in this audit compound directly into GEO weaknesses, since most AI systems don't execute JavaScript and rely heavily on structured, clearly attributed text:

  • Thin homepage `Organization` schema means founding date, certifications and athlete partnerships exist only as marketing copy, not extractable data.
  • JS-dependent rendering on the Article Hub risks entire categories of content being invisible to AI crawlers that don't render JS.
  • Ingredient/nutritional data gated behind interactive toggles is exactly the factual detail AI systems look for on "what's in this" queries.
  • Generic "SiS Team" authorship weakens the E-E-A-T signal AI systems weight when choosing sources to cite on YMYL-adjacent content.
  • Missing alt text limits how well AI systems can describe visual product content.
  • A dormant X presence reduces the fresh, real-time entity signals feeding AI Overviews and Discover.

The underlying content quality — genuine scientific formulation detail and strong review volume — is well suited to AI citation once these access barriers are addressed. The priority is less about writing new content for GEO and more about making existing content and product data machine-readable and consistently crawlable.

Sentiment

Science In Sport is perceived as an industry pioneer in endurance nutrition, primarily praised for its stomach-friendly isotonic gels that require no extra water. Its main limitations stem from discount code restrictions and daily tablet consumption limits, while HIGH5 and Maurten are consistently featured as primary competitive benchmarks.

Strengths: isotonic formula (7 mentions), vegan-friendly (6 mentions), provides expert training advice (4 mentions). Weaknesses: discount code restrictions (1 mention), strict daily usage limit (1 mention). Competitors: HIGH5, Maurten, Liquid IV. Action: regionality and limitations of discount codes appear to be the more significant issue; price is also a negative which, for a quality product, is more challenging to reframe.

Template audits

Five representative templates were reviewed since a fault on one page of a given template very likely repeats across every other page sharing it: Homepage, Product Listing Page, Product Page, Article Hub, Article Page.

Homepage

Technically clean at a base level — correct canonical, INDEX,FOLLOW, a solid meta description. Genuine E-E-A-T signals exist (Informed Sport certification, 350+ elite teams, "Since 1992," 170+ publications, named athlete testimonials) but none of it is machine-readable — it's styled marketing copy, not structured data, tying directly back to the thin `Organization` schema finding. The hero leans on video/imagery with very little crawlable body text.

Recommendations: feed trust signals into schema (`foundingDate`: 1992, `hasCredential` for Informed Sport, `sameAs` for socials); add 2–3 short paragraphs of genuine crawlable body copy; standardise on named authorship — the homepage's "Lexi Chambers" feature is attributed to a named author ("Jonah Rosner"), inconsistent with the generic "SiS Team" byline used elsewhere.

Product Listing Page — `/shop-sis/all-products`

Some browsers/tools struggle with the head content — Claude did not find a title tag on the page during review, suggesting other LLMs may struggle too. The intro copy is generic and sits behind a "Read More" toggle, risking treatment as boilerplate if duplicated across other category templates. This page is also the parent of the 1,870-page non-canonical linking issue already identified — its 42 listed products generate the conflicting URL paths referenced there.

Recommendations: manually verify title/canonical/meta description render correctly server-side via GSC's URL Inspection tool; ensure intro copy is unique per category page; fix the product-grid link logic at the source, which resolves both this page and the 1.87k affected pages downstream.

Product Page — `/shop-sis/all-products/beta-fuel-gel-pack`

A live example of the canonical mismatch issue: the crawled URL renders a self-referencing-looking page, but its canonical tag points to a different, shorter path (`/beta-fuel-gel-pack`) — anyone linking to the category-nested URL passes equity to a URL Google is told to ignore. On the positive side: full Product-level meta (price, availability, GTIN-style ID, currency), 90 genuine multi-language reviews, and detailed Informed-Sport testing content. However, ingredient/nutritional information sits behind a toggle that may depend on JavaScript, meaning it could be invisible to AI crawlers and text-only bots — one of the most commercially important pieces of content on a supplement PDP.

Recommendations: decide the intended canonical URL structure, 301-redirect the non-canonical version, and update internal links to point directly to it; verify the Nutritional Information toggle content exists in the initial HTML payload rather than only loading via JS; confirm Product JSON-LD (with `aggregateRating` from the 90 reviews) is implemented given the strong existing OG/Twitter product meta.

Article Hub — `/sports-nutrition/category/training/`

Requires JavaScript — the raw HTML contains no article listing at all, just a "Sort By" control and "Load More" link, risking the entire article list and its internal links never being crawled or indexed if Googlebot's renderer is delayed. The `<title>` tag is broken, rendering as `| Science In Sport` with an empty page-specific portion — a templating bug that also appears on the article page below. There's also a mismatch between the generic meta description and a far better `og:description` already written for the page.

Recommendations: fix the title-tag template (likely a single fix with sitewide impact across at least two page types); sync the meta description to the better-written `og:description`; server-render the article list (SSR/pre-rendering) so the grid exists in the initial HTML response for both crawl budget and non-JS-executing AI crawlers. Note: this page outputs hreflang for zh and fr, neither of which appeared elsewhere in the hreflang audit — the Chinese variant appears partially translated, and FR doesn't appear on the homepage (which routes to EU).

Article — `/sports-nutrition/why-carbohydrates-are-still-the-most-misunderstood-fuel-in-sport/`

A well-constructed piece — clearly structured, myth-versus-fact format well suited to AI Overview citation, with strong freshness signals. It shares the same broken title-tag fault as the category hub, and the same generic "SiS Team" byline flagged in the Author Attribution findings.

Recommendations: apply the same title-tag template fix; implement named authorship linked to an author bio page with `Person` schema; add Article/FAQ-suited structuring to strengthen eligibility for AI Overview citation (note: FAQ schema itself is no longer supported by Google, but FAQ-format content remains important for LLM comprehension).