DEV Community

Dingiu Liao
Dingiu Liao

Posted on

Building a Palworld Data Site: 299 Pals, 1.0 Chaos & Google Hell

Palworld 1.0 dropped on July 10, 2026. I had a static site with 215 Pal pages, a breeding calculator, and a clean sitemap. Within 48 hours, everything broke.

This is the story of what happened, what I fixed, and what six months of solo-building a gaming data site actually looks like.

The Stack (Spoiler: It's Just HTML)

No React. No Next.js. No database.

  • Static HTML — each of 299 Pal pages is a pre-rendered .html file
  • One build.js — reads JSON data files, generates pages, sitemap, and component CSS
  • Cloudflare Pages — deploy on git push
  • Vanilla CSS — custom properties, dark mode toggle, zero frameworks
  • No analytics bloat — just Microsoft Clarity for heatmaps

Why? Because a Pal database doesn't need client-side rendering. Every millisecond of latency costs you users who just want to look up whether Anubis has Handiwork 4 (it does).

Total page weight: ~30KB per Pal page, including images. Lighthouse score: 98-100 across the board.

Then 1.0 Happened

July 10. Palworld exits early access. And here's what changed:

  • 97.7% of breeding recipes — silently changed. Penking + Bushi used to make something else. Now it makes Anubis. Almost every pair shifted.
  • Paldeck renumbering — internal IDs didn't change, but display numbers did. If your tool matched by Paldeck # instead of internal name, it was lying to users.
  • New Pals — 215 → 299. That's 84 new Pals, each needing a data file, a generated page, breeding combinations, and a sitemap entry.
  • Breeding Power values — shifted across the board. Pre-1.0 calculators were showing wrong results for nearly every combination.

I wrote a data validation script and ran ies. The result: 97.7% mismatch rate.Essentially, every breeding page on the site needed regeneration.

So I rebuilt the data pipeline:

Raw game data (wiki.gg, community datamines)
→ JSON data files (one per Pal)
→ build.js (validate, cross-reference, generate)
→ 299 static pages + breeding tables

Took about three days of solid work. The b hardest part — 35,000+ combinations, eachneeding verification against 1.0 data.

Google Indexing Hell

Here's where it gets painful.

The site launched July 9. By July 20, Google had indexed 28 out of 260 URLs — about 11%. The rest wer"Crawled - not indexed" or "Discovered - n
The diagnosis:
┌────────────────────┬────────────────────
│ Problem │ Pages affected │ ├────────────────────┼────────────────────
│ Content too thin │ 8 pages flat-out rejected │ ├────────────────────┼────────────────────
│ New domain penalty │ All pages │ ├────────────────────┼────────────────────
│ Zero backlinks │ All pages │ └────────────────────┴────────────────────
Google doesn't trust a 9-day-old domain wisee: does this site add value, or is it just templated SEO spam?

The fix: depth over volume.

Instead of adding more pages, I went deep on the ones already indexed: - Hand-wrote SEO entity pages for high-validrolon, Frostallion)

  • Each page: 10 sections — Quick Facts, Verdict, Stats, Skills, Work Suitability, How to Get, Best BuPassives, Game Stage Guide, FAQ
  • FAQPage Schema on every page - Internal linking between related Pals an No AI-generated fluff. No "comprehensive uust structured data that actually answersquestions. The result (as of late July): index rate creeping up. Pages that got the depth treatment are getting impressions. The breeding calculator in pall search traffic — "palworld breedingcalculator" is a high-intent query and the tool actually solves the problem.

3 Lessons I'd Give My Past Self

  1. Sitemap is a build artifact, not a source file

I edited sitemap.xml by hand. The next deploy, build.js overwrote it. Took me an hour to figure out why my new
pages weren't showing up in Google.

Lesson: all hand-written pages go into manp is generated from that. Never editgenerated files.

  1. New sites need trust, not page count

264 pages and 11% index rate. If I could do it again, I'd launch with 20 deeply-researched pages, get those
ranking, then expand. Google treats new doen innocent.

  1. 97.7% is not a typo

When a game exits early access, assume eve "most." Not "a lot." All of them. Buildyour data pipeline with version pinning and checksums from day one.

image.png

What's Live Now

  • 299 Pal pages — stats, skills, breeding, builds
  • Breeding Calculator — parent → child andll possible parents)
  • Tier List — combat, work, and mount rankings
  • Interactive Map — Pal spawns, resources,
  • Blog — data-driven guides on breeding, passives, and base optimization

All at https://palworldguides.com

What's Next

  • Breeding chain planner — input your current Pals, get the shortest path to your target Pal with desired passives
  • Team builder — theorycraft party compositions with elemental coverage and role balance
  • More depth on entity pages — the Anubis Q schema) is the standard, rolling it out to all legendaries

Building a data site for a live-service gaThe 1.0 update nuked my data. Google ignored my pages. Reddit flagged my account as spam (that's a separate story).

But if you solve a real problem — like "what the hell does Penking + Bushi actually make now" — people find you.
And Google eventually follows.


Built with vanilla HTML/CSS/JS, deployed on Cloudflare Pages. Data sourced from wiki.gg community datamines, cross-referenced against in-game values. I'll fix it within 24 hours.

Top comments (0)