Phone:

+92-3228361902

Email:

muhammadsaadu9@gmail.com

© 2026 Muhammad Saad. All rights reserved.

WordPress · Case Study

CarShift24

A vehicle-transfer website rebuilt on WordPress and tuned from 26 to 95.

  • WordPress
  • Elementor
  • REST API
  • GDPR

CarShift24 — Vehicle Transfer Website

Live: https://carshift-24-1pxemcrlyc.live-website.com · Client: CarShift24 (Sven Juliger), Boppard, Germany Scope: Full website — design port, build, performance, SEO, GDPR compliance · Year: 2026 · Language: German

A complete website for a German vehicle-transfer business, rebuilt from a static HTML template into a maintainable WordPress site — then taken from a 26/100 performance score to 95 on desktop, with perfect SEO, accessibility and best-practice scores.


CarShift24 — homepage

Results at a glance

Before After
Performance (desktop) — 95 / 100
Performance (phone) 26 / 100 75 / 100 locally, 90+ on PageSpeed Insights
SEO 92 100 / 100
Accessibility 94 100 / 100
Best practices — 100 / 100
Largest paint (phone) 13.7 s 2.6 s
First paint (phone) 5.2 s 1.6 s
Server response 2.2 s ~0.6 s
Page weight (phone) 1,694 KB 578 KB

Scores from Lighthouse. The phone figure is measured from a laptop in another country to a German host, so it reads lower than PageSpeed Insights, which runs next to the server; the client confirmed 90+ there.


The brief

The client had a finished HTML/CSS/JS template he liked and a written requirements document. The instruction was specific:

The website must look exactly like the template. Only the colours change: red becomes gold; black, gold, silver.

So this was not a redesign. It was a faithful port of someone else's visual design onto WordPress, in a way the client could maintain himself — plus everything a German business site legally needs.

What was built

16 pages

Section Pages
Core Startseite, Über uns, Leistungen, Ablauf, Galerie, Kontakt
Services Kundenauslieferungen, Werkstatt- & Werksfahrten, B2B-Überführungen, Leasingrückgaben, Deutschlandweit & international
Legal Impressum, Datenschutz, Cookie-Richtlinie, AGB, Widerrufsbelehrung

Interface work — every interaction hand-built in vanilla JavaScript: word-by-word heading reveals, a cross-fading hero, a services slider (auto-advance, arrow controls, swipe on phones, one card per screen), an eight-step process band, a height-animated FAQ, a filterable 18-image gallery with lightbox, hover-expanding cards, counters and seamless marquees.

Trust and compliance — a GDPR cookie banner with equal accept/reject options, consent-gated analytics, self-hosted fonts, Impressum, Datenschutz, Cookie policy, AGB and Widerrufsbelehrung, and a contact form routed to the client's enquiry address.


Three problems worth describing

1. The site was unusably slow — and the first fix was invisible

The first measurement came back at 26/100 on phones: 13.7 s to the largest paint, 1.7 MB per page, 4.2 s of blocked main thread. Four causes, in order of damage:

  • The server rebuilt every page from scratch (1.7–5.2 s before the first byte). A page cache took this to ~0.6 s.
  • Hero photos were CSS backgrounds, which never lazy-load and always download at full size: three slides pulled 1.08 MB before anything appeared. Converting them to real image elements with responsive sizes and WebP cut page weight by 75%.
  • Scripts the design never used: the page builder's bundle, the header/footer plugin's bundle and jQuery were all removable, because every interaction was already custom code. The homepage went from 12 script files to zero.
  • Fonts and icon sets: Font Awesome loaded ~140 KB for exactly two icons, which were redrawn in CSS.

A hard-won detail: after installing the page cache, a whole measurement run was invalid because the cache was serving the pre-optimisation HTML. Every publish now clears the cache automatically.

2. Real photography replaced every stock image

The client sent 39 phone photos over several rounds. Each was matched to the slot it fitted — the classic VW Caddy to the Oldtimer sections, the Mercedes GLC to the dealer and workshop cards, driving shots to the "unterwegs" gallery filter, and the owner's portrait to the contact card (cropped twice, square for the round avatar and 3:4 for the card).

Every licence plate was blurred before upload: in Germany a plate is personal data. The first crop of the owner's portrait put his face off-centre in the circular frame, so it was re-cropped and replaced.

The site now runs on zero stock images, and the social preview images were regenerated from the new photos so shared links show the real cars.

3. SEO and accessibility finished at 100

Beyond per-page titles, descriptions and canonicals: the business is described as a local automotive business with its real address and phone, pages carry breadcrumb and FAQ structured data, legal pages are noindex and excluded from the sitemap, and each page has a purpose-built 1200×630 JPEG social preview.

Three defects found in the final audit were fixed in the site's own scripts: icon-only links had no accessible name, the circular badge text used aria-label on an element that may not carry it, and the accordion rendered questions as links with no destination. The FAQ is now keyboard-operable as a side effect.


How it was built

  • WordPress + Elementor (free), Header & Footer templates, Contact Form 7, Rank Math SEO, Cache Enabler
  • Driven entirely through a REST API — no clicking in the editor. Python builders composed the page trees and CSS and pushed them, which made every page reproducible and reviewable.
  • ~95 KB of hand-written CSS in nine parts, scoped per page, plus ~26 KB of vanilla JavaScript.
  • Verified with scripted browser tests rather than by eye: console errors on every page at four widths, a 242-link crawl, a responsive audit at 360/390/768/1024 px, 28 cookie-banner checks, and a live contact-form submission whose delivery was intercepted so nothing reached the client's inbox.

That test layer caught things review would have missed: a drag handle clamped to 3 px, an arrow row 4,080 px wide on phones, a slider that rewound at its loop point, cut-off German compound words at 360 px, and a form that "worked" while logging errors.


Honest notes

Nothing on the site was invented. No testimonials, review counts or case-study statistics appear, because none were supplied — the sections built for them were removed rather than filled with fiction. Prices read "Auf Anfrage", and opening hours were deliberately left out of the structured data.

Still open at handover: the move to the final domain (car-shift24.de), Google Search Console verification, a GA4 measurement ID, an English version, and the client's own payment terms for one AGB paragraph.

Gallery

Leistungen Ablauf Galerie Kontakt Homepage on mobile