Key takeaways
- Optimized images improve page speed, accessibility and Google rankings while also driving traffic from Google Images search.
- Use descriptive file names and alt text so search engines and screen readers understand what each image shows.
- Serve images in WebP or AVIF with JPEG/PNG fallbacks to cut file sizes by 25-50% without losing visual quality.
- Apply lazy loading, responsive srcset and proper compression to keep pages fast, especially for visitors on slower connections in Nepal.
Image SEO is the practice of optimizing every image on your website so search engines can find, understand and rank your visual content. Most website owners focus on text-based SEO and treat images as an afterthought. That leaves a significant amount of traffic on the table. Google Images alone accounts for roughly 20-25% of all Google searches, and properly optimized images also contribute to faster page loads, better accessibility and stronger overall rankings.
If you run a website in Nepal, image optimization matters even more. Internet speeds across the country are improving but still inconsistent, especially outside Kathmandu. Oversized, unoptimized images are one of the most common reasons Nepali websites load slowly on mobile devices. Fixing your images is often the single highest-impact change you can make for both website speed and search visibility.
This guide covers every aspect of image SEO, from file naming and alt text to modern formats and structured data, with practical steps you can apply today.
Why image SEO matters
Images do more for your SEO than most people realize. According to Google's own image best practices, properly optimized images help Google understand the content and context of your pages. Here is why you should care about image SEO:
- Google Images traffic: Google Images is the second-largest search engine in the world. When your images rank well there, they drive qualified visitors directly to your site. For businesses in tourism, ecommerce, food and real estate, image search traffic can represent a significant share of total organic visits.
- Page speed: Images typically account for 50-80% of a web page's total weight. Unoptimized images are the number one cause of slow page loads. Since page speed is a confirmed ranking factor through Core Web Vitals, heavy images hurt your rankings directly.
- User experience: Pages with optimized, fast-loading images keep visitors engaged. Slow-loading images increase bounce rates, especially on mobile. Every second of delay costs you visitors, conversions and revenue.
- Accessibility: Proper alt text makes your content accessible to visitors using screen readers. This is not just good practice; it also gives search engines another signal about what your page covers.
- Rich results: Optimized images with structured data can appear in rich results, product carousels, recipes and other enhanced search features that increase click-through rates.
For a deeper look at how page speed and technical factors affect rankings, check my technical SEO guide for beginners.
File naming conventions
Image file names are one of the first signals Google uses to understand what an image shows. Yet most people upload images with names like IMG_4582.jpg or screenshot-2026-08-15.png, which tell search engines nothing.
How to name image files for SEO
- Be descriptive: Name your files so the name describes the image content. Instead of DSC0042.jpg, use kathmandu-skyline-sunset.jpg.
- Use hyphens as separators: Google reads hyphens as word separators. Use blue-running-shoes.jpg, not blue_running_shoes.jpg or bluerunningshoes.jpg.
- Include relevant keywords: If it fits naturally, include your target keyword in the file name. For a blog post about trekking in Annapurna, an image named annapurna-base-camp-trail.jpg is far better than photo1.jpg.
- Keep names concise: Aim for 3-6 words. Long file names like best-view-of-annapurna-mountain-range-from-base-camp-morning-sunrise.jpg are excessive.
- Use lowercase letters: Stick to lowercase to avoid case-sensitivity issues on different servers.
- Avoid special characters: No spaces, accented characters, or symbols. Keep it to letters, numbers and hyphens.
Rename your files before uploading them. Changing file names after an image is already indexed means Google needs to re-discover and re-index the image at its new URL, which can take weeks.
Alt text best practices
Alt text (alternative text) is the HTML attribute that describes an image's content. It serves two critical purposes: it tells screen readers what the image shows for visually impaired users, and it gives Google context about the image for search indexing.
Writing effective alt text
Good alt text is specific, concise and honest about what the image actually shows. Here are the rules to follow:
- Describe the image accurately: Write what you see. If the image shows a woman serving momos at a Kathmandu street stall, say exactly that.
- Be specific, not generic: "Dog" is weak. "Golden retriever puppy sleeping on a red blanket" is useful.
- Keep it under 125 characters: Most screen readers cut off alt text after about 125 characters. Be concise.
- Include keywords naturally: If your target keyword fits the description organically, include it. If it feels forced, leave it out. Never write alt text solely for keyword stuffing.
- Skip "image of" or "picture of": Screen readers already announce that the element is an image. Starting with "image of" is redundant.
- Use empty alt for decorative images: Background patterns, dividers and purely decorative images should use alt="" so screen readers skip them.
- Context matters: The same photo might get different alt text depending on the page topic. A photo of a laptop on a desk might be "laptop showing Google Analytics dashboard" on an SEO blog or "minimalist home office setup with wooden desk" on an interior design page.
Alt text examples
| Bad alt text | Good alt text |
|---|---|
| image1 | Boudhanath stupa with prayer flags at sunset in Kathmandu |
| SEO SEO services Nepal SEO expert | Google Search Console performance report showing organic traffic growth |
| photo | Team of developers working on laptops at a coworking space in Thamel |
| Bar chart comparing website load times before and after image optimization |
Image compression
Compression reduces the file size of your images so they load faster without a noticeable drop in visual quality. This is the single most impactful image optimization step for page speed, and it is where most Nepali websites fall short.
Lossy vs. lossless compression
- Lossy compression removes some image data permanently. The file gets significantly smaller, and for photos, the quality loss is usually invisible to the eye. JPEG is inherently lossy. A quality setting of 75-85% is the sweet spot for most web photos: good visual quality at a fraction of the original file size.
- Lossless compression reduces file size without removing any data. The image is pixel-for-pixel identical after compression. PNG uses lossless compression by default, which is why PNG files are larger than JPEGs for photographs. Lossless works best for graphics, logos, icons and screenshots with text.
Target file sizes
As a practical guideline, aim for these maximum file sizes:
- Hero images and banners: Under 200 KB
- Blog post images: Under 100 KB
- Thumbnails and icons: Under 30 KB
- Product photos: Under 150 KB
If your blog post images are over 500 KB each, that is a problem. A page with five uncompressed 2 MB images forces visitors to download 10 MB just for the photos. On a typical 3G connection in rural Nepal, that page would take over 30 seconds to load.
Compression tools
Several free and reliable tools handle image compression:
- Squoosh (squoosh.app): Google's free browser-based tool. Drag and drop an image, adjust quality and format, and see the before/after comparison in real time. Excellent for one-off optimizations.
- TinyPNG / TinyJPG: Batch compression for up to 20 images at a time in the free tier. Simple and effective.
- ShortPixel: WordPress plugin that compresses images automatically on upload. 100 free credits per month.
- ImageOptim (Mac) or FileOptimizer (Windows): Desktop apps for local batch processing.
For WordPress sites, I recommend setting up automatic compression on upload so you never forget. For static sites and custom builds, compress images during your build process or before uploading them to your server. If you need help with site speed overall, my website optimization service covers image compression as part of a full performance audit.
Modern image formats: WebP and AVIF
JPEG and PNG have been the web's standard image formats for decades, but newer formats deliver better compression at equal or higher quality.
WebP
WebP is Google's modern image format. It supports both lossy and lossless compression, transparency (like PNG) and even animation (like GIF). WebP images are typically 25-35% smaller than equivalent JPEG files at the same visual quality.
Browser support for WebP is now universal across Chrome, Firefox, Safari, Edge and all modern mobile browsers. There is no reason not to use it in 2026.
AVIF
AVIF is the newest format, based on the AV1 video codec. It offers even better compression than WebP, with files often 40-50% smaller than JPEG. AVIF supports HDR, wide color gamut and both lossy and lossless compression.
Browser support is strong in Chrome and Firefox, with Safari adding full support in recent versions. The main drawback is that AVIF encoding is slower than WebP, so it takes longer to generate your images. For static websites where you compress once and serve many times, this is not a real concern.
Using the picture element for fallbacks
The HTML picture element lets you serve the best format each browser supports, with a universal fallback:
<picture>
<source srcset="product.avif" type="image/avif" />
<source srcset="product.webp" type="image/webp" />
<img src="product.jpg" alt="Red hiking backpack with side pockets"
width="800" height="600" loading="lazy" />
</picture>
The browser reads the sources from top to bottom and uses the first format it supports. If it supports AVIF, it downloads the AVIF file. If not, it tries WebP. If neither works, it falls back to the JPEG in the img tag. The visitor always gets the best possible experience for their browser.
Responsive images with srcset and sizes
Serving a single 2400px-wide image to every device wastes bandwidth. A phone with a 375px screen does not need a 2400px image. The srcset and sizes attributes let you serve appropriately sized images based on the visitor's screen.
How srcset works
<img src="hero-800.jpg"
srcset="hero-400.jpg 400w, hero-800.jpg 800w, hero-1200.jpg 1200w, hero-1600.jpg 1600w"
sizes="(max-width: 600px) 100vw, (max-width: 1200px) 50vw, 800px"
alt="Kathmandu valley panoramic view at sunrise"
width="1600" height="900" loading="lazy" />
The srcset attribute lists the available image files and their widths. The sizes attribute tells the browser how wide the image will be rendered on different screen sizes. The browser then selects the most appropriate file to download.
For a blog post where the content column is never wider than 800px, you might serve images at 400px, 800px and 1200px (for retina screens). For full-width hero sections, include sizes up to 1600px or 2000px.
Practical guidelines
- Generate 3-5 size variants for each image (e.g., 400w, 800w, 1200w, 1600w)
- Always set explicit width and height attributes on the img element to prevent layout shift (CLS)
- Combine srcset with the picture element and modern formats for the best results
- Use build tools like Sharp (Node.js), ImageMagick, or the Squoosh CLI to automate variant generation
Lazy loading images
Lazy loading defers the download of images that are not visible on the screen until the visitor scrolls near them. This speeds up the initial page load because the browser only fetches the images the visitor can actually see.
Native browser lazy loading
Modern browsers support native lazy loading with a single HTML attribute, as documented in Google's lazy loading guide:
<img src="photo.jpg" alt="Description" loading="lazy" width="800" height="600" />
That is all it takes. No JavaScript libraries needed. The browser handles the loading behavior automatically.
When NOT to lazy load
Do not lazy load images that appear above the fold (the portion of the page visible without scrolling). These images should load immediately. Lazy loading above-fold images actually hurts Largest Contentful Paint (LCP), one of the Core Web Vitals metrics Google uses for ranking.
- Hero images: Load eagerly. Set loading="eager" or simply omit the loading attribute.
- Logo: Load eagerly. It is always visible on page load.
- First visible blog image: Load eagerly if it is visible without scrolling.
- All other images: Use loading="lazy".
Also include the decoding="async" attribute on images to prevent image decoding from blocking the main thread. Combined with lazy loading, this keeps your pages responsive even on lower-powered mobile devices.
Image sitemaps
An image sitemap helps Google discover images on your site, especially images loaded with JavaScript, images behind tabs or accordions, or images on pages that Google might not crawl frequently.
You can add image information directly to your existing XML sitemap:
<url>
<loc>https://example.com/blog/post-title/</loc>
<image:image>
<image:loc>https://example.com/images/post-hero.jpg</image:loc>
<image:title>Post hero image description</image:title>
</image:image>
</url>
You do not need a separate image sitemap. Adding image entries to your main sitemap works perfectly. If you use WordPress, plugins like Yoast SEO and Rank Math include images in the sitemap automatically.
For custom or static sites, list your most important images, especially product photos, portfolio pieces, infographics and any images you want to appear in Google Images results.
Structured data for images
Structured data using Schema.org markup gives Google explicit information about your images. The ImageObject schema is the most relevant type for image SEO:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ImageObject",
"contentUrl": "https://example.com/images/product-photo.jpg",
"name": "Handmade Nepali wool sweater in natural grey",
"description": "A hand-knitted wool sweater made by artisans in Kathmandu using locally sourced yarn",
"width": "1200",
"height": "800",
"author": {
"@type": "Person",
"name": "Bikesh Tamang"
}
}
</script>
Structured data is especially useful for product images, recipe photos and any visual content where additional context helps Google show your image in the right search results. For articles, the image specified in your Article schema is often enough.
If you want to learn how structured data and other on-page elements work together to help your content rank, read my guide on how to write a blog post that ranks.
CDN and caching for images
A Content Delivery Network (CDN) stores copies of your images on servers around the world. When a visitor requests an image, it is served from the closest server rather than your origin server. For a Nepali website that also targets international visitors, a CDN can reduce image load times dramatically.
CDN benefits for images
- Faster delivery: Images load from edge servers close to the visitor. A user in Kathmandu gets the image from a server in Singapore or India instead of waiting for a roundtrip to a US-based server.
- Reduced server load: Your origin server handles fewer requests because the CDN absorbs most of the traffic.
- Automatic format conversion: Many CDNs (Cloudflare, Cloudinary, imgix) can convert images to WebP or AVIF on the fly based on the visitor's browser, so you do not need to maintain multiple format versions yourself.
- On-the-fly resizing: Some CDNs can resize images dynamically using URL parameters, eliminating the need to generate multiple image sizes manually.
Browser caching
Set appropriate cache headers so returning visitors do not re-download images they have already seen. Images rarely change, so a long cache lifetime is appropriate:
- Set
Cache-Control: public, max-age=31536000, immutablefor versioned image URLs (URLs that change when the image changes) - For images with static URLs that might be updated, use a shorter max-age (e.g., 2592000 for 30 days) and include an ETag header
Common image SEO mistakes
These are the image optimization errors I see most frequently on the websites I audit:
Uploading images at full camera resolution
A photo straight from a modern smartphone is 3-8 MB and 4000+ pixels wide. No web page needs a 4000px image. Resize to the maximum display size before uploading. For most blog content, 1200-1600px wide is plenty.
Missing or empty alt text
Every meaningful image needs descriptive alt text. Leaving the alt attribute empty (or missing entirely) on content images means Google and screen readers have no idea what the image shows. Run your pages through an accessibility checker to find images with missing alt attributes.
Using the wrong format
Saving photographs as PNG files is one of the most common mistakes. PNG is designed for graphics with flat colors, text and transparency. A photograph saved as PNG can be 5-10x larger than the same photo saved as JPEG or WebP. Use JPEG/WebP for photographs and PNG/SVG for graphics, logos and icons.
Text inside images
Embedding text within images (promotional banners with text, infographics with small print) makes that text invisible to search engines and screen readers. If you must use text in images, always reproduce the key text in the alt attribute or the surrounding HTML content.
No width and height attributes
Omitting width and height on img tags causes layout shift as images load. The browser does not know how much space to reserve, so content jumps around when images appear. This hurts your Cumulative Layout Shift (CLS) score, which is a Core Web Vitals metric.
Lazy loading above-fold images
Adding loading="lazy" to your hero image or logo delays their appearance and directly harms your LCP score. Only lazy load images that are below the initial viewport.
Ignoring image URLs on redesign
When you redesign your website or restructure your image directories, image URLs change. If you do not set up 301 redirects for old image URLs, you lose all the SEO value those images had built up in Google Images. You also break any external sites that embed or link to your images.
Image optimization for Nepal
Nepal has specific conditions that make image optimization more important than in many other markets:
Internet speed reality
While mobile internet penetration in Nepal has grown rapidly, connection speeds vary widely. Users in Kathmandu on fiber or 4G may get 20-50 Mbps, but users outside the Valley often deal with 2-5 Mbps or less. Many visitors still browse on 3G connections in hilly and rural areas. Every kilobyte you shave off your images directly translates to faster load times for these visitors.
Mobile-first audience
Over 85% of internet users in Nepal access the web primarily through smartphones. Mobile devices have smaller screens, less processing power and often slower connections compared to desktops. Serving appropriately sized images with srcset and modern formats is not optional for a Nepali audience.
Practical recommendations for Nepal
- Compress aggressively: Target JPEG quality of 70-80% instead of the 80-90% range common for Western markets. The file size savings outweigh the minimal quality difference on mobile screens.
- Prioritize WebP: Browser support in Nepal is strong because most users are on Android Chrome. There is no reason to hold back on WebP adoption.
- Use a CDN with regional presence: Cloudflare's free plan includes edge servers in India and Southeast Asia, which serve Nepali visitors faster than hosting images only on a US or European server.
- Test on real devices: Test your pages on budget Android phones with throttled connections. That is how a large share of your Nepali audience will experience your site.
- Keep hero images lean: Aim for hero images under 100 KB on mobile. Use the picture element to serve a smaller file to mobile visitors and a larger one to desktop users.
Frequently asked questions
Does image SEO really affect my website's Google rankings?
Yes. Images contribute to rankings in multiple ways. Optimized images improve page load speed, which is a confirmed ranking factor through Core Web Vitals. Properly tagged images can appear in Google Images search results, driving additional organic traffic. Google also uses image context, including alt text and surrounding content, to better understand what a page is about. For Nepali websites where competitors often neglect image optimization, doing it well gives you a clear advantage.
What is the best image format for SEO in 2026?
WebP is the best general-purpose format for SEO in 2026. It provides 25-35% smaller file sizes compared to JPEG at the same visual quality, and it is supported by all modern browsers. AVIF offers even better compression but has slightly narrower browser support. The recommended approach is to use the picture element to serve AVIF or WebP as the primary format with JPEG or PNG as a fallback for older browsers. This gives you the smallest possible file sizes for the majority of visitors while keeping the page functional for everyone.
How do I write good alt text for images?
Good alt text describes what the image shows in a clear, concise sentence. It should be specific enough that someone who cannot see the image understands its content and purpose. Include your target keyword naturally if it fits the description, but never stuff keywords into alt text. Keep it under 125 characters for screen reader compatibility. For decorative images that add no informational value, use an empty alt attribute (alt=""). For product images, include the product name, color and key details. For charts or graphs, describe the main data point or trend the visual communicates.
Need help optimizing images and page speed on your website? I offer website optimization services that cover image SEO, compression, format conversion and full performance audits. Get in touch and let's make your site faster.

