Add SEO and GEO
This commit is contained in:
@@ -15,6 +15,7 @@ The server listens on `http://localhost:8080` by default.
|
||||
- `PORT`: HTTP port, default `8080`
|
||||
- `HOST`: bind address, default `0.0.0.0`
|
||||
- `DATA_DIR`: disk storage root, default `./data`
|
||||
- `SITE_URL`: public canonical site URL used for SEO metadata, sitemaps, feeds, and `llms.txt`
|
||||
- `SEED_DEMO_MEMES`: set to `false` to disable generated demo memes on first boot
|
||||
- `ADMIN_TOKEN`: secret review URL token. If omitted, one is generated at boot and printed in server logs.
|
||||
- `OPENAI_API_KEY`: enables AI upload moderation. Without it, uploads are queued for admin review.
|
||||
@@ -33,6 +34,19 @@ data/
|
||||
meta/YYYY/MM/DD/aa/bb/<sha256>.json
|
||||
```
|
||||
|
||||
## Discovery Metadata
|
||||
|
||||
The app serves crawler and answer-engine metadata without adding visible page copy:
|
||||
|
||||
- `/robots.txt`
|
||||
- `/sitemap.xml` with approved meme image entries
|
||||
- `/feed.json`
|
||||
- `/llms.txt`
|
||||
- `/site.webmanifest`
|
||||
- Open Graph, Twitter card, canonical, and JSON-LD metadata on `/`
|
||||
|
||||
Set `SITE_URL` in production so canonical URLs use the public domain instead of an internal proxy hostname.
|
||||
|
||||
## Docker
|
||||
|
||||
```sh
|
||||
|
||||
Reference in New Issue
Block a user