TL;DR: Migration takes an afternoon: download old presskit() files via FTP, copy XML data into presskit.gg fields, upload images, set up URL redirects. The critical step is the redirect strategy (301 redirects from old URLs to new) so existing links and search rankings survive.
Key Takeaways
- presskit() stored everything in XML files and image folders; download the entire directory via FTP
- The old URL structure used
sheet.php?p=game-name; the new structure uses clean/presskit/game-slug/permalinks - Set up 301 redirects in .htaccess, Nginx config, or a WordPress redirect plugin so old links work
- Match your game slugs in presskit.gg to what presskit() used for simpler redirect rules
- Test every redirect before considering migration complete; this step is not optional
Migration sounds dramatic. In practice, moving from presskit() to presskit.gg takes an afternoon, maybe two if you have multiple games and want to fuss over screenshots. Developers who've made the switch consistently report that the actual data transfer is straightforward—the anxiety beforehand was worse than the work itself. The most important part isn't the data transfer itself. It's the URL redirect strategy that preserves your existing links and search rankings. Get that right and the migration is invisible to the outside world. Get it wrong and every journalist who bookmarked your press kit lands on a 404.
If you haven't read the backstory on why presskit() stopped working, our full post-mortem on presskit()'s death covers the history and all modern alternatives. This guide focuses specifically on the hands-on migration from presskit() to presskit.gg, step by step. Both articles are part of our broader marketing tools comparison.
Before You Start: What You Need
Gather these before touching anything:
Access to your old presskit() files. You need either FTP/SFTP access to your hosting, or file manager access through your hosting control panel (cPanel, Plesk, etc.). If your hosting account is still active and presskit() is still installed, the files are there. If your hosting has lapsed, check if you have a local backup. Many developers kept a copy of their presskit() folder on their development machine.
A WordPress installation. presskit.gg runs on WordPress. If you already have a WordPress site for your studio, you're good. If not, you'll need to set one up first. Most hosting providers offer one-click WordPress installation. Budget hosting with WordPress starts around $5/month (Hetzner, DigitalOcean, or shared hosts like SiteGround).
A list of every URL your old presskit() generated. Check your analytics (if you had Google Analytics running), search for your game in Google with "site:yourdomain.com/presskit" to see what's indexed, and look through old press emails you sent to find which links you shared. You need this list for the redirect step.
Step 1: Export Your presskit() Data
presskit() stored everything in XML files and image folders. There's no export button. You grab the files directly.

Connect to your hosting and find your presskit() installation directory. It's usually at /presskit/ or /press/ relative to your web root. Inside, you'll find a structure like this:
presskit/
install.php
data.xml ← company-level data
images/
header.png
logo.png
icon.png
your-game-name/
data.xml ← game-specific data
images/
screenshot01.png
screenshot02.png
screenshot03.png
logo.png
header.png
another-game/
data.xml
images/
...
Download the entire presskit/ directory to your local machine. Every file. The XML data files are small (a few KB each). The images are what take up space.
If you can't access your hosting anymore but you have a local copy of the files, that works too. If you have neither, you'll be recreating content from scratch. Check the Wayback Machine (web.archive.org) for archived versions of your press kit pages. It won't give you the raw files, but you can copy text content and sometimes download images.
Step 2: Understand the presskit() Data Structure
Open your company-level data.xml. It looks something like this:
<?xml version="1.0" encoding="utf-8"?>
<company>
<title>Your Studio Name</title>
<based-in>City, Country</based-in>
<founding-date>January 1, 2015</founding-date>
<website>http://yourstudio.com</website>
<press-contact>press@yourstudio.com</press-contact>
<phone></phone>
<description>Your studio description goes here.</description>
<history>
<history>
<header>The Beginning</header>
<text>How the studio started...</text>
</history>
</history>
<trailers>
<trailer>
<name>Studio Reel</name>
<youtube>dQw4w9WgXcQ</youtube>
</trailer>
</trailers>
<awards>
<award>
<description>Best Indie Game</description>
<info>Some Festival 2016</info>
</award>
</awards>
<quotes>
<quote>
<description>"Great studio." - Some Journalist</description>
<name>Publication Name</name>
<website>http://publication.com</website>
</quote>
</quotes>
<credits>
<credit>
<person>Your Name</person>
<role>Developer</role>
</credit>
</credits>
<contacts>
<contact>
<name>Twitter</name>
<link>http://twitter.com/yourstudio</link>
</contact>
</contacts>
</company>Each game's data.xml follows the same pattern with game-specific fields: <title>, <description>, <features>, <trailers>, <awards>, <quotes>, <credits>, <platforms>, and <prices>. The XML is straightforward. No nested nightmares. Just clean key-value pairs wrapped in descriptive elements.
Step 3: Install and Configure presskit.gg
Install the presskit.gg plugin from the WordPress plugin directory. Activate it. You'll see a new "Press Kit" section in your WordPress admin sidebar.
Set up your company profile first. Go to Press Kit, then Company Settings. Map your old data:
| presskit() field | presskit.gg field |
|---|---|
<title> |
Company Name |
<based-in> |
Location |
<founding-date> |
Founded Date |
<website> |
Website URL |
<press-contact> |
Press Contact Email |
<description> |
Company Description |
<history> |
Company History |
<credits> |
Team Members |
<contacts> (social links) |
Social Media Links |
Upload your company logo and header image from your exported presskit/images/ folder.
Then create each game. Go to Press Kit, then Add New Game. For each game, map:
| presskit() field | presskit.gg field |
|---|---|
<title> |
Game Title |
<description> |
Game Description |
<features> |
Features List |
<trailers> YouTube/Vimeo IDs |
Trailer URLs (full URLs) |
<platforms> |
Platforms |
<prices> |
Pricing |
<awards> |
Awards |
<quotes> |
Press Quotes |
<credits> |
Game Credits |
<history> |
Development History |
Note: presskit() stored YouTube video IDs only (e.g., dQw4w9WgXcQ). presskit.gg takes full URLs (e.g., https://www.youtube.com/watch?v=dQw4w9WgXcQ). Prepend the YouTube base URL when entering trailers.
Upload screenshots from each game's images/ folder. Name them descriptively before uploading. "screenshot_combat_system_01.png" is better than "ss03.png" for both SEO and journalist usability.
Step 4: Match Your URL Structure (Critical)
This is the step that makes or breaks the migration. Your old presskit() URLs looked like:
yourdomain.com/presskit/ ← company overview
yourdomain.com/presskit/sheet.php?p=your-game ← individual game
Your new presskit.gg URLs will look like:
yourdomain.com/presskit/ ← company overview
yourdomain.com/presskit/your-game/ ← individual game
The company overview URL is the same. That's convenient. The game pages are different: the old format used a PHP query parameter (sheet.php?p=), while the new format uses clean permalink slugs.
Make sure your game slugs in presskit.gg match what you used in presskit(). If your old URL was sheet.php?p=nuclear-throne, set your presskit.gg game slug to nuclear-throne. This makes the redirect rules simpler.
Step 5: Set Up URL Redirects
Add redirect rules so that anyone visiting the old URLs gets seamlessly sent to the new ones. How you do this depends on your hosting setup.

Option A: .htaccess (Apache hosting)
Add these rules to your .htaccess file in your WordPress root directory, before the WordPress rewrite rules:
## Redirect old presskit() game pages to presskit.gg
RewriteEngine On
RewriteCond %{QUERY_STRING} ^p=(.+)$
RewriteRule ^presskit/sheet\.php$ /presskit/%1/? [R=301,L]This captures the game name from the query string and redirects to the clean URL. The ? at the end strips the old query string. The 301 tells search engines this is a permanent move.
Option B: Nginx configuration
If you're running Nginx, add this to your server block:
## Redirect old presskit() URLs
if ($request_uri ~ "^/presskit/sheet\.php\?p=(.+)$") {
return 301 /presskit/$1/;
}Option C: WordPress redirect plugin
If you're not comfortable editing server configuration files, install a redirect plugin like Redirection (free). Add manual redirects for each game:
- Source:
/presskit/sheet.php?p=your-game - Target:
/presskit/your-game/ - Type: 301 (Permanent)
You'll need to add one redirect per game. For a small catalog, this is quick. For studios with 20+ games, the .htaccess approach scales better.
Test every redirect. Open an incognito browser window and visit each old URL. Confirm it redirects to the correct new page. Check both the company page and every individual game page. This is not a step to skip or assume. The pattern we see most often is developers who skip testing and then discover broken links weeks later when a journalist mentions they couldn't find the press kit.