Kulturní přehledy

Rebuilding a culture listings portal off a ten-year-old WordPress install onto a custom catalogue. Five thousand events, ten years of indexed URLs, an editorial back office, an ad system and programme imports from organisers.

Status:
Finished on a staging server with the complete content. Waiting for the domain to move — kulturniprehledy.cz still serves the old site.
Kulturní přehledy — the new portal, first screen
Kulturní přehledy — the original WordPress site
Original siteNew site

Measured result

Lighthouse — performance
99–100Lighthouse 13.5.0, desktop, staging homepage, 3 runs
Lighthouse — accessibility
96Lighthouse 13.5.0, desktop, staging homepage, 3 runs
Lighthouse — best practices
100Lighthouse 13.5.0, desktop, staging homepage, 3 runs
Layout shift while loading (CLS)
0Lighthouse 13.5.0, desktop, staging homepage, 3 runs
Legacy URLs checked against the new site
6,226Every legacy URL requested against staging, 0 failures, 2026-09-25
Events migrated from the old site
5,036Export from the legacy WordPress database, 2026

What we are proud of

Kulturní přehledy — the Hamnet film page with poster, rating and trailer

Films that look like the cinema

Every film in the cinema section has a page of its own, like a film database: the poster, a full-width still, the tagline, rating, genres, running time, country and director. All of it loads automatically from TMDB, the international film database.

  • A film attaches to its event on its own when the editor saves
  • Uncertain matches wait for the editorial team — nothing is published blind
  • The trailer plays straight from the page
Kulturní přehledy — the Hamnet crew table and film stills

The crew in a table, not a paragraph

Under the synopsis, the crew sits in a clear table — writers, music, camera, editing, production, even the source material. What the film header already shows, such as the director, year and running time, is not repeated. A gallery of stills follows right below.

  • Roles in a considered order, not a random one
  • Nothing repeated from the film header
  • Stills from TMDB right under the table
Kulturní přehledy — the cinema section with filters and film posters

A cinema section that is finally full

On the old site the cinema section held not one current film — the newest is from February 2026. Today an automatic programme import from GoOut fills it, and the films line up as posters rather than lines of text.

  • Quick picks: Today, Tomorrow, This weekend, Next week
  • Posters in one even 2:3 grid
  • An archive of past titles beside the current programme
Kulturní přehledy — the wall of partner tiles

A partner wall instead of banners

The portal’s partners have their own wall of tiles in several formats, managed from the back office. Campaigns have dates, the system counts impressions and clicks, and each advertiser gets a monthly report.

  • Campaigns with a start and an end date
  • Impression and click counting, exports for advertisers
  • Campaign prices and a revenue overview in the back office

Context

A portal for finding what is on — concerts, cinema, theatre, exhibitions, festivals. It runs on WordPress that has accumulated five thousand events, dozens of plugins and a runtime that no longer receives security fixes over ten years. The editorial team enters every event by hand, and advertising is sold without anyone counting how often a banner was shown.

What was wrong

  • Runs on PHP 7.4, which has had no security patches since November 2022
  • Five thousand events in a database nobody has cleaned in ten years
  • Ten years of indexed URLs — any change to the structure costs search positions
  • Every event is typed in by hand; nothing is imported from the organisers
  • Ad slots are sold, but impressions are never counted

Constraints

The old site has to stay up throughout — a listings portal cannot disappear mid-season. Every URL must keep working one to one, or ten years of search positions go with it. And the rebuild runs in phases, because the editorial team keeps working in the meantime.

What we did

  • Every event, venue and media file migrated off the old install — over twenty thousand files
  • All 6,226 legacy URLs checked against the new site, each one lands on the right page
  • A custom catalogue instead of WordPress — concerts, cinema, theatre, exhibitions, festivals, with search that understands Czech
  • A new look: dark, bold and built around the event posters
  • A back office for the editorial team: events, venues, media library, review queue, users
  • A custom ad system — campaigns, creatives, placements, impression and click counting, monthly reports for advertisers
  • Programme imports from organisers and film sources into a review queue, instead of retyping
  • Bilingual interface, Czech content — an English page with no Czech translation canonicalises to the Czech one, so hreflang never claims a translation that does not exist

Want the same?

Send us your website address and within 48 hours you'll know what could be improved and what it would cost.