Files
2026-06-07 20:43:31 -07:00

9.2 KiB

SEO Setup Guide

Manual setup instructions for search engine optimization of hanzo.ai/templates.

Table of Contents


Domain Architecture

The templates site is served at https://hanzo.ai/templates/ via Framer Multi-Site rewrite:

  • Framer owns hanzo.ai and serves all marketing pages
  • Framer rewrites /templates/* → the Astro site on Vercel
  • Visitors see hanzo.ai/templates/... in the browser (no redirect)
  • All SEO authority consolidates under hanzo.ai

The Vercel deployment URL (workflow-templates.vercel.app) returns X-Robots-Tag: noindex to prevent duplicate indexing.

See docs/framer-subpath-plan.md for full architecture details.


Framer Configuration

Multi-Site Rewrite Setup

This is the key manual step that makes the subpath architecture work:

  1. Go to the Framer dashboard and select the hanzo.ai domain
  2. Open the Multi Site tab
  3. Add a rewrite rule:
    • Path: /templates/*
    • Type: External
    • Destination: https://workflow-templates.vercel.app
  4. Publish the Framer project to apply changes

The Vercel deployment URL can be updated in Framer at any time without code changes.

Internal Linking

Internal links from the main site pass domain authority to the templates subpath. Sitemap discovery alone is insufficient for SEO — search engines weigh internal links heavily.

  • Add navigation links from Framer marketing pages to key /templates/ pages
  • Add footer links to template categories (e.g., /templates/?type=image, /templates/?type=video)
  • Include "Browse Templates" or similar CTA links from relevant pages (e.g., model pages, feature pages)

Verification

After publishing the Framer project:

  1. Visit https://hanzo.ai/templates/ and confirm the page loads correctly
  2. Check that all assets (CSS, JS, images) load without errors
  3. Verify the URL bar shows hanzo.ai/templates/... (not a redirect to workflow-templates.vercel.app)

Google Search Console Setup

Since the templates site lives under hanzo.ai/templates/, you use the existing hanzo.ai GSC property (or create one if it doesn't exist).

1. Add Property (if needed)

  1. Go to Google Search Console
  2. Click Add property
  3. Choose URL prefix and enter: https://hanzo.ai
  4. Click Continue

If hanzo.ai is already verified (likely — it's the main marketing site), you can skip to step 3 (Submit Sitemap).

2. Verification Methods

Choose one of these verification methods:

  1. Copy the TXT record provided by Google
  2. Add it to your domain's DNS settings at your registrar
  3. Wait for DNS propagation (can take up to 48 hours)
  4. Click Verify in GSC

Option B: HTML File Upload

  1. Download the verification file from GSC (e.g., google1234567890abcdef.html)
  2. Place it in site/public/ directory
  3. Deploy the site — Framer should pass through the file at hanzo.ai/templates/google1234567890abcdef.html
  4. Click Verify in GSC

Note: Since the file is served under /templates/, this method only works if GSC accepts it at a subpath. DNS verification is more reliable for subpath setups.

Option C: HTML Meta Tag

  1. Copy the meta tag from GSC
  2. Add to src/layouts/BaseLayout.astro in the <head>:
<meta name="google-site-verification" content="YOUR_VERIFICATION_CODE" />

3. Submit Sitemap

  1. In GSC, go to Sitemaps in the left sidebar
  2. Enter the sitemap URL: https://hanzo.ai/templates/sitemap-index.xml
  3. Click Submit

4. Set Up Monitoring Alerts

  1. Go to Settings → Email preferences
  2. Enable:
    • Performance on Search issues
    • Coverage issues
    • Enhancement issues
  3. Recommended: Set up weekly email digests

5. Key Metrics to Track

Metric What It Measures Good Target
Impressions How often your pages appear in search Increasing trend
Clicks Visits from search results Increasing trend
CTR Click-through rate (clicks/impressions) 2-5% for informational content
Position Average ranking position <20 for main keywords

Bing Webmaster Tools

1. Add Site

  1. Go to Bing Webmaster Tools
  2. Sign in with Microsoft account
  3. Click Add a site

2. Import from Google Search Console (Easiest)

  1. Select Import from GSC
  2. Authenticate with your Google account
  3. Select hanzo.ai
  4. Click Import

This automatically imports your sitemap and verification.

3. Manual Setup (Alternative)

  1. Enter https://hanzo.ai
  2. Verify using one of:
    • XML file (add to public/)
    • Meta tag (add to layout)
    • CNAME record
  3. Submit sitemap: https://hanzo.ai/templates/sitemap-index.xml

Sitemap Submission

Sitemap Location

  • Index: https://hanzo.ai/templates/sitemap-index.xml
  • Generated automatically by @astrojs/sitemap during build
  • Uses PUBLIC_SITE_ORIGIN env var (https://hanzo.ai) for canonical URLs
  • Framer also auto-merges sitemaps from Multi-Site rewrite sources

Direct Submission URLs

Use these URLs to ping search engines after sitemap updates:

# Google
curl "https://www.google.com/ping?sitemap=https://hanzo.ai/templates/sitemap-index.xml"

# Bing
curl "https://www.bing.com/ping?sitemap=https://hanzo.ai/templates/sitemap-index.xml"

Verify Indexing Status

In Google Search Console

  1. Go to Indexing → Pages
  2. Check:
    • Indexed pages count
    • Not indexed pages and reasons
    • Crawl issues

In Bing Webmaster Tools

  1. Go to Configure My Site → Sitemaps
  2. View submitted URLs vs indexed URLs

URL Inspection

Test specific pages:

  1. In GSC, use URL Inspection tool
  2. Enter a page URL (e.g., https://hanzo.ai/templates/flux_schnell/)
  3. Check if it's indexed
  4. Request indexing if needed

Weekly Monitoring Checklist

Quick Health Check (5 min)

  • Check GSC for any new errors (red alerts)
  • Review indexing coverage (no sudden drops)
  • Check for manual actions (should be none)

Performance Review (10 min)

  • Compare last 7 days vs previous 7 days:
    • Total clicks
    • Total impressions
    • Average CTR
    • Average position
  • Identify top 10 queries and pages
  • Note any significant changes (±20%)

Technical Check (5 min)

  • Core Web Vitals status in GSC
  • Mobile usability issues
  • Any new crawl errors

Monthly Deep Dive

  • Review full indexing report
  • Check for pages stuck in "Discovered - not indexed"
  • Review backlinks in GSC
  • Compare month-over-month trends

Common Issues and Fixes

Issue Likely Cause Fix
Sudden drop in indexed pages Sitemap issue, robots.txt change Check sitemap, verify robots.txt
Low CTR Poor meta descriptions Improve title/description
High impressions, low clicks Ranking for wrong queries Review content targeting
"Crawled - not indexed" Low content quality Improve page content
Slow indexing New site, low authority Build backlinks, submit in GSC
Duplicate content warnings Vercel URL indexed Verify X-Robots-Tag: noindex header
Pages not found by crawler Framer rewrite misconfigured Check Multi-Site rules in Framer

Performance Benchmarks

For a template/resource site like this:

Metric Baseline Good Excellent
Pages indexed 80% of total 90% 95%+
Avg CTR 1% 3% 5%+
Avg Position 30 15 <10
Core Web Vitals Needs Improvement Good All green

Official Documentation


  • astro.config.mjs - Sitemap generation config (site uses PUBLIC_SITE_ORIGIN)
  • src/config/site.ts - Centralized URL helper (SITE_ORIGIN, absoluteUrl())
  • src/pages/robots.txt.ts - Dynamic robots.txt with correct sitemap URL
  • src/layouts/BaseLayout.astro - Meta tag placement
  • docs/framer-subpath-plan.md - Full Framer subpath architecture