Stoop
← All posts

AdSense rejected us. Twice. Here's what "thin content" actually means for a game.

Google's crawler doesn't play the game. It reads the page. And our page had almost nothing to read.

Google AdSense rejected DailyGuessr for "thin content." Then we fixed it. Then they rejected it again for "thin content."

The second rejection, on the exact same grounds after we'd added content specifically to address the first, was the moment I understood what "thin content" actually means — and why games are structurally bad candidates for first-pass AdSense approval.

What Google actually sees

When Google's crawler visits a game page, it doesn't see a game. It sees HTML. And the HTML for an interactive browser game — before any JavaScript runs, before the Street View panorama loads, before the map renders — is nearly empty.

The page title. A loading spinner. Maybe a few nav links. That's it. Everything else is JavaScript: the Street View embed, the Leaflet map, the guess input, the results overlay. None of that exists in the raw HTML that Google indexes.

So Google sees a page with almost no text, almost no structure, and no obvious reason to exist. "Thin content" is the right diagnosis from its perspective. The page is thin — just not in the way we think of it.

The first fix

The obvious response is to add static text. Text that lives in the HTML, not in JavaScript. Text that Google can read without executing anything.

We added a full below-the-fold section to DailyGuessr: how to play, how scoring works, a description of the game concept. Around 400 words of real, useful, accurate text about the game.

Resubmitted. Rejected again.

Why the second rejection happened

The text needs to be on the page Google is evaluating, in a form it can read, structured in a way that signals "this is a real page with real content."

Our first attempt put the content below the fold, after the game. Google's crawler may have deprioritised it, or the page structure may have still looked like a thin wrapper around an embed.

The fix that finally worked was restructuring so the text content was genuinely part of the page — not an afterthought at the bottom, but integrated sections with proper heading hierarchy (h2, h3), complete paragraphs, and enough substance that a human reading only the text (no game) would still find the page useful.

`` What is DailyGuessr? → paragraph How scoring works → paragraph + table One puzzle per day → paragraph Free, forever → paragraph How to Play → four numbered steps Tips for better guessing → specific, useful tips ``

Around 600 words of genuinely useful content. The kind of thing a player who'd never heard of the game could read and understand what they're about to do.

The uncomfortable truth about games and AdSense

Games are hard AdSense candidates because the value they provide — entertainment, challenge, the satisfaction of a correct guess — is entirely experiential. It doesn't translate to static text.

The workaround is to write about the game as if explaining it to someone who will never play it. Dry, thorough, complete. Not a great reading experience — but it's not written for readers. It's written for crawlers.

Whether this feels like gaming the system is a philosophical question. The practical answer: it works, and the content we added is accurate and useful to new players. No one is being deceived.

AdSense is still pending. We'll see.