RescueSecurity, Website, SEO

InMyKorea

A hacked WordPress travel blog, cleaned up and rebuilt as a static site on Cloudflare. WordPress now runs offline as the editor, so there is nothing left on the public internet to break into.

Visit the live site

Case study · WordPress rescue

The challenge

InMyKorea is an independent South Korea travel guide written by Joel, a British expat who has lived in Korea since 2015. In October 2026 the WordPress site was badly compromised by an SEO-spam and backdoor kit.

What we found on the server:

  • 19 PHP backdoors disguised as images, fonts and CSS files, loaded from injected lines in WordPress core
  • 1,716 planted .htaccess files that locked out security plugins and other cleaners
  • A cloaking page that showed Google spam while visitors saw the normal site
  • A fake sitemap with 1,922 spam URLs submitted in the site's name
  • A script added to the theme footer that loaded an outside payload for visitors

The first change dated back two months, so there was no clean backup to restore from. Every file had to be proven clean before it could be trusted.

The approach

Check everything, trust nothing. We wrote a malware scanner that checks code, uploads, the database and the final static files in four separate gates. Plugins and the theme were downloaded fresh from wordpress.org and checksum-verified, never copied from the infected site.

Take WordPress off the internet. WordPress now runs in Docker on a local machine with no internet access. Joel keeps writing in the editor he knows. The public site is a static export on Cloudflare Pages, with no PHP, no database and no login page for an attacker to find.

Keep everything that worked. Old Rank Math redirects moved into a Cloudflare _redirects file, site search runs in the browser with Pagefind, and tracked short links run in one small Pages Function. Every deploy writes a SHA-256 manifest of every file, so any unexpected change shows up.

InMyKorea homepage after the rebuild

The result

November 2026
Published articles94 posts, 15 pages
HostingStatic files on Cloudflare Pages; WordPress offline
Google search (28 days to 6 Nov)168,251 impressions, 985 clicks, average position 8.7
Files deployedAbout 10,500, down from about 31,800
Deploys since the rebuild63, each with a file manifest

The rebuilt site also gained things the old one never had: interactive trip-planning tools, weekly Search Console reports that score every content change, and Instagram carousels and narrated Reels generated from each article.

What's next

We're testing "Ask the Guide", an answer box that replies to reader questions using only InMyKorea's own articles and links to the sections it used.

Has your WordPress site been hacked, or are you worried it will be? See WordPress rescue or read the full build write-up.

InMyKorea transport cost calculator