← back to Watches

deploy-seo.sh

118 lines

#!/bin/bash

# Omega Watch Price History - SEO Deployment Script
# This script rebuilds the application with SEO optimizations and restarts the server

echo "========================================"
echo "OMEGA WATCH PRICE HISTORY"
echo "SEO Optimization Deployment"
echo "========================================"
echo ""

# Navigate to project directory
cd /root/Projects/watches

# Build the application
echo "📦 Building optimized production bundle..."
npm run build

if [ $? -eq 0 ]; then
    echo "✓ Build successful"
else
    echo "✗ Build failed"
    exit 1
fi

# Check if server is running
echo ""
echo "🔍 Checking server status..."
pm2 describe watches-server > /dev/null 2>&1

if [ $? -eq 0 ]; then
    echo "⚠️  Server is running, restarting..."
    pm2 restart watches-server
    echo "✓ Server restarted"
else
    echo "🚀 Starting server for the first time..."
    pm2 start server.js --name watches-server
    pm2 save
    echo "✓ Server started"
fi

# Wait for server to be ready
echo ""
echo "⏳ Waiting for server to be ready..."
sleep 3

# Test endpoints
echo ""
echo "🧪 Testing SEO endpoints..."

# Test homepage
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://45.61.58.125:7600/)
if [ "$HTTP_CODE" = "200" ]; then
    echo "✓ Homepage: OK (200)"
else
    echo "✗ Homepage: FAILED ($HTTP_CODE)"
fi

# Test robots.txt
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://45.61.58.125:7600/robots.txt)
if [ "$HTTP_CODE" = "200" ]; then
    echo "✓ Robots.txt: OK (200)"
else
    echo "✗ Robots.txt: FAILED ($HTTP_CODE)"
fi

# Test sitemap.xml
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://45.61.58.125:7600/sitemap.xml)
if [ "$HTTP_CODE" = "200" ]; then
    echo "✓ Sitemap.xml: OK (200)"
else
    echo "✗ Sitemap.xml: FAILED ($HTTP_CODE)"
fi

# Test API
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://45.61.58.125:7600/api/watches)
if [ "$HTTP_CODE" = "200" ]; then
    echo "✓ API Watches: OK (200)"
else
    echo "✗ API Watches: FAILED ($HTTP_CODE)"
fi

# Test dynamic sitemap
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://45.61.58.125:7600/sitemap-dynamic.xml)
if [ "$HTTP_CODE" = "200" ]; then
    echo "✓ Dynamic Sitemap: OK (200)"
else
    echo "✗ Dynamic Sitemap: FAILED ($HTTP_CODE)"
fi

echo ""
echo "========================================"
echo "DEPLOYMENT COMPLETE!"
echo "========================================"
echo ""
echo "🌐 Website: http://45.61.58.125:7600"
echo "🤖 Robots: http://45.61.58.125:7600/robots.txt"
echo "🗺️  Sitemap: http://45.61.58.125:7600/sitemap.xml"
echo "📊 API Docs: http://45.61.58.125:7600/api/docs"
echo ""
echo "SEO Features Enabled:"
echo "✓ Meta tags with Open Graph & Twitter Cards"
echo "✓ Structured data (JSON-LD)"
echo "✓ Sitemap with 32 watch pages"
echo "✓ Robots.txt for crawler control"
echo "✓ Performance optimization"
echo "✓ Mobile-first responsive design"
echo ""
echo "Next Steps:"
echo "1. Test meta tags: curl -I http://45.61.58.125:7600"
echo "2. Validate structured data: Google Rich Results Test"
echo "3. Submit to Google Search Console"
echo "4. Submit to Bing Webmaster Tools"
echo ""
echo "PM2 Status:"
pm2 list | grep watches-server
echo ""