Skip to main content

How We Reduced 1,728 Blog Builds to 48 on Nodesify

Illustrative workflow: Regional URLs, Permanent redirects, Canonical article, Language links. Case study: reduce duplicate article builds.Open full-size image (new tab)

Nodesify’s website generated 36 regional versions of every blog article, although the article bodies were available only in English. For the 48 articles in our build on 11 October 2026, that meant 1,728 generated article files. We changed generation to use the available content edition and verified that the build produced 48 article files instead.

This is a case study of our own website. The result is a verified reduction in generated files, not a measured improvement in Google rankings, customer enquiries or revenue. The article count is the snapshot used for this work. Publishing this case study adds another article.

What the crawler revealed

Our Ahrefs crawl showed the same article fetched under regional paths such as /en-my/blog/…, /en-qa/blog/… and /ja-jp/blog/…. The surrounding navigation changed language, but the main article did not.

The XML sitemap already listed the English edition. Blog cards also linked to that edition. The missing connection was the language selector: it constructed a regional URL for every available country and language, even when no translated article existed.

This distinction matters when reviewing a crawl. A URL can be discoverable through internal links without appearing in the sitemap. A translated navigation label also does not establish that the article itself has been translated.

Why noindex did not solve the crawling problem

The duplicate article pages carried noindex. That tells a supporting search engine not to index the page after fetching it. It does not remove the link or eliminate the request needed to read the instruction.

We wanted one public article destination while preserving translated pages where substantive translated content exists. Our change therefore addressed route generation, language links and redirects together. Google’s duplicate URL guidance describes permanent redirects as a consolidation method when duplicate pages are being retired.

The implementation decisions

Surface Before Change
Article generation Every locale multiplied by every active article Only available content editions generate article files
Language selector Constructed a locale-prefixed path Uses the shared content availability policy
Old regional article URL Served a duplicate English article Redirect handler sends it to the English article
Public article links Some components used regional paths Link to the available article edition
Translated service pages Available at explicit locale URLs Keep their translated editions

Our site uses Astro and Cloudflare static assets. Existing static files are served before Astro middleware runs. Adding a redirect only in middleware would therefore leave those files reachable. Stopping generation of the duplicate assets was necessary for their requests to reach the redirect handler.

The default English files remain the backing assets for our clean public /blog/… paths. That is an implementation detail, not another set of article links we want visitors to navigate.

What we verified

The production build completed, and TypeScript compilation passed. We inspected the generated article files and found 48, all under the default English backing directory. That removed 1,680 regional article files from the measured build, a reduction of approximately 97.2%.

We also inspected the generated HTML of an existing article. Its language-selector links pointed to the clean article URL, and its canonical tag matched that URL. The redirect implementation preserves query parameters and resolves the renamed legacy article to its current English destination.

These checks establish the build output and link behavior. They do not establish that every search engine has processed the change. Deployment verification still needs live HTTP status checks, followed by a fresh crawl. A crawl already in progress can contain old pages and should not be used as proof of the final result.

What we would measure next

Keep the evidence appendix tied to 11 October 2026, 48 articles. The recorded result is 36 × 48 = 1,728 generated files before and 48 after, with 1,680 removed. The historical raw command transcript and exact source revision are not attached to this article; the narrative above is the published record, not a newly rerun build. Current article growth must not be compared with that old denominator as if it were the same run.

Evidence field Representative record and status
Alternative URL /ja-jp/blog/how-to-create-a-business-website illustrates the regional duplicate shape
Intended public destination /blog/how-to-create-a-business-website
Canonical and language links Expected to target that public English edition; generated-HTML behaviour was inspected in the recorded work
Old URL response Permanent redirect expected from the implementation; live response for this example remains unverified here
Recrawl No dated post-deployment crawl result is attached; unresolved

These representative paths explain what to check; they are not a claim of a newly captured HTTP response. Preserve status, Location, final canonical and crawl date together when closing that verification loop.

Frequently asked questions

When should translated URLs remain separate?

When distinct reviewed main content exists and the editions are intentionally maintained. Navigation translation alone did not justify separate article bodies in this case.

Why can a noindex URL still be crawled?

The crawler may fetch it to discover the instruction, and internal links can continue exposing it. Review links, generation and response behaviour together. An architecture review can assess those boundaries on your current platform; this Astro example is not a reason to rebuild in WordPress.

Continue the measurement record

We would compare duplicate article requests before and after deployment, check that important canonical pages remain indexable, and review Search Console clicks and impressions for those pages. Qualified enquiries are a separate business measure. A smaller crawl alone does not prove that a site attracts better customers.

We would also check other sources of URL multiplication, such as contact-form preselection parameters. The aim is to preserve useful visitor behavior while avoiding separate crawlable URLs for states that do not provide distinct content.

Apply the same review to your website

Start with one duplicated article. Trace which component links to its alternative URLs, identify whether each edition has distinct main content, and check which layer serves the response. Align your generation policy, internal links, sitemap and redirects before expanding the change to a whole page family.

Our AI-built website checklist covers the wider launch review. For a codebase investigation, our Astria engineering guide explains how we inspect relationships and their supporting evidence. If you need help with your own site, see our website development service.

Photo of Nodesify Technical Team

Nodesify Technical Team

Technology Team

The Nodesify Technical Team writes practical guides to software delivery, AI evaluation and business automation. Articles explain scope, acceptance evidence, operating responsibility and the limits of illustrative examples.

Understand Your Software Risks

Bring the app URL, one failing journey and available system evidence. Agree findings, priorities and unresolved questions as the review output. Explore the scope and delivery approach, or tell us the problem you want to solve. Start with a free introductory conversation. Any paid work is scoped and agreed separately.