Paste the provider script into the marked placeholder in _src/render.py
(GOOGLE ADSENSE ... comment) and rebuild.
Add is-filled to any .ad-slot you fill, so the dashed empty-state
border disappears.
Verify no ad container sits inside a .game-stage, and that none can be mistaken
for a game control.
Confirm the cookie banner's two choices now behave differently, and that the policy says how.
No programme guarantees approval, and nobody can promise it. What you can do is
make the site genuinely worth approving: original content, clear purpose, real contact details,
complete policies and no deceptive layout. All of that is already in place.
3. Technical SEO
Every page has a unique <title> and meta description - --check
verifies uniqueness.
Canonical URL on every page, absolute, matching the live domain.
One H1 per page, then H2/H3 in order.
Breadcrumbs on every page except the homepage, with BreadcrumbList JSON-LD.
JSON-LD validates - test a sample at validator.schema.org and in Search Console's rich results
test.
sitemap.xml reachable and referenced from robots.txt.
robots.txt does not block CSS, JavaScript, images or JSON.
Open Graph and Twitter Card tags with an absolute 1200x630 image.
Submit the sitemap in Google Search Console and Bing Webmaster Tools.
4. Performance
Images are WebP with explicit width and height, so nothing shifts as they load.
Below-the-fold images use loading="lazy"; the first card and article hero do
not.
All JavaScript is deferred; none of it blocks rendering.
Two small stylesheets, no external fonts, no third-party requests at all.
Theme is applied before first paint by a tiny inline script, so there is no flash.
Run Lighthouse on the homepage, a game page and an article page.
5. Game quality
All ten games start, pause, restart and toggle sound.
Keyboard, mouse and touch all control the paddle.
Scores persist across a reload and survive a browser restart.
No console errors on any game page.
The canvas scales correctly from 320px wide to a desktop monitor.
Arrow keys scroll the page normally when the game does not have focus.
Each game is genuinely distinct - play them back to back and confirm.
6. Accessibility
Skip-to-content link works from the keyboard.
Every interactive element is reachable by Tab and has a visible focus ring.
The canvas has a descriptive aria-label explaining the controls.
Score and lives changes are announced through the live region.
Colour contrast passes in both light and dark themes.
All images have meaningful alt text; decorative ones are hidden from assistive tech.
7. Content
No lorem ipsum, no placeholder paragraphs, no empty pages.
No invented statistics, testimonials, ratings or awards anywhere, including JSON-LD.
Published and updated dates are honest.
Trademark notices present in the footer, terms and disclaimer.
Run py _src/build.py --check - zero broken internal links.
8. After launch
Verify the domain in Search Console; watch the Coverage and Core Web Vitals reports.
Check that 404.html is actually served for missing URLs on your host.
Confirm HTTPS and that http:// and the www variant both redirect to
the canonical host.
Re-run the checklist whenever you add a batch of content.