A site that tells people to signal freshness honestly should be able to show its own edit history. This page is generated from the repository's git log at build time, so it cannot drift from what actually shipped and cannot be quietly curated after the fact.

38 changes across 4 days of work, from 2026-09-17 to 2026-09-20. Source: git-committed. Short hashes refer to commits in the site's private repository.

One caveat worth stating rather than hiding: this data is generated immediately before each commit is made, so the very latest change — the one that published this version of the page — appears on the next update rather than this one. The list is complete up to the commit before the current deploy.

2026-09-20

  • caf46bf Add HSTS, COOP, a partial CSP, and a real Permissions-Policy
  • a5e1920 Gate the build on JSON-LD validation, with tests for the validator itself
  • b4f1e2d Add accessibility, security, changelog and humans.txt; fix 5 WCAG AA failures
  • 9d401cd Correct a now-stale note about the GitHub profile
  • df04738 Add X handle to Person.sameAs and retire the dead brand handle
  • cc70cf4 Add confirmed LinkedIn profile to Person.sameAs
  • 5c8cf91 Add verified GitHub profile to Person.sameAs
  • 36dace2 Attribute articles to Peter Adams
  • 774e706 Add Organization entity graph, BreadcrumbList, and an editorial author page
  • e9e1021 Replace arbitrary paragraph word-count rule with evidence-based structural rules
  • da3cbd9 Practise what the checklist preaches: dates, Bing slot, answer-first openings

2026-09-19

  • 27a5a7d List llms.txt and llms-full.txt in the sitemap
  • a3696fd Generate llms.txt from collections, add llms-full.txt companion

2026-09-18

  • 65dabf8 Make git-derived lastmod actually work in production
  • 794303f Emit lastmod source as a sitemap comment
  • 48c432b Derive sitemap lastmod from git commit times
  • 4f023a6 Add google-adsense-account meta tag for site verification
  • fa47b38 Only show ad units AdSense confirms are filled
  • 3aa1a83 Go live with real AdSense ad units
  • 32a016c Record real headerLeaderboard and sidebar ad unit IDs
  • 8ba88db Set real AdSense publisher ID, enabling /ads.txt
  • 657115f Cache-bust CSS and JS so fixes reach returning visitors
  • 3d7f182 Add ads.txt generated from the AdSense publisher ID in site.js
  • 1264d88 Fix missing horizontal gutters on mobile hero and page overflow
  • b1369a3 Optimise AdSense placement for policy compliance and viewability
  • 558c9c4 Add three articles: digital PR for GEO, AI crawler decisions, content freshness; fix AdSense CSS to apply to live ins elements
  • 59fd9fa Add competitor citation audit article + cross-link from all three pillars
  • 8cd9d26 Add search console verification article + ChatGPT pillar cross-link
  • 4dd7d25 Flip to geohandbook.io: SITE_URL defaults + robots.txt sitemap line
  • ec21a60 robots.txt: point Sitemap at live worker URL, add ChatGPT-User and Perplexity-User, reorder for specificity
  • 3369822 Wire IndexNow submission into build pipeline (postbuild hook + key file passthrough)
  • d059bfd Add Perplexity tier-and-mode article covering the five Sonar tiers and citation-density differences
  • d5140c7 Add 3 engine-specific sub-pillar articles: Perplexity Reddit playbook, ChatGPT Bing/OpenAI crawlers/IndexNow, Google AI structured data
  • ca0eb2c Add engine pillar pages for Perplexity, ChatGPT, and Google AI + homepage engines section and footer/nav links
  • 1f2e684 Add ChatGPT citation signals and Google AI Mode optimization articles
  • ab882df Add 6 new GEO articles: Perplexity source selection, Reddit influence, Google May 2026 update, brand in training data, entity-first SEO, measuring GEO

2026-09-17

  • 621bd03 Remove wrangler.toml — Pages Git integration doesn't need it
  • da10f22 Initial commit: GEOhandbook Eleventy site