Django + Nuxt 3 Developer — AI Translation Feature & SEO Indexing Fix
Worldwide
Our platform is a multilingual news platform publishing in Uzbek (Latin and Cyrillic), Russian, and English. The backend runs on Django with PostgreSQL and Redis inside Docker Compose. The frontend runs on Nuxt 3 with PM2. Server is Ubuntu on Contabo VPS. We need a capable developer to build an AI translation feature and resolve SEO indexing issues across the platform. You will have SSH access (dedicated developer user) and admin panel access. All tasks have measurable acceptance criteria. Payment will be released only after live verification. Task 1 — Restore Google Analytics 4 Tracking (Day 1) GA4 tracking is currently not firing following a Nuxt.js migration. The GA4 Measurement ID will be provided after contract starts. Required: Add GA4 tracking tag to nuxt.config.js or via GTM Verify tracking fires on all page loads across all 4 language versions (uz-cyril, uz, ru, en) Confirm real-time data appears in GA4 dashboard Acceptance criteria: GA4 shows accurate page view data for all languages within 48 hours of deployment This is a 30-minute fix and should be completed on Day 1. Task 2 — AI Translation Feature (Week 1-2) Build a one-click translation tool inside the Django admin panel that generates English and Russian translations from Uzbek articles. Required: Add two buttons on the article edit page: "Generate EN Translation" and "Generate RU Translation" Use Claude API (Anthropic) or Google Translate API to generate the translation Translated content populates the target language tab fields: title, body, short_content, seo_title, seo_description Translations are saved as draft, not auto-published — admin user reviews and edits before publishing Build a bulk translation management command that can process all existing articles that have Uzbek content but empty EN/RU fields Include a dry-run mode that reports how many articles would be translated without actually running Acceptance criteria: one-click generates a readable, publishable-quality translation that populates all required fields in the correct language tab. Bulk command successfully processes backlog. This task is the highest priority because it directly resolves the root cause of the GSC indexing failures. Most of the 15,013 "crawled not indexed" pages are articles flagged as available in EN/RU with zero content. Filling them with real translations will cause Google to index them naturally. Task 3 — Run Translations Across All Existing Articles (Week 2) Once the translation feature is built and tested on a sample of 10-20 articles: Run the bulk translation command across all articles with empty EN/RU fields Verify translated content appears correctly in the admin panel Spot-check 20 translated articles on the live frontend across all languages Fix any formatting, encoding, or display issues Acceptance criteria: all articles that were previously empty in EN/RU now have translated content visible on the live site Task 4 — Fix Empty Language Flags and Sitemaps (Week 2-3) After translations are populated, clean up remaining indexing issues: Audit all articles for any remaining empty language flags Remove language flags from articles that cannot be translated Update sitemaps to only include URLs where real content exists in that language Verify sitemap URL counts match actual content counts per language Acceptance criteria: sitemap counts per language match real article counts. No empty pages in any sitemap. Task 5 — Google Search Console Indexing Audit (Week 3) With translations populated and sitemaps cleaned up, audit the remaining GSC issues: Current state (verified June 22, 2026): 56,993 pages unindexed 14,725 pages blocked by robots.txt 15,013 pages crawled but not indexed 7,764 pages returning 404 14,952 pages indexed By this point, Tasks 2-4 should have resolved the majority of the "crawled not indexed" count. Remaining work: Audit the 14,725 blocked pages — identify what is blocking them and fix Set up proper 301 redirects for all 7,764 pages returning 404, or remove dead URLs from sitemaps Resubmit all sitemaps Run URL inspection on 20 sample pages across all languages Acceptance criteria: measurable reduction in all unindexed categories in GSC within 4 weeks of deployment. Blocked count reduced to under 1,000. 404 count reduced to under 500. Task 6 — Topic Hubs (Week 3-4) 8 Topic Hubs were defined and editorial content was provided in Uzbek, Russian, and English. The Topic Hub model and admin section exist in Django but zero hubs are live on the frontend. Required: Populate the 8 Topic Hubs with provided content Ensure each hub page renders on the frontend with associated articles Each hub page must have proper meta tags, JSON-LD schema, and appear in the sitemap Acceptance criteria: all 8 hub pages load correctly on the live site in all 4 languages with real articles listed Tech stack: Backend: Django 4+, Python, Gunicorn, Docker Compose, PostgreSQL, Redis, Celery Frontend: Nuxt 3, Vue.js, PM2 Server: Ubuntu VPS (Contabo), SSH access provided after contract starts Analytics: Google Search Console, Google Analytics 4, Yandex Metrica Admin panel: Django admin with Jazzmin theme (access provided after contract starts) AI API: Anthropic Claude API key will be provided To apply, answer these three questions: Have you fixed GSC indexing issues on a multilingual site before? Describe the situation and what you did. What is the difference between "crawled — currently not indexed" and "discovered — currently not indexed" in GSC, and what are the most common causes of each? How would you implement a one-click AI translation feature in Django admin using the Anthropic API? Describe your approach in 3-4 sentences. Proposals without answers to all three questions will not be reviewed. Budget: $300 (fixed price) Payment: single payment released after all tasks pass live verification. No partial payments.
$300.00
Fixed-price- ExpertExperience Level
- Remote Job
- Ongoing projectProject Type
Skills and Expertise
Activity on this job
- Proposals:5 to 10
- Last viewed by client:3 days ago
- Interviewing:0
- Invites sent:0
- Unanswered invites:0
About the client
- UzbekistanAngren4:27 PM
- $1.6K total spent13 hires, 1 active
- Media & EntertainmentSmall company (2-9 people)
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by