Screaming Frog Fixes
Common issues found when auditing with Screaming Frog, and how to fix them.
Non-Indexable Canonical
Section titled “Non-Indexable Canonical”Cause: A page with noindex also has a <link rel="canonical"> tag.
Fix: In Layout.astro, conditionally suppress the canonical:
{!noindex && <link rel="canonical" href={canonical} />}{noindex && <meta name="robots" content="noindex, nofollow" />}4xx broken link (missing favicon PNGs)
Section titled “4xx broken link (missing favicon PNGs)”Cause: Layout.astro has <link> tags pointing to favicon-32.png or favicon-256.png that don’t exist in /public/.
Fix: Only reference files that actually exist. Until PNG favicons are generated, use SVG only:
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />Comment out or remove PNG favicon links until the files are created.
Parameter URLs crawled (checkout, payment-return)
Section titled “Parameter URLs crawled (checkout, payment-return)”Cause: /checkout?plan=starter-website gets crawled and flagged.
Fix: Add to robots.txt:
Disallow: /checkoutDisallow: /payment-returnDisallow: /thank-youNon-descriptive anchor text (“Learn more”)
Section titled “Non-descriptive anchor text (“Learn more”)”Cause: Links with visible text “Learn more” give crawlers no context about the destination.
Fix: Add hidden context with a sr-only span. Remove the aria-label from the <a>:
<!-- Before --><a href="/services/web-design" aria-label="Learn more about Web Design">Learn more</a>
<!-- After --><a href="/services/web-design"> Learn more<span class="sr-only"> about Web Design</span></a>The sr-only text is invisible visually but counted as anchor text by crawlers.
No anchor text (icon-only links)
Section titled “No anchor text (icon-only links)”Cause: Social icon links in the footer contain only an <svg> with no text. Crawlers see no anchor text.
Fix: Add sr-only text and aria-hidden="true" on the SVG:
<a href="https://wa.me/..." aria-label="WhatsApp"> <svg aria-hidden="true">...</svg> <span class="sr-only">WhatsApp</span></a>This appears on every page via the footer, so 2 icon links x 11 pages = 22 reported instances.
Duplicate H2 across pages
Section titled “Duplicate H2 across pages”Cause: Two different pages have the same H2 text (e.g., “Common questions” on both the homepage and the web design page).
Fix: Make every H2 page-specific:
| Generic (bad) | Specific (good) |
|---|---|
| “Common questions” | “Website FAQs” |
| “What’s included” | “What’s included in every website” |
| “Get started” | “Ready to launch your site?” |
Broken footer anchor (/#work)
Section titled “Broken footer anchor (/#work)”Cause: A footer link points to /#work but the #work section was removed from the homepage.
Fix: Remove or update the link in Footer.astro. Never leave a link pointing to a removed section.
www redirects (3xx on www links)
Section titled “www redirects (3xx on www links)”Cause: Screaming Frog was started with www.domain.com as the root URL. Every URL it finds gets a 301 redirect to domain.com.
Fix: This is correct behaviour - the www redirect is working. Start Screaming Frog with https://domain.com (no www) to avoid this noise. The _redirects rule is correct.
Missing security headers (2 URLs)
Section titled “Missing security headers (2 URLs)”Cause: Screaming Frog found 2 URLs (likely the www redirect responses) without Content-Security-Policy or HSTS headers. The 301 redirect response doesn’t carry the headers from _headers - only the final 200 response does.
This is expected behaviour. Redirect responses typically don’t carry security headers. The important thing is that the final destination URL has all headers, which it does via public/_headers.