Progress Horizon Trading: 144 products a procurement engineer could not find

A distributor representing 22 manufacturer brands across 144 products was invisible to the engineers who buy from it. The catalogue answered at three different addresses, so search engines had to choose between three copies of every page. It carried Arabic on one product out of 144, in a market where the specification is read in Arabic and the part number is searched in Latin. And the quotation requests it produced arrived with no record of which product or which page had caused them, so nobody could say which of the 22 brands was earning its shelf space. Alnitak rebuilt it in one week: one locale-aware route tree, 478 bilingual URLs generated from the catalogue itself, a content API with bilingual fields that cannot silently fall behind, an admin dashboard where publishing a product triggers the deploy, and twelve attributed enquiry surfaces across five channels. Alnitak also built the version before it, in 2024. In August 2026 we audited our own work, wrote the four failures down in a document the client still has, and restored the site after an outage without sending an invoice. Both halves of that are on this page deliberately: the failure is the reason the rebuild is specified the way it is.

What changed, measured

  1. 4 to every routeMetadata coverageTitles, descriptions, self-referencing canonicals and hreflang existed on four routes before the rebuild. They are on every route now.
  2. 478Bilingual URLs in one sitemapGenerated from the catalogue itself, both languages, with real modification dates rather than invented ones.
  3. 1 to 144Products carrying ArabicArabic existed on one product in the whole catalogue. It is a required field at the data layer now, so it cannot quietly fall behind.
  4. 12Attributed enquiry surfacesTwelve calls to action across five contact channels, each reporting its own event with the product, the page and the visitor's language.
  5. No invoiceFor the restore after the outageThe domain registration lapsed and the certificate expired with no owner on either side. We put the site back and did not bill for it.

What it is built to produceBuilt so a procurement engineer finds the product in the language they search in, and the sales team can see which brand and which page produced the quotation request. Indexing coverage and enquiry sources are measured against the Day-0 baseline both sides signed, and reported at the 120-day checkpoint. No traffic or ranking figure appears on this page before that window closes.

The situation any distributor will recognise

The authority was never in doubt. Twenty-two manufacturer brands, 144 products, 53 subcategories, and infrastructure projects that had already been supplied. The problem was that none of it survived the trip to a search results page.

A procurement engineer looking for a specific product family found either nothing, or a page with a product name and no specification underneath it. The catalogue lived in spreadsheets and in the heads of the people who had sold from it for years. That is the ordinary shape of this problem: a business whose offline reputation is far stronger than anything a stranger can find, and no way to tell which of the two a lost tender was decided on.

We audited our own work

In 2026 the domain registration lapsed for roughly three months and, separately, the TLS certificate expired. Neither had an owner, not on the client's side and not on ours. Search engines forgot most of the URLs and every visitor met a browser security warning. We restored the site and did not send an invoice for it, because the gap was ours to close.

Then we did the part most vendors avoid. We audited the build we had shipped two years earlier with the same rigour we would apply to a stranger's, and we wrote down what we found, including the half that was our own doing. A client cannot judge a technical claim. What they can judge is whether the people they hired will tell them something inconvenient without being asked.

The four failures, named

The audit found four problems stacked on top of each other, and the stacking was the point: fixing any one alone would have changed nothing measurable.

The lapsed registration and the expired certificate were the first two. The third was ours: two parallel route trees served the same product at two or three addresses, with metadata on only four routes and a hard-coded left-to-right layout underneath an Arabic switch. The fourth was also ours: a content void, with a median of zero words on a product page and Arabic present on one product in 144.

We wrote it as a three-layer model, which is the version a non-technical owner can hold in their head. Can a search engine reach the site. Can it understand what it reached. Is there anything on the page worth showing to a person. Each layer got a phase, an entry gate and an acceptance criterion. Then we walked the client through it on a 45-minute screen share, with the commercial decision-maker in the room and no proposal attached, and followed up with a one-page plain-language summary they could forward internally without editing it first.

The rebuild, in one week

Between 27 and 30 August 2026, 18 commits changed 555 files. Routes were consolidated into a single locale-aware tree, English at the root and Arabic beneath it, chosen specifically so that every existing backlink and indexed address stayed alive. Every route now emits its own title, description, self-referencing canonical and hreflang. The sitemap is generated from the catalogue, 478 URLs across both languages, with fabricated modification dates removed rather than invented.

The layouts were rebuilt for right-to-left rather than mirrored, with the two scripts served by separate subset typefaces. A glossary-driven script filled the Arabic catalogue and was written to refuse rather than pass English off as Arabic. The site moved to a self-managed server with timestamped releases and symlink rollback, and the images moved to a pipeline that generates AVIF and WebP and never upscales a source file, because a catalogue's page weight is mostly photographs of products.

The real fix: publishing without a developer

The product pages were empty not because nobody had anything to say about the products, but because saying it required an engineer. Any content plan that ends in a developer ticket dies in the backlog. That is the single most common reason a good site stays thin.

So the rebuild included the part that was missing from the original requirement: an Express and MongoDB content API with 12 bilingual document models, every text field a required English and Arabic pair, behind an 11-screen admin dashboard served through a server-side proxy. Publishing from the dashboard triggers a production deploy that bakes the live content into the site. Required-field validation at the data layer is doing the real work here: it is what stops the Arabic column from quietly becoming an empty column six months after launch.

That is the requirement we should have written in 2024, and it is the one that turns a website from a delivery into an asset the client operates.

Where the enquiries come from

A distributor asks one commercial question of a website: which products and brands get looked at, and which of those turn into a quotation request, in which language.

Twelve call-to-action surfaces across five contact channels each report their own event, so a click on a map is never quietly counted as a lead. A single object describes where a contact attempt came from and which product it concerned, and that same object feeds both the analytics event and the quotation form's prefill, which means the attribution and the lead physically cannot disagree with each other. Catalogue browsing reports in the standard commerce event shape, so most-viewed products and brands are a built-in report rather than a custom build. The visitor's language rides on every event, so the client can finally see whether Arabic visitors behave differently from English ones.

What is measured, and what is not yet

Every claim is measured against a Day-0 baseline both sides signed before the rebuild shipped: index count, Search Console coverage and lead sources, archived. The client hears from us monthly with the index count, and the comparison is reported at the 120-day checkpoint. That window has not closed, so there is no traffic figure on this page and there will not be one until there is a real one.

Content is the current ceiling. The next phase publishes the specification tables, standards references and application notes the client already owns, validated by its own engineers, through the dashboard we built. We are still the team running it.

Key Features

  • One address per product, in both languages, each with its own title, description, canonical and hreflang, so a search engine never has to choose between three copies of the same page
  • A sitemap generated from the catalogue, 478 URLs across both languages, so a product added in the dashboard is a crawlable address the same day
  • Arabic engineered from the root element out rather than mirrored, with Arabic and Latin scripts on separate subset typefaces and technical terms left in Latin the way engineers actually search for them
  • A content API with 12 bilingual document models where every text field requires an English and Arabic pair, so the second language cannot silently fall behind the first
  • An 11-screen admin dashboard where publishing triggers the production deploy: a product description is a form field, not a developer ticket
  • One structured-data graph defining the company, its parent group and all 22 brands once, referenced by every page that mentions them
  • Twelve calls to action across five contact channels, each reporting the product, the page and the language, so a map click is never counted as a lead
  • Timestamped releases with symlink rollback on a self-managed server, and an image pipeline that builds AVIF and WebP without ever upscaling a source file

Business Impact

The client owns a catalogue that search engines can reach, read and attribute, and that its own staff extend without calling us — a product description is a form field, not a developer ticket, which is the part that actually changed how the company works day to day. Metadata went from four routes to every route. The sitemap went from a partial list to 478 bilingual URLs. Arabic went from one product in 144 to a required field on all of them. Quotation requests now arrive carrying the product, the page and the language that produced them, so the sales team can see which of the 22 brands generate enquiries instead of guessing. What is deliberately absent is a traffic or ranking number: those are measured against a baseline both sides signed before anything shipped, and reported at the 120-day checkpoint, never screenshotted.

Send your site link. We check before we quote.

Send us your domain. You get the first crawl, indexing and speed findings in writing within one working day, before anyone quotes you anything.

Message us on WhatsApp

Or send your site link and a person replies within one working day.

No mailing list. One reply, from a person, in writing.