Jakob SEO
Back to blog
SEO//6 min read

Why a beautiful website can still be invisible to Google

A gorgeous site can rank for almost nothing. The reasons are invisible to the eye and obvious to a crawler. Here are seven that quietly kill search traffic — and the architecture that fixes them.

blueparadise.com

Coworking with an ocean view

A bright coliving in Santa Cruz de Tenerife — five languages, beautiful photos, instant booking.

LanguagesENESDEFRIT

Same page, two realities. The visitor sees a polished, multilingual site. The crawler sees a monolingual page with an ambiguous structure — so that is what ranks.

You can have a gorgeous website that Google barely sees. It happens constantly: the design is polished, the photos are stunning, the client is happy — and the site ranks for almost nothing. The reasons are almost always invisible to the human eye and completely obvious to a crawler.

I recently rebuilt a multilingual coliving site that had every one of these problems. Here is what was going wrong, why it matters, and the single principle that fixes all of it — useful whether you are building from scratch or auditing something that already exists.

Translation a search engine cannot read

The most expensive mistake on multilingual sites is a client-side translation widget — a little dropdown with flags that rewrites the page in the browser after it loads. But search engines index the page as the server delivers it, which is the original language every time. So a Spanish-first site with an English toggle is, to Google, a Spanish site with some JavaScript attached. The other languages effectively do not exist in search.

The fix is structural, not cosmetic: each language gets its own real URL (/en/…, /es/…), rendered on the server, with translated content, titles, and hreflang tags so Google serves the right one to the right person. And use language names, not flags — a flag is a country, not a language.

More than one H1 is a muddled message

The old homepage had three H1 tags. An H1 announces the single primary topic of a page; three of them tells a crawler that everything is equally the main thing, which is the same as saying nothing. Use exactly one H1 — the page title — and demote the rest to H2 and H3. Structure with semantics, style with CSS, and do not confuse the two.

Ambiguous

<h1> Bienvenidos

<h1> Compromiso

<h1> Recomendaciones

Three H1s — everything is "the main thing"

Clear

<h1> Coworking Tenerife

<h2> Rooms

<h3> Pricing

One H1, then a clean H2 / H3 tree

Empty alt text is a silent gap

Many images carried alt="". Empty alt text makes an image invisible to image search and to screen readers — a photo that contributes nothing to discoverability or accessibility. Write concise, descriptive alt text in the page language ("Shared coworking space with ocean view," not "IMG_2024"), and translate it along with everything else. Genuinely decorative images can stay empty, but that should be a decision, not an accident.

alt=""

alt="" — invisible to image search

alt="Shared coworking space with ocean view"

Described — found and accessible

Titles and descriptions that match the page — and the language

Every page needs a unique title and meta description, translated per language. The translate-widget approach leaves them all in the original language, so a German result shows a Spanish snippet — a guaranteed click-through killer. Keep them tight, unique, and generated per locale so the snippet always matches where the visitor lands.

If Google cannot fetch your sitemap, you are flying blind

On the old site the sitemap and robots.txt returned errors, so the crawler had no clean map. Two things get missed here constantly. Canonicals must point to your real domain — a publicly crawlable preview that canonicals to itself competes with you as a duplicate, so set previews to noindex. And the sitemap must list the live URLs in every language with their hreflang relationships, submitted in Search Console.

Tell Google what kind of business you are

Search engines reward pages that describe themselves in structured data (JSON-LD). For a place people book — a hotel, a coliving, a restaurant — a LodgingBusiness or LocalBusiness block with your address, phone, and aggregated reviews can earn rich results, including star ratings in the search snippet. The old site had only the generic schema its plugin produced. Adding explicit, accurate structured data is low-effort, high-leverage.

Speed is a ranking factor, and images are usually the culprit

A hero slider full of multi-megabyte images tanks your Core Web Vitals — the loading and stability metrics Google actually measures. Serve modern formats (WebP/AVIF), compress hard, set explicit width and height so the layout does not jump, lazy-load anything below the fold, and never ship a 4,000px photo to a phone. Fast sites rank better and convert better; this is the rare place where SEO and UX are the exact same task.

Hero slider · uncompressed JPEGBefore · LCP 4.1s
4.2 MB
Same hero · compressed WebPAfter · LCP 1.2s
180 KB

Lighter bytes mean a faster Largest Contentful Paint — the metric Google measures.

The one rule for migrations: do not break the old URLs

If you replace a site, the old URLs Google has indexed do not disappear when the old site does — search results, bookmarks, and backlinks keep requesting them. Map each one to its new home with a single permanent (301) redirect, and retire genuine junk with a "gone" status instead of bouncing it to the homepage. This one step is the difference between launching with your authority intact and resetting to zero.

The underlying principle

Almost every item here is the same idea in a different costume: make the site legible and unambiguous to a machine that cannot see your design. Real URLs instead of background JavaScript. One clear heading instead of three. Described images instead of blank ones. Honest structured data. Stable, fast pages. A site that is beautiful and legible is the one that gets found — and the legibility is the part you have to build on purpose.