The Technical SEO Checklist Every Business Website Should Pass
Rankings start long before content. A practical technical SEO checklist for Indian business websites covering crawlability, indexing and page…
A practical, engineering-first guide to website speed optimization: fixing render-blocking assets, oversized images, third-party scripts, caching and server response time — all without changing your site's design.
Most slow websites do not need a new design. They need fewer resources competing for the main thread, smaller payloads, and a delivery path that does not begin several continents away from the visitor. Website speed optimization is largely an engineering discipline, and the highest-return fixes usually live in code, configuration and asset delivery — layers that visitors never see and that a visual redesign would not automatically repair.
This guide walks through practical improvements you can ship in normal sprints, measure before and after, and keep in place through review habits.
A Lighthouse run from a fast office connection is a diagnostic tool, not a verdict. Before changing anything, separate two data sources: lab measurements (Lighthouse, WebPageTest) tell you why something is slow and let you test hypotheses repeatably; field data (Chrome UX Report, your own Real User Monitoring) tells you whether real visitors are actually slow, segmented by device, connection type and geography.
Anchor your work to Core Web Vitals thresholds, which Google publishes as: Largest Contentful Paint (LCP) at or under 2.5 seconds, Interaction to Next Paint (INP) at or under 200 milliseconds, and Cumulative Layout Shift (CLS) at or under 0.1, measured at the 75th percentile of page loads. For an Indian audience, filter your RUM data to mid-range Android devices on throttled 4G. A page that feels instant on office fibre in Bengaluru can be painful on a three-year-old handset in a tier-2 city — and that segment is usually the majority of traffic.
Write down a baseline for three or four representative templates: home page, a category or listing page, a product or article page, and checkout or signup. Every fix below should move at least one of those numbers.
Browsers cannot paint until they have the HTML and the CSS and JavaScript that block rendering. Shrinking that critical chain is usually the single biggest LCP win available without a redesign.
Audit what loads on first paint. Move non-essential scripts to defer or async, remove libraries you no longer use, and replace heavy UI dependencies with smaller alternatives where behaviour is identical. Framework-based sites should check that route-level code splitting is actually producing separate bundles rather than one large vendor chunk. Long tasks that block the main thread are also an INP problem, so deferring third-party tags helps interactivity as much as load time.
Large CSS frameworks and theme files often ship rules for components that a given page never renders. Identify the styles needed for above-the-fold content, inline that critical CSS, and load the remainder without blocking the first paint. Then verify the result on every template — inlining the wrong rules causes a flash of unstyled content that is worse than the original delay.
Web fonts sit on the critical path and cause layout shifts when they swap. Preload the one or two weights actually used above the fold, use font-display: swap or optional, subset to the character sets you need, and prefer locally hosted files over additional third-party connections. Reducing a family from six weights to two is often a quiet, substantial saving.
Images are frequently the largest bytes on the page and the most common LCP element. The fixes are mechanical and cheap.
width and height attributes, or CSS aspect-ratio, so the browser reserves space and CLS stays low.fetchpriority="high" and keep it in the initial HTML. Apply loading="lazy" only to below-the-fold media.srcset so mobile devices are not downloading desktop-resolution assets.The same logic applies to icon fonts, carousel libraries and animation bundles: if the effect is decorative, it should not compete with content for bandwidth.
Tag managers, chat widgets, heatmaps, A/B testing tools, ad pixels and social embeds accumulate quietly over years. Each one adds DNS lookups, connection setup, main-thread work and a new failure mode you do not control.
List every third-party request per template and ask three questions: does it still serve a business purpose, can it load after interaction or on idle, and can it be self-hosted or replaced? Embeds are an easy win — swap heavyweight iframes for a click-to-load facade that fetches the real player only when the visitor asks for it. For tools that genuinely must run early, add preconnect to their origin, but keep that list short; excessive preconnects compete for the same limited connections.
If repeat visitors re-download unchanged assets, you are paying for bandwidth twice. Serve hashed static assets with long-lived, immutable Cache-Control headers, and cache HTML with a short TTL plus validation so content updates still reach users. Enable Brotli compression for text-based responses.
Put a CDN in front of the site so static assets and cacheable HTML are served from an edge location close to the visitor. For Indian traffic, verify that your provider has points of presence in the region and that your cache hit ratio is healthy — a CDN with a poor hit ratio mostly adds a hop.
Time to first byte sets the floor for everything else. Aim to keep it comfortably under a second, and investigate the usual suspects: uncached database queries on listing pages, synchronous calls to external APIs during rendering, missing indexes, and an origin that is geographically distant from your users. Server-side caching, query optimisation and a properly sized instance often do more for LCP than any front-end tweak.
Also check DOM size. Very large, deeply nested documents slow down style calculation and layout on low-end devices. Simplifying repeated markup and paginating long lists helps both rendering and maintainability.
Performance regresses silently. Add a lightweight budget check to CI that fails when a template's JavaScript or image payload crosses a threshold, keep a dashboard of field Core Web Vitals per template, and require a performance note in pull requests that add new scripts. Prefer streaming or server-side rendering for content-heavy pages so the browser can paint before the full document arrives.
None of this requires new visual design. It requires measurement, disciplined asset hygiene and the willingness to delete things. Start with the LCP element on your most-trafficked template this week — that single fix is usually the most visible improvement your visitors will ever notice.
Keep reading
Rankings start long before content. A practical technical SEO checklist for Indian business websites covering crawlability, indexing and page…
A practical guide to planning a service business landing page: the question order visitors expect, the trust signals that survive scrutiny, and how…
A practical guide for small businesses comparing custom website development and website builders, including costs, flexibility, SEO, scalability, and…
Let’s talk
Tell us what you want to achieve. We will reply with honest advice, a clear scope and the next steps — no obligation.