mirror of
https://github.com/RayLabsHQ/gitea-mirror.git
synced 2025-12-06 11:36:44 +03:00
Updated SEO plan
This commit is contained in:
@@ -1,236 +1,628 @@
|
|||||||
# SEO Keywords & Content Strategy for Gitea Mirror
|
# SEO Keywords & Programmatic Content Strategy for Gitea Mirror
|
||||||
|
|
||||||
## Target Audience & Pain Points
|
> **Goal**: Generate 5,000-15,000 organic visits/month within 6-12 months
|
||||||
|
> **Strategy**: Low-effort, high-intent pages targeting long-tail keywords
|
||||||
### Primary Audience
|
> **Focus**: Problem-solving content over generic tool descriptions
|
||||||
- DevOps engineers managing GitHub repositories
|
|
||||||
- Companies looking to backup GitHub data
|
|
||||||
- Self-hosting enthusiasts
|
|
||||||
- Organizations migrating from GitHub to self-hosted solutions
|
|
||||||
- Developers needing GitHub disaster recovery
|
|
||||||
|
|
||||||
### Key Pain Points
|
|
||||||
- Manual GitHub to Gitea migration is time-consuming
|
|
||||||
- No automated backup solution for GitHub organizations
|
|
||||||
- Difficulty preserving repository structure during migration
|
|
||||||
- Need for scheduled, automatic synchronization
|
|
||||||
- Complex authentication setup for self-hosted Git services
|
|
||||||
|
|
||||||
## Keyword Categories & Opportunities
|
|
||||||
|
|
||||||
### 1. Problem-Solving Keywords (High Intent)
|
|
||||||
- **"github to gitea migration"** - Core functionality keyword
|
|
||||||
- **"mirror github repository to gitea"** - Direct search intent
|
|
||||||
- **"sync github gitea automatically"** - Automation focus
|
|
||||||
- **"backup github to self hosted"** - Backup use case
|
|
||||||
- **"github organization mirror tool"** - Organization-specific
|
|
||||||
- **"gitea import from github"** - Alternative phrasing
|
|
||||||
- **"migrate starred github repos"** - Specific feature
|
|
||||||
|
|
||||||
### 2. Comparison & Alternative Keywords
|
|
||||||
- **"github vs gitea migration"** - Comparison content
|
|
||||||
- **"gitea mirror alternatives"** - Competitor analysis
|
|
||||||
- **"self hosted github backup solutions"** - Solution category
|
|
||||||
- **"github repository sync tools"** - Tool category
|
|
||||||
- **"gitea github integration"** - Integration focus
|
|
||||||
- **"github backup automation"** - Automation emphasis
|
|
||||||
|
|
||||||
### 3. How-To & Tutorial Keywords
|
|
||||||
- **"how to mirror github to gitea"** - Tutorial intent
|
|
||||||
- **"setup gitea mirror docker"** - Installation guide
|
|
||||||
- **"gitea github sync tutorial"** - Step-by-step content
|
|
||||||
- **"automate github backup gitea"** - Automation tutorial
|
|
||||||
- **"mirror private github repos gitea"** - Private repos guide
|
|
||||||
- **"gitea import github wiki"** - Feature-specific tutorial
|
|
||||||
|
|
||||||
### 4. Feature-Specific Keywords
|
|
||||||
- **"gitea sso authentication setup"** - Auth feature
|
|
||||||
- **"gitea oidc provider configuration"** - OIDC setup
|
|
||||||
- **"gitea better auth integration"** - Specific tech stack
|
|
||||||
- **"gitea scheduled mirror"** - Scheduling feature
|
|
||||||
- **"gitea bulk repository import"** - Bulk operations
|
|
||||||
- **"gitea preserve organization structure"** - Organization feature
|
|
||||||
|
|
||||||
### 5. Platform & Deployment Keywords
|
|
||||||
- **"gitea mirror proxmox"** - Platform-specific
|
|
||||||
- **"gitea mirror docker compose"** - Docker deployment
|
|
||||||
- **"gitea mirror arm64"** - Architecture-specific
|
|
||||||
- **"gitea mirror reverse proxy"** - Infrastructure setup
|
|
||||||
- **"gitea authentik integration"** - Auth provider integration
|
|
||||||
|
|
||||||
### 6. Use Case Keywords
|
|
||||||
- **"self host github backup"** - Backup use case
|
|
||||||
- **"enterprise github migration gitea"** - Enterprise focus
|
|
||||||
- **"github disaster recovery gitea"** - DR use case
|
|
||||||
- **"github archive self hosted"** - Archival use case
|
|
||||||
- **"github organization backup automation"** - Org backup
|
|
||||||
|
|
||||||
### 7. Long-Tail Problem Keywords
|
|
||||||
- **"mirror github issues to gitea"** - Specific feature
|
|
||||||
- **"sync github releases gitea automatically"** - Release sync
|
|
||||||
- **"gitea mirror multiple organizations"** - Multi-org
|
|
||||||
- **"github starred repositories backup"** - Starred repos
|
|
||||||
- **"gitea mirror skip forks"** - Fork handling
|
|
||||||
|
|
||||||
### 8. Technical Integration Keywords
|
|
||||||
- **"gitea github api integration"** - API focus
|
|
||||||
- **"gitea webhook github sync"** - Webhook integration
|
|
||||||
- **"gitea ci/cd github mirror"** - CI/CD integration
|
|
||||||
- **"gitea github actions migration"** - Actions migration
|
|
||||||
|
|
||||||
## Blog Post Ideas & Content Strategy
|
|
||||||
|
|
||||||
### High-Priority Blog Posts
|
|
||||||
|
|
||||||
1. **"Complete Guide to Migrating from GitHub to Gitea in 2025"**
|
|
||||||
- **Target Keywords**: github to gitea migration, gitea import from github
|
|
||||||
- **Content**: Comprehensive migration guide with screenshots
|
|
||||||
- **Length**: 2,500-3,000 words
|
|
||||||
- **Include**: Step-by-step instructions, troubleshooting, best practices
|
|
||||||
|
|
||||||
2. **"How to Automatically Backup Your GitHub Repositories to Self-Hosted Gitea"**
|
|
||||||
- **Target Keywords**: backup github to self hosted, github backup automation
|
|
||||||
- **Content**: Focus on automation and scheduling features
|
|
||||||
- **Length**: 1,800-2,200 words
|
|
||||||
- **Include**: Docker setup, cron scheduling, backup strategies
|
|
||||||
|
|
||||||
3. **"Gitea Mirror vs Manual Migration: Which GitHub Migration Method is Best?"**
|
|
||||||
- **Target Keywords**: gitea mirror alternatives, github repository sync tools
|
|
||||||
- **Content**: Comparison post with pros/cons, feature matrix
|
|
||||||
- **Length**: 1,500-2,000 words
|
|
||||||
- **Include**: Comparison table, use case recommendations
|
|
||||||
|
|
||||||
4. **"Setting Up Enterprise GitHub Backup with Gitea Mirror and Docker"**
|
|
||||||
- **Target Keywords**: enterprise github migration gitea, github organization backup automation
|
|
||||||
- **Content**: Enterprise-focused guide with security considerations
|
|
||||||
- **Length**: 2,000-2,500 words
|
|
||||||
- **Include**: Multi-user setup, permission management, scaling
|
|
||||||
|
|
||||||
5. **"Mirror GitHub Organizations to Gitea While Preserving Structure"**
|
|
||||||
- **Target Keywords**: github organization mirror tool, gitea preserve organization structure
|
|
||||||
- **Content**: Deep dive into organization mirroring strategies
|
|
||||||
- **Length**: 1,500-1,800 words
|
|
||||||
- **Include**: Strategy explanations, configuration examples
|
|
||||||
|
|
||||||
6. **"Gitea SSO Setup: Complete Authentication Guide with Examples"**
|
|
||||||
- **Target Keywords**: gitea sso authentication setup, gitea oidc provider configuration
|
|
||||||
- **Content**: Cover all auth methods including header auth
|
|
||||||
- **Length**: 2,000-2,500 words
|
|
||||||
- **Include**: Provider examples (Google, Azure, Authentik)
|
|
||||||
|
|
||||||
7. **"How to Mirror Private GitHub Repositories to Your Gitea Instance"**
|
|
||||||
- **Target Keywords**: mirror private github repos gitea, gitea github api integration
|
|
||||||
- **Content**: Security-focused content with token management
|
|
||||||
- **Length**: 1,500-1,800 words
|
|
||||||
- **Include**: Token permissions, security best practices
|
|
||||||
|
|
||||||
8. **"Gitea Mirror on Proxmox: Ultimate Self-Hosting Guide"**
|
|
||||||
- **Target Keywords**: gitea mirror proxmox, self host github backup
|
|
||||||
- **Content**: LXC container setup tutorial
|
|
||||||
- **Length**: 1,800-2,200 words
|
|
||||||
- **Include**: Proxmox setup, resource allocation, networking
|
|
||||||
|
|
||||||
## Landing Page Optimization
|
|
||||||
|
|
||||||
### Title Tag Options
|
|
||||||
- "Gitea Mirror - Automated GitHub to Gitea Migration & Backup Tool"
|
|
||||||
- "GitHub to Gitea Mirror - Sync, Backup & Migrate Repositories Automatically"
|
|
||||||
- "Gitea Mirror - Self-Hosted GitHub Repository Backup & Sync Solution"
|
|
||||||
|
|
||||||
### Meta Description Options
|
|
||||||
- "Automatically mirror and backup your GitHub repositories to self-hosted Gitea. Support for organizations, private repos, scheduled sync, and SSO authentication. Docker & Proxmox ready."
|
|
||||||
- "The easiest way to migrate from GitHub to Gitea. Mirror repositories, organizations, issues, and releases automatically. Self-hosted backup solution with enterprise features."
|
|
||||||
|
|
||||||
### H1 Options
|
|
||||||
- "Automatically Mirror GitHub Repositories to Your Gitea Instance"
|
|
||||||
- "Self-Hosted GitHub Backup & Migration Tool for Gitea"
|
|
||||||
- "The Complete GitHub to Gitea Migration Solution"
|
|
||||||
|
|
||||||
### Key Landing Page Sections to Optimize
|
|
||||||
|
|
||||||
1. **Hero Section**
|
|
||||||
- Include primary keywords naturally
|
|
||||||
- Clear value proposition
|
|
||||||
- Quick start CTA
|
|
||||||
|
|
||||||
2. **Features Section**
|
|
||||||
- Target feature-specific keywords
|
|
||||||
- Use semantic variations
|
|
||||||
- Include comparison points
|
|
||||||
|
|
||||||
3. **Use Cases Section**
|
|
||||||
- Target use case keywords
|
|
||||||
- Include customer scenarios
|
|
||||||
- Enterprise focus subsection
|
|
||||||
|
|
||||||
4. **Installation Section**
|
|
||||||
- Target platform keywords
|
|
||||||
- Docker, Proxmox, manual options
|
|
||||||
- Quick start emphasis
|
|
||||||
|
|
||||||
5. **FAQ Section**
|
|
||||||
- Target long-tail keywords
|
|
||||||
- Common migration questions
|
|
||||||
- Technical integration queries
|
|
||||||
|
|
||||||
## Content Calendar Suggestions
|
|
||||||
|
|
||||||
### Month 1
|
|
||||||
- Week 1-2: "Complete Guide to Migrating from GitHub to Gitea"
|
|
||||||
- Week 3-4: "How to Automatically Backup Your GitHub Repositories"
|
|
||||||
|
|
||||||
### Month 2
|
|
||||||
- Week 1-2: "Gitea Mirror vs Manual Migration"
|
|
||||||
- Week 3-4: "Enterprise GitHub Backup Guide"
|
|
||||||
|
|
||||||
### Month 3
|
|
||||||
- Week 1-2: "Mirror GitHub Organizations Guide"
|
|
||||||
- Week 3-4: "Gitea SSO Setup Guide"
|
|
||||||
|
|
||||||
### Month 4
|
|
||||||
- Week 1-2: "Private Repository Mirroring"
|
|
||||||
- Week 3-4: "Gitea Mirror on Proxmox"
|
|
||||||
|
|
||||||
## SEO Research Tips
|
|
||||||
|
|
||||||
### When Using Ahrefs
|
|
||||||
1. **Search Volume**: Target 100-1,000 monthly searches initially
|
|
||||||
2. **Keyword Difficulty**: Aim for KD < 30 for new content
|
|
||||||
3. **SERP Analysis**: Check competitor content depth
|
|
||||||
4. **Parent Topics**: Find broader topics to target
|
|
||||||
5. **Featured Snippets**: Look for snippet opportunities
|
|
||||||
|
|
||||||
### Content Optimization
|
|
||||||
1. Include target keyword in:
|
|
||||||
- Title tag
|
|
||||||
- H1 (once)
|
|
||||||
- First 100 words
|
|
||||||
- At least one H2
|
|
||||||
- URL slug
|
|
||||||
- Meta description
|
|
||||||
|
|
||||||
2. Use semantic variations throughout
|
|
||||||
3. Include related keywords naturally
|
|
||||||
4. Optimize for search intent
|
|
||||||
5. Add schema markup for tutorials
|
|
||||||
|
|
||||||
## Tracking & Updates
|
|
||||||
|
|
||||||
### KPIs to Monitor
|
|
||||||
- Organic traffic growth
|
|
||||||
- Keyword rankings
|
|
||||||
- Click-through rates
|
|
||||||
- Conversion rates (signups/downloads)
|
|
||||||
- Time on page
|
|
||||||
|
|
||||||
### Regular Updates
|
|
||||||
- Review keyword performance monthly
|
|
||||||
- Update content quarterly
|
|
||||||
- Add new keywords based on search console data
|
|
||||||
- Monitor competitor content
|
|
||||||
- Track feature releases for new keyword opportunities
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Last Updated: [Current Date]*
|
## 🎯 LOW-HANGING FRUIT: Quick Wins (Start This Week)
|
||||||
*Next Review: [Date + 3 months]*
|
|
||||||
|
### Tier 1: Ultra Low-Effort, High-Intent Pages (1-2 hours each)
|
||||||
|
|
||||||
|
These are **simple template pages** with **minimal content** but **high search volume** and **buyer intent**.
|
||||||
|
|
||||||
|
| Page | Keyword | Monthly Searches | Difficulty | Effort | Priority |
|
||||||
|
|------|---------|-----------------|------------|--------|----------|
|
||||||
|
| `/use-cases/backup-github-repositories` | "backup github repositories" | 500-1K | Low (15) | 1h | ⭐⭐⭐⭐⭐ |
|
||||||
|
| `/use-cases/migrate-github-to-gitea` | "migrate github to gitea" | 300-800 | Low (10) | 1h | ⭐⭐⭐⭐⭐ |
|
||||||
|
| `/solutions/github-disaster-recovery` | "github disaster recovery" | 200-500 | Low (12) | 1h | ⭐⭐⭐⭐⭐ |
|
||||||
|
| `/vs/manual-vs-automated-github-migration` | "automated github migration" | 150-400 | Very Low (8) | 1.5h | ⭐⭐⭐⭐ |
|
||||||
|
| `/guides/setup-gitea-mirror-docker` | "gitea mirror docker setup" | 100-300 | Very Low (5) | 2h | ⭐⭐⭐⭐ |
|
||||||
|
|
||||||
|
**Why these work:**
|
||||||
|
- Specific, actionable queries ("how to backup", "migrate to")
|
||||||
|
- Low competition (KD < 15)
|
||||||
|
- High commercial intent (ready to install)
|
||||||
|
- Can reuse existing docs content
|
||||||
|
|
||||||
|
**Template for these pages:** 400-600 words, 30 minutes to write each
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 KEYWORD STRATEGY: 3-Tier Approach
|
||||||
|
|
||||||
|
### Tier 1: Problem-Solving Keywords (HIGHEST PRIORITY)
|
||||||
|
**Intent**: "I have this specific problem"
|
||||||
|
**Effort**: Low (template-based)
|
||||||
|
**Pages needed**: 15
|
||||||
|
|
||||||
|
| Primary Keyword | Secondary Keywords | Est. Traffic | Page URL |
|
||||||
|
|----------------|-------------------|--------------|----------|
|
||||||
|
| backup github repositories | github backup tool, automated github backup | 500/mo | `/use-cases/backup-github-repositories` |
|
||||||
|
| migrate github to gitea | github gitea migration, import github to gitea | 400/mo | `/use-cases/migrate-github-to-gitea` |
|
||||||
|
| github disaster recovery | backup github organization, github downtime backup | 250/mo | `/solutions/github-disaster-recovery` |
|
||||||
|
| sync github to self-hosted | self-hosted github alternative, github to gitea sync | 200/mo | `/use-cases/sync-github-to-self-hosted-gitea` |
|
||||||
|
| preserve github history | github history backup, archive github repos | 180/mo | `/use-cases/preserve-github-history` |
|
||||||
|
| github vendor lock-in | avoid github lock-in, github alternatives | 150/mo | `/solutions/avoid-vendor-lock-in` |
|
||||||
|
| github backup automation | automate github mirror, scheduled github backup | 140/mo | `/use-cases/github-backup-automation` |
|
||||||
|
| mirror starred repositories | backup starred repos, export github stars | 120/mo | `/use-cases/starred-repos-collection` |
|
||||||
|
| github offline access | offline git mirror, air-gapped github | 100/mo | `/solutions/need-offline-git-access` |
|
||||||
|
| github rate limits | bypass github api limits, github api alternatives | 90/mo | `/solutions/github-rate-limits` |
|
||||||
|
|
||||||
|
**Total Tier 1 Traffic Potential**: ~2,500 visits/month
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Tier 2: Feature-Specific Keywords (MEDIUM PRIORITY)
|
||||||
|
**Intent**: "I want to do this specific thing"
|
||||||
|
**Effort**: Medium (requires explaining features)
|
||||||
|
**Pages needed**: 12
|
||||||
|
|
||||||
|
| Primary Keyword | Est. Traffic | Page URL |
|
||||||
|
|----------------|--------------|----------|
|
||||||
|
| mirror github issues | 80/mo | `/features/github-issues-migration` |
|
||||||
|
| sync github releases | 70/mo | `/features/github-releases-sync` |
|
||||||
|
| mirror github wiki | 60/mo | `/features/wiki-migration` |
|
||||||
|
| preserve github organization structure | 50/mo | `/features/organization-structure-preservation` |
|
||||||
|
| mirror private github repos | 180/mo | `/features/private-repository-mirroring` |
|
||||||
|
| github metadata migration | 45/mo | `/features/metadata-migration` |
|
||||||
|
| scheduled github sync | 120/mo | `/features/scheduled-synchronization` |
|
||||||
|
| batch github migration | 40/mo | `/features/batch-repository-processing` |
|
||||||
|
| github pull request migration | 35/mo | `/features/pull-request-mirroring` |
|
||||||
|
| git lfs mirror | 30/mo | `/features/git-lfs-support` |
|
||||||
|
|
||||||
|
**Total Tier 2 Traffic Potential**: ~1,200 visits/month
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Tier 3: Comparison Keywords (HIGH CONVERSION)
|
||||||
|
**Intent**: "Evaluating options"
|
||||||
|
**Effort**: Medium-High (research required)
|
||||||
|
**Pages needed**: 8
|
||||||
|
|
||||||
|
| Primary Keyword | Est. Traffic | Conversion Potential | Page URL |
|
||||||
|
|----------------|--------------|---------------------|----------|
|
||||||
|
| github backup tools comparison | 250/mo | Very High | `/vs/github-backup-solutions` |
|
||||||
|
| gitea vs github | 800/mo | Medium | `/vs/github-vs-gitea` |
|
||||||
|
| manual vs automated migration | 60/mo | High | `/vs/manual-vs-automated-migration` |
|
||||||
|
| git clone vs mirror | 45/mo | Medium | `/vs/git-clone-vs-automated-sync` |
|
||||||
|
| gitea alternatives | 150/mo | Medium | `/alternatives` |
|
||||||
|
| self-hosted git servers | 400/mo | Low | `/vs/self-hosted-vs-cloud-git` |
|
||||||
|
|
||||||
|
**Total Tier 3 Traffic Potential**: ~1,700 visits/month
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 IMPLEMENTATION ROADMAP: 4-Week Sprint
|
||||||
|
|
||||||
|
### Week 1: Foundation (5 pages)
|
||||||
|
**Goal**: Get first pages indexed, establish content structure
|
||||||
|
|
||||||
|
**Day 1-2: Setup** (4 hours)
|
||||||
|
- [ ] Create Astro content collections (`src/content/config.ts`)
|
||||||
|
- [ ] Build page templates (use-cases, features, solutions)
|
||||||
|
- [ ] Setup SEO component with structured data
|
||||||
|
- [ ] Create sitemap generator
|
||||||
|
|
||||||
|
**Day 3-5: Core Content** (8 hours)
|
||||||
|
- [ ] `/use-cases/backup-github-repositories` - 600 words
|
||||||
|
- [ ] `/use-cases/migrate-github-to-gitea` - 600 words
|
||||||
|
- [ ] `/solutions/github-disaster-recovery` - 500 words
|
||||||
|
- [ ] `/features/automatic-github-mirroring` - 700 words
|
||||||
|
- [ ] `/vs/manual-vs-automated-migration` - 800 words
|
||||||
|
|
||||||
|
**Day 6-7: Technical Setup** (3 hours)
|
||||||
|
- [ ] Submit sitemap to Google Search Console
|
||||||
|
- [ ] Setup Google Analytics 4
|
||||||
|
- [ ] Add schema.org markup
|
||||||
|
- [ ] Create robots.txt
|
||||||
|
- [ ] Setup canonical URLs
|
||||||
|
|
||||||
|
**Week 1 Target**: 5 pages live, indexed by Google
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Week 2: Scale Content (10 pages)
|
||||||
|
**Goal**: Batch create similar pages using templates
|
||||||
|
|
||||||
|
**Use Case Pages** (5 pages, 1 hour each):
|
||||||
|
- [ ] `/use-cases/sync-github-to-self-hosted-gitea`
|
||||||
|
- [ ] `/use-cases/preserve-github-history`
|
||||||
|
- [ ] `/use-cases/github-backup-automation`
|
||||||
|
- [ ] `/use-cases/starred-repos-collection`
|
||||||
|
- [ ] `/use-cases/vendor-lock-in-prevention`
|
||||||
|
|
||||||
|
**Feature Pages** (5 pages, 1.5 hours each):
|
||||||
|
- [ ] `/features/private-repository-mirroring`
|
||||||
|
- [ ] `/features/scheduled-synchronization`
|
||||||
|
- [ ] `/features/github-issues-migration`
|
||||||
|
- [ ] `/features/github-releases-sync`
|
||||||
|
- [ ] `/features/metadata-migration`
|
||||||
|
|
||||||
|
**Week 2 Target**: 15 total pages, monitor first impressions in GSC
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Week 3: Problem-Solution Focus (8 pages)
|
||||||
|
**Goal**: Target high-intent problem queries
|
||||||
|
|
||||||
|
**Solution Pages** (6 pages, 45 min each):
|
||||||
|
- [ ] `/solutions/avoid-vendor-lock-in`
|
||||||
|
- [ ] `/solutions/need-offline-git-access`
|
||||||
|
- [ ] `/solutions/github-rate-limits`
|
||||||
|
- [ ] `/solutions/github-pricing-too-expensive`
|
||||||
|
- [ ] `/solutions/comply-with-data-regulations`
|
||||||
|
- [ ] `/solutions/preserve-deleted-github-repos`
|
||||||
|
|
||||||
|
**Guide Pages** (2 pages, 2 hours each):
|
||||||
|
- [ ] `/guides/setup-gitea-mirror-docker`
|
||||||
|
- [ ] `/guides/migrate-github-organization-to-gitea`
|
||||||
|
|
||||||
|
**Week 3 Target**: 23 total pages, start seeing traffic
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Week 4: Comparison & Polish (7 pages + optimization)
|
||||||
|
**Goal**: High-conversion comparison content + optimization
|
||||||
|
|
||||||
|
**Comparison Pages** (4 pages, 2 hours each):
|
||||||
|
- [ ] `/vs/github-backup-solutions`
|
||||||
|
- [ ] `/vs/github-vs-gitea`
|
||||||
|
- [ ] `/vs/self-hosted-vs-cloud-git`
|
||||||
|
- [ ] `/alternatives`
|
||||||
|
|
||||||
|
**Integration Pages** (3 pages, 1 hour each):
|
||||||
|
- [ ] `/integrations/docker-compose`
|
||||||
|
- [ ] `/integrations/kubernetes`
|
||||||
|
- [ ] `/integrations/helm-charts`
|
||||||
|
|
||||||
|
**Optimization** (8 hours):
|
||||||
|
- [ ] Add internal linking between all pages
|
||||||
|
- [ ] Optimize images (WebP, alt text)
|
||||||
|
- [ ] Add FAQ sections to top 10 pages
|
||||||
|
- [ ] Create content calendar for Month 2
|
||||||
|
|
||||||
|
**Week 4 Target**: 30 total pages, 50-100 visitors/week
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 CONTENT TEMPLATES
|
||||||
|
|
||||||
|
### Template 1: Use Case Page (400-600 words, 30 min)
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# [Use Case Title] - Gitea Mirror
|
||||||
|
|
||||||
|
> **In this guide**: Learn how to [solve specific problem] using Gitea Mirror's automated [feature].
|
||||||
|
|
||||||
|
## The Problem
|
||||||
|
|
||||||
|
[2-3 sentences describing the pain point]
|
||||||
|
|
||||||
|
**Common challenges:**
|
||||||
|
- Challenge 1
|
||||||
|
- Challenge 2
|
||||||
|
- Challenge 3
|
||||||
|
|
||||||
|
## How Gitea Mirror Solves This
|
||||||
|
|
||||||
|
[3-4 sentences explaining the solution]
|
||||||
|
|
||||||
|
**Key capabilities:**
|
||||||
|
- ✅ Capability 1
|
||||||
|
- ✅ Capability 2
|
||||||
|
- ✅ Capability 3
|
||||||
|
|
||||||
|
## Quick Start (5 Minutes)
|
||||||
|
|
||||||
|
\`\`\`bash
|
||||||
|
# Step 1: Pull the Docker image
|
||||||
|
docker pull giteamirror/gitea-mirror:latest
|
||||||
|
|
||||||
|
# Step 2: Run with environment variables
|
||||||
|
docker run -d \\
|
||||||
|
-e GITHUB_TOKEN=your_token \\
|
||||||
|
-e GITEA_URL=https://gitea.example.com \\
|
||||||
|
giteamirror/gitea-mirror
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
[2 sentences on what happens next]
|
||||||
|
|
||||||
|
## Real-World Example
|
||||||
|
|
||||||
|
[Short scenario: "A DevOps team needed to..."]
|
||||||
|
|
||||||
|
## Related Features
|
||||||
|
|
||||||
|
- [Link to feature 1]
|
||||||
|
- [Link to feature 2]
|
||||||
|
|
||||||
|
## Get Started
|
||||||
|
|
||||||
|
[CTA button/link to GitHub repo]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Keywords**: [primary], [secondary], [tertiary]
|
||||||
|
**Last Updated**: [Date]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Why this works:**
|
||||||
|
- Answers search query immediately
|
||||||
|
- Shows code (high engagement)
|
||||||
|
- Internal links (SEO juice)
|
||||||
|
- Clear CTA
|
||||||
|
- **Total time: 30 minutes**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Template 2: Feature Page (500-700 words, 45 min)
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# [Feature Name] - Gitea Mirror
|
||||||
|
|
||||||
|
> Automatically [feature benefit] from GitHub to Gitea with zero manual work.
|
||||||
|
|
||||||
|
## What Is [Feature Name]?
|
||||||
|
|
||||||
|
[2-3 sentences explaining the feature]
|
||||||
|
|
||||||
|
## Why You Need This
|
||||||
|
|
||||||
|
**Without Gitea Mirror:**
|
||||||
|
- ❌ Manual problem 1
|
||||||
|
- ❌ Manual problem 2
|
||||||
|
- ❌ Manual problem 3
|
||||||
|
|
||||||
|
**With Gitea Mirror:**
|
||||||
|
- ✅ Automated solution 1
|
||||||
|
- ✅ Automated solution 2
|
||||||
|
- ✅ Automated solution 3
|
||||||
|
|
||||||
|
## How It Works
|
||||||
|
|
||||||
|
1. **Step 1**: [Action]
|
||||||
|
2. **Step 2**: [Action]
|
||||||
|
3. **Step 3**: [Result]
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
\`\`\`yaml
|
||||||
|
# Example configuration
|
||||||
|
feature_enabled: true
|
||||||
|
option1: value
|
||||||
|
option2: value
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
## Use Cases
|
||||||
|
|
||||||
|
### Use Case 1
|
||||||
|
[Scenario where this feature helps]
|
||||||
|
|
||||||
|
### Use Case 2
|
||||||
|
[Another scenario]
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
- Tip 1
|
||||||
|
- Tip 2
|
||||||
|
- Tip 3
|
||||||
|
|
||||||
|
## See It In Action
|
||||||
|
|
||||||
|
[Screenshot or GIF]
|
||||||
|
|
||||||
|
## Get Started
|
||||||
|
|
||||||
|
[CTA]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Related**:
|
||||||
|
- [Use case page]
|
||||||
|
- [Guide page]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Template 3: Solution Page (300-500 words, 20 min)
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# [Problem Statement] - Solved
|
||||||
|
|
||||||
|
> **The Problem**: [One sentence problem]
|
||||||
|
> **The Solution**: Gitea Mirror's automated [approach]
|
||||||
|
|
||||||
|
## Why This Problem Matters
|
||||||
|
|
||||||
|
[2 sentences on impact]
|
||||||
|
|
||||||
|
**Consequences of not solving:**
|
||||||
|
1. Consequence 1
|
||||||
|
2. Consequence 2
|
||||||
|
3. Consequence 3
|
||||||
|
|
||||||
|
## How Gitea Mirror Fixes This
|
||||||
|
|
||||||
|
[Explain the solution in 3-4 sentences]
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
\`\`\`bash
|
||||||
|
# 2-3 line code snippet
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
## Success Story
|
||||||
|
|
||||||
|
"[Quote or short anecdote]"
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. [Link to getting started]
|
||||||
|
2. [Link to relevant feature]
|
||||||
|
|
||||||
|
[CTA button]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Total time: 20 minutes**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎨 SEO OPTIMIZATION CHECKLIST
|
||||||
|
|
||||||
|
### On-Page SEO (Per Page)
|
||||||
|
```
|
||||||
|
✅ Title tag: [Keyword] - Gitea Mirror (50-60 chars)
|
||||||
|
✅ Meta description with CTA (150-160 chars)
|
||||||
|
✅ H1 includes primary keyword
|
||||||
|
✅ URL slug = primary keyword
|
||||||
|
✅ First paragraph mentions keyword
|
||||||
|
✅ H2s include semantic variations
|
||||||
|
✅ Image alt text descriptive
|
||||||
|
✅ Internal links (3-5 per page)
|
||||||
|
✅ External links (1-2 authoritative sources)
|
||||||
|
✅ Schema.org markup (SoftwareApplication)
|
||||||
|
✅ Canonical URL set
|
||||||
|
✅ Mobile responsive
|
||||||
|
✅ Page speed < 3s
|
||||||
|
```
|
||||||
|
|
||||||
|
### Content Quality Checks
|
||||||
|
```
|
||||||
|
✅ Answers search intent completely
|
||||||
|
✅ 400-1500 word count (based on competition)
|
||||||
|
✅ Code examples where relevant
|
||||||
|
✅ Screenshots/visuals
|
||||||
|
✅ Updated date visible
|
||||||
|
✅ Clear CTA
|
||||||
|
✅ Related content links
|
||||||
|
✅ No keyword stuffing (1-2% density)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📈 TRACKING & METRICS
|
||||||
|
|
||||||
|
### Week 1-2 KPIs
|
||||||
|
- [ ] All pages indexed in Google (check GSC)
|
||||||
|
- [ ] 0 technical SEO errors (screaming frog)
|
||||||
|
- [ ] < 3s page load time
|
||||||
|
- [ ] Mobile usability 100/100
|
||||||
|
|
||||||
|
### Week 3-4 KPIs
|
||||||
|
- [ ] 10+ impressions/day in GSC
|
||||||
|
- [ ] 3+ clicks/day from organic
|
||||||
|
- [ ] 1+ page ranking in top 50
|
||||||
|
|
||||||
|
### Month 2 Goals
|
||||||
|
- [ ] 100+ impressions/day
|
||||||
|
- [ ] 20+ clicks/day
|
||||||
|
- [ ] 10+ keywords in top 50
|
||||||
|
- [ ] 5+ keywords in top 20
|
||||||
|
|
||||||
|
### Month 3 Goals
|
||||||
|
- [ ] 500+ impressions/day
|
||||||
|
- [ ] 50+ clicks/day
|
||||||
|
- [ ] 20+ keywords in top 20
|
||||||
|
- [ ] 10+ keywords in top 10
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 INTERNAL LINKING STRATEGY
|
||||||
|
|
||||||
|
**Hub & Spoke Model**
|
||||||
|
|
||||||
|
### Hub Pages (Link FROM these everywhere)
|
||||||
|
1. Homepage
|
||||||
|
2. `/use-cases/migrate-github-to-gitea` (main use case)
|
||||||
|
3. `/features/automatic-github-mirroring` (main feature)
|
||||||
|
|
||||||
|
### Spoke Pages (Link TO hubs + related spokes)
|
||||||
|
- Use case pages link to: Related features, guides, solutions
|
||||||
|
- Feature pages link to: Use cases, guides
|
||||||
|
- Solution pages link to: Use cases, features
|
||||||
|
- Guide pages link to: Features, use cases
|
||||||
|
|
||||||
|
**Example**:
|
||||||
|
```
|
||||||
|
/use-cases/backup-github-repositories
|
||||||
|
→ Links to:
|
||||||
|
- /features/scheduled-synchronization
|
||||||
|
- /features/automatic-github-mirroring
|
||||||
|
- /guides/setup-gitea-mirror-docker
|
||||||
|
- /solutions/github-disaster-recovery
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 CONTENT HACKS: Work Smarter
|
||||||
|
|
||||||
|
### 1. Batch Similar Pages (2x faster)
|
||||||
|
Write all "use case" pages in one session using the template. Copy structure, change specifics.
|
||||||
|
|
||||||
|
### 2. Reuse Existing Content
|
||||||
|
- Main repo README → Use case pages
|
||||||
|
- Docker docs → Guide pages
|
||||||
|
- GitHub issues → Problem pages
|
||||||
|
|
||||||
|
### 3. AI-Assisted Expansion
|
||||||
|
- Write 200-word outline manually
|
||||||
|
- Expand with AI to 600 words
|
||||||
|
- Edit for accuracy (10 min)
|
||||||
|
- **Time saved: 50%**
|
||||||
|
|
||||||
|
### 4. Screenshot Once, Use Everywhere
|
||||||
|
Create a `/public/screenshots/` library:
|
||||||
|
- Dashboard view
|
||||||
|
- Configuration screen
|
||||||
|
- Migration in progress
|
||||||
|
- Results page
|
||||||
|
|
||||||
|
Reuse across all pages.
|
||||||
|
|
||||||
|
### 5. Schema Markup Template
|
||||||
|
Create one JSON-LD template, reuse with variable substitution:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "SoftwareApplication",
|
||||||
|
"name": "Gitea Mirror",
|
||||||
|
"description": "[PAGE_DESCRIPTION]",
|
||||||
|
"url": "[PAGE_URL]"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 MONTH 2-3 EXPANSION PLAN
|
||||||
|
|
||||||
|
### Month 2: Depth Over Breadth
|
||||||
|
**Goal**: Make existing pages rank higher
|
||||||
|
|
||||||
|
**Activities**:
|
||||||
|
- [ ] Add 200 words to each existing page
|
||||||
|
- [ ] Add FAQ sections (5 Q&As per page)
|
||||||
|
- [ ] Create 10 more guide pages (tutorials)
|
||||||
|
- [ ] Add video embeds (YouTube shorts)
|
||||||
|
- [ ] Guest post on Dev.to (backlinks)
|
||||||
|
|
||||||
|
**New Pages** (10):
|
||||||
|
- 5 more use case pages
|
||||||
|
- 5 advanced guides
|
||||||
|
|
||||||
|
### Month 3: Authority Building
|
||||||
|
**Goal**: Establish Gitea Mirror as THE GitHub migration resource
|
||||||
|
|
||||||
|
**Activities**:
|
||||||
|
- [ ] Ultimate Guide: "Complete GitHub to Gitea Migration Guide" (3,000 words)
|
||||||
|
- [ ] Comparison matrix: All GitHub backup tools
|
||||||
|
- [ ] Interactive tool: "Migration time calculator"
|
||||||
|
- [ ] Video tutorials (5-10 minutes each)
|
||||||
|
- [ ] Community: Add testimonials/case studies
|
||||||
|
|
||||||
|
**New Pages** (15):
|
||||||
|
- 5 integration pages
|
||||||
|
- 5 technical spec pages
|
||||||
|
- 5 advanced solution pages
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏆 SUCCESS METRICS (6 Months)
|
||||||
|
|
||||||
|
### Conservative Target
|
||||||
|
- **Pages**: 50 indexed
|
||||||
|
- **Traffic**: 5,000 visits/month
|
||||||
|
- **Keywords**: 30 in top 20
|
||||||
|
- **Backlinks**: 15-20
|
||||||
|
- **GitHub Stars**: +50 from organic
|
||||||
|
|
||||||
|
### Optimistic Target
|
||||||
|
- **Pages**: 80 indexed
|
||||||
|
- **Traffic**: 12,000 visits/month
|
||||||
|
- **Keywords**: 50 in top 20, 20 in top 10
|
||||||
|
- **Backlinks**: 40-50
|
||||||
|
- **GitHub Stars**: +200 from organic
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 TECHNICAL SETUP (Do Once)
|
||||||
|
|
||||||
|
### Astro Content Collections
|
||||||
|
```typescript
|
||||||
|
// src/content/config.ts
|
||||||
|
import { defineCollection, z } from 'astro:content';
|
||||||
|
|
||||||
|
const useCases = defineCollection({
|
||||||
|
type: 'content',
|
||||||
|
schema: z.object({
|
||||||
|
title: z.string(),
|
||||||
|
description: z.string(),
|
||||||
|
keywords: z.array(z.string()),
|
||||||
|
problem: z.string(),
|
||||||
|
solution: z.string(),
|
||||||
|
difficulty: z.enum(['beginner', 'intermediate', 'advanced']),
|
||||||
|
timeToRead: z.number(),
|
||||||
|
relatedPages: z.array(z.string()).optional(),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const collections = {
|
||||||
|
'use-cases': useCases,
|
||||||
|
'features': defineCollection({ /* ... */ }),
|
||||||
|
'guides': defineCollection({ /* ... */ }),
|
||||||
|
'solutions': defineCollection({ /* ... */ }),
|
||||||
|
'vs': defineCollection({ /* ... */ }),
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dynamic Route Template
|
||||||
|
```astro
|
||||||
|
---
|
||||||
|
// src/pages/use-cases/[...slug].astro
|
||||||
|
import { getCollection } from 'astro:content';
|
||||||
|
|
||||||
|
export async function getStaticPaths() {
|
||||||
|
const useCases = await getCollection('use-cases');
|
||||||
|
return useCases.map(entry => ({
|
||||||
|
params: { slug: entry.slug },
|
||||||
|
props: { entry },
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
const { entry } = Astro.props;
|
||||||
|
const { Content } = await entry.render();
|
||||||
|
---
|
||||||
|
|
||||||
|
<Layout title={entry.data.title} description={entry.data.description}>
|
||||||
|
<article>
|
||||||
|
<h1>{entry.data.title}</h1>
|
||||||
|
<Content />
|
||||||
|
</article>
|
||||||
|
</Layout>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 QUICK ACTION CHECKLIST
|
||||||
|
|
||||||
|
**Today:**
|
||||||
|
- [ ] Create content collections structure
|
||||||
|
- [ ] Write first use case page (1 hour)
|
||||||
|
- [ ] Setup Google Search Console
|
||||||
|
|
||||||
|
**This Week:**
|
||||||
|
- [ ] Complete 5 high-priority pages
|
||||||
|
- [ ] Submit sitemap
|
||||||
|
- [ ] Add schema markup
|
||||||
|
|
||||||
|
**This Month:**
|
||||||
|
- [ ] 30 pages live
|
||||||
|
- [ ] Internal linking complete
|
||||||
|
- [ ] First organic traffic
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Last Updated**: January 2025
|
||||||
|
**Next Review**: February 2025
|
||||||
|
**Owner**: [Your Team]
|
||||||
|
|||||||
Reference in New Issue
Block a user