Be legible to search engines and to AI agents
Server-rendered SEO plus the well-known files agents look for.
The problem
A single-page app ships an empty document and fills it in with JavaScript. Search crawlers have mostly adapted; the newer readers — the agents fetching your pages on someone's behalf — often have not, and either way you are relying on someone else's renderer to see your content.
There is also a second audience now with its own conventions: files agents look for to learn what your site is and what it permits. Missing them is not an error anywhere, it is simply an absence.
What you are building
Live surfaces, not screenshots — every one composed from the same components you would install.
robots.txt and llms.txt
Edited as STRUCTURE, not text — which is what stops a site disallowing the path it meant to protect.
Protected paths
Disallowed for every agent · cannot be Allowedprotect() safety rail.Sitemaps
Host
User-agent groups
Header
Sections
The code
// robots.txt hand-edited in a textarea is how a site ends up disallowing the
// path it meant to protect. Model the rules, render the file.
XFiles::robots()
->group(userAgents: ['*'], allow: ['/'], disallow: ['/admin', '/api'])
->sitemap(route('sitemap'))
->protect('/admin'); // refuses to emit a rule that exposes it// A page that assembles its own head after hydration is a page crawlers see as
// untitled. fancy-seo emits it in the first byte, with the JSON-LD alongside.
<Seo
title={page.title}
description={page.summary}
jsonLd={{ "@context": "https://schema.org", "@type": "Article", headline: page.title }}
/>How to solve it
Render metadata on the server
Head tags, sitemap and crawlability handled server-side for Laravel and Inertia, so what a crawler receives does not depend on running your JavaScript.
Run thisbash composer require particle-academy/fancy-seoServe the well-known files
robots.txt, security.txt, llms.txt, humans.txt, the sitemap and an agents manifest — generated from your app rather than pasted into public/ and forgotten.
Run thisbash composer require particle-academy/fancy-x-filesGive someone a way to edit them
Editors for each of those files, so changing what crawlers and agents are told is not a deploy.
Turn on SSR for the pages that matter
The Inertia bridge carries a server entry point, so the pages that need to arrive complete do.
