---
"@type": Article
"@id": "https://helloloam.dev/nl/principes/seo-vriendelijk"
"@source": "https://helloloam.dev/data/article/seo-friendly.json"
"@stamp": "2026-11-03T23:08:16+00:00"
about:
  "@type": DefinedTerm
  "@id": "https://helloloam.dev/data/definedterm/seo-friendly.json"
  name: SEO-vriendelijk vanaf het begin
  identifier: seo-friendly
  inDefinedTermSet:
    "@type": DefinedTermSet
    "@id": "https://helloloam.dev/data/definedtermset/gives-any-site.json"
    name: Geeft elke site
    identifier: gives-any-site
author: {"@id":"https://helloloam.dev/#organization"}
datePublished: "2026-10-03"
description: De pagina en zijn gestructureerde data komen uit hetzelfde bestand, dus ze kunnen het niet oneens zijn. Sitemap, canonicals en taallinks schrijven zichzelf.
headline: SEO-vriendelijk vanaf het begin
identifier: seo-friendly
inLanguage: nl
publisher: {"@id":"https://helloloam.dev/#organization"}
url: "https://helloloam.dev/nl/principes/seo-vriendelijk"
---

# SEO-vriendelijk vanaf het begin

[English](https://helloloam.dev/data/article/seo-friendly.md) • [Nederlands](https://helloloam.dev/nl/data/article/seo-friendly.md)

## Gevonden door hoe het gebouwd is

“Vindt Google mijn site?” heeft hetzelfde antwoord als “vindt ChatGPT mijn site?”: ja, door hoe het gebouwd is. Een productpagina zegt dat hij een `Product` is — naam, prijs, beeld, omschrijving — in de velden die een zoekmachine verwacht. Eén bestand rendert de pagina en zijn [gestructureerde data](/nl/principes/schema-als-data), dus de twee kunnen het niet oneens zijn.

## Gestructureerde data op elke pagina

Elke pagina bevat zijn JSON-LD: de organisatie, de website, de pagina en de entiteit waar hij over gaat, met opgeloste verwijzingen. Niemand schrijft dat apart — het is hetzelfde record waaruit de pagina rendert, geschikt gemaakt voor buiten.

## Adressen uit de data

Een pagina bestaat omdat een entiteit een slug claimt. Het canonieke adres, de taallinks (hreflang) en de regel in de sitemap komen allemaal uit dat ene feit. Op een site met meer talen heeft elke entiteit zijn adres per taal; een pagina zonder vertaling bestaat simpelweg niet in die taal — geen lege pagina, geen verzonnen pagina. Verhuis een pagina door zijn slug te veranderen, en een redirect vangt het oude adres op.

## Wat een crawler vindt

- **Een sitemap die niet kan afdrijven.** `/sitemap.xml` wordt berekend uit hetzelfde register dat pagina's laat bestaan — per taal, met alternates. Een sitemapregel voor een pagina die weg is, is onmogelijk.
- **Het eerste bestand dat een crawler leest.** `robots.txt` wijst naar de sitemap van elke taal, de contentsignalen en de machineweergaven.
- **Een feed als je die wilt.** Noem de types of lijsten die hem voeden, en `/feed.xml` wordt aangekondigd en actueel gehouden.

Publiceer een entiteit en al deze dingen volgen bij het volgende verzoek. Niets te exporteren, niets opnieuw te genereren.

## Wat jij bepaalt

De weergaven schrijven zichzelf; de woorden zijn van jou. Een titel en een omschrijving in gewone taal, een zin per stuk. Een beeld met een bijschrift. Een adres dat zegt wat de pagina is. De volgorde van de gekozen secties in `llms.txt`, die bepaalt wat een assistent het eerst leest. Vraag je agent hoe een pagina eruitziet voor een machine, en hij leest de machineweergave aan je terug.

## Wat het kost

De engine verzint niets. Titels en omschrijvingen schrijf jij — in gewone taal, een zin per stuk — en een pagina zonder omschrijving blijft buiten `llms.txt` tot hij er een heeft; de controle vóór publicatie vertelt het je. Er zijn geen SEO-knoppen om aan te draaien, want er is niets te corrigeren: wat scoort is wat je schreef.
