bnevol
Case Study ushistory.org
Case Study · ushistory.org

Thirty years of United States history, rebuilt for the next thirty.

One of the internet's oldest free history libraries, moved onto digital infrastructure built to carry it forward, and handed back with its audience, its addresses and its search standing intact.

ushistory.org has taught United States history to the internet since 1995, and more than 600,000 people visit every month. We moved all 2,434 pages onto a single modern platform with one template system, kept every address the last thirty years had handed out working, and launched without a minute of downtime. The archive is now on infrastructure the organization can maintain, extend and plan against.

Client
Independence Hall Association, on behalf of ushistory.org
Sector
Nonprofit · Education · Digital publishing
Location
Philadelphia, Pennsylvania
Engagement
Spring 2026 to August 2026
Status
The rebuilt ushistory.org shown on desktop and mobile
At a glance
2,434
pages migrated and rebuilt
6,212
redirect rules protecting legacy addresses
2.3M
words of content preserved
36 of 36
pre launch verification gates passed
0
minutes of downtime at cutover
30 years
of search authority carried forward
512
pages restored that had never been reachable on the new platform
380
photographs and illustrations recovered and returned to their pages
1,890
pages given search descriptions
51,315
annual visits behind the legacy address patterns found and fixed on day one
6
subdomains audited, including a full microsite on a separate host
Measured on launch day · search visitors only
+44%
pages read per visit, against a 51 Sunday baseline
+32%
above the single best Sunday of the preceding year
+13%
clicks from search on launch day, against the previous Sunday, measured by Google
The client

One of the most widely read free history resources in the world

The new US History brand mark

The Independence Hall Association is a Philadelphia nonprofit founded in 1942 to advance the preservation of the city's historic district. In 1995 it put United States history on the web, and ushistory.org became one of the most widely read free history resources in the world: complete online textbooks, the founding documents in full text, the people and places of the nation's founding, and teaching material used in classrooms across the country.

Three decades of continuous publishing produced something genuinely rare. A domain authority of 70. More than 600,000 monthly visitors. Millions of words of original scholarship. And an inbound link profile built one citation at a time since the Clinton administration.

It also produced a website that had been added to, and never rearchitected, for thirty years.

70
domain authority
600K+
monthly visitors
1995
publishing since
The challenge

A site built incrementally over three decades, without a unifying architecture

01

The infrastructure had outlived its support window by fifteen years

The site ran on Windows Server 2003 R2 with IIS 6.0. Microsoft discontinued the operating system in 2009 and ended support for the web server in 2015. Neither had received a security patch in over a decade. It ran from a single instance with no failover. The organization held its own copy of the site files, so the exposure was interruption and a slow return rather than loss of the material.

2003 · server deployed2009 · last OS security patch2026 · rebuild
Seventeen of its twenty three years in service ran without an operating system security patch
02

Four technologies, twenty stylesheets, no template system

Pages were rendered across Classic ASP, PHP, .htm and .html, with no consistent logic governing which was used where. Some ASP pages called Microsoft Access databases. At least twenty distinct stylesheet sets were distributed unevenly across sections. There was no unifying template system, so every page was, in effect, hand built. The site was built incrementally over three decades without a unifying architecture, and each layer carries the conventions of the year it was added.

Exhibit · The legacy site Captured before the rebuild: hand built pages, table layouts, competing stylesheets, advertising in the margins.
A legacy ushistory.org textbook chapter before the rebuild
Textbook chapter 58, as served in 2026
A legacy ushistory.org page with a different stylesheet
Same textbook, different template
A third legacy ushistory.org page variant
A third variant, hand built like the rest
03

Most of the library was not reachable from search

Of the 2,434 pages, only around 70 were generating meaningful organic search traffic. The rest held the same scholarship. Structural inconsistency, four competing URL prefix formats with no enforced canonical, and largely absent metadata made those pages difficult for a search engine to tell apart. That put most of the archive out of reach of a search result.

Pages generating meaningful search traffic~70 of 2,434
97 percent of the archive, out of reach of a search result
04

One domain was really several sites

A prior assessment had described the site as one domain behaving as four, meaning the four combinations of protocol and hostname that all served content with no canonical version enforced. That was true, and it was only part of the picture.

We ran a live DNS and certificate audit host by host rather than working from the inherited crawl, and found six subdomains beyond the main site. Most were infrastructure or aliases. Two held content, and neither appeared in any prior inventory. One was a blog that had been dead for years: confirmed defunct and retired. The other was a full microsite about Octavius V. Catto, the nineteenth century Philadelphia civil rights leader, running on a separate host and a different content management system. Roughly twenty sections including a civil rights timeline, teaching material, lesson plans and educator resources. Real, substantial content belonging to the organization.

ushistory.org infrastructure alias infrastructure defunct blog · retired found: full microsite Octavius V. Catto · ~20 sections infrastructure
The live host by host audit: six subdomains beyond the main site, two holding content, one on a separate host behind an invalid certificate

It had been invisible to every previous assessment for a structural reason worth naming. A crawler begins at the main host and follows links within that host, so a subdomain living on a separate server falls outside the crawl boundary unless it is explicitly configured to jump hosts. This one was also serving over an invalid certificate, so browsers and crawlers were stopped before they reached any content. Off the crawl path, and erroring out.

We took it to the client with a recommendation and a clear scope boundary, because it was genuine additional work and it deserved its own decision. It also happened to align exactly with the direction the organization had told us it wanted to grow.

05

Four technologies do not merge quietly

Bringing Classic ASP, PHP, .htm and .html under one content management system is not a matter of moving files. Each technology had carried its own naming conventions for three decades, and folding them into a single namespace surfaces collisions that do not exist while they are apart.

Case sensitivity
The legacy stack ran on Windows, where addresses are case-insensitive. The target runs on Linux, where they are not. Thirty years of hand written links contain mixed case, and every one would have failed silently. We resolved it at the edge with a canonicalization rule that folds case on page requests while leaving asset filenames untouched.
Reused identifiers
The textbooks reuse chapter codes across sections: the same short code identifies Federal Courts in one textbook, Taoism in another, and the Boston Massacre in a third. Under a flat namespace those are one address serving three pages. The information architecture scopes them by section, so each resolves to a distinct, readable address.
Extension variants
The same logical page frequently existed as .asp, .htm and .html, each with inbound links. All three forms had to resolve, to one canonical destination, without creating a chain.
Duplicate subtrees
Sections copied during earlier maintenance arrived as complete parallel trees competing with the canonical version. We compared subtrees by set membership, identified the live side against the artifact side, and retired the duplicates rather than routing them.
Shared media namespace
Assets scoped by directory for thirty years collapse into one library on a modern platform, where two files with the same name in different folders become a conflict. Reconciliation was done on full paths, never on filenames alone.
Each of these is invisible until the moment it is not, and each one produces a quiet, widespread failure on day one if it is discovered after launch rather than before.
06

And the migration had to be invisible to everyone else

The organization depends on this site. It carries advertising revenue that funds the mission, it is cited in classroom curricula, and its search position is an asset built over thirty years that cannot be rebuilt if it is lost. Every legacy address, including bookmarks and inbound links ending in .html, .htm and .asp, had to keep working on day one.

Our recommendation

Do not migrate the problem. Rebuild past it.

The brief we were first given was a server migration. Get the site onto something modern and stable, then think about the rest. We advised against it, and made the case in full.

A migration transfers a system's problems rather than resolving them. Classic ASP does not run on Linux, so moving to modern, cost effective infrastructure would have required a line by line rewrite of every ASP file regardless. The twenty stylesheet sets, the four page types, the absent redirect logic and the canonicalization problems would all have arrived intact on the new server, with the added disruption of having just been moved. And the post migration maintenance cost would have stayed unpredictable, which for a nonprofit budgeting against a fundraising runway is its own kind of harm.

Our recommendation was to bypass the migration entirely and rebuild from the ground up on a unified platform, protecting the search equity through disciplined URL mapping and redirect architecture. Done once, done properly, the organization ends up with a system it can maintain and forecast against, rather than paying twice and still needing the rebuild.

They agreed, and that is the project we delivered.

The legacy system the problems travel too Server migration × rewrite every ASP file anyway, keep the debt Ground up rebuild one platform, forecastable maintenance, equity protected
Approach

Seven phases, in the order that removes the most risk first

Phase 0
Protect what exists

Before any reconstruction, one narrow intervention: take a second independent copy of the legacy site into our own custody, alongside the organization's own archive and confirm the CDN in front of it was caching aggressively, so that a failure of the aging server during the rebuild window would not take the site off the internet. Low cost, no changes to the existing environment, and it meant the rebuild could not take the live site down with it.

Phase 1
Assess independently

We conducted our own current state assessment rather than working from the audit already in hand: server configuration, page type inventory, database dependencies, stylesheet structure, redirect logic, canonicalization patterns, metadata completeness, and content distribution across the directory hierarchy. The deliverable was twofold: a technical findings report, and an information architecture blueprint organized around how readers use the site.

That blueprint reorganized thirty years of accumulated structure into six content pillars:

Free online textbooks Historic documents Historic personages Philadelphia The Revolutionary War Historic places
The Cornerstones section of the new homepage, presenting the content pillars
The pillars as visitors meet them: the Cornerstones of the new homepage.
Phase 2
Inventory every address

A full crawl produced an inventory of every live URL, its position in the hierarchy, its inbound link profile, and its metadata. We pulled twelve months of search data so that every subsequent decision could be weighted by what people read rather than by the order the crawl returned. That weighting set the order of the information architecture, the redirect priorities and the recovery work.

Phase 3
Migrate, then recover

Content moved onto a modern, unified publishing platform with a single template system. Migration is where a rebuild of this age either succeeds or quietly fails, because a thirty year old site does not surrender its contents cleanly. Three recovery efforts ran alongside the main migration:

512 pages
Six sections that predated the import
Walking tours, the historic districts, Philadelphia oddities, the Battle of Brandywine, historic Germantown and National History Day Philadelphia, reconciled against the source archive and brought into the new platform.
70 of 213
Pages of trapped content
A cohort of pages had been captured during an earlier era as raw server source, escaped inside the page body. Seventy held real scholarship underneath the wrapper. We built an extraction pipeline that unwrapped, cleaned and validated each one, then verified all seventy against their originals before publication.
380 images
Returned to the paragraph they belong to
Restoration was anchored on the surrounding prose from the source pages rather than appended. The Birch engravings series recovered all twenty nine plates. The Betsy Ross star cutting instructions recovered all twelve diagram steps, which is the difference between a page that teaches and a page that describes.
The Electric Ben Franklin section on the new site
Ten subsections and 300 plus Franklin pages, reconciled and rebuilt.
The Betsy Ross and the US Flag section on the new site
Betsy Ross, with all twelve star cutting diagram steps recovered.
Phase 4
Design a reading experience

The site is an archive and a library, and the design says so. A serious, archival register throughout: Playfair Display for headings against PT Serif for body text, a palette drawn from brick, tan and parchment, and generous measure on running text because these are pages people read rather than scan.

Every landing surface was built from a single template pattern rather than individually, so the site now has a consistent visual system that the organization's own staff can extend without a developer.

The rebuilt ushistory.org homepage
The Declaration of Independence landing page
The Bill of Rights landing page
One template pattern behind every landing surface: home, documents, personages, textbooks and timelines.
The identity

A brand refresh, thirty years in the making

The rebuild was also a rebrand. We gave the organization a complete new identity: a US History mark drawn as a founders era monogram, a star anchored between two rules, and a palette of rustic browns, brick and parchment taken from the materials the archive is made of.

It reads as confidently stamped on card stock or cut into wood as it does in a browser tab, and it gives thirty years of publishing a mark drawn from the same materials as the archive.

Before · 1995 to 2026
The legacy ushistory.org masthead The second legacy ushistory.org banner
After · 2026
The new US History mark
The palette
Brick, tan and parchment, anchored by charcoal
343434
7A685F
BC7359
C17961
E7C89B
EAE9E7
F5F4F2
The type
Where United States History Lives.
Playfair Display carries the headings

PT Serif carries the reading. Generous measure, quiet contrast, and a bookish rhythm chosen for pages people sit with rather than scan, set against parchment drawn from the archive itself.

Aa Bb Cc0 1 2 3 4 5 6 7 8 9& ?
The surfaces
Default
The reading surfaces.
Parchment
Asides and callouts.
Secondary
Calls to action and accents.
Primary
Emphasis and section breaks.
Identity variations

Variants for light, dark and busy grounds, with a compact mark drawn for avatars, favicons and social profiles, so the brand holds together wherever the archive travels.

US History avatar on charcoal
On dark
US History avatar on terracotta
On brand color
US History avatar on light
On light
US History app icon
App icon
US History business cards The US History mark engraved in wood The US History mark stamped on a paper folder
Phase 5
Build the redirect architecture

This is where a rebuild of this age lives or dies, and it deserves its own section. See the technical deep dives below.

Phase 6
Launch against verification gates

No cutover without proof. Seven gates, thirty six individual checks, run against the production path before DNS moved and again through the edge after it.

Technical deep dives

The work that is invisible when it is done right

The dark personages spread of the rebuilt ushistory.org
The engineering underneath surfaces like this one: every page templated, addressed, described and verified.
01Preserving thirty years of addresses

Every bookmark, inbound link and search result accumulated since 1995 ends in .html, .htm or .asp. Those addresses had to keep working. We built 6,212 redirect rules mapping the legacy address space onto the new structure, with every destination verified by request before the rule was written, never derived from a naming pattern.

/betsy/flagfaq.asp /betsy/FlagFAQ.htm /betsy/flagfaq.html ushistory.org/betsy/flag-faq one canonical destination, verified by request, no chains

Two structural problems had to be solved rather than mapped around. First, a content management system's redirect layer only runs when a request has already failed, so any address the application claims and answers itself never reaches it. For a site whose largest section is a numbered textbook, that took a substantial share of the address space out of reach of any ordinary rule. We solved it at the web server layer, ahead of the application router. Second, the directory structure created by uploading legacy assets was shadowing the very redirects meant to catch those paths, which we identified and corrected before launch.

Address canonicalization was enforced at the edge: all four combinations of scheme and hostname now converge on a single canonical address with no redirect loops and query strings preserved, and a case folding rule catches the mixed case addresses that thirty years of hand written links inevitably contain.

02Descriptions written for 1,890 pages that had none

Almost none of the archive carried descriptions. We wrote and applied descriptions to 1,890 pages, derived from each page's own opening content rather than templated, with rules preventing navigation text, image captions and structural markup from leaking into prose. Every one was verified by reading it back from the live site after writing.

US
ushistory.org
https://ushistory.org › people › betsy-ross
Betsy Ross and the US Flag | US History
The story attached to Betsy Ross, what the record actually supports, and the flag itself: its design, its history banner by banner, and the rules that govern its use.

The 38 pages carrying the most traffic received hand written titles and descriptions, together with social preview cards, so that a link shared into a classroom or a message thread arrives looking like what it is.

03A cutover with a way back

The riskiest moment in any rebuild is the switch. We designed this one so the production path could be exercised in full before anything moved, and so that rollback was a single reversible setting rather than a restore from backup.

The new site was stood up on production infrastructure and reachable at its real hostname behind access control, so the entire production path could be tested under the real name and the real certificate days in advance. The cutover itself was a change of origin at the CDN rather than a DNS change, which meant no propagation wait for visitors and a rollback measured in minutes.

Verification ran as seven gates covering thirty six individual checks: the site serves itself, clean URL routing is alive, the redirects fire against named legacy addresses, the highest ranking assets return correctly at their exact indexed URLs, no staging references survive anywhere in the output, both hostnames serve with a valid certificate, and the site is indexable. Every gate passed against the production path before DNS moved, and every gate ran again through the edge after it.

36 of 36 verification checks passed, before and after the switch

The site went live at 1:12am. Advertising revenue continuity was preserved through the change without a gap.

Outcomes

What was verified at launch

The rebuilt site went live on 30 August 2026. What follows is the day one snapshot: early by design, because day one is the right moment to assess launch impact, and it will be extended and restated as longer stretches of performance data close. A rebuild changes the address of every page, so an honest read has to control for everything that changed alongside it. We compared Sunday against Sunday, because this site's weekends and school days behave nothing alike. We looked only at readers arriving from search, the largest and most consistent audience. And we used only the measures that were recorded the same way on the old site and the new one, setting aside the ones the change of platform had made incomparable. On that basis, the audience came through the transition intact and read considerably more of the site than it had before.

All 2,434 pages of the archive live on a modern, supported platform
Zero downtime at cutover, with rollback available in minutes throughout
36 of 36 verification gates passed, before and after the switch
Every high traffic legacy address confirmed working at its exact indexed URL
Advertising revenue continuity preserved through the transition
512 pages of content restored that had been unreachable
380 images returned to the pages they belong to
1,890 pages given search descriptions for the first time
A new identity and a consistent design system the organization can extend without a developer
Search clicks · measured by Google
30 August to 3 September 2026 · Search Console domain property

Every address on the site changed. The clicks did not notice.

A rebuild changes the address of every page, and the risk that matters is that search results stop resolving. Search Console counts clicks at Google's end rather than ours, which makes it the one instrument that spans a cutover without changing.

Across the five days from launch the site took 9,050 clicks from search, against 9,813 in the five equivalent days before it and 6,818 in the five days before that. Impressions rose 4.3 percent over the same window, from 889,253 to 927,628. On launch day itself, a Sunday, clicks ran ahead of both of the two Sundays before it.

Clicks from search 16 to 21 Aug 23 to 28 Aug 30 Aug to 3 Sep
Sunday8259851,114
Monday1,4131,7452,192
Tuesday1,4912,1432,121
Wednesday1,5322,4912,029
Thursday1,5572,4491,594
Five day total6,8189,8139,050

There is no step change at the switch. That is what 6,212 verified redirect rules are for, and it is the single result this project was most at risk of not achieving.

Measured on a Search Console domain property, which covers every hostname and protocol form the legacy site served. Thursday 3 September is provisional: Search Console finalizes its most recent days over the following 48 hours and that figure will revise upward.

The first full day · measured
Launched 30 August 2026 · Day one snapshot · Search visitors only, automated traffic excluded · GA4
A year of Sundays never moved. The first Sunday of the new site did: +44%.

Search visits on launch day were 6 percent above the previous Sunday, ordinary week to week movement. Holding an audience steady through a change of every address on the site is what the redirect architecture was built to do, and it did it. What moved was the reading. Across the fifty one Sundays of the preceding year, visitors from search opened between 1.22 and 1.47 pages per visit, averaging 1.35. That held through the September peak, the Christmas collapse, the spring term and the summer trough, while Sunday traffic itself swung almost seven to one. On the first Sunday of the new site, reading per visit rose 44 percent above the year's average, 32 percent above the best Sunday in it, and outside the entire year's range.

Pages read per visit, readers arriving from search · 52 consecutive Sundays, September 2025 to launch
fifty one Sundays · 1.22 to 1.47 · mean 1.35 +44% · launch day Sep 2025DecMar 2026JunAug 30
Across the year, the size of the audience made no difference to how much of the site it read. The Sunday after Independence Day brought four times normal summer traffic to a site about US history, and readers opened 1.32 pages, almost exactly the annual average. Christmas week traffic collapsed to a fifth of the autumn peak, and the figure barely moved. Across all fifty one Sundays the correlation between how many people arrived and how much they read was effectively zero. That is what makes the launch day reading worth reporting.
Pages per session
+44%
against the year's average of 1.35. 10 standard deviations above it.
Against the best Sunday
+32%
above the year's single best Sunday of 1.47, outside the entire range.
Clicks from search
+13%
on the previous Sunday, measured by Google Search Console.
Pages read
+50%
on the adjacent Sunday. Volume only travels week to week.
What we are not claiming

One day is one day. A new design attracts some exploratory clicking that may settle over the following weeks, and we will report it either way. Average time on the site rose sharply as well, and we are deliberately not reporting that, because the old site measured time less completely than the new one does and part of the difference is the instrument rather than the reader. Pages per session does not have that problem, which is why it is the measure we are standing on. These are early readings from a single day, published now because day one is the right moment to assess launch impact. They will be extended and restated as each longer window closes.

The record so far · reported every 30 days
Day 1 30 Aug 2026 +44% pages per session vs the year measured
Day 30due end of September · published either way

Same measures, same fixed baseline: 51 Sundays, 7 September 2025 to 23 August 2026. If a measure moves against us it is published anyway, with the same prominence. Two further measures are reserved for when they exist: pages earning search impressions, and impressions and clicks against the twelve month pre launch baseline.

Advertising is earned per page read, not per visitor arriving. Depth is the business model.

The site funds its mission through advertising, and advertising is earned per page viewed rather than per visitor arriving. A reader who opens two pages is worth twice a reader who opens one, from the same search result and the same click. That is why reading depth was the measure we built toward, and why the launch day result matters beyond being a pleasing number. Whether it holds is a question for the coming months, and we will publish what we find either way.

The American Anti-Slavery and Civil Rights Timeline on the new site
Among the 2,400 pages of scholarship now legible to search engines for the first time: 536 years of history in one timeline.
Search visibility · leading indicator
Rank tracking across the period containing the switch

The archive is moving up while Google reassesses it

Changing the address of every page on a thirty year old site sends Google back to reassess all of it, and that reassessment runs for months rather than days. It is still running. The direction it is running in is already clear.

1,500
net positions gained across the tracked set on Google desktop
1,952
net positions gained on Google mobile

Net movement, meaning after everything that moved down has already been subtracted. The gains by page below add up to more than the net figures for that reason.

Positions gained, where they came from
Most of the movement is on one page, and it is the most read page on the site.
Bill of Rights and later Amendments
2,961
Twelve other pages, between them
304
The other pages that moved up
Positions gained by each, on their own scale. Lesson plans, textbook chapters and biography pages, spread across five of the six content pillars.
The Pottawatomie Creek Massacre
82
The Townshend Acts, lesson plan
49
Betsy Ross, flag questions answered
43
Thomas Paine, The American Crisis
30
US textbook chapters
25
Benjamin Franklin, his life
22
The Declaration of Independence, Congress's draft
17
Betsy Ross and the US Flag
13
Four smaller pages
23

The page carrying most of that movement is the one the rebuild had the most to fix. Before the switch it held no navigation markup of any kind, and asked for a stylesheet that did not exist. The material was always there. What it did not have was a structure a search engine could read.

Visibility is not readership. A page that has moved up has not yet been clicked, and the value is only realized when it converts into visits and then into pages read, which is how this site earns. Search Console will settle that, and it needs ninety days or more before the answer means anything. Term level detail stays in the client reporting, where it belongs.

The first twenty four hours

We ran a traffic weighted sweep of the site the morning after launch, checking the highest earning pages against the live site rather than waiting for reports to arrive. It surfaced a set of legacy address patterns worth 51,315 annual visits between them. All were diagnosed and corrected the same day, and re verified individually.

legacy patterns surfaced by the sweep51,315 annual visits
100 percent diagnosed, corrected and re verified the same day

The sweep is part of the engagement, not a follow up. Day one is when a broken legacy address costs the least to find and the most to leave in place.

Still to come
Pages earning search impressions
Roughly 2,400 pages became legible to search engines for the first time at launch. This is the measure that shows the dormant archive waking up. Expect movement from day 30, meaningful movement by day 90.
Search impressions and clicks
The first five days are reported above. The comparison against the twelve month pre launch baseline follows on the same 30 day cadence.