Back to All Work

Theatre Projects

USA / UK / GlobalZero critical accessibility issues, resolved Google indexing errors, custom geotagging system live.
Theatre Projects project preview — WordPress, AWS S3, CloudFront, Custom Geotagging (IP-based), Schema Markup development by Deepak Jangra

The problem

Theatre Projects is a global theatre design consultancy, offices in New York, Denver, and London, with clients everywhere in between. By the time I got involved, the site had years of accumulated technical debt sitting on top of it. A WAVE accessibility audit flagged critical issues, missing labels, poor contrast, broken keyboard navigation. W3C validation came back with broken markup throughout. Every page loaded every script and stylesheet regardless of whether it needed them. Mobile navigation was broken on key devices. Worse, Google was actively reporting indexing errors that were keeping pages out of search results. The media library was bloated, and there was no systematic approach to SEO or performance underneath any of it.

What I built

Fixing the accessibility and standards debt

I went through the WAVE audit line by line and fixed every violation, labels, contrast ratios, keyboard navigation, ARIA attributes. Alongside that I repaired the broken HTML flagged by W3C validation and cleaned up script and stylesheet loading so each page only pulls in what it actually needs, instead of the whole site's asset library on every load.

Performance and media offload

I added lazy loading and WebP fallback images, minified CSS and JS with critical-path inlining so the page renders fast before the rest loads in behind it. The media library itself moved off the server entirely, onto AWS S3 with CloudFront in front of it, so images load from a global CDN instead of a single origin server.

SEO and structured data

I implemented schema markup across the site, Organization, LocalBusiness, Article, BreadcrumbList, and went through Google's indexing errors one by one until they were resolved. Metadata, OG tags, and Twitter Cards got a full pass, and I built out location-based landing pages with their own unique schema for each geographic market the firm serves.

A geotagging system that routes visitors to the right office

With three offices on two continents, showing every visitor the same generic contact block didn't make sense. I built a custom IP-based geotagging system that routes visitors to the right regional contact information automatically, NYC for the Americas east of the Mississippi, Denver for the western US states, London for Europe, Africa, Asia, and Australia. There's a manual override for anyone who lands in the wrong bucket, and each regional block pulls its content from a custom post type so the office details stay editable without a developer.

Mobile and content architecture

I rebuilt mobile navigation from scratch and fixed news pagination that was broken on mobile devices, added CTAs to the site's highest-traffic pages, and made sure touch targets met minimum size requirements throughout. The location pages themselves run on a custom post type with their own metadata, and the template logic automatically applies the correct regional schema based on which location page it is.

What actually changed

What changedBeforeAfter
WAVE critical accessibility issues12+0
W3C validation errorsMultiple per pageClean
Google indexing errorsActive, blocking pagesResolved
Page load blocking resourcesHeavy, unoptimizedCritical path only
Media deliveryServer-boundS3 + CloudFront, global
Mobile navigationBrokenFully functional

The engagement

This was a maintenance and optimization engagement rather than a ground-up rebuild, going through the site's accumulated technical debt systematically, then handling plugin updates, AWS infrastructure, and new features as they came up.

Is your WordPress site accumulating technical debt?

I clean up slow, broken WordPress sites and turn them into fast, search-visible platforms that your team can manage without calling a developer every week.