Tanzania tourism seo
LLM-first SEO skill for safari & tour-operator sites — 15 sub-skills, 363 TZ keywords, TouristTrip schema. Grok, Cursor, Claude.
npx -y skills add cleven12/tanzania-tourism-seoAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Open-source agentic SEO skill for Tanzania safari, tour-operator, and travel sites. Works in Grok, Cursor, Claude Code, Codex, Copilot. Triggers on: safari SEO, tour operator SEO, Kilimanjaro/Serengeti/Ngorongoro ranking, TouristTrip schema, migration content, Northern Circuit keywords, local SEO Arusha Moshi, safari audit, hreflang, Core Web Vitals wildlife photos, or "perform SEO analysis on <url>". Ships 363 keywords, 15 sub-skills, 14 scripts. Outputs FULL-AUDIT-REPORT.md + ACTION-PLAN.md. Repo: github.com/cleven12/tanzania-tourism-seo
SKILL.md
15.3 KB, as published. Nobody here has run it
Safari SEO Skill (Agentic / Tanzania Tourism)
LLM-first SEO analysis skill purpose-built for Tanzania safari and tour-operator websites. Includes 15 specialized sub-skills, 7 specialist agents, and script-backed evidence collection for Kilimanjaro treks, Serengeti safaris, Ngorongoro crater trips, Northern Circuit packages, and Zanzibar add-ons.
<SKILL_DIR> = absolute path to this skill directory (the folder containing this SKILL.md).
Deterministic Trigger Mapping
Map common user wording to a fixed workflow:
| User says | Route to |
|---|---|
perform seo analysis on <url> | Single-URL full audit → resources/skills/safari-page.md |
audit my safari site / full SEO check | Full site audit → resources/skills/safari-audit.md |
optimize tour page / new safari package | resources/skills/safari-tour-page.md |
serengeti page / kilimanjaro landing page | resources/skills/safari-destination.md |
keyword research tanzania | resources/skills/safari-keywords.md |
google business profile arusha | resources/skills/safari-local.md |
schema for safari package | resources/skills/safari-schema.md |
hreflang swahili english | resources/skills/safari-hreflang.md |
competitor analysis safari | resources/skills/safari-competitors.md |
AI search / ChatGPT citations | resources/skills/safari-geo.md |
| No explicit sub-skill + URL provided | Single-URL full audit with mandatory deliverables |
For full/page audits, always produce:
FULL-AUDIT-REPORT.md(detailed findings with evidence)ACTION-PLAN.md(prioritized fixes)
Available Commands
| Command | Sub-Skill | Description |
|---|---|---|
safari audit <url> | safari-audit | Full site audit with Tanzania scoring |
safari page <url> | safari-page | Deep single-page analysis |
safari content <url> | safari-content | E-E-A-T, depth, safari trust signals |
safari technical <url> | safari-technical | Crawlability, CWV, indexing, security |
safari schema <url> | safari-schema | TouristTrip, Product, TouristAttraction JSON-LD |
safari local <url> | safari-local | GBP, citations, Arusha/Moshi local SEO |
safari keywords <topic> | safari-keywords | Park-level keyword & seasonality research |
safari plan <url> | safari-plan | Strategic content calendar & hub architecture |
safari competitors <query> | safari-competitors | SERP gap analysis vs ranking operators |
safari hreflang <url> | safari-hreflang | EN/DE/FR/SW international validation |
safari images <url> | safari-images | Safari photo alt text, WebP, LCP heroes |
safari sitemap <url> | safari-sitemap | Tour/destination sitemap quality gates |
safari tour-page <url> | safari-tour-page | Commercial package page launch checklist |
safari destination <url> | safari-destination | Park hub page optimization |
safari geo <url> | safari-geo | AI search citation readiness |
Orchestration Logic
Step 1 — Identify the Task
Parse the user's request and read the matching resources/skills/safari-*.md file before executing.
- Full audit:
safari-audit.md— crawl key pages (homepage, top tours, destination hubs, blog), delegate to agents - Single page:
safari-page.md— deep dive on one URL - Tour launch:
safari-tour-page.md+checklists/new-tour-page.md - Destination hub:
safari-destination.md+checklists/new-destination-page.md - Strategic plan:
safari-plan.md+ seasonality from04-tanzania-niche/seasonality.md
Step 2 — Load Tanzania Ground Truth
Always load references.md when citing fees, visas, park rules, or authority facts.
| Fact type | Authoritative source | Never |
|---|---|---|
| National park fees | tanzaniaparks.go.tz (TANAPA) | Guess USD amounts |
| Ngorongoro fees | ncaa.go.tz | Conflate with TANAPA |
| Visa rules | immigration.go.tz | Outdated blog posts |
| Industry standards | tatotz.org (TATO) | Invent certifications |
| Porter ethics | kpap.org | Generic "responsible tourism" |
| Keyword volumes | 04-tanzania-niche/keywords/*.csv bands | Fabricate exact MSV |
Step 3 — Collect Evidence
Primary (LLM-first): Use read_url_content or direct page fetch for baseline reasoning.
Deterministic verification (when script execution is available):
# Fetch and parse page HTML
python3 <SKILL_DIR>/scripts/fetch_page.py <url> --output /tmp/safari-page.html
python3 <SKILL_DIR>/scripts/parse_html.py /tmp/safari-page.html --url <url> --json
# Tanzania-specific audit runner
python3 <SKILL_DIR>/scripts/seo-audit.py <url> --json
# Core Web Vitals (mobile-first — safari travelers book on phones)
python3 <SKILL_DIR>/scripts/pagespeed.py <url> --strategy mobile --json
# Robots, security, redirects
python3 <SKILL_DIR>/scripts/robots_checker.py <url>
python3 <SKILL_DIR>/scripts/security_headers.py <url>
python3 <SKILL_DIR>/scripts/redirect_checker.py <url>
# Schema validation against repo templates
python3 <SKILL_DIR>/scripts/validate_schema.py <file_or_url>
python3 <SKILL_DIR>/scripts/generate-schema.py --template touristtrip --input tour.yaml --json
# Sitemap analysis
python3 <SKILL_DIR>/scripts/sitemap_checker.py <url>
python3 <SKILL_DIR>/scripts/sitemap-gen.py --urls urls.txt --output sitemap.xml
# Images (hero photos dominate LCP on safari sites)
python3 <SKILL_DIR>/scripts/image_inventory.py <url> --json
python3 <SKILL_DIR>/scripts/image_weight_audit.py <url> --json
# Local SEO signals
python3 <SKILL_DIR>/scripts/local_seo_checker.py <url> --json
# Hreflang for multilingual operator sites
python3 <SKILL_DIR>/scripts/hreflang_checker.py <url> --json
# Readability and content depth
python3 <SKILL_DIR>/scripts/readability.py /tmp/safari-page.html --json
python3 <SKILL_DIR>/scripts/article_seo.py <url> --keyword "<target_keyword>" --json
# Broken links (critical on itinerary pages with many internal links)
python3 <SKILL_DIR>/scripts/broken_links.py <url> --workers 5
# AI search readiness
python3 <SKILL_DIR>/scripts/llms_txt_checker.py <url>
python3 <SKILL_DIR>/scripts/citation_readiness.py <url> --json
Do not use third-party mirrors (e.g.,
r.jina.ai) as primary evidence when direct fetch or bundled scripts are available.
If a script fails (network, timeout, missing dependency), report as environment limitation — not a confirmed site issue. Continue with LLM analysis at Likely confidence.
Step 4 — Delegate to Specialist Agents
For comprehensive audits, adopt the relevant agent role from resources/agents/:
| Agent | File | Focus |
|---|---|---|
| Technical SEO | safari-technical.md | Crawlability, CWV, mobile, JS rendering |
| Content Quality | safari-content.md | E-E-A-T, experience signals, thin content |
| Schema Markup | safari-schema.md | TouristTrip, Product, TouristAttraction |
| Local SEO | safari-local.md | GBP, NAP, Arusha/Moshi citations |
| Performance | safari-performance.md | LCP heroes, INP on booking widgets |
| Verifier | safari-verifier.md | Deduplicate, validate evidence, suppress contradictions |
| Tanzania Niche | tanzania-niche.md | Migration timing, routes, fees, seasonality |
Step 5 — Apply Repo Quality Gates
| Resource | Path | Use for |
|---|---|---|
| Meta tag formulas | 01-onpage-content/meta-tags-guide.md | Title/description patterns |
| Page architecture | 01-onpage-content/page-architecture.md | Hub-and-spoke tour/destination structure |
| Internal linking | 01-onpage-content/internal-linking.md | Blog → tour → destination flows |
| Content briefs | 01-onpage-content/content-briefs/ | Kilimanjaro, Serengeti, Ngorongoro templates |
| Schema templates | 02-technical/schema/ | JSON-LD with {{PLACEHOLDER}} syntax |
| Crawl checklist | 02-technical/crawl-checklist.md | Indexing gates |
| CWV thresholds | 02-technical/core-web-vitals.md | LCP/INP/CLS targets |
| Hreflang guide | 02-technical/hreflang-i18n.md | EN/DE/FR/SW patterns |
| GBP guide | 03-local/google-business-profile.md | Operator categories, service areas |
| Seasonality | 04-tanzania-niche/seasonality.md | Content calendar timing |
| Search intent | 04-tanzania-niche/search-intent-by-park.md | Info vs commercial routing |
| Glossary | 04-tanzania-niche/glossary.md | Swahili terms, TANAPA/TATO/KPAP |
| Competitor patterns | 04-tanzania-niche/competitor-patterns.md | SERP observation framework |
| Launch checklists | checklists/ | Tour page, destination, monthly SEO |
Step 6 — Verify Findings
python3 <SKILL_DIR>/scripts/finding_verifier.py --findings-json <raw_findings.json> --json
Use verified output for final report tables. Cross-check Tanzania-specific claims against references.md authorities.
Step 7 — Score and Report
Tanzania Safari Scoring Weights (Full Audit)
Canonical source of truth — defined here and mirrored in
resources/skills/safari-audit.md.
| Category | Weight | Rationale |
|---|---|---|
| Content Quality & E-E-A-T | 22% | Trust-critical YMYL-adjacent travel queries |
| Technical SEO | 18% | Mobile booking, crawlability, indexation |
| On-Page SEO | 15% | Title/meta/H1 for competitive safari SERPs |
| Schema / Structured Data | 15% | TouristTrip, Product, Offer rich results |
| Local SEO & Trust | 12% | Arusha/Moshi operators depend on local + GBP |
| Performance (CWV) | 8% | Hero images and booking widgets affect CWV |
| Image Optimization | 5% | Wildlife photos are primary content |
| AI Search Readiness (GEO) | 5% | Growing AI travel research channel |
Score Interpretation
| Score | Rating |
|---|---|
| 90-100 | Excellent |
| 70-89 | Good |
| 50-69 | Needs Improvement |
| 30-49 | Poor |
| 0-29 | Critical |
Step 8 — Mandatory Deliverables
For safari audit, safari page, and generic perform seo analysis on <url> flows:
- Create
FULL-AUDIT-REPORT.mdat audit start; update as evidence arrives - Create
ACTION-PLAN.mdat audit start; prioritize Critical → High → Medium → Low - List all generated artifact paths in the final response
- Include Environment Limitations section if scripts were blocked
- Flag any unverified fee/visa claims with
⚠️ VERIFY AT SOURCE
Report Severity Levels
- 🔴 Critical — Blocks indexing, violates structured data policy, or misstates fees/visas
- ⚠️ Warning — Optimization opportunity (fix within 1 month)
- ✅ Pass — Meets or exceeds standards
- ℹ️ Info — Not applicable or informational
Tanzania Page-Type Detection
Auto-detect page type to apply correct checks:
| Signals | Page Type | Sub-Skill | Min Words |
|---|---|---|---|
| Price, duration, itinerary, "book now" | Tour package | safari-tour-page.md | 800+ |
| Park name, wildlife, best time, no price | Destination hub | safari-destination.md | 1,200+ |
| Route comparison, packing list, how-to | Informational blog | safari-content.md | 1,500+ |
| Company name, team, licenses, contact | Operator brand | safari-local.md | 500+ |
/de/, /fr/, hreflang | International | safari-hreflang.md | — |
Schema Templates (Repo)
Pre-built JSON-LD in 02-technical/schema/:
| Template | Page Type |
|---|---|
touristtrip.json + product-offer-tour.json | Multi-day safari/trek packages |
touristattraction.json | Park/destination hubs |
organization-travelagency.json | Operator footer sitewide |
review-aggregaterating.json | First-party reviews only |
breadcrumblist.json | All pages with URL depth |
faqpage.json | FAQ sections (note: rich results restricted for commercial FAQ schema — use for content structure, not rich result expectation) |
Generate programmatically:
python3 <SKILL_DIR>/scripts/generate-schema.py --template product-offer-tour --input tour.yaml
Validate before publish:
# Rich Results Test: https://search.google.com/test/rich-results
python3 <SKILL_DIR>/scripts/validate_schema.py templates/tour-page.html
Critical Rules (Tanzania Safari)
- INP not FID — INP is the sole interactivity metric (FID removed September 9, 2024). Never reference FID.
- Never fabricate fees — Cite
tanzaniaparks.go.tzorncaa.go.tzwith retrieval date; use⚠️ VERIFYif live fetch failed. - Never fabricate reviews in schema —
AggregateRatingmust reflect real first-party reviews only. - FAQ schema is restricted — FAQPage rich results limited to government/health authority sites. Commercial safari sites may use FAQ content structure without expecting FAQ rich results.
- HowTo schema is deprecated — Never recommend for Kilimanjaro packing lists.
- JSON-LD only — Never recommend Microdata or RDFa.
- Migration claims need dates — Serengeti migration timing varies annually; cite general patterns from
04-tanzania-niche/seasonality.md, avoid false precision ("crossing on July 15"). - Kilimanjaro route facts — Seven official routes (Marangu, Machame, Lemosho, Shira, Rongai, Northern Circuit, Umbwe); success rates vary by operator — don't invent percentages without source.
- White-hat only — Refuse PBNs, fake reviews, scraped aggregator content, AI doorway pages per park.
- Location page limits — Warning at 30+ near-duplicate destination pages; hard stop at 50+.
- LLM-first, script-backed — Always attempt scripts; never block report on single script failure.
- Mandatory file artifacts —
FULL-AUDIT-REPORT.md+ACTION-PLAN.mdfor audit flows. - Commercial vs informational routing — Route info queries to blogs (
safari-content); commercial queries to tour pages (safari-tour-page) per04-tanzania-niche/search-intent-by-park.md.
Dependencies
pip install -r <SKILL_DIR>/scripts/requirements.txt
# Optional: Playwright for visual analysis
pip install playwright && playwright install chromium
Local repo scripts (M4+): seo-audit.py, sitemap-gen.py, generate-schema.py — see scripts/README.md.