Terrain Viewer
Dev

Indexing, SEO and Agents

What each discovery file and tag does, and how to register the site with Google and Bing

The app is a single-page app: without JavaScript its page is nearly empty. These pieces make it findable by search engines and usable by AI assistants.

What does what

robots.txt (public/robots.txt) allows all crawlers and points them to the sitemap.

sitemap.xml lists the app and every docs page, so crawlers find pages without following links. Generated by scripts/build-seo.mjs on every pnpm build, from the docs frontmatter.

Canonical URL. Every shared link (/?lat=…&zoom=…) is a different address for the same page. The <link rel="canonical"> in index.html tells search engines to rank them all as the root, and each docs page declares its own address. Links keep working; it is only a hint to crawlers.

Shell text and schema.org markup. index.html carries a description, links to key docs pages and a WebApplication JSON-LD block, for crawlers and fetchers that do not run JavaScript. React replaces the text on first render.

llms.txt at the site root is for AI assistants that read the web, ChatGPT search among them: what the app is, how to build a link to a place and mode, and every docs page. Generated with the sitemap. The docs also serve their own /docs/llms.txt and /docs/llms-full.txt.

The agent skill (skills/terrain-viewer/SKILL.md) does the same for agents that load skills, with step-by-step instructions. See Use with AI Assistants.

Search consoles. Google Search Console and Bing Webmaster Tools are where the owner proves the site is theirs, submits the sitemap and sees what gets indexed. ChatGPT search draws largely on Bing's index, so Bing matters as much as Google here.

Google Search Console

  1. Open search.google.com/search-console and add a property: URL prefix https://terrain-viewer.iconem.com/, or Domain iconem.com for every subdomain.
  2. Verify: for URL prefix, put the google….html file it gives in public/ and deploy (or add its meta tag to index.html); for Domain, add the DNS TXT record.
  3. Sitemaps: submit https://terrain-viewer.iconem.com/sitemap.xml.
  4. URL inspection: request indexing of / and /docs/.

Bing Webmaster Tools

  1. Open bing.com/webmasters and sign in.
  2. Import from Google Search Console copies the verified site and its sitemap. Otherwise add the site and verify with BingSiteAuth.xml in public/, a meta tag, or DNS.
  3. Check that sitemap.xml is listed under Sitemaps.

IndexNow

A free ping that tells Bing (and other participating engines) a page changed, so it is recrawled within minutes instead of days. Generate a key in Bing Webmaster Tools under IndexNow or at bing.com/indexnow, serve it as public/<key>.txt, and have the deploy call https://api.indexnow.org/indexnow?url=<page>&key=<key>. Not set up yet.

On this page