Global Website and Subsites Bystronic

Case summary

Bystronic refreshed their brand experience, including a website that features 30 international sites, 23 languages as well as multiple subsites.

Case description

Bystronic is a globally leading technology company in the area of sheet metal processing with 3,600 employees, more than 40 locations and a revenue of more than 1 billion Swiss Francs. Their focus lies on an automated material and data flow, intelligent connectivity through digitalization and sustainability.

In 2022, Bystronic refreshed their brand experience, including the website which was developed from scratch on Drupal 9. With a clear focus on lead generation, it features 30 international sites, 23 languages, more informative and connected machine presentations, a newsroom and dedicated subsites for investor relations, careers and pre-owned machines.

The country and language structure is built on the Domain module with the resolution mechanisms being custom-developed. Unstructured content is represented by 32 paragraph types, which are documented in a pattern library (bystronic.com/pattern-library). Granular access rights allow for each subsidiary to edit their own content – from news to hotline hours. Contacts displayed and used for all communication depend on a site's topic (e.g. service, sales, specific machines) and the visitor’s country. With SEO being a priority, continuous improvements have led to very satisfying results. Data is acquired from different sources, including SAP and a DAM (Picturepark).

Case goals and results

Goal: Use Drupal for a global website
Result: A custom-developed and Domain based module serves all content based on a user's selected country/region and language, while redirecting first time visitors to the correct site.

Goal: Improve visibility on search engines
Result: A custom sitemap and hreflang generator, a project-specific URL validator and continuous improvement (as well as hard work on content) have improved SEO placements by approx. 50%.

Goal: Serve local content for every region
Result: Content is tied to the language and country/region models, as well as site-wide topics – from there, it is served based on a best-match approach with multiple fallbacks.

Goal: Provide a single source of truth for the digital brand
Result: Using Drupal's templates as code base (Twig), an extensive documentation for all digital assets was generated based on our custom-developed and open-sourced pattern library generator (https://github.com/joinbox/patternize).

Challenges

How should we build the data structure to fit the needs of an international company?

We had to take the following inputs into consideration: On the one hand, there are geographic constructs like continents, regions and countries. On the other hand, there are political regions and languages spoken in those regions. Keep in mind that there are even variations of a language (i.e. English in GB is not the same as English in the United States). And lastly, there are the customer needs: Subsidiaries which are in charge of their content for self-defined regions (not political, nor geographical, just self-defined).
After several refactorings of our data model over the course of multiple months and several projects, we have come up with a consistent data model. And we are looking forward to sharing it with fellow Drupalists (see contributions below).

Locating users and redirecting them to the desired Domain

The goal was simple, the solution was not.
We wanted to determine which country the users are visiting the website from. Then redirect them to the responsible Domain (which is basically a subsidiary) to let them only see relevant content. Also, we had to decide on the best fitting language based on the country, browser settings and available languages for this domain.
Trying to achieve this, we have been facing severe caching problems, which we solved by coding middleware layers and custom request policies.
Also, not all IP resolving datasets are valid. We have had issues that IP addresses were resolved wrongly. Smart IP in combination with the MaxMind GeoIP2 binary dataset have been working excellently for this task.

Show the users their sales or key contact

While all contacts are centrally managed, they are displayed based on a user's language, country/region (which is resolved through the above-mentioned structures) and a page's topic. This needed several fallback mechanisms to be put in place: If any of the variables is missing, the best matching contact is identified and used. This allows Bystronic to handle all requests as locally and specifically as possible while giving users the impression of geographical closeness, even though the website is global.

Let the machines understand our structure – SEO

The Domain module can not handle country based SEO information – or at least not sufficiently. So we had to write our own Sitemap and Hreflang Generator as well as a URL Validator to prevent search engines from indexing invalid URLs (each domain only supports a portion of the project-wide enabled languages).

Complex structures lead to higher loading times

With a strong tie to Domains, loading a page after the cache was cleared leads to more than 30,000 database insertions. As caching is key to delivering the whole site fast on a global scale, caring for caching configuration was a key requirement for SEO and UX and is an ongoing task we are still working on, given the project's original tight timeline.

Community contributions

The module used to generate the pattern library was open sourced from its inception (https://github.com/joinbox/patternize) – and others will follow:

We have been learning a lot about international websites these past two years with multiple of our projects having similar such requirements. All the challenges we have faced as a company will be actively contributed back to the community.
As of today, we are organizing the first Drupal Meetup in Bern (August 23, 2023), where we will actively showcase „Multisite”, the most difficult challenges we faced, AND how we solved them.
Secondly, we are going to open source our newly created module to help others to overcome the challenges easily. Before publishing it, we will be having to document the module, write instructions and also add some configuration possibilities to make it plug and playable.
We will commit ourselves to publish it by the end of August in a public GitHub repository.

Hosting

The website is on a dedicated hosting at Webstyle, a long time partner company of Bystronic, which was acquired by Metanet in late 2022. The setup supports the latest versions of the technologies we use to build our Drupal 9 (and 10) websites.

Why should this case win the splash awards?

Because it is a wonderful example of how Drupal is the perfect extensible digital platform for any global company – serving all relevant purposes, from marketing to applications.

It looks like a normal marketing website, but is way more than that.
Job import from SAP, Event organization tool, Picturepark integration to share Media entities, a complex logic to display contact information and highly customizable role based access to content are some major parts of this website.