Roam China is a Vite and React travel guide for international visitors planning trips to China. It includes destination guides, curated itineraries, regional cuisine pages, and practical travel articles.
npm i
npm run devThe site loads the AdSense client script in index.html and uses reusable ad units in high-value content areas. Copy .env.example to .env and fill the real display ad unit slot IDs from Google AdSense:
cp .env.example .envKeep ad units clearly separated from navigation, download, and share controls. The React ad component renders a compliant placeholder when a slot ID is missing, and renders an AdSense <ins class="adsbygoogle"> unit when the slot is configured.
The production build also includes public/ads.txt and the google-adsense-account meta tag for publisher verification. Keep the publisher ID aligned across index.html, public/ads.txt, .env, and the AdSense account.
The production domain is configured as https://cntripaimap.online. Build SEO files before deployment so sitemap and robots metadata point to that domain.
npm run seo:generate
npm run buildYou can also use:
npm run build:seoThe project includes:
- Route-level titles, descriptions, canonical URLs, Open Graph, and Twitter metadata.
- JSON-LD for website, organization, breadcrumbs, collections, destinations, itineraries, articles, menus, and FAQs.
- Visible FAQ sections that match FAQ structured data.
public/robots.txtandpublic/llms.txt.scripts/generate-seo-files.mjsfor productionsitemap.xmland robots sitemap directives.