Skip to main content
.com domains from $2.99 — free WHOIS privacy on every name

Multilingual delivery · Brussels

Brussels: three language trees that all stay fast

You run French, Dutch and English versions of the same policy library plus a members-only area, and exactly one of those four things can be cached.

The short answer

Three languages are three cache entries, not three times the work: give FR, NL and EN their own URLs, declare hreflang between all of them, and each tree serves pre-built from the same origin so no language is the slow one. The member area is the part that can never cache, and it should be planned for separately from the start.

Underneath, every plan runs NVMe storage behind a LiteSpeed cache built into the server and OPcache on current PHP 8.x, with a published round trip of 10–35 ms from Belgium to our London origin. Free SSL on every hostname, an engineer-run migration and support at any hour are included.

By the HostingFast team · Reviewed 12 August 2026

NVMe

Storage on every tier

Free

Domain, year one

99.9%

Uptime target, monitored

Flat

Renewal, unchanged

The institutions occupy one quarter and the densest concentration of federations, associations and public-affairs consultancies on earth occupies the streets around them. Their sites are policy libraries with a members' door in the side, published in three languages and read by people who arrive from a search result at eleven at night.

So this page separates the two jobs: the public library, which caching makes almost free, and the member portal, which it cannot touch. Plus what an events-day traffic spike actually looks like from the server.

Three trees, three cache entries, one install

One WordPress or Drupal install carries FR, NL and EN on separate URL trees with hreflang declared between them in every direction. Each address is cached independently, so a Dutch reader gets a pre-built page exactly as a French one does. Verify it the direct way: request each language's homepage twice and read the cache header on the second response. Three hits means the structure is sound.

The arrangement that quietly destroys this is a language switcher that keeps one URL and varies the response by cookie or Accept-Language. The cache then either stores the wrong language for the next visitor or refuses to store anything, and a trilingual audience pays for a fresh render on every single visit. It is the single most expensive mistake available on a site like this.

A member portal is uncacheable by definition

Restricted documents, a subscriber directory, a voting page: all logged in, all personal, all running the full 10–35 ms round trip plus a PHP render on every request. That is comfortable at this distance and it is worth knowing rather than discovering. Keep the round trips per action low, avoid a wizard that fires a request per screen, and let the public library absorb the anonymous traffic.

User roles are what keep the two halves apart safely — the policy team editing public pages cannot overwrite the membership section, and the membership officer cannot publish to the front page. That is an access-control decision with a performance consequence, because a badly scoped plugin loading member logic on public pages is another way to make the whole site uncacheable.

Events day, and what the spike really is

An event announcement sends readers, and readers cache. The programme, the speaker list and the venue page serve pre-built and never touch the database, so the peak arrives as a bandwidth figure rather than an incident: 500 GB a month on Sprint, 1 TB on Turbo, 2 TB on Nitro. The registration form is the uncacheable exception and it pays the round trip per step.

Check the ratio in a quiet week rather than on the day. Request your ten busiest URLs twice each, note which return a cache hit on the second attempt, and fix the ones that never do — normally a session cookie set sitewide or a member fragment loaded in the header of every page. Ten minutes, done in advance.

.be, .eu and the single canonical name

.be carries Belgian commerce and .eu means something specific in this city: it requires establishment in the EU or EEA, so it fits its holders by definition and reads as a local address rather than an affectation. Plenty of federations here hold both, which is prudent — serving both is not.

Pick one canonical hostname and 301 everything else to it in exactly one hop, then verify with curl -sIL. A chain of three redirects costs three round trips plus a TLS handshake before any HTML moves. Registration sits on the same account as the hosting, with DNS aimed correctly from the start and SSL issued as soon as each name resolves here.

An aisle of racks inside the London datacentre

What an association site gets on the account

One install carrying three language trees, each caching independently, on NVMe storage behind a server-level LiteSpeed cache with OPcache on current PHP 8.x.

Then role-based editing, staging copies for a policy-season redesign, per-site PHP versions, and daily backups you restore yourself from the panel.

  • Cache hit or miss readable per language tree
  • .be or .eu registered on the same account
  • OPcache on current PHP 8.x for the member pages
  • Staging copies to test a redesign against

Why HostingFast

Standard on every plan

Every language pre-built

Separate URLs and hreflang mean FR, NL and EN each cache independently, so no version of the site is quietly the slow one.

Cheap uncached pages

NVMe storage with OPcache on current PHP 8.x keeps the member area quick, which is the half of an association site that can never be cached.

A cache result you can read

LiteSpeed built into the server with a response header reporting hit or miss, so the ratio is something you observe rather than assume.

Staging for policy season

Clone the site, rebuild the navigation on the clone, measure it against the same URLs, then promote it when the figures agree.

Mail on the organisation's domain

Mailboxes with IMAP, POP, SMTP and spam screening, and MailChannels handling outbound so a consultation notice actually arrives.

Uptime with a remedy

A 99.9% target under continuous monitoring, with a pro-rated credit when a month falls short through a fault on our side.

Quick Start

From order to online

  1. 1

    Check each tree caches

    Two requests per language, cache result read on the second. If one language never hits, the switcher is what to fix before anything else.

  2. 2

    Scope the member logic

    Make sure nothing member-related loads on public pages. A single sitewide fragment can make an entire policy library uncacheable.

  3. 3

    Measure before the event

    Ten busiest URLs, cache ratio recorded, registration flow timed end to end. Do it in a quiet week rather than on announcement day.

Built In

Loaded onto every plan

  • LiteSpeed caching built into the server rather than patched in by plugin
  • Current PHP 8.x with OPcache enabled from the start
  • NVMe SSD storage on every tier, not just the expensive ones
  • Staging environments for testing changes before they ship
  • Per-site PHP version switching from the control panel
  • Daily backups, with self-service restores you run from the panel
  • Free SSL on every plan, renewed automatically before it can expire
  • WordPress and 400+ other applications installed in one click
  • Email addresses that run on your own domain name
  • 99.9% uptime as the target, monitored around the clock

Frequently Asked

What people ask us most often

Will three language trees triple the load on the server?

No, provided each language has its own URL. Each address becomes its own cache entry, so the server builds three pages once rather than one page repeatedly. What does triple the load is a switcher that varies one URL by cookie, because then nothing caches at all and every visit is a full render.

How should a members-only area be structured for speed?

As the uncacheable part, deliberately kept small and kept out of the public pages. Restricted documents and directories run the full round trip plus a PHP render on every request, which is fine at 10–35 ms. What is not fine is member logic loading on anonymous pages, because that makes the whole library uncacheable.

Does .eu behave differently from .be technically?

Not at all — both resolve through DNS like any other name and both take a free certificate as soon as they point here. The difference is registry policy: .eu requires establishment in the EU or EEA. Choose on positioning, serve one of them canonically, and 301 the other in a single hop.

What happens on the day a consultation closes?

The public pages absorb it from cache and the submission form does not. Keep the form to one step with browser-side validation, and check your cache ratio in advance rather than on the day. Nitro's 2 cores and 4 GB give the uncached half more headroom if submissions are heavy.

Keep reading

Changing hosts? Run through our checklist first.

A straightforward sequence for a switch your visitors never feel: which files move first, how to shift email across without losing a single message, the right moment to repoint DNS, and the two mistakes behind almost all the downtime we get asked to rescue.

You'll get the checklist email, then occasional pointers on keeping a site running fast. Unsubscribe the moment you want out — the privacy policy covers the rest.

Three trees, three cache hits.

NVMe behind a server-level LiteSpeed cache, OPcache on current PHP 8.x, free SSL on every hostname and an engineer-run migration at no charge.

View OpenCart Hosting plans