Custom Domain Setup
Use your own custom domain for download pages to create a fully branded customer experience.
Custom Domain Overview
Section titled “Custom Domain Overview”What is custom domain:
Replace: yourshop.myshopify.com/apps/alvadigitaldownloadsWith: downloads.yourshop.comor: files.yourshop.comor: get.yourshop.comBenefits:
✓ Professional branding✓ Customer trust✓ Better SEO✓ Consistent experience✓ Custom SSL certificate✓ Email deliverabilityPrerequisites
Section titled “Prerequisites”Requirements
Section titled “Requirements”Before setting up:
☑ Own a domain (yourshop.com)☑ Access to DNS settings☑ SSL certificate (Let's Encrypt free)☑ Professional or Enterprise plan☑ Technical knowledge (basic DNS)DNS providers supported:
✓ Cloudflare✓ Google Domains✓ GoDaddy✓ Namecheap✓ AWS Route 53✓ All major DNS providersChoosing a Subdomain
Section titled “Choosing a Subdomain”Subdomain Options
Section titled “Subdomain Options”Popular choices:
downloads.yourshop.com
Pros: Clear purpose, easy to rememberUse: Download pages, file accessfiles.yourshop.com
Pros: Short, professionalUse: File hosting, downloadsget.yourshop.com
Pros: Action-oriented, modernUse: Product downloadsmembers.yourshop.com
Pros: Exclusive feelUse: Member-only contentBest practices:
✓ Keep it short (1-2 words)✓ Related to downloads/files✓ Easy to spell✓ Memorable
❌ Avoid long subdomains❌ Don't use numbers/hyphens❌ Not generic (app.yourshop.com)DNS Configuration
Section titled “DNS Configuration”Add DNS Records
Section titled “Add DNS Records”CNAME record setup:
Step 1: Get Alva DNS target
Settings → Advanced → Custom DomainDomain: downloads.yourshop.com[Verify Domain]
DNS target provided:alva-downloads.global.ssl.fastly.netStep 2: Add CNAME in DNS provider
Cloudflare example:
DNS → Add record
Type: CNAMEName: downloadsTarget: alva-downloads.global.ssl.fastly.netProxy status: ☐ Proxied (DNS only)TTL: Auto
[Save]Google Domains example:
DNS → Custom records → Manage custom records
Host name: downloadsType: CNAMETTL: 3600Data: alva-downloads.global.ssl.fastly.net
[Add]GoDaddy example:
DNS Management → Add → CNAME
Host: downloadsPoints to: alva-downloads.global.ssl.fastly.netTTL: 1 Hour
[Save]DNS Propagation
Section titled “DNS Propagation”Wait for propagation:
Propagation time: 15 minutes - 48 hoursTypical: 1-4 hoursFastest: 15-30 minutes (with low TTL)
Check propagation:https://www.whatsmydns.net/
Enter: downloads.yourshop.comType: CNAMEResult: Should show alva-downloads.global.ssl.fastly.netSSL Certificate Setup
Section titled “SSL Certificate Setup”Automatic SSL
Section titled “Automatic SSL”Let’s Encrypt (free):
Auto-provisioning:
After DNS configured:1. Alva detects DNS record2. Automatically requests SSL certificate3. Let's Encrypt validates domain4. Certificate installed5. HTTPS enabled
Time: 5-30 minutesCost: FreeRenewal: Automatic (every 90 days)Verify SSL:
Visit: https://downloads.yourshop.comCheck: Lock icon in browserCertificate: Valid, issued by Let's EncryptExpiry: Shows expiration dateCustom SSL Certificate
Section titled “Custom SSL Certificate”Use your own certificate:
Upload custom cert:
Settings → Custom Domain → SSL Certificate☑ Use custom SSL certificate
Certificate: [Upload .crt file]Private key: [Upload .key file]Chain: [Upload chain.crt] (optional)
[Upload Certificate]
Use case: EV certificates, wildcard certsVerify Domain
Section titled “Verify Domain”Domain Verification
Section titled “Domain Verification”Confirm setup:
Verification steps:
Settings → Custom Domain → Verify
Checks:✓ DNS record exists✓ Points to correct target✓ SSL certificate valid✓ HTTPS accessible✓ No redirect loops
Status: ✓ VerifiedTroubleshooting verification:
Common issues:
❌ DNS not propagated yetSolution: Wait 1-24 hours, retry
❌ CNAME points to wrong targetSolution: Update DNS record
❌ SSL certificate pendingSolution: Wait 5-30 minutes for auto-provision
❌ Cloudflare proxy enabledSolution: Disable proxy (DNS only)Download Page Configuration
Section titled “Download Page Configuration”Update Download Links
Section titled “Update Download Links”Switch to custom domain:
Automatic update:
Settings → Custom Domain → Download Links● Use custom domain for all download links○ Use default domain
New download links:Before: yourshop.myshopify.com/apps/alvadigitaldownloads/download?key=...After: downloads.yourshop.com/download?key=...
Existing links: Automatically redirectEmail Links
Section titled “Email Links”Update email templates:
Email configuration:
Settings → Email Settings → Templates☑ Use custom domain in emails
Download button URL:Old: https://yourshop.myshopify.com/apps/...New: https://downloads.yourshop.com/download?key=...
Benefits:• Professional appearance• Branded experience• Better email deliverabilityBranding
Section titled “Branding”Custom Download Page
Section titled “Custom Download Page”Customize appearance:
Logo and branding:
Settings → Custom Domain → Branding
Logo: [Upload logo for custom domain]Favicon: [Upload .ico file]Primary color: #007AFFBackground: Custom background image
Apply: Custom domain pages onlyCustom HTML/CSS
Section titled “Custom HTML/CSS”Advanced customization:
Custom styles:
/* Custom CSS for downloads.yourshop.com */.download-page { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); font-family: 'Montserrat', sans-serif;}
.download-header { background: white; padding: 20px; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.1);}
.download-button { background: #007AFF; color: white; padding: 15px 40px; border-radius: 8px; font-weight: 600; transition: transform 0.2s;}
.download-button:hover { transform: scale(1.05);}Advanced Configuration
Section titled “Advanced Configuration”Subdirectory Setup
Section titled “Subdirectory Setup”Use subdirectory instead:
Not recommended but possible:
yourshop.com/downloads/vsdownloads.yourshop.com
Requires:• Reverse proxy setup• More complex configuration• Server-side redirect rules
Recommendation: Use subdomain (easier)Multiple Domains
Section titled “Multiple Domains”Different domains for different purposes:
Multi-domain setup:
downloads.yourshop.com → Main download pagemembers.yourshop.com → Member-only contentpremium.yourshop.com → Premium products
Configuration:Map products to specific domainsDifferent branding per domainSeparate analyticsSEO Configuration
Section titled “SEO Configuration”SEO Settings
Section titled “SEO Settings”Optimize for search:
Meta tags:
Settings → Custom Domain → SEO
Title: {product_name} - Download | Your ShopDescription: Download your {product_name} instantly. Access your files anytime.Keywords: digital download, {product_name}, instant access
Open Graph:og:title, og:description, og:imageTwitter Card tagsRobots and Sitemap
Section titled “Robots and Sitemap”Search engine indexing:
Robots.txt:
User-agent: *Allow: /downloadDisallow: /apiDisallow: /admin
Sitemap: https://downloads.yourshop.com/sitemap.xmlSitemap generation:
Settings → Custom Domain → SEO → Generate Sitemap☑ Auto-generate sitemapInclude: Product download pagesUpdate: Daily
Access: downloads.yourshop.com/sitemap.xmlAnalytics
Section titled “Analytics”Track Custom Domain
Section titled “Track Custom Domain”Analytics setup:
Google Analytics:
Settings → Custom Domain → AnalyticsGoogle Analytics ID: UA-XXXXXXXXX-X or G-XXXXXXXXXX
Track:☑ Page views (download pages)☑ Download events☑ Conversion events☑ Custom dimensions (product, customer)
Domain: downloads.yourshop.comCustom Tracking
Section titled “Custom Tracking”Advanced tracking:
// Custom tracking code<script> // Track download initiation document.querySelectorAll('.download-button').forEach(btn => { btn.addEventListener('click', function() { gtag('event', 'download_click', { 'event_category': 'Downloads', 'event_label': this.dataset.filename, 'custom_domain': 'downloads.yourshop.com' }); }); });</script>Email Deliverability
Section titled “Email Deliverability”SPF and DKIM
Section titled “SPF and DKIM”Email authentication:
SPF record:
Add to yourshop.com DNS:Type: TXTName: @Value: v=spf1 include:spf.alvaapps.com ~all
Purpose: Authorize Alva to send emailsBenefit: Better deliverabilityDKIM record:
Get from: Settings → Email → AuthenticationAdd to DNS: TXT recordPurpose: Email signature verificationCustom From Domain
Section titled “Custom From Domain”Send from custom domain:
Email configuration:
Settings → Email → From AddressFrom: downloads@yourshop.com(instead of: noreply@shopify.com)
Requires:• SPF record configured• DKIM record configured• Domain verified
Benefit: Professional, trusted senderPerformance
Section titled “Performance”CDN Configuration
Section titled “CDN Configuration”Optimize delivery:
CDN settings:
Settings → Custom Domain → Performance
☑ Enable CDN cachingCache duration: 1 hour (download pages)Edge locations: Global (300+ locations)
☑ Enable compression (Gzip, Brotli)☑ HTTP/2 enabled☑ Early Hints enabled
Result: Fast global accessCaching Strategy
Section titled “Caching Strategy”Cache configuration:
Cache headers:
Download pages:Cache-Control: public, max-age=3600
Static assets (CSS, JS, images):Cache-Control: public, max-age=31536000
Download links (presigned):Cache-Control: private, no-cacheMonitoring
Section titled “Monitoring”Domain Health
Section titled “Domain Health”Monitor custom domain:
Health checks:
Settings → Custom Domain → Monitoring
Checks:✓ DNS resolution✓ SSL certificate validity✓ HTTPS accessibility✓ Response time✓ Uptime
Frequency: Every 5 minutesAlerts: Email if issues detectedSSL Expiry Alerts
Section titled “SSL Expiry Alerts”Certificate monitoring:
Auto-renewal: 30 days before expiryBackup alert: 7 days before expiry (if renewal fails)Emergency alert: 1 day before expiry
Notification: Email to shop ownerAction: Auto-renew via Let's EncryptTroubleshooting
Section titled “Troubleshooting”DNS Issues
Section titled “DNS Issues”Common problems:
CNAME not resolving:
Problem: Domain doesn't resolveCheck:1. DNS record exists2. Points to correct target3. Not proxied (Cloudflare)4. TTL allows updates5. Propagation complete
Tool: dig downloads.yourshop.comSSL Certificate Errors
Section titled “SSL Certificate Errors”Fix SSL issues:
Error: "Your connection is not private"Causes:• Certificate not yet provisioned (wait 30 min)• DNS not pointing correctly• Mixed content (HTTP + HTTPS)
Solutions:1. Verify DNS correct2. Wait for SSL provisioning3. Force HTTPS on all assets4. Clear browser cacheRedirect Loops
Section titled “Redirect Loops”Fix infinite redirects:
Problem: Page keeps redirectingCauses:• Cloudflare proxy enabled (should be DNS only)• Incorrect redirect rules• Mixed HTTP/HTTPS
Solution:1. Disable Cloudflare proxy2. Check redirect settings3. Use HTTPS consistentlyMigration
Section titled “Migration”Switch from Default to Custom
Section titled “Switch from Default to Custom”Migration steps:
Gradual migration:
Week 1: Setup custom domain, testWeek 2: Enable for new orders onlyWeek 3: Update email templatesWeek 4: Redirect all old linksWeek 5: Full migration complete
Old links: Continue working (auto-redirect)New links: Use custom domainUpdate Integrations
Section titled “Update Integrations”Update external systems:
Checklist:
☐ Update webhook URLs☐ Update API endpoint references☐ Update email templates☐ Update marketing materials☐ Update help documentation☐ Notify customers (if needed)Best Practices
Section titled “Best Practices”1. Use HTTPS Only
Section titled “1. Use HTTPS Only”Force HTTPS:
✓ Enable HSTS (HTTP Strict Transport Security)✓ Redirect HTTP to HTTPS✓ Use secure cookies
Settings → Custom Domain → Security☑ Force HTTPS☑ Enable HSTSHSTS max-age: 31536000 (1 year)2. Monitor Regularly
Section titled “2. Monitor Regularly”Regular checks:
Weekly:☐ Check SSL certificate expiry☐ Verify DNS still correct☐ Test download links☐ Monitor performance
Monthly:☐ Review analytics☐ Check uptime☐ Test from different locations3. Plan for Failures
Section titled “3. Plan for Failures”Backup strategy:
✓ Keep default domain working✓ Auto-fallback if custom domain down✓ Monitor health proactively✓ Have rollback plan
If custom domain fails:→ Auto-redirect to default domain→ Email notifications sent→ Downloads still work4. Communicate Changes
Section titled “4. Communicate Changes”Customer communication:
When launching custom domain:• Announce in email newsletter• Update website footer• Add to order confirmation• Update social media
Message:"We've improved our download experience!Access your files at downloads.yourshop.com"5. Test Thoroughly
Section titled “5. Test Thoroughly”Pre-launch testing:
☐ Test from multiple browsers☐ Test on mobile devices☐ Test from different countries/ISPs☐ Verify SSL certificate☐ Check email links work☐ Test API integrations☐ Load test download pagesNext Steps
Section titled “Next Steps”- File Watermarking - Protect your content
- API Webhooks and Automation - Integrate systems
- Advanced Analytics - Track performance
- Advanced Settings and API - API docs