diff --git a/DEPLOY.md b/DEPLOY.md
index d128461..68007f2 100755
--- a/DEPLOY.md
+++ b/DEPLOY.md
@@ -1,4 +1,4 @@
-# Wild Dragon Site - Deployment Guide
+# Wild Dragon Site — Deployment Guide
## Quick Deploy to TrueNAS Docker
@@ -10,31 +10,76 @@ SSH into TrueNAS or use Portainer terminal:
```bash
cd /mnt/NVME/Docker/wilddragon-site
+git pull
+docker compose down
docker compose up -d --build
```
-The site will be available at `http://10.0.0.25:43036`
+The site will be available at `http://10.0.0.25:43036`.
-### 3. Set up Nginx Proxy Manager
-In your Nginx Proxy Manager (http://10.0.0.25:30020):
-- Add a new Proxy Host
-- Domain: `wilddragon.net` and `www.wilddragon.net`
+> Build can take ~120s on first build because of Next.js compile + image optimization.
+
+### 3. Set up Nginx Proxy Manager — IMPORTANT FOR SEO
+
+The canonical hostname is **`wilddragon.net`** (apex, no www). Configure NPM as follows:
+
+**Proxy host 1 — Apex (serves the site):**
+- Domain: `wilddragon.net`
- Forward to: `10.0.0.25:43036`
-- Enable SSL (Let's Encrypt)
+- SSL: Let's Encrypt
+- Block Common Exploits: on
+- Websockets Support: on
+
+**Proxy host 2 — www (301 redirects to apex):**
+- Domain: `www.wilddragon.net`
+- SSL: Let's Encrypt (same cert)
+- Use the **Custom locations / Advanced** tab and add:
+ ```
+ return 301 https://wilddragon.net$request_uri;
+ ```
+
+The Next.js app also has a fallback `host=www.wilddragon.net` redirect baked into
+`next.config.ts`, but doing it at the proxy is faster and cleaner.
+
+### 4. Old-build cleanup — IMPORTANT FOR SEO
+
+Until ~May 2026 the apex was serving an older Babel-in-browser React build
+(separate `index.html`, broken nested `
` tag, `robots.txt` with literal
+`\n` strings, `Disallow: /*.js$`). If any old static files are still in the
+NPM webroot or any other Nginx location, **remove them** and ensure the only
+upstream is the Next.js container at port 43036. After deploying:
+
+```bash
+# From TrueNAS, sanity-check that nothing else is serving wilddragon.net:
+curl -sI https://wilddragon.net/ | grep -i server
+curl -s https://wilddragon.net/robots.txt | head -5
+curl -s https://wilddragon.net/sitemap.xml | head -3
+```
+
+`robots.txt` should be a few lines of plain text. `sitemap.xml` should be valid
+XML with `` and one `` per project. If either still has literal
+`\n` strings, the old build is still being served.
+
+### 5. Search Console (post-deploy)
+
+- Submit `https://wilddragon.net/sitemap.xml` in Google Search Console
+- Submit the same in Bing Webmaster Tools
+- Add the `verification.google` / `verification.other` values to
+ `src/app/layout.tsx` once you have the property verification tokens
+- Use the URL Inspection tool to request indexing on `/`, `/services`, and the
+ project pages
## Adding Your Photos
### Leica BTS Photos
Drop your photos into `public/images/` with these names:
-- `commanders-thumb.jpg` - Washington Commanders project
-- `betmgm-thumb.jpg` - BetMGM project
-- `cvs-thumb.jpg` - CVS/Aetna project
-- `blue-origin-thumb.jpg` - Blue Origin project
-- `ubs-thumb.jpg` - UBS project
-- `teneo-thumb.jpg` - Teneo project
-- `intuit-thumb.jpg` - Intuit XR project
+- `commanders-thumb.jpg` — Washington Commanders project
+- `betmgm-thumb.jpg` — BetMGM project
+- `cvs-thumb.jpg` — CVS/Aetna project
+- `ubs-thumb.jpg` — UBS project
+- `intuit-thumb.jpg` — Intuit XR project
-Recommended: 1200x800px, optimized for web (under 500KB each)
+Recommended: 1200x800px, optimized for web (under 500KB each).
### BMG Line Drawings
You can add line drawings to individual project pages by placing them in:
@@ -46,7 +91,9 @@ All project content lives in a single file:
`src/data/projects.ts`
To add a new project, copy an existing entry and modify the fields.
-Then rebuild: `docker compose up -d --build`
+Then rebuild: `docker compose up -d --build`.
+
+The sitemap and the homepage `Projects` grid pick up new entries automatically.
## Local Development
```bash