SEO dashboard for the .com, on the .org (collected outside XWiki) #125

Open
opened 2026-11-07 14:06:47 +00:00 by rajames · 0 comments
Owner

What

An SEO dashboard for starshipos-f18.com: an admin-only page on the .org XWiki (like Inquiries) showing how the public site is found and how it performs.

The work is split so XWiki only draws, and collects nothing itself:

  1. Collect, outside XWiki: a nightly cron job on the server (Python or shell; no Node), run when CI is idle:
    • Google Search Console API: queries, impressions, clicks, average position per page. Needs a Google service account added to the Search Console property.
    • PageSpeed Insights API: Core Web Vitals and the SEO score for each .com page. Needs a free API key.
    • Apache access logs, through GoAccess (C, in apt): visits, referrers, 404s, crawler hits.
    • Page checks: titles, meta descriptions, broken links, sitemap.xml and robots.txt.
  2. Push into the wiki over REST: results as an attachment or objects on an admin page, the same way site/*/install.sh installs pages.
  3. Show in XWiki: the Chart macro for trends, Live Data for per-page tables, under the .org's admin rights.

Why -- the ruling or the design it comes from

Captain Bob, 2026-11-07: "Can an SEO dashboard run in XWiki given the current stack?" -- "File it as an issue."

Collection stays out of XWiki's JVM: on 2026-11-07 the .org XWiki hung (likely memory) under ordinary load, with CI image builds running on the same server. XWiki has what it needs to draw the data (Chart macro, Live Data, Dashboard macro) and could fetch it with Groovy and its Scheduler, but that load belongs elsewhere.

Done when

  • Prerequisites on the .com: a sitemap.xml, a robots.txt, a meta description per page (the pages are {{html}} blocks; XWiki writes the page <head>), the site verified in Google Search Console (DNS record or HTML file)
  • The collector in the tree (site/seo/), run nightly by cron, with its keys outside the repository
  • An admin-only SEO page on the .org: Search Console trends, PageSpeed scores per page, GoAccess traffic, the page checks
  • Verified: a guest gets 401 on the page; one night's data appears in it

Area

site (the .com and .org wikis)

Priority

nice

🤖 Filed with Claude Code

### What An SEO dashboard for starshipos-f18.com: an admin-only page on the .org XWiki (like `Inquiries`) showing how the public site is found and how it performs. The work is split so XWiki only draws, and collects nothing itself: 1. **Collect, outside XWiki:** a nightly cron job on the server (Python or shell; no Node), run when CI is idle: - **Google Search Console API:** queries, impressions, clicks, average position per page. Needs a Google service account added to the Search Console property. - **PageSpeed Insights API:** Core Web Vitals and the SEO score for each .com page. Needs a free API key. - **Apache access logs, through GoAccess** (C, in apt): visits, referrers, 404s, crawler hits. - **Page checks:** titles, meta descriptions, broken links, `sitemap.xml` and `robots.txt`. 2. **Push into the wiki over REST:** results as an attachment or objects on an admin page, the same way `site/*/install.sh` installs pages. 3. **Show in XWiki:** the Chart macro for trends, Live Data for per-page tables, under the .org's admin rights. ### Why -- the ruling or the design it comes from Captain Bob, 2026-11-07: "Can an SEO dashboard run in XWiki given the current stack?" -- "File it as an issue." Collection stays out of XWiki's JVM: on 2026-11-07 the .org XWiki hung (likely memory) under ordinary load, with CI image builds running on the same server. XWiki has what it needs to draw the data (Chart macro, Live Data, Dashboard macro) and could fetch it with Groovy and its Scheduler, but that load belongs elsewhere. ### Done when - [ ] Prerequisites on the .com: a `sitemap.xml`, a `robots.txt`, a meta description per page (the pages are `{{html}}` blocks; XWiki writes the page `<head>`), the site verified in Google Search Console (DNS record or HTML file) - [ ] The collector in the tree (`site/seo/`), run nightly by cron, with its keys outside the repository - [ ] An admin-only `SEO` page on the .org: Search Console trends, PageSpeed scores per page, GoAccess traffic, the page checks - [ ] Verified: a guest gets 401 on the page; one night's data appears in it ### Area site (the .com and .org wikis) ### Priority nice 🤖 Filed with [Claude Code](https://claude.com/claude-code)
rajames added the
kind
feature
status
backlog
priority
nice
labels 2026-11-07 14:06:47 +00:00
Sign in to join this conversation.