Three Sites Shipped With Another Site's Branding Because the Find-and-Replace Missed One Folder

Copying a working site is fast and reintroduces the same class of error every time unless something checks for it.

Evidence

Three sites in the portfolio were built by copying an existing sibling site. On each, the rename pass was applied to the infrastructure PHP files and never to the templates/ directory.

Because templates in this family hardcode their own site's name and slugs, the result was pages carrying the wrong brand name in headings and hero copy, with call-to-action buttons pointing at the source site's URLs, which do not exist on the new domain.

On one site, 11 to 12 occurrences of the wrong generation name appeared on every single page. Every route returned HTTP 200 throughout.

Methodology

Found by reading the rendered page rather than trusting status codes. An initial check missed it entirely because the search pattern used a regex quantifier that basic grep does not support, which silently matched nothing and returned a false all-clear.

Verified afterwards by extracting every literal template link and resolving it against each site's own domain.

Two things made this hard to see. The first is that HTTP 200 tells you a route resolved, not that the page is correct. The second is that the initial check produced a confident negative result that was simply wrong, which is worse than no check at all.

The correction was to stop checking by hand and build something mechanical that fails loudly.