senternet-site-mobile-optimize

Optimize hero images, lazy loading, and animations for mobile page performance.

Updated May 8, 2026
One-click install
npx skills add https://github.com/MattSenter/senternet-site-skills --skill senternet-site-mobile-optimize-mattsenter
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: senternet-site-mobile-optimize
Source: https://github.com/MattSenter/senternet-site-skills/tree/main/.claude/skills/senternet-site-mobile-optimize
Command: npx skills add https://github.com/MattSenter/senternet-site-skills --skill senternet-site-mobile-optimize-mattsenter

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires sharp.

What problem does it solve? Marketing pages often download large hero and screenshot images on mobile even when those images are hidden, below the fold, or obscured by content, wasting bandwidth and hurting mobile LCP and Speed Index. ## Core Features & Use Cases - Responsive hero images: Serve separate mobile and desktop WebP variants using <picture> sources and media-scoped <link rel="preload"> tags. - Download prevention: Stop below-fold or desktop-only images from downloading on mobile via conditional rendering or CSS hiding, with guidance on hydration trade-offs. - Motion reduction: Disable decorative CSS animations, particle systems, and canvas effects on small screens to reduce GPU repaints. - Use Case: A landing page with a desktop app screenshot that stacks below the fold on phones gets a -sm.webp mobile variant, lazy loading on below-fold images, and disabled glow animations, improving mobile Lighthouse scores. ## Quick Start Optimize my landing page for mobile by creating a smaller hero image variant, lazy loading below-fold images, and disabling decorative animations on small screens.

Frequently Asked Questions about senternet-site-mobile-optimize

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I serve different hero images for mobile and desktop?▼

Use a `<picture>` element with `<source>` tags keyed to media queries, pointing mobile to a smaller `-sm.webp` variant. Add matching `<link rel="preload">` tags with `media` attributes so each viewport preloads only its own image.

How to prevent hidden images from downloading on mobile?▼

CSS `display: none` hides an image visually but the browser still downloads it. To prevent the download entirely, conditionally render the image in JavaScript after checking `window.matchMedia`, accepting the hydration trade-off for prerendered pages.

Should I use loading="lazy" on my hero image?▼

Never apply `loading="lazy"` to the LCP or above-fold hero image, since it delays the most important render. Reserve lazy loading for below-fold images that are not in the initial viewport.

Does this approach work with Next.js?▼

Yes, but implementation shifts to `next/image` with a correct `sizes` prop instead of manual `<picture>` sources, and `priority` on the hero replaces manual preload links. Viewport-gated components must be client components reading matchMedia in an effect.

Why do CSS animations hurt mobile performance?▼

Animations like glow pulses and floating effects force the GPU to repaint every frame, which tanks Speed Index and LCP on mobile CPUs. Disable them with a max-width media query or Tailwind's `md:animate-none` variant.