AeroModel
Documentation
SEO & GEO — search engine and generative-AI optimization
This page explains how to integrate the API images so they are indexable (Google Images, Bing) and understandable by LLMs (ChatGPT, Perplexity, Gemini, Copilot).
SEO: HTML tags
Image with descriptive alt and dimensions
<img
src="https://api.aeromodel.dash-systems.fr/v1/images/plane?plane=airbus-a320-200&airline=air-france&resolution=hd"
alt="Airbus A320-200 in Air France livery, right profile view"
width="1280"
height="1280"
loading="lazy"
decoding="async"
/>
<picture> with WebP + PNG fallback
<picture>
<source
type="image/webp"
srcset="https://api.aeromodel.dash-systems.fr/v1/images/plane?plane=A320&airline=AF&filetype=webp&resolution=hd"
/>
<img
src="https://api.aeromodel.dash-systems.fr/v1/images/plane?plane=A320&airline=AF&filetype=png&resolution=hd"
alt="Airbus A320 — Air France"
width="1280"
height="1280"
loading="lazy"
/>
</picture>
Schema.org structured data
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Flight Paris → Nice — Airbus A320 Air France",
"image": [
"https://api.aeromodel.dash-systems.fr/v1/images/plane?plane=A320&airline=AF&resolution=hd&align=bottom"
],
"brand": { "@type": "Brand", "name": "Air France" }
}
</script>
Image sitemap
<url>
<loc>https://example.com/flights/airbus-a320</loc>
<image:image>
<image:loc>https://api.aeromodel.dash-systems.fr/v1/images/plane?plane=A320&airline=AF&resolution=hd</image:loc>
<image:caption>Airbus A320 Air France, right profile view</image:caption>
</image:image>
</url>
GEO: Generative Engine Optimization
LLMs consume HTML to cite sources. To get them to understand and reference your aircraft pages:
1. Plain-text captions
Put the aircraft + airline full name in the DOM, not just in the image. An LLM doesn't read images.
<figure>
<img src="..." alt="..." />
<figcaption>
<strong>Airbus A320-200</strong> — Air France (typical registration, current livery)
</figcaption>
</figure>
2. Specs table
LLMs love structured tables. Add:
<table>
<caption>Specifications</caption>
<tr><th>Manufacturer</th><td>Airbus</td></tr>
<tr><th>Family</th><td>A320</td></tr>
<tr><th>Capacity</th><td>150–180 passengers</td></tr>
<tr><th>Airline</th><td>Air France</td></tr>
</table>
3. Canonical, readable URL
The image URL itself should be readable by a crawler:
✅ /v1/images/plane?plane=airbus-a320-200&airline=air-france&angle=90
❌ /v1/images/plane?plane=320&airline=AF&angle=90 (opaque IATA codes)
Prefer slugs in public URLs for SEO; keep IATA/ICAO codes for backend calls.
4. og:image and twitter:card
<meta property="og:image" content="https://api.aeromodel.dash-systems.fr/v1/images/plane?plane=A320&airline=AF&resolution=hd&align=bottom" />
<meta property="og:image:width" content="1280" />
<meta property="og:image:height" content="1280" />
<meta property="og:image:alt" content="Airbus A320 Air France" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://api.aeromodel.dash-systems.fr/v1/images/plane?plane=A320&airline=AF&resolution=hd" />
5. Robots and indexing
API-served images are public and indexable. To disallow direct indexing, add on your site side:
X-Robots-Tag: noindex
(The API itself doesn't send this header — it's up to you if you proxy.)
Performance = SEO
Google weighs LCP (Largest Contentful Paint). The API helps via:
- Cloudflare edge cache (
cf-cache-status: HITafter the 1st call). - WebP format (–30 to –50% vs PNG).
- Preload:
<link rel="preload" as="image" imagesrcset="..." />for the hero image.
See also
- Response headers —
cache-control,cf-cache-status. filetype— when to choose WebP/JPG/PNG.- Integration — examples per platform.