Local SEO that actually ranks — JSON-LD, llms.txt, and the boring basics
Structured data, a correct sitemap, an llms.txt for the agents, and NAP consistency. The unglamorous checklist that gets local businesses found.
TODO: Beas's role
Most local businesses don’t need clever SEO. They need the boring basics done correctly and consistently. Forge bakes them in so they can’t be forgotten.
Structured data on every page
Every Forge site emits Organization and WebSite JSON-LD globally, plus
BlogPosting on articles and BreadcrumbList on nested pages. Search engines
read it; you don’t have to think about it.
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Northside Dental",
"telephone": "+1-519-555-0142",
"address": { "@type": "PostalAddress", "addressLocality": "Kitchener" }
}
NAP consistency
Name, Address, Phone — identical everywhere. Because they come from one config file, the footer, the contact page, and the structured data can’t drift apart. That consistency is what local search rewards.
A sitemap, robots.txt, and an llms.txt
The sitemap and robots.txt are generated at build. We also ship an
llms.txt — a plain-text summary of the site for the AI agents that
increasingly do the “searching” on a person’s behalf. It’s cheap to produce and
it’s where discovery is heading.
Performance is an SEO feature
Core Web Vitals are a ranking signal. Because Forge sites ship almost no JavaScript, they pass them by default. Fast is the optimization.
Written by
BeasTODO: Add Beas's bio. Avatar is an AI-generated placeholder (Pollinations) — swap in a real headshot prompt or URL.
Keep reading
Config-driven marketing sites — change the config, not the components
A rebrand should be one file, not a week. How Forge models an entire business in a single typed config so the components never need to change.