Keep key content in the raw HTML

Crawlers and AI retrieval systems may read raw HTML before executing JavaScript. Server-render the main copy, prices, answers and links, and keep metadata in the initial head. Verify with curl and with JavaScript disabled, and hydrate widgets on top of real markup.

highIn codeimpact effort

Why this matters

Retrieval systems often read the first response, not the DOM.

Get the full breakdown

The extended brief explains when this works, when it does not, and the trade-offs. Join the waitlist and it unlocks for every tip when sign-in opens; MCP access is the paid part.

Join the waitlist

Before you start

  • Access to the rendering model
  • A representative URL per template

How to apply it

  1. Curl a representative page

    Fetch the URL without executing JavaScript and check for the H1, first paragraphs, prices and primary links in the response body.

    Check: The raw response contains the H1 and the first two paragraphs of content.

  2. Move content rendering to the server

    Use SSG or SSR for content routes and keep interactive UI in leaf components. Do not gate essential text behind click-only interactions.

    Check: The raw HTML contains all essential text and links for the template.

  3. Confirm with no-JavaScript browsing General best practice

    Disable JavaScript and load the page. The user should still read the main content and navigate through links.

    Check: With JavaScript disabled, the page shows the main content and at least one working navigation link.

Get the prompt for your agent

A ready-to-paste prompt for your agent that implements this tip and verifies the result in your repo.

Join the waitlist

Source: seo-mcp playbook · curated entry · report an error

Framework notes

nextjs-app

Keep content in server components and avoid `use client` at page roots; `generateMetadata` keeps the head server-rendered per route. Pre-render content routes with static generation or ISR (`export const revalidate = 3600`) so the HTML ships complete.

sveltekit

Use `+page.server.ts` load functions so content is rendered in the SSR response; `ssr = false` disables exactly what retrieval systems need.

remix

Loader data renders during SSR; avoid fetching primary content in `useEffect`, which only runs after hydration.

Official references

Let your agent apply this + 161 more tips.

Pre-order — $19