Overall Score
Flatfish has made marginal improvements (LCP down 0.015s, performance score up slightly), but they've fundamentally ignored 90% of the critical feedback from 9 months ago—the incomplete 'Onze klanten' section still cuts off mid-sentence, zero trust signals remain, and conversion optimization is non-existent. They're shipping their own website like they ship client projects: functionally incomplete.
The Roast
Flatfish claims to 'build scalable products' but apparently can't scale their own website improvements—nine months later and they still have a sentence that cuts off like a forgotten draft email ('Wij werken samen met Laten we uw idee werkelijkheid maken'). It's the digital equivalent of a contractor showing you a half-painted wall and saying 'we'll finish it next quarter.' If this is their storefront, imagine what their codebase looks like—probably held together with duct tape and late-night commits.
🎯 Start Here
Google PageSpeed Insights
(Real metrics from Google)These scores come directly from Google's PageSpeed API. The AI scores above evaluate broader aspects like copy, trust signals, and conversion.
Core Web Vitals
Trust Signals
Conversion
SEO
Mobile
Design & UX
Copy & Messaging
Performance
Accessibility
Trust Signals
Trust signals are nearly non-existent and unchanged from 9 months ago—the 'Onze klanten' section is still a broken sentence, zero testimonials/case studies exist, and there's no third-party validation, team photos, or credibility markers. A buyer would have zero evidence you've ever shipped anything successfully.
Issues Found
- 'Onze klanten' section remains cut off mid-sentence ('Wij werken samen met Laten we uw idee werkelijkheid maken')—zero client logos, metrics, or social proof; equivalent to a restaurant with an empty menu
- No testimonials, case studies, founder bios, team photos, or 'years in business' statement—zero evidence of successful project delivery; red flag for enterprise buyers considering a 3-month+ engagement
- No third-party validation: no visible SSL badge, no GDPR compliance statement, no developer certifications (Symfony certified, PHP expert), no awards, no Clutch/G2 ratings—buyers have zero external verification
Recommendations
-
Add 5-8 client logos to 'Onze klanten' section high
Populate this section with actual client logos, company names, or brief testimonial quotes ('Delivered on time, under budget' - CTO, FinTech Startup)—immediate credibility boost.
-
Create a case study section or testimonial cards high
Add 2-3 case studies (1-2 paragraphs each) with client name, problem, solution, result ('Reduced load time by 60%', 'Shipped in 8 weeks')—proof of delivery beats vague promises.
-
Add team bios, certifications, and third-party badges medium
Include founder/team photos with short bios, Symfony/PHP certifications, privacy badges (GDPR compliant), and links to Clutch/G2 profiles—external validation reduces perceived risk.
Conversion
Conversion optimization is still in the dumpster—five identical CTAs scattered across the page with zero prioritization, no form on the homepage to capture interested visitors, and zero urgency/social proof triggers to push users toward action.
Issues Found
- Five CTAs with identical styling ('Start uw project', 'Bekijk onze diensten', 'Meer informatie' x3, 'Vertel ons over uw project')—users don't know which action to take first or which matters most; 'more information' is weaker than 'book a consultation'
- No conversion form on homepage—interested visitors must navigate to a separate 'Contact' page, breaking momentum during peak interest; you're forcing a click to capture a lead
- Zero urgency or social proof before CTAs: no 'Limited availability', no 'Trusted by 40+ companies', no client logos, no testimonials—nothing pushes interested prospects toward action
Recommendations
-
Create a primary CTA hierarchy high
Designate one primary CTA ('Book Free Consultation', button, prominent color), secondary CTAs ('View Case Studies', outline style), and tertiary CTAs ('Learn More', text link)—guide users toward your highest-value action.
-
Add an email signup or contact form above the fold high
Embed a lightweight form ('Get a Free Architecture Audit', 3 fields: name, email, project type) or email signup to capture interested visitors before they leave—reduces friction and captures early-stage leads.
-
Add social proof and urgency triggers high
Insert client logos or a testimonial section above the primary CTA, and add micro-copy like 'Average response time: 24 hours' or 'Next availability: [date]'—lowers perceived risk and pushes fence-sitters to act.
SEO
SEO remains weak and unchanged—meta tags are copy-pasted from H1, no schema markup exists, and 249-word homepage content is 60% below what's needed to rank competitively on 'PHP software development' or 'SaaS development Netherlands.'
Issues Found
- Meta description and OG title are identical to H1—zero differentiation in SERPs or social sharing; both waste the opportunity to write compelling, click-through-optimized snippets
- No JSON-LD schema markup (Organization, Service, LocalBusiness, BreadcrumbList)—search engines can't understand your services, location, or business structure; missing rich snippets and local pack opportunities
- Homepage at 249 words is 60% below ideal for target keywords; competitor pages on 'PHP development' average 800-1200 words—you're outranked before you start
Recommendations
-
Write unique, click-optimized meta description high
Create a meta description focused on conversions: 'Custom PHP & Symfony web apps for startups & enterprises. Scalable SaaS development in Amsterdam. Free consultation.' (~155 chars, includes location and benefit).
-
Add JSON-LD schema markup high
Implement Organization, LocalBusiness, and Service schemas to help Google understand your location, services, and team—enables rich snippets and knowledge panel eligibility.
-
Expand homepage content to 800+ words medium
Add a 'Why Flatfish' section with differentiators, a case study snippet, and FAQ—target long-tail keywords like 'custom PHP development Amsterdam' and 'Symfony experts Netherlands.'
Mobile
Mobile experience is responsive but slow and tedious—3.137s LCP on mobile will feel like 4-5s on real 4G, the four-section timeline stacks into excessive scrolling before reaching conversion elements, and there's no mention of touch target optimization.
Issues Found
- LCP at 3.137s (simulated) becomes 4-5s on real 4G connections; every 100ms delay costs ~1% conversion, so you're losing 3-4% of mobile visitors to impatience
- Process section with four H2 headers stacks vertically, creating 5+ scrolls before users reach conversion-critical sections (client logos, CTAs)—excessive scrolling on mobile causes abandonment
- No mention of touch target optimization; buttons and CTA links may be <48x48px, causing mis-taps and frustration on small screens—test with DevTools mobile emulation
Recommendations
-
Optimize mobile LCP below 2.5 seconds high
Defer below-the-fold images, minify CSS/JS, and reduce server response time—aim for sub-2.5s LCP on Moto G4 (common 4G baseline) to retain mobile visitors.
-
Collapse or redesign process timeline on mobile medium
Use a vertical timeline with expandable cards or condense four sections into two on mobile screens—reduce scrolling burden before conversion elements.
-
Verify all touch targets are ≥48×48px medium
Test buttons, links, and form inputs in Chrome DevTools mobile emulation; increase padding/margin if targets are smaller than 48×48px to prevent mis-taps.
Design & UX
The design is clean enough to not embarrass you at a client meeting, but it's still aggressively forgettable—service cards remain visually identical, the 'Onze klanten' section is STILL a broken sentence, and there's zero visual hierarchy to guide users toward conversion.
Issues Found
- 'Onze klanten' section cuts off mid-sentence again ('Wij werken samen met Laten we uw idee werkelijkheid maken')—9 months of feedback ignored suggests either a broken CMS or a team that doesn't QA their own homepage
- Service cards (SaaS, Maatwerk, API, AI) are visually identical in layout, color, and weight—no differentiation or visual hierarchy means users can't tell which service is your flagship offering
- Process timeline uses cute emojis (☕📐🔨🚀) instead of professional icons—creates 'scrappy startup' vibes when you're trying to appeal to enterprise buyers
Recommendations
-
Fix the 'Onze klanten' section immediately high
Replace the incomplete sentence with 5-8 actual client logos, case study snippets, or testimonial quotes—this is a trust signal vacuum that screams 'we don't have satisfied clients.'
-
Add visual differentiation to service cards medium
Use distinct colors, icons, or accent styles for each service to create a visual hierarchy that guides users to your most profitable/unique offerings (likely SaaS or API Integrations).
-
Replace emoji timeline with professional icons low
Swap emojis for subtle, brand-aligned icons or numbered circles to signal 'enterprise-ready partner' instead of 'hipster startup trying too hard.'
Copy & Messaging
Messaging remains generic and benefit-free—'Uw partner in software ontwikkeling' could be said by 10,000 Dutch dev shops, and value props like 'schaalbare' and 'perfect aansluiten' are adjectives without evidence or teeth.
Issues Found
- H1 'Uw partner in software ontwikkeling' is indistinguishable from competitors—no unique angle, differentiator, or reason to choose Flatfish over the next agency; same issue from 9 months ago with zero iteration
- Value propositions lack proof: 'schaalbare', 'perfect aansluiten', 'robuuste' are adjectives without metrics, client results, or proof statements to back them up
- CTAs are weak invitations ('Start uw project', 'Vertel ons over uw project') instead of benefit-driven statements with urgency or scarcity ('Book your free 30-min consultation' or 'See our latest SaaS project')
Recommendations
-
Rewrite H1 with a unique angle high
Replace with something like 'PHP SaaS & Custom Web Apps That Scale' or 'From Concept to 10K+ Users: Enterprise Software Built for Growth'—specific, proof-based, searchable.
-
Add proof metrics to service descriptions high
Replace 'schaalbare' with 'Scales to 100K+ users' or 'perfect aansluiten' with 'Reduces manual data entry by 80%'—adjectives with numbers are persuasive; adjectives alone are air.
-
Upgrade CTA copy with benefit statements medium
Change 'Start uw project' to 'Get a Free Architecture Audit' or 'See How We Cut Dev Time in Half'—specific benefits beat vague invitations.
Performance
Performance is slightly better (LCP down 0.015s to 3.137s), but it's still sluggish, and the 'Reduce unused JavaScript' warning remains unfixed—you optimized a rounding error while ignoring the elephant in the room.
Issues Found
- LCP at 3.137s is still slow for a 249-word homepage; every 100ms costs ~1% conversion, so you're losing 3%+ of visitors to impatience on first visit
- 'Reduce unused JavaScript' flag persists—suggests Bootstrap, jQuery, or framework bloat isn't being tree-shaken or code-split; you're shipping features users don't need
- No visible caching strategy mentioned; no evidence of browser caching headers, server-side caching, or CDN optimization—performance likely rides on luck rather than strategy
Recommendations
-
Audit and remove unused JavaScript high
Run Lighthouse's unused JS report and eliminate Bootstrap utilities, jQuery, or polyfills you don't need; target sub-2.5s LCP by trimming bundle size.
-
Implement aggressive caching headers high
Set browser cache to 1 year for static assets (CSS, JS, images), server-side cache for HTML (30 min), and enable gzip compression—these alone drop LCP by 500-1000ms on repeat visits.
-
Optimize hero image to WebP with srcset medium
Convert hero images to WebP (50% smaller), add responsive srcsets for mobile/desktop, and lazy-load below-the-fold assets—should shave 0.5-1s off LCP.
Accessibility
Accessibility is your least-broken category (20 ARIA attributes, proper landmarks), but you're missing obvious WCAG 2.1 Level A requirements like skip links and emoji labeling—good enough to pass an audit, not good enough to serve disabled users well.
Issues Found
- Skip link is absent despite 20+ internal links—keyboard users must tab through the entire nav to reach main content, violating WCAG 2.1 Level A
- Process timeline emojis (☕📐🔨🚀) lack ARIA labels—screen readers may announce them as 'coffee emoji' instead of 'Kennismaking' or skip them entirely, breaking the narrative for blind users
- No visible focus indicators mentioned; keyboard navigation likely has low-contrast focus rings or no visible focus state, breaking keyboard usability for users with motor disabilities
Recommendations
-
Add a skip link above the nav high
Insert an invisible anchor link ('Skip to main content') that jumps to the main landmark—enables keyboard users to bypass navigation in one keystroke.
-
Label emojis with ARIA or replace with semantic HTML medium
Wrap emojis in <span aria-label='Kennismaking'>☕</span> or swap for <svg> icons with proper <title> tags so screen readers announce them semantically.
-
Ensure visible focus indicators on all interactive elements medium
Test keyboard navigation (Tab key) and verify focus rings have minimum 3:1 contrast ratio; use CSS outline-offset: 2px for visible, accessible focus states.
Want to roast your own website?
Get AI-powered analysis with scores across 8 categories and actionable improvement tasks.
Try Roast by AI