myCast.io — SEO Audit
technical · on-page · performance
Core Web Vitals
Field data · last 28 days · origin: mycast.io
CWV FAILED · CLS 0.44 & INP 387ms on Mobile
CLS · MobilePOOR
0.44
target < 0.10 · desktop 0.12
INP · MobileNEEDS WORK
387ms
target < 200ms · desktop 195ms ✓
LCP · MobileGOOD
2.2s
target < 2.5s · desktop 1.2s
FCP · MobileNEEDS WORK
2.1s
target < 1.8s · desktop 1.2s
TTFB · MobileGOOD
0.7s
target < 0.8s · desktop 0.5s
TBT · MobilePOOR
560ms
desktop 210ms · 13 long tasks (mobile)
Lab LCP · ThrottledPOOR
4.1s
simulated 4G · Speed Index 3.2s
Network PayloadHigh
4.15MB
desktop total · 364 KiB unused JS remaining
71
Mobile · PageSpeed
Performance Score
needs improvement · 13 long tasks · +14 ↑
92
Desktop · PageSpeed
Performance Score
good · 7 long tasks · 4,150 KiB · +23 ↑
Changes Since Last Audit
vs. previous audit6/13
issues fixed this sprint
+14 / +23
Perf score ↑ (mobile / desktop)
−388 KiB
JS trimmed (752 → 364 KiB)
92
Desktop score (was 69) ✓
−5 tasks
long tasks mobile (18 → 13)
235
child sitemaps now live
✓ OG & Twitter tags✓ sitemap.xml✓ H2 duplication✓ tap targets✓ meta robots✓ image alt attrs⚠ CLS still 0.44⚠ /sort-by-tropes 404⚠ INP 387ms mobile⚠ hero image no dimensions
Audit Progress
6 of 13 complete · 7 remaining
6/13
Core Web Vitals
CLS & INP failing on mobile
Fix Cumulative Layout Shift (CLS)
Mobile CLS is 0.44 — over 4× the 0.10 "good" threshold and the primary cause of the Core Web Vitals failure. Desktop is borderline at 0.12.
Action: Audit layout shift sources: add explicit width/height to all images, reserve space for carousels and embeds, preload web fonts and use font-display: optional, and ensure ads/iframes have fixed dimensions.
Ranking ImpactHigh
Fix Interaction to Next Paint (INP)
Mobile INP is 387ms (slight improvement from 395ms, target <200ms) — still a Core Web Vitals failure. Long tasks reduced from 18 → 13 mobile. Desktop INP improved to 195ms (now Good ✅).
Action: Break up long tasks using scheduler.yield() or setTimeout chunks. Move heavy work to Web Workers. Debounce input handlers. Prioritize hydration of above-the-fold interactive elements.
Ranking ImpactHigh
Crawl & Indexability
Sitemap ✓ · robots ✓ · /sort-by-tropes still 404
Create and submit sitemap.xml
✅ FIXED: sitemap.xml now returns 200 OK with 235 child sitemaps covering tens of thousands of URLs. Google can now efficiently crawl the full site.
Next: Monitor Google Search Console for crawl coverage improvements. Ensure all new cast/talent pages are included in the sitemap generation pipeline.
Ranking ImpactHigh
Fix broken /sort-by-tropes link
The homepage links to /sort-by-tropes which returns 404. This wastes crawl budget, breaks user navigation, and degrades the site's quality signals.
Action: Either create the destination page with proper content, or remove/replace the link in the homepage template. Add a 301 redirect if the page was renamed.
Ranking ImpactMed-High
Add explicit meta robots tag
✅ FIXED: Explicit meta robots tag now present on all pages with "index, follow" and a googlebot-specific tag. No longer relying on Google defaults.
Next: Audit thin/utility pages and add selective noindex where appropriate. Ensure the googlebot tag is maintained in the page template.
Ranking ImpactLow
Meta Tags & Structure
OG tags ✓ · H2 fixed ✓ · alt attrs ✓
Add Open Graph + Twitter Card meta tags
✅ FIXED: All Open Graph and Twitter Card tags are now present — og:title, og:description, og:image, og:url, og:type, og:site_name, og:locale, og:image:width/height/alt, and twitter:card=summary_large_image.
Next: Verify dynamic values are correct per cast/talent page. Test share previews on X, Facebook, and LinkedIn using their respective debugger tools.
Ranking ImpactHigh
Fix duplicate H2 tags from carousels
✅ FIXED: H2 duplication from carousels resolved. Now 12 unique H2s (was ~23 duplicates). The heading hierarchy is clean and topical signals are no longer diluted.
Next: Continue monitoring heading structure on new carousel additions. Audit the H1→H6 hierarchy whenever new section types are added.
Ranking ImpactMedium
Fix missing image alt attributes
✅ FIXED: All images now have alt attributes present. Accessibility score improved. Image-search visibility on poster/thumbnail images no longer impacted by missing alts.
Next: Maintain alt text quality for new images added to the site. Ensure image CMS/upload pipeline requires descriptive alt text.
Ranking ImpactLow
Performance & Assets
JS bloat, images, caching
Reduce unused JavaScript
388 KiB trimmed since last audit (752 → 364 KiB). TBT improved from 810ms → 560ms. Still above the <200 KiB initial JS budget target — further code-splitting needed.
Action: Continue code-splitting by route, lazy-load carousel and modal JS, defer analytics, audit and remove unused npm dependencies. Target a < 200 KiB initial JS budget.
Ranking ImpactHigh
Optimize images & add dimensions
165/170 images still missing width/height attributes (CLS root cause). Cast card images use aspect-[3/4] CSS ✅ (mitigates CLS for cards). Hero image width/height still missing ⚠️. 1,842 KiB savings still possible.
Action: Priority: add width/height to hero image first (CLS impact). Then convert remaining posters/thumbnails to WebP/AVIF with srcset. Lazy-load below-the-fold cast cards.
Ranking ImpactHigh
Set long-lived cache headers
Static assets are still missing aggressive cache headers, costing 1,657 KiB on repeat visits and degrading return-visitor performance.
Action: Configure CDN/edge: Cache-Control: public, max-age=31536000, immutable for hashed assets (JS/CSS/fonts/images). Use shorter TTLs only for HTML.
Ranking ImpactMedium
Mobile UX & Accessibility
Tap targets ✓ · 12px card text still open
Increase tap-target sizes
✅ FIXED: Search and hamburger buttons are now 48×48px. Vote buttons expanded to 44px height. Lighthouse tap-target audit now passing.
Next: Continue auditing new interactive elements for tap-target compliance. Test regularly in Chrome DevTools mobile emulation.
Ranking ImpactMedium
Increase 12px card label text
Card labels render at 12px — below the 16px mobile readability threshold Lighthouse uses. Affects legibility on small screens and accessibility scoring.
Action: Bump card label typography to 14–16px on mobile via responsive type scale. Audit all small text across the site for the same issue.
Ranking ImpactLow