Here's a truth most developers don't like to hear: writing good code isn't enough to be visible on Google. I've audited over 40 developer and freelancer websites this year. The result: the same SEO mistakes appear in 90% of cases. Mistakes that silently sabotage ranking for months.
In this article, I list the 8 most common mistakes — and the exact fixes to apply.
Mistake #1: Identical title tags on every page
This is the number one mistake. The same <title>My Portfolio — John DEZ</title> on the homepage, articles, projects, contact page. Google sees this and wonders: do all these pages say the same thing? Result: confusion, SEO dilution, and stagnant rankings.
The fix: Every page needs a unique, descriptive title containing the primary keyword. Maximum 60 characters.
// ❌ Wrong
<title>DEZ Koffi — Web Developer</title> (everywhere)
// ✅ Right
// Homepage:
<title>DEZ Koffi — Laravel & React Developer in Abidjan</title>
// Article:
<title>Building a REST API with Laravel 11 — Complete Guide 2025</title>
Mistake #2: Missing or generic meta descriptions
Technically, Google can generate a meta description. But what it generates is often incoherent. The meta description is your hook in search results — it determines whether someone clicks or not. 160 characters to convince. Don't waste them.
// ❌ Wrong
<meta name="description" content="My web developer blog">
// ✅ Right
<meta name="description" content="Learn to build a robust REST API with
Laravel 11: Sanctum, API Resources, validation. Complete guide with real
code examples. Immediate results.">
Mistake #3: No structured data (Schema.org)
Structured data lets Google understand the type of content on your page. For a blog article, an Article schema. For a contact page, a LocalBusiness. Without it, you miss rich snippets — those enhanced results that increase click-through rates by 20-30%.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "{{ $post->title }}",
"author": {
"@type": "Person",
"name": "DEZ Koffi",
"url": "https://dezkoffi.com"
},
"datePublished": "{{ $post->published_at->toIso8601String() }}"
}
</script>
Mistake #4: Images without alt attributes (and too heavy)
Google Images accounts for 22.6% of all web searches. Every image without an alt attribute is a missed opportunity. And every oversized image tanks your Core Web Vitals score — directly impacting rankings since 2021.
- Descriptive alt text on all images
- WebP format systematically (30-50% lighter than JPEG)
loading="lazy"attribute on below-fold images- Size images to their actual display size
Mistake #5: No sitemap XML or misconfigured robots.txt
A sitemap tells Google: here are all the important pages of my site, explore them. Without a sitemap, Google discovers your pages randomly — some may never get indexed. With Laravel, the spatie/laravel-sitemap package generates this in a few lines.
Mistake #6: Non-descriptive URLs
Compare these two URLs:
dezkoffi.com/blog?id=42dezkoffi.com/blog/building-rest-api-laravel-11
The first tells Google nothing. The second contains keywords directly in the URL — a confirmed positive SEO signal. In Laravel, always use slugs in your models.
Mistake #7: Forgetting mobile performance
Since 2019, Google uses Mobile-First Indexing: the mobile version of your site is crawled and indexed first. If your site loads in 8 seconds on mobile, no matter how good your content is — you won't rank.
Check with PageSpeed Insights on mobile. Target at least:
- LCP (Largest Contentful Paint) < 2.5s
- FID (First Input Delay) < 100ms
- CLS (Cumulative Layout Shift) < 0.1
Where to Start?
If you have to prioritize, here's the order:
- Unique titles and meta descriptions on every page
- HTTPS + XML sitemap
- Optimized images with alt attributes
- Core Web Vitals > 90
- Structured data
These 5 points alone can double your organic traffic in 3 months. No magic — just methodical work.