Most business owners assume their SEO problems are content problems. Not enough blog posts, the wrong keywords, not enough backlinks. In my experience auditing 30+ client websites, that's rarely the whole story.

The majority of SEO problems I find are design problems. Decisions made during the build — font choices, layout approaches, navigation structures, image handling — that quietly prevent search engines from understanding and ranking the site, no matter how good the content is.

Here are the 10 most common ones, in rough order of impact.

1. Text in images instead of HTML

This is still the single most damaging mistake I see. A designer creates a beautiful hero section with an elegant tagline — but the text is embedded in a PNG or JPEG, not written in HTML. From Google's perspective, that text doesn't exist.

The same applies to service names in banner images, calls to action in graphic buttons, and headlines baked into background images. If a search engine can't select the text with a cursor, it can't read it.

Fix: Export images without text. Use HTML text overlaid on the image with CSS positioning. If you must use an image containing text (logos, charts, infographics), write the content in the alt attribute.

2. No heading hierarchy

Search engines use heading tags (h1, h2, h3) to understand the structure and topics of a page. A common design pattern — making everything visually large through font-size CSS rather than using semantic heading elements — means the page looks structured but is semantically flat.

Every page should have exactly one h1 (the page's main topic). Subheadings should use h2. Nested topics under those use h3. This is also critical for accessibility — screen reader users navigate by headings.

Fix: Inspect every page's heading structure using a browser extension like Headings Map or by checking the Outline in Chrome DevTools. Redesign any section where visual hierarchy and semantic hierarchy don't match.

3. Slow page load from unoptimised images

Images are the most common cause of poor Core Web Vitals scores, specifically LCP (Largest Contentful Paint). Uploading a 4MB DSLR photo and letting the browser scale it down to 400px is the most common offender.

A slow LCP score (over 2.5 seconds) is now a confirmed Google ranking signal. It also directly affects conversion — every second of delay reduces conversions by roughly 7%.

Fix: Convert images to WebP (about 30% smaller than JPEG at equivalent quality). Size images to their actual display dimensions — don't upload a 3000px image for a 600px container. Add loading="lazy" to below-the-fold images and fetchpriority="high" to the hero image. See the Core Web Vitals guide for the full process.

4. No title tags or generic title tags

I still find sites where every page has the same title tag — usually just the business name — or where the CMS has auto-generated titles like "Home | Site Title" across all pages. Title tags are the single most direct on-page SEO signal and the first thing someone reads in Google search results.

Every page should have a unique, descriptive title that includes the primary keyword and fits within 50–60 characters.

Fix: Audit title tags with Screaming Frog (free up to 500 URLs) or Google Search Console's Performance report. Rewrite any duplicate or generic titles. Use our Meta Title Generator to create optimised options for each page type.

5. JavaScript-rendered content Google can't index

Single-page applications and heavily JavaScript-rendered sites can look perfect in a browser while being nearly invisible to Google. If your page content is injected by JavaScript after load — rather than being present in the initial HTML response — Google may not index it properly, particularly on slower connections or during heavy crawl periods.

This is most common with React, Vue, and Angular frontends that render everything client-side with no server-side rendering (SSR) or static generation.

Fix: Use server-side rendering or static site generation for content that needs to be indexed. Test with Google Search Console's URL Inspection → "View crawled page" to see what Google actually sees versus what your browser renders. For marketing sites, static HTML is still the safest and fastest option.

6. No mobile optimisation

Google has used mobile-first indexing since 2020, meaning it crawls and indexes the mobile version of your site as the primary version. A site that looks great on desktop but has unreadable text, overlapping elements, or unusable navigation on mobile is being evaluated on its mobile version — which may have far fewer indexed pages if mobile CSS hides content.

Fix: Test on real devices, not just responsive browser resizing. Check Google Search Console's Mobile Usability report for flagged issues. Never use display: none to hide mobile content you want indexed — use CSS that serves it differently, not hides it entirely.

7. Broken or missing internal links

Internal linking is how search engines discover pages and understand which pages are most important. A design that buries important pages behind hover states, relies entirely on navigation menus, or uses JavaScript-only links (not <a href> elements) can leave whole sections of a site effectively invisible to crawlers.

A common version of this: pages that only appear as results in a filtered JavaScript grid — no direct link in the HTML source, only accessible after a user interaction.

Fix: Make sure every important page has at least one crawlable <a href="..."> link pointing to it. Use Screaming Frog to map your crawl graph and identify orphaned pages. Add contextual cross-links between related content — not just navigation links.

8. Missing or wrong schema markup

Schema markup is the structured data layer that tells search engines (and AI answer engines) exactly what your page is about — your business name, address, phone number, services, prices, reviews, and more. Most designed websites have no schema markup at all.

For local businesses especially, missing LocalBusiness schema means Google can't reliably connect your website to your Google Business Profile, which affects local rankings and AI citation. For AI search engines like ChatGPT and Perplexity, schema markup is one of the clearest signals they use to extract and cite specific facts about a business.

Fix: Add JSON-LD schema markup in the <head> of your pages. Start with Organization or LocalBusiness schema on your homepage, then add FAQPage schema to any page with questions and answers. Use our Schema Markup Generator to build the code without writing JSON by hand. See How to Add Schema Markup for the full walkthrough.

9. Fonts and CSS loaded as render-blocking resources

Every resource your browser must download and process before it can render the page delays the first visible content. Font files and large CSS files are common offenders — if they're loaded synchronously in <head> without preconnect hints or display: swap, they can add hundreds of milliseconds to perceived load time.

This causes Cumulative Layout Shift (CLS) too — fonts loading late cause text to reflow as the custom font replaces the system font, pushing content around the page.

Fix: Add rel="preconnect" for Google Fonts. Use font-display: swap in your @font-face declarations so text renders immediately in a system font while the custom font loads. Inline critical CSS in <head> and defer non-critical styles.

10. No Open Graph or social meta tags

This is more conversion than pure SEO, but it matters for traffic. When someone shares your page on LinkedIn, Facebook, or WhatsApp and the preview shows a broken image, no title, or the wrong description, click-through rates collapse. Every share becomes wasted potential.

Open Graph tags also affect how your pages appear in AI assistant previews and link unfurls in tools like Slack and Notion — increasingly important distribution channels for B2B businesses.

Fix: Add og:title, og:description, og:image, and og:url to every page, plus Twitter Card meta tags. Use our OG Tag Generator to build the tags and preview exactly how your page will look when shared before it goes live.

The common thread

All 10 of these mistakes share the same root cause: treating design and SEO as separate concerns handled by different people at different times. When a designer makes layout decisions without thinking about heading semantics, or a developer chooses a JavaScript framework without considering crawlability, or someone uploads images without any thought to file size — the site pays for it in search visibility.

The alternative is building with both in mind from the start. That's what I do on every Bisyri project — design and SEO aren't separate services, they're part of the same build decision. The result is sites that look exactly how you want and rank.

Working through this list? Use our full SEO checklist — it covers all 10 of these issues plus the rest of the technical and on-page checklist in a single working document.

Want a site built with design and SEO working together from day one?

Talk to Bisyri →