Penner Architectural • Commercial Manufacturing

Website, SEO, and Infrastructure Build for a National Commercial Millwork Manufacturer

Website Design, Product Copywriting, SEO, LinkedIn Marketing, Competitor Research, Email Infrastructure, Analytics, AI Image Generation

What I Walked Into

Penner Architectural makes commercial acoustic wood products (ceilings, wall systems, baffles, grilles, linear panels, curved reflectors) for architects and general contractors across the country. Their work has been installed in major airports, corporate headquarters in Bermuda, and across tens of thousands of square feet of commercial interiors. They’ve been doing this since 2003.

They had no website.

That’s the summary, but the reality was messier. The domains (pennerarchitectural.com and a sister site for their cabinet company) existed but had been transferred to a previous agency called Castlewood. Abe, the owner, didn’t control his own domains. The GoDaddy account showed “You don’t have any domains yet.” Getting those domains back required coordinating with the outgoing agency to initiate a GoDaddy account-to-account transfer, not an auth code transfer, which is what you’d use for an external registrar move, and not what Castlewood initially sent us.

The email situation was worse. Google Workspace had 7 seats costing roughly $510 per year. One of those seats belonged to a sales director who had been terminated months earlier. His account was still live, still holding over a gigabyte of company data. A second seat belonged to someone who had been inactive for five months with zero data stored. There were also two unused seats. The company was paying for four seats that served no one. Meanwhile, the contact form on the Penner Architectural site (such as it was) had been configured by the previous developer with his own domain as the From address (email@penner.owaiskhanportfolio.com), which meant every contact form submission was landing in spam. The site had no analytics, no SEO infrastructure, and the product descriptions on the homepage were all identical: the WordPress developer had left a hardcoded placeholder in the Elementor loop template.

This engagement came through a referral. Penner Architectural and their sister company PT Signature Cabinetry both signed on simultaneously in December 2025.

Building the Site

I quoted the Penner Architectural website at $10,400. After vetting 26 freelancers, I hired Muhammad, a WordPress developer, at $1,600 for the build. The scope covered design, build, product pages, and SEO implementation. Muhammad would execute the technical build and install Yoast SEO per a detailed package I’d deliver.

The first design direction call with Abe set the tone: bigger logo, rotating hero images, two forms (general contact and sample requests), and a product section anchored by actual product imagery rather than a generic “Why Us” section. The hero tagline we landed on (“Large Enough for Your Scope. Small Enough to Be Nimble.”) came from the flyer project that ran in parallel.

Product taxonomy was a project in itself. Abe’s list and the sales team’s list didn’t fully match. The categories had internal codenames (Mach 1 Grilles, Mach 2 Linear, Mach 3 Baffles, Mach 4 Flat Panels, Camby Curved Reflector, Stealth Micro Perf, Turbine Grooved, Diffuser, Wall Systems, Cubes) that couldn’t appear publicly on the site. Resolving the discrepancy between the two lists took a dedicated reconciliation session. We ended up with 12 confirmed products.

The sites launched February 16, 2026, three days past the original target, delayed by the domain transfer process. Both pennerarchitectural.com and ptsignaturecabinets.com went live the same day.

The SEO Package

Before the site launched, I ran a full competitor analysis across 9wood, Rulon, and Armstrong, 12 product categories each, 3 scraped sites, 12 research files. Key findings: Diffuser Panels had no direct competitor equivalent, which meant whitespace positioning. Armstrong was the strongest on sustainability language. 9wood went deepest on technical specs. Every competitor used some version of “warmth and beauty of natural wood” as a hook.

From that research, I wrote all 12 product pages: 5 parallel writer agents, a 7-sweep editor pass, and a batch audit before anything went to the client. The positioning angle we locked in: “The Manufacturer Who Shows Their Work.” Each product page led with a unique technical angle rather than generic benefits copy.

I also built a 927-line SEO implementation package for Muhammad covering meta titles and descriptions for every page, heading hierarchy, JSON-LD schema (5 schema types for Penner Architectural), sitemap configuration, alt text, and breadcrumbs. All 13 schema blocks were verified as valid JSON before delivery.

Then I ran a Playwright audit of the live site to check implementation.

Yoast was not installed. No meta descriptions. No schema. No sitemap (404 on every sitemap URL). Seven of eleven pages had no H1. The phone number in the header, tagged as an H2 on every page, was wrong: it showed PT Signature’s number, not Penner’s. I sent a 12-item punch list to Muhammad.

Six weeks later, a follow-up audit showed 60% of the original package implemented. Four Priority 1 items were still outstanding. This is where things stalled. Charlie, Penner’s sales manager, had also been sitting on a product descriptions email since February 3, accurate specs I needed to finish the product pages correctly. That email still hadn’t fully arrived by late May.

Muhammad gets things done. He also needs a detailed punch list and follow-up. That’s a management overhead I factored in too late.

The Infrastructure Work

The email restructuring was a $300 one-time job. The scope: delete the terminated sales director’s seat (after migrating his data), rename the inactive accounting seat, add the sister company’s domain as a secondary Google Workspace domain, and fix the MX records for ptsignaturecabinets.com, which had zero MX records and was bouncing every email sent to it. Net annual savings for Abe after the cleanup: roughly $397 per year.

The execution hit one unexpected snag. Google’s account deletion UI had changed since I’d last documented the process. The option to transfer data during deletion was gone from the modal. I had to route around it using Google’s Data Migration tool before deleting the seat.

Analytics took longer than it should have. I installed GA4 and Google Tag Manager on Penner Architectural in mid-April. Eight days later, GA4 showed zero data received. I ran a full debug session: confirmed GTM was in the page head, confirmed the GA4 tag was in the published container, ran headless browser tests, checked consent setup, checked trigger logic. Everything looked correct.

The measurement ID had a typo. G-Q7EXQ1DZXC (letter Q) had been entered as G-07EXQ1DZXC (number zero). Every hit was firing correctly but landing in a property that didn’t exist. The investigation was thorough. It was looking at the wrong thing.

The Image Problem

Penner Architectural sells visual products to architects who need to picture them in real spaces. The company had almost no product photography. The plan was AI-generated images: 12 products, 14 room types, 72 priority images to start.

I built an image generation workflow in February. The workflow documented tool features, generation parameters, and a prompting system. Then I tested it in a browser and discovered that every feature I’d documented (High-Fidelity Slots, weight sliders, Thinking Mode toggle, Seed pinning, Pin References, 4K Micro-Texture toggle) didn’t exist. None of it. Gemini had generated a detailed, plausible-sounding workflow for tools that weren’t there. The actual Google Flow UI has an aspect ratio dropdown, an outputs-per-prompt selector, a model selector, and a create button.

I confirmed the hallucination by testing the real product and then directly asking Gemini about the discrepancy. The workflow had to be rebuilt from scratch based on what the tool actually does. Version 2 locked in a reference-image-first approach: crop the reference image to the product surface only, use a short prompt, let the reference carry the weight. That produced dramatically better results than text-only prompting.

As of late May 2026: 11 of 72 images complete (Grilles and Linear). The remaining 61 are in progress using an updated ChatGPT mockup approach.

Where It Stands

The site is live. Twelve product pages are written (four live, eight created as drafts in WooCommerce pending images and Abe’s spec verification). Analytics are working. Email is clean. LinkedIn marketing is active, targeting the architects and general contractors who specify commercial millwork. The competitive landscape is documented: a 970-line research spec, 46 companies analyzed, 115 scrape operations, with a full competitor handbook covering the top six threats. The finding that mattered most: no pure-play millwork competitor has a dominant Google Ads presence. First-mover opportunity for national search.

A national Google Ads proposal went to Abe at the end of March: $850 setup, $750 per month management, $2,500 per month ad spend. Abe lost a large contract in April. The proposal is still open. Everything at the national level is waiting on one bid closing.

The relationship spans both companies under Penner Holdings. We’re five months in.

Building something similar? Tell me what you need.

Start a conversation