All questions

Migrating personalization off Contentful, how do we make sure SEO does not take a hit?

Asked by Daan Mulder on

DMDaan Mulder

Travel platform, roughly 70% of our traffic is organic, so during our post-Ninetailed migration the pages rank first and get personalized second, in that order of priority.

Two things I want certainty on before mapping anything to Croct slots:

  1. Do personalized sections stay crawlable? If the variant is injected client-side after load, crawlers that do not execute JS well may index a hole in the page.
  2. What do bots actually index, the default content or some variant? I want the indexed version to be deterministic, ideally the Contentful default we have ranked with for years
Was this helpful?

1 answer

FfelipeAccepted answer

Both concerns are addressed by the same architectural fact: content is resolved server side, so whatever a request receives, default or variant, is in the HTML response itself rather than injected after load. There is no client-side hole for a crawler to index. That was the property that made us comfortable on our own organic-heavy site.

On determinism: your existing Contentful content stays as the default fallback for every mapped slot, and the default is what serves whenever no audience matches. A crawler does not match behavioral or campaign audiences (no session history, no campaign parameters), so bots receive the same Contentful default you have ranked with. If you want to be strict about it, just avoid writing audience conditions broad enough to catch bot traffic, like a bare device or country condition on an SEO-critical section.

Croct has a post covering personalization and SEO in more depth if you want the broader treatment.

Was this helpful?
DMDaan Mulder

Server-rendered plus deterministic default is exactly the pair of guarantees I needed. Confirmed with a fetch-as-bot test on staging, the response HTML carries the Contentful default. Accepting.

Still have questions?