Skip to content
RUESEN

Case · Restoring a site after a hack

Okean Volos: website after a hack

The site was hacked through and through. We built a new one in five days, without a single line of PHP
A hair extension studio in Moscow lost its entire site: hosting account infected, 16,915 files with malicious code, database deleted, and a "Site temporarily unavailable" placeholder on the domain. Instead of restoring the old system, we removed the possibility of a repeat hack and built a new site with three times the content of the previous one.

16,915 infected files on the old site
5 days to a complete new site
0 executable files on the server
WhatsApp consultation
Okean Volos Moscow: mobile version
Okean Volos Moscow: desktop version

What did the client have at the time of the hack?

The Okean Volos Moscow studio has worked on Lyublinskaya Street since 2009. The site ran on Joomla, and in July 2026 the hosting account was hacked.

In the site directory, 16,915 infected PHP files were found, plus a second, long-abandoned Joomla installation with another 25,874 files.

Cloaking aimed at the search robot: an ordinary visitor saw a normal site, while Googlebot received spam doorways of a Japanese online store. Because of this the infection lived for months unnoticed.

About 35 web shells with random names and droppers were spread across every folder, including directories outside the site root.

The database was deleted and a placeholder hung on the domain. There was no content on the site at all.

The spam had time to get into the index. In the two days before the cleanup, search robots hit the fake sitemaps 878 times and the doorways 661 times.

The only thing that survived: a backup from January 2025, taken long before the infection.

What did we do?

The cause of the hack: a PHP interpreter was running on the server that serves articles and photos. Updating Joomla would have closed the known holes and left the unknown ones. We removed executable code from the server entirely. Now even a successfully uploaded malicious file stays dead text, with nothing to run it.

Only data was taken from the backup: texts, photos and the URL structure. Not a single PHP file or Joomla template made it into the new project. Everything extracted was checked against malware signatures before use.

The old site was down, so there was nothing to crawl. We brought up a copy of the database locally and exported the content directly: 32 pages, 15,000 words, the menu structure. Along the way we found what wasn't in any sitemap: the studio's address, phone number, the full price list and the warranty terms. That data sat in Joomla's service blocks, and without it the new site would have been empty of facts.

All 20 blog articles were rewritten from scratch using the AI-search citability formula: a direct answer at the start, a table of contents, a breakdown by questions with lists and tables, and the opinion of the studio's craftsman. Page URLs stayed the same, so the domain's accumulated authority was not lost and no redirects were needed.

The first external citability check gave 53 points out of 100. We closed all the gaps and built separate files for language models.

We put protection against a repeat in place: the site is checked every ten minutes, and alerts arrive in Telegram.

  • Removed executable code from the server entirely
  • Extracted only data from the backup and checked it against malware signatures
  • Exported the content directly from a local copy of the database
  • Built a static site: 38 pages, 50,806 words
  • Rewrote 20 blog articles using the AI-search citability formula
  • Added search engine markup on every page, canonical URLs, social media metadata, security headers and modern image formats
  • Built llms.txt and llms-full.txt with facts about the studio, and robots.txt naming 181 search and AI robots one by one
  • Set up monitoring for signs of a repeat hack, including cloaking

What does the studio's new site look like?

  • Home page on desktop: first screen with a free consultation booking, price list per strand, services, works, reviews and contacts.
  • Home page on a phone: the same blocks in the mobile version. Screenshots were taken on 19.10.2026 from the same build that sits on the studio's server (442 files, version from August 3, 2026).

What was the result?

How does the new site differ from the old one?

Before (Joomla)Now (static site)
32 pages, 15,000 words38 pages, 50,806 words
Content in a databaseContent in files; the backup is the version history
16,915 executable files0 executable files
Photos without descriptions120 photos with unique names, descriptions and metadata
Videos on a third-party channel51 studio videos on its own video hosting
No FAQ472 question-answer pairs, with its own block on every page

What were the final results?

MetricValue
Executable code on the server0 files, this class of attack is eliminated completely
Content volumegrew 3.4 times: 15,000 words → 50,806 words
Pages38, including 20 rewritten articles
Build time5 days from the infected system to a working site
AI citability checkall failures from the first audit are closed
Server response speed0.5 seconds for the home page
Monitoringautomatic check every 10 minutes with a Telegram alert

How long did the work take?

Five days from a hacked site to a complete new one, from July 29 to August 3, 2026.

The placeholder did not stay on the domain longer than needed: the first working version of the home page replaced the placeholder on the second day, and the other pages were added to the live site.

What's next?

Fill in the studio's profile in Yandex Business: for local search and for Russian AI assistants it is the first source of data about the company.

What does the system do without a human?

01 Checks the site every 10 minutes

Automatic checks with Telegram alerts.

02 Catches cloaking

The response to a regular visitor is compared with the response to a search bot. That is how the previous infection stayed invisible for months.

03 Spots signs of a break-in

Besides site downtime, it detects executable code appearing in the markup, hidden blocks, spam words and content substitution.

04 Neutralizes uploaded files

There is no executable code on the server, so even a malicious file that is successfully uploaded remains dead text.

05 Keeps version history

Content lives in files, and the backup is the version history.

Has your website been hacked, or is it close to it?

We will remove the possibility of a repeat hack itself: we will build a static site with no executable code on the server, move the content over from the backup and set up monitoring with Telegram alerts.

Message on WhatsApp

What is the site built with, and why?

01 Static site on a Python generator

It's built from a template and data. There's nothing to run on the server, so there's nothing to hack.

02 Content in files

A database is at once an attack surface, a point of failure and a separate backup procedure. Files remove all three problems at once.

03 Video on Kinescope

The player loads only on a click on the cover, so fifty videos do not slow the page down.

04 Booking via WhatsApp

A form on the site would need a server-side handler, which is executable code again. All buttons lead straight to WhatsApp.

Questions and answers

What exactly happened to the Okean Volos Moscow studio website in July 2026?

In July 2026 the hosting account of a studio whose site ran on Joomla was hacked. The site directory contained 16,915 infected PHP files, about 35 web shells with random names and droppers in every folder. The database was deleted, the domain showed a “Site temporarily unavailable” placeholder, and no content was left on the site.

Why did the infection of the Okean Volos Moscow site go unnoticed for so long?

The malicious code used cloaking aimed at the search robot. An ordinary visitor saw a normal site, while Googlebot received spam doorway pages of a Japanese online store. Everything looked fine from the outside, so neither the owners nor the studio's clients noticed anything suspicious, and the infection lived on the site for months until the project came to SEO7.

Did the spam from the hacked hair extension studio's site make it into the search index?

Yes, the spam made it into the index. In the two days before cleanup, search robots hit the fake sitemaps 878 times and the doorway pages 661 times. The scale of the infection was increased by a second, long-abandoned Joomla installation on the same hosting, which held another 25,874 files.

Why did SEO7 not update Joomla on the Okean Volos Moscow site?

The break-in was caused by the PHP interpreter running on the server that serves articles and photos. Updating Joomla would have closed the known holes and left the unknown ones. So executable code was removed from the server entirely: even a malicious file that gets uploaded stays dead text, with nothing to run it.

What was taken from the January 2025 backup when building the studio's new site?

From a copy made long before the infection we took only the data: texts, photos and URL structure. Not a single PHP file or Joomla template made it into the new project. Everything extracted was first checked against malware signatures and only then used in the build.

How was the content retrieved if the old Okean Volos Moscow site was down?

The site was down, so there was nothing to crawl. We restored a copy of the database locally and exported the content directly: 32 pages, 15,000 words and the menu structure. Along the way we found the studio's address, phone number, full price list and warranty terms. They sat in Joomla's internal blocks and were not in any sitemap.

How much larger is the studio's new website compared with the old one on Joomla?

Joomla had 32 pages and 15,000 words. The new static site has 38 pages and 50,806 words, so there is 3.4 times more content. It gained 120 photos with unique names, descriptions and metadata, 51 studio videos on its own video hosting and 472 question-answer pairs.

How were 20 blog articles of Okean Volos Moscow rewritten for AI search?

All 20 blog articles were rewritten from scratch using the AI search citability formula. Each starts with a direct answer, followed by a table of contents, a question-by-question breakdown with lists and tables, and the opinion of a studio expert. Page URLs stayed the same, so the domain's accumulated weight was not lost and no redirects were needed.

What was fixed on the studio's site after the first citability check scored 53?

The first external check of citability in AI search gave the site 53 points out of 100. To close the gaps, we added search engine markup on every page, canonical addresses, a full set of social media metadata and security headers, and converted images to modern formats. As a result, all gaps from the first audit are closed.

Why does the Okean Volos Moscow site have llms.txt and robots.txt files with 181 robots?

The llms.txt and llms-full.txt files are built specifically for language models and contain facts about the studio. robots.txt lists 181 search and AI bots by name. Both improvements were part of preparing the site for AI search requirements, along with markup, canonical URLs and social media metadata.

How does monitoring of the hair extension studio's site catch a repeat hack?

The site is checked automatically every ten minutes, and alerts arrive in Telegram. Besides downtime, the system detects executable code in the markup, hidden blocks, spam words and content substitution. The main check compares the response to a regular visitor with the response to a search robot, so cloaking can no longer hide for months.

How many days did it take to build the new Okean Volos Moscow site and how long was the placeholder up?

From the hacked site to a full new one took five days, from July 29 to August 3, 2026. The placeholder didn't stay on the domain longer than needed: the first working version of the home page replaced it on day two, and the remaining pages were added to the live site.

Why does booking on the Okean Volos Moscow site go through WhatsApp instead of a form?

A form on the site would need a server-side handler, that is, executable code again, which was dropped to protect against hacking. That's why all booking buttons lead straight to WhatsApp. The home page has a first screen with booking for a free consultation, a price list by strand, services, work samples, reviews and contacts.

What stack was the new Okean Volos Moscow studio website built on?

The site is static, built by a Python generator from a template and data. Content is stored in files instead of a database, which would be an attack surface, a point of failure and a separate backup procedure. Videos are hosted on Kinescope: the player loads only when the cover is clicked, so fifty videos don't slow the page down.

What other projects can I look at?

01 OKEAN VOLOS Case · Static website and recovery after a hack

The whole hosting was infected, and the site was back up in a single build

View case study
02 Yana Tarasova's "Sila Soznaniya" training center Case · Training platform: website, bot, payment and CRM

42 training payments with no back-and-forth messages: the platform of Yana Tarasova's center

View case study
03 Private VPN gateway Case · Network infrastructure and security

2.3 terabytes through a home box: a personal gateway for 25 devices

View case study

Shall we discuss your project?

Calculator request

Leave your contact


    

GeoScan ·

AI search check

Loading the page

Web studioValencia

New services

Ads in ChatGPT

Can ChatGPT see your website?

GeoScan: 172 checks in 8 groups, an answer in 10 seconds, free.

Get in touch

WhatsApp Telegram +34 624 363 806
+34 624 363 806