docs: update CHANGELOG and PROJECT.md for SEO/GEO hub
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
11
CHANGELOG.md
11
CHANGELOG.md
@@ -6,6 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- **SEO/GEO admin hub** — syncs search performance data from Google Search Console (service
|
||||||
|
account auth), Bing Webmaster Tools (API key), and Umami (bearer token) into 3 new SQLite
|
||||||
|
tables (`seo_search_metrics`, `seo_analytics_metrics`, `seo_sync_log`); daily background
|
||||||
|
sync via worker scheduler at 6am UTC; admin dashboard at `/admin/seo` with three HTMX tab
|
||||||
|
views: search performance (top queries, top pages, country/device breakdown), full funnel
|
||||||
|
(impressions → clicks → pageviews → visitors → planner users → leads), and per-article
|
||||||
|
scorecard with attention flags (low CTR, no clicks); manual "Sync Now" button; 12-month
|
||||||
|
data retention with automatic cleanup; all data sources optional (skip silently if not
|
||||||
|
configured)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- **pSEO CMS: SSG architecture** — templates now live in git as `.md.jinja` files with YAML
|
- **pSEO CMS: SSG architecture** — templates now live in git as `.md.jinja` files with YAML
|
||||||
frontmatter (slug, data_table, url_pattern, etc.) instead of SQLite `article_templates` table;
|
frontmatter (slug, data_table, url_pattern, etc.) instead of SQLite `article_templates` table;
|
||||||
|
|||||||
@@ -110,6 +110,7 @@
|
|||||||
- [x] English legal pages (GDPR, proper controller identity)
|
- [x] English legal pages (GDPR, proper controller identity)
|
||||||
- [x] Cookie consent banner (functional/A/B categories, 1-year cookie)
|
- [x] Cookie consent banner (functional/A/B categories, 1-year cookie)
|
||||||
- [x] Virtual office address on imprint
|
- [x] Virtual office address on imprint
|
||||||
|
- [x] SEO/GEO admin hub — GSC + Bing + Umami sync, search/funnel/scorecard views, daily background sync
|
||||||
|
|
||||||
### Other
|
### Other
|
||||||
- [x] A/B testing framework (`@ab_test` decorator + Umami `data-tag`)
|
- [x] A/B testing framework (`@ab_test` decorator + Umami `data-tag`)
|
||||||
@@ -139,7 +140,7 @@ _Move here when you start working on it._
|
|||||||
| Publish SEO articles: run `seed_content --generate` on prod (or trigger from admin) | First LinkedIn post |
|
| Publish SEO articles: run `seed_content --generate` on prod (or trigger from admin) | First LinkedIn post |
|
||||||
| Wipe 5 test suppliers (`example.com` entries from `seed_dev_data.py`) | |
|
| Wipe 5 test suppliers (`example.com` entries from `seed_dev_data.py`) | |
|
||||||
| Verify Resend production API key — test magic link email | |
|
| Verify Resend production API key — test magic link email | |
|
||||||
| Submit sitemap to Google Search Console | Set up Google Search Console + Bing Webmaster Tools |
|
| Submit sitemap to Google Search Console | Set up Google Search Console + Bing Webmaster Tools (SEO hub ready — just add env vars) |
|
||||||
| Verify Litestream R2 backup running on prod | |
|
| Verify Litestream R2 backup running on prod | |
|
||||||
|
|
||||||
### Week 1–2 — First Revenue
|
### Week 1–2 — First Revenue
|
||||||
|
|||||||
Reference in New Issue
Block a user