Skip to content

fix(seo): canoniek domein naar apex, canonicals en OG-tags op alle pagina's#15

Open
Nozzit wants to merge 1 commit into
OpenAEC-Foundation:mainfrom
Nozzit:seo/apex-canonical-og
Open

fix(seo): canoniek domein naar apex, canonicals en OG-tags op alle pagina's#15
Nozzit wants to merge 1 commit into
OpenAEC-Foundation:mainfrom
Nozzit:seo/apex-canonical-og

Conversation

@Nozzit

@Nozzit Nozzit commented Jul 27, 2026

Copy link
Copy Markdown

Voortgekomen uit een SEO-/vindbaarheidsaudit van de hele site. Raakt geen enkele productpagina inhoudelijk — alleen <head>-metadata, robots.txt, sitemap.xml en het canonieke domein.

Waarom

open-aec.com en www.open-aec.com serveerden allebei HTTP 200 vanaf dezelfde nginx, zonder redirect, terwijl geen enkele pagina een <link rel="canonical"> had. Elke pagina bestond daardoor dubbel voor zoekmachines. Daarbovenop wezen alle zeven vs/-pagina's — in sitemap.xml zelf omschreven als "high AI search intent" — met hun canonical naar openaec.foundation, een domein dat niet eens resolvet.

Het apex-domein open-aec.com is nu gekozen als canoniek adres, in lijn met CNAME en het deploy-pad.

Wat er in zit

  • Domein: 325 verwijzingen naar www.open-aec.com omgezet naar het apex-domein, in sitemap.xml, llms.txt, robots.txt, alle pagina's, data/manual-news.json en de generatorbronnen. Historische logs (PROMPTS.md, docs/, marketing/) en upstream release-notes zijn bewust ongemoeid gelaten.
  • vs/-canonicals omgezet van openaec.foundation naar het apex-domein, inclusief de JSON-LD-url-velden.
  • Canonical + Open Graph + Twitter-card + rel=alternate naar /llms.txt en /api/tools.json toegevoegd aan 50 pagina's. Productpagina's gebruiken hun eigen screenshot als preview; pagina's zonder beeld vallen terug op twitter:card=summary in plaats van een lege grote kaart. De og:image op de homepage was een SVG — die weigeren LinkedIn, X, Slack en WhatsApp allemaal — nu een raster, met een TODO voor een op maat gemaakte 1200x630 merk-afbeelding (issue Merk-OG-afbeelding (1200x630) ontbreekt voor social previews #6).
  • robots.txt: de 23 benoemde AI-crawlers stonden elk in een eigen groep met alleen Allow: /. Zo'n groep erft de Disallow van User-agent: * niet, dus ClaudeBot, GPTBot en de rest crawlden gewoon /old/ en de concepten. Nu één groep met opeenvolgende User-agent-regels (RFC 9309) en de exclusies erbij.
  • sitemap.xml: dode entries /diensten/ en /agenda/ (beide live 404) verwijderd; /vs/dragon/, /open-books/, /ext-drawing-statistics/ en /structuur/ toegevoegd. De /md/-entry gaf 403 (geen index.html, directory listing uit) en wijst nu naar /md/index.md.
  • vs/dragon/ ontbrak op de vergelijkingshub en in de JSON-LD hasPart — toegevoegd.
  • Homepage: de Nederlandse kaarttekst voor Open Planner Studio zei "coördinatiepagina voor bouwteams" en liet GWW en civiel vallen, afwijkend van de inline default en de andere drie talen. Gelijkgetrokken.
  • api/tools.json en md/* opnieuw gegenereerd met de bestaande scripts, niet met de hand aangepast.

Verificatie

  • node scripts/check-open-pile-plan-studio.js — OK
  • node scripts/check-homepage-catalog-product-pages.js — OK
  • Alle JSON-LD-blokken parsen (0 fouten); sitemap.xml is geldige XML; api/tools.json en md/index.json geldige JSON
  • Alle 49 sitemap-URL's verwijzen naar bestaande bestanden
  • Alle og:image-paden bestaan en zijn minimaal 1200x630, op open-field-studio.jpeg na (1042x905, geen groter alternatief in het repo — issue Open Field Studio: screenshot te klein voor social preview (og:image) #14)
  • In de browser gecontroleerd: geen console-fouten, navigatie laadt, taalwissel nl → fr → nl werkt

Wat hier bewust niet in zit

De 301 van www naar apex hoort in de nginx-config en staat niet in dit repo — zie issue #4. Tot die redirect er staat doet de canonical-tag het werk, maar blijft de duplicatie technisch bestaan.

Verder open gelaten: lastmod in de sitemap (#8), hreflang (#9), de merk-OG-afbeelding (#6).

…gina's

Het apex-domein open-aec.com is nu het canonieke adres. Zowel apex als www
serveerden HTTP 200 zonder redirect, terwijl geen enkele pagina een canonical
had — elke pagina bestond daardoor dubbel voor zoekmachines.

- 325 verwijzingen naar www.open-aec.com omgezet naar het apex-domein, in
  sitemap.xml, llms.txt, robots.txt, alle pagina's, data/manual-news.json en
  de generatorbronnen. Historische logs en upstream release-notes ongemoeid.
- Alle 7 vs/-pagina's canonicaliseerden naar openaec.foundation, een domein
  dat niet resolvet. Omgezet naar het apex-domein, inclusief de JSON-LD-url's.
- Canonical, Open Graph, Twitter-card en de rel=alternate-links naar
  /llms.txt en /api/tools.json toegevoegd aan 50 pagina's. Productpagina's
  gebruiken hun eigen screenshot als preview; pagina's zonder beeld vallen
  terug op twitter:card=summary. De og:image op de homepage was een SVG —
  die weigeren LinkedIn, X, Slack en WhatsApp — nu een raster met TODO voor
  een op maat gemaakte 1200x630 merk-afbeelding.
- robots.txt: de 23 benoemde AI-crawlers stonden elk in een eigen groep met
  alleen "Allow: /", en zo'n groep erft de Disallow van "User-agent: *" niet.
  ClaudeBot en GPTBot crawlden daardoor /old/ en de concepten. Nu één groep
  met opeenvolgende User-agent-regels (RFC 9309) en de exclusies erbij.
- sitemap.xml: dode entries /diensten/ en /agenda/ (beide 404) verwijderd,
  /vs/dragon/, /open-books/, /ext-drawing-statistics/ en /structuur/
  toegevoegd. De /md/-entry gaf 403 en wijst nu naar /md/index.md.
- vs/dragon/ ontbrak op de vergelijkingshub en in de JSON-LD hasPart.
- De Nederlandse kaarttekst voor Open Planner Studio op de homepage liet GWW
  en civiel vallen; gelijkgetrokken met de inline default en de andere talen.
- api/tools.json en md/* opnieuw gegenereerd met de bestaande scripts.

De 301 van www naar apex hoort in de nginx-config en staat niet in dit repo
(zie issue OpenAEC-Foundation#4). Beide checkers slagen, alle JSON-LD parseert.

Co-Authored-By: Claude <noreply@anthropic.com>
@Nozzit
Nozzit requested a review from jochem25 as a code owner July 27, 2026 07:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant