πŸš€ CareerViet β€” SEO Strategy Plan 2026

McKinsey 7-Step Β· GSC W18 Data Β· Updated 10/05/2026
SMART TARGET+20% Organic applythanks YoY
CareerViet.vn Β· SEO Strategy
Executive Brief β€” May 2026
For: C-Level Β· Marketing Director Β· Tech Director Β· Agency Partners
SMART TARGET
+20% Organic ApplyThanks YoY
307K
Organic Clicks / Week
GSC W18 Β· 291K non-brand
β–Ό βˆ’7.6% WoW (CTR noise, see note)
16,931
Top 3 Keywords
GSC W18 Β· 46.3% Top3 ratio
β–² +674 WoW (+4.1%) β€” IMPROVING
β€”
Organic ApplyThanks / Month
SMART KPI Β· Pending GA4 connection
πŸ“Š Open in Claude Desktop to pull
🏒
C-Level Overview
CMO Β· CEO Β· Board
IMPROVING β–²
36.6K
Total ranking keywords
46.3%
Top3 ratio (target: 55%)
β€”
Organic ApplyThanks (GA4)
$0
Incremental budget needed
Key decisions needed:
⚑ Approve Dev sprint for 3 critical technical fixes (0–14 days)
πŸ“ˆ Resource content team for 5,248 "Almost Top3" keyword push
⚠️ Customer Service industry Top3 ratio dropped to 34% (βˆ’13pp WoW)
Note on clicks drop: W18 βˆ’7.6% clicks is driven by English-noise keyword impressions inflating the base, not a ranking regression. Vietnamese-intent Top3 grew +674 keywords.
πŸ“£
Marketing Director
SEO Β· Content Β· Paid
ACTION NEEDED
Organic Channel Health (GSC W18):
β€’ 307K clicks/week Β· 14.9M impressions Β· CTR 2.05%
β€’ Non-brand organic: 291K clicks (94.7% of total organic)
β€’ Top3 ratio trend: W16: 47.3% β†’ W17: 47.9% β†’ W18: 46.3%
Highest ROI opportunities:
🟑 5,248 keywords at rank 4–10 β€” 1–3 position nudge = est. +25K clicks/week
πŸ”΄ Customer Service: 34% Top3 ratio (βˆ’13pp WoW) β€” content push urgent
🟑 9,360 pages with truncated titles β€” CTR uplift +0.3–0.5pp potential
Industry champions (maintain):
🟒 HR (55%) · Banking (60%) · Admin (57%) · Manufacturing (56%)
βš™οΈ
Tech Director
Dev Β· Infra Β· Performance
3 CRITICAL ITEMS
Critical technical debt (SF May 2026 Β· 13,841 URLs):
Score 10 β€” "cundefined" rendering bug: 3,902 URLs (28%) non-indexable. Category IDs not resolving. Wasting 28% of crawl budget.
Score 9 β€” 1,999 Γ— 404 errors: Dead pages consuming Googlebot crawl. Implement 410 (Gone) + remove from sitemap.
Score 8 β€” Title template bug: 9,360 pages >60ch (avg 80ch on /viec-lam/ categories). Template fix = 67.6% coverage.
Sprint allocation:
πŸ”΄ Sprint 1 (0–14d): cundefined fix + 410 bulk + redirect collapse
🟑 Sprint 2 (15–45d): title/meta templates + recruiter SSR (3–4s pages)
🟣 Sprint 3 (46–90d): thin content noindex + H1 audit + schema verify
βœ… Good: Avg 0.27s response Β· 0 Γ— 5xx Β· 0 pages beyond 4 URL levels Β· HTTPS enforced
🀝
Agency Partners
SEO Vendors Β· Consultants
BASELINE W18
Current organic baseline (GSC W18 Β· 28 days):
307K
Clicks/week
14.9M
Impressions/week
16,931
Top3 keywords
36,573
Total ranking KWs
Priority deliverables aligned to 5 strategic groups:
πŸš€ Programmatic SEO (weak industries Γ— cities) β†’ +50–100K clicks/90d
⚑ Quick Win title/meta β†’ +5–15K clicks/30d
πŸ“ Content hub (Almost Top3 KWs) β†’ +10–20K clicks/60d
🏭 Weak industry boost (Customer Service, Mechanical, Real Estate)
πŸ›‘οΈ Brand defense β€” protect 307K clicks/week baseline
Organic ApplyThanks KPI: β€” pending GA4 pull Β· Target: +20% YoY
⚠️ Pull GA4 in Claude Desktop (careervietmarketing@gmail.com) to establish conversion baseline
GSC Performance Trend (W16 β†’ W18)
3-week window Β· Full 28-day API pulls Β· Real data
WeekQueriesClicksTop 3 KWsTop3 RatioCTRAvg PositionHealth
W16 33,160340,00015,69247.3%2.20%β€” Stable
W17 33,958331,99016,25747.9%2.60%4.3 Improving
W18 (Latest) 36,573306,70616,93146.3%2.05%4.4 β–² Improving
WoW change W17β†’W18: β–Ό βˆ’7.6%
(CTR noise)
β–² +674 KWs β–Ό βˆ’1.6pp β–Ό βˆ’21%
(noise)
β–Ό βˆ’0.1pp Top3 count = true health signal
βœ… Live data in this plan
β€’ GSC W18 β€” 36,573 keywords, 28-day API pull (02/05/2026)
β€’ Screaming Frog Technical Audit β€” 13,841 URLs (May 2026)
β€’ 14-industry health scores with WoW deltas
β€’ 3-week GSC trend (W16 / W17 / W18)
β€’ 20,063-keyword opportunity bank (SEMrush 05/05/2026)
πŸ“Š Pending β€” GA4 connection needed
β€’ Organic ApplyThanks / month (SMART target baseline)
β€’ Organic session count (funnel entry)
β€’ Job page β†’ apply conversion rate by device
β€’ YoY comparison (need prior-year applythanks)
To fill: Open Claude Desktop β†’ "Pull GA4 organic applythanks last 90 days"
5 Traffic Analysis β€” Organic by Page Type (GSC Β· W18 Β· 28 ngΓ y)
Page Type Clicks Impressions CTR Avg. Position
Blog / Content Hub 117,089 12,067,000+ 0.97% β€”
Job Listing (category) 56,317 1,812,000+ 3.11% β€”
Recruiter Profile 24,145 849,000+ 2.84% β€”
Similar Jobs GEM 67,000+ 642,000+ 10.43% β€”
Job Detail (/search-job) GAP 87 8,116 pages crawled ~0% β€”
Jobs EN /jobs/ BUG low 217 pages 0.24% β€”
πŸ’Ž HIDDEN GEM β€” Deploy Now
Similar Jobs CTR: 10.43%
/viec-lam-tuong-tu/ generates 10Γ— higher CTR than Blog (0.97%). 5,484 pages active. Priority: expand internal linking from Job Detail pages β†’ Similar Jobs to compound this signal.
πŸ•³οΈ SEO BLACK HOLE β€” Fix Sprint 1
8,116 Job Detail pages β†’ 87 clicks
/search-job/ pages are indexed but nearly invisible. Root cause: non-canonical URLs, missing structured data, duplicate thin content. Fix = +50–100K click potential (est.).
πŸ“‰ CTR DRAG β€” W18 Clicks Drop
Blog at 0.97% CTR drags overall
Blog/Content = 53.8% of all clicks but CTR only 0.97%. W18: impressions +17%, clicks -7.6%. Cause: English noise KWs + blog title/meta not optimised for job-intent queries. Quick fix: title rewrite for top 50 blog pages.
πŸ“Š GA4 Pending: Organic ApplyThanks by page type & YoY comparison β€” pull in Claude Desktop: "mcp__ga4__run_report: organic applythanks last 90 days, group by pagePath"
Prepared by: SEO Team Β· CareerViet.vn Β· Data: GSC API + Screaming Frog May 2026 Β· Generated 11/05/2026
SMART Target Progress
+20% organic applythanks YoY Β· Baseline & current pending GA4 MCP connection
β€”
vs target
Baseline (prior year): pending GA4 Current organic applythanks: pending GA4 Top3 trend: IMPROVING (+4.1% WoW)
Total Keywords
36.6K
GSC W18 Β· 28-day window
β–² +7.7% vs W17
Weekly Clicks
307K
Organic clicks
β–Ό βˆ’7.6% vs W17
Top 3 Keywords
16,931
46.3% Top3 ratio
β–² +4.1% vs W17
Avg CTR
2.05%
Diluted by English noise
β–Ό βˆ’21.2% vs W17
Avg Position
4.4
All 36K keywords
β–Ό βˆ’0.1pp vs W17
organic applythanks
β€”
Pending GA4 connection
SMART KPI

Weekly GSC Trend (W16 β†’ W18)

Industry Health Distribution

⚠️ CTR Drop Diagnostic: W18 CTR βˆ’21.2% is NOT a ranking regression. Impressions spiked +17% from English-noise keywords (chatgpt: 7.7M imp, youtuber: 1.3M imp) with near-zero CTR. Vietnamese-intent Top3 count grew +674 keywords (+4.1%) β€” health is IMPROVING.
Industry Health Snapshot (W18)
14 target industries Β· Sorted by Top3 ratio
5 Strategic Action Groups
17 recommendations across 5 growth plays β€” McKinsey MECE structure
Industry Health (W18)
GSC 28-day Β· 36,573 total queries Β· 14 target industries
🟒 Good β‰₯50% 🟑 OK 40–49% πŸ”΄ Weak <40%
Keyword Bank Opportunity Funnel
20,063 target KWs Β· 8.79M total volume Β· SEMrush 05/05/2026
Total KW Bank
20,063
8.79M combined vol
Already Top3
1,248
6.2% of bank
Almost Top3 (4–10)
5,248
Highest ROI opportunity
Gap (rank 51+)
8,456
42% β€” no traffic yet
Rank Distribution Funnel
Where 20K target KWs sit today

Rank Distribution (KW Count)

Almost Top3 by Industry (est.)

πŸ’‘ ROI Logic: 5,248 KWs at rank 4–10 need only a 1–3 position nudge to reach Top3. Compound effect: if 30% of these reach Top3, estimated +8,000 additional Top3 KWs = ~25K extra organic clicks/week. Primary lever: title/meta optimization + targeted content push.
Action Board β€” 17 Recommendations
Click status button to cycle: Todolist β†’ In Progress β†’ Done
Technical Health Audit β€” Screaming Frog May 2026
13,841 unique URLs crawled Β· 6 page-type exports Β· Priority scoring 1–10 per merged skill framework
πŸ”΄ Critical β‰₯9 🟑 High 7–8 🟣 Medium 5–6 🟒 Low ≀4
Status 200
10,017
72.4% of crawled
404 Errors
1,999
14.4% β€” crawl waste
⚠ Fix immediately
3xx Redirects
1,822
13.2% β€” equity bleed
Non-indexable
3,902
28.2% β€” cundefined bug
⚠ Critical
Title >60ch
9,360
67.6% β€” template issue
Avg Response
0.27s
29 pages >3s (recruiters)
πŸ•·οΈ
Crawlability
Score: 55/100
Critical
β€’ 3,902 non-indexable pages (28.2%) β€” "cundefined" URL rendering bug
β€’ 1,999 URLs return 404 β€” uncleaned dead links consuming crawl budget
β€’ 1,822 redirect URLs crawled β€” Googlebot following chains
robots.txt + sitemap check: pass βœ“
πŸ“
On-Page SEO
Score: 38/100
Critical
β€’ 9,360 pages with title >60ch (67.6%) β€” systematic template bug
β€’ 3,899 pages missing title + meta + H1 β€” all cundefined orphans
β€’ 8,062 meta descriptions >160ch (58.2%) β€” truncated in SERP
β€’ 980 thin-content pages (<300w, 7.1%) β€” mostly English category stubs
⚑
Performance
Score: 72/100
High
β€’ Avg response time: 0.27s βœ“ β€” good server baseline
β€’ 29 pages >3s (0.2%) β€” 100% recruiter pages /vi/nha-tuyen-dung/
Examples: 3.2s–4.2s (SSR bottleneck suspected)
β€’ CWV data: pending PageSpeed Insights run
β€’ CDN / image optimization: not in SF export
πŸ—οΈ
Site Architecture
Score: 68/100
High
β€’ 3,898 orphan pages (28.2%) β€” no inlinks discovered by crawler
β€’ 0 pages beyond 4 levels deep βœ“ β€” depth structure is clean
β€’ 376 Job Listing URLs crawled β€” likely undercount vs full site
β€’ Internal linking depth for recruiter pages: untested
πŸ“Š
Page Composition
13,841 unique URLs
Info
β€’ Job Detail /search-job/: 8,116 (58.6%)
β€’ Other (English/misc): 2,327 (16.8%)
β€’ Blog /hiringsite/ + /talentcommunity/: 2,022 (14.6%)
β€’ Recruiter /vi/nha-tuyen-dung/: 1,000 (7.2%)
β€’ Job Listing /viec-lam/: 376 (2.7%) β€” key SEO pages
πŸ”’
Security & Mobile
Score: 80/100
Good
β€’ HTTPS across all crawled URLs βœ“
β€’ HTTPβ†’HTTPS redirect in place βœ“
β€’ Mobile responsive: not flagged in SF export βœ“
β€’ HSTS / CSP headers: pending manual check
β€’ No exposed .env / .git found in crawl βœ“
Priority Findings β€” Ranked by Impact Score
Mapped to SMART target: +20% organic applythanks YoY
Score Severity Finding Scope SMART Connection Owner
10 πŸ”΄ Critical "cundefined" URL rendering bug
/jobs/[category]-cundefined-en.html β€” category IDs not resolving β†’ non-indexable orphan pages
~3,900 URLs
28% of crawl
Fix frees crawl budget for /viec-lam/ pages that drive applythanks Dev
9 πŸ”΄ Critical 1,999 URLs returning 404
Dead pages consuming crawl budget and leaking link equity. No 410 (Gone) signals used.
1,999 URLs
14.4% of crawl
Crawl budget reclaimed β†’ faster indexation of ranking /viec-lam/ pages Dev
8 🟑 High Title tags systematically >60ch on category pages
Template-level issue: /viec-lam/ban-hang-kinh-doanh-c31-vi.html = 87ch. Affects CTR via SERP truncation.
9,360 URLs
67.6% of crawl
CTR lift on job listing pages β†’ more organic sessions β†’ more applythanks Dev + Content
8 🟑 High 1,822 redirect URLs being crawled
3xx redirects wasting crawl budget. Should use 301 and remove from internal links/sitemaps.
1,822 URLs
13.2% of crawl
Link equity consolidation β†’ ranking uplift for target /viec-lam/ categories Dev
7 🟑 High Recruiter pages slow (3.2–4.2s response time)
All 29 slow pages are /vi/nha-tuyen-dung/. Likely SSR bottleneck. CWV impact (LCP) suspected.
29 pages
/nha-tuyen-dung/
Recruiter pages are brand impression pages β€” slow load = high bounce before apply Dev
7 🟑 High Meta descriptions >160ch (58.2% of pages)
8,062 pages with truncated meta. Template fix needed similar to title issue.
8,062 URLs
58.2% of crawl
Better meta β†’ higher CTR β†’ more sessions into job detail β†’ more applythanks Dev + Content
6 🟣 Medium 980 thin-content pages (<300 words, 7.1%)
Mostly English-version category stubs. Risk of quality signal dilution across site.
980 URLs Consolidate or noindex thin pages β†’ overall site quality signal improves Content + SEO
5 🟣 Medium Missing H1 on 4,068 pages (29.4%)
Largely overlaps with cundefined orphan pages β€” resolving Finding #1 auto-fixes this.
4,068 URLs Downstream fix once cundefined bug resolved Dev
3 🟒 Low No structured data (JobPosting schema) confirmed
SF export doesn't confirm JSON-LD presence on job detail pages. Manual spot-check needed.
8,116 job detail
pages
Rich results β†’ higher CTR on job listings β†’ more organic applythanks Dev
πŸ”΄ "cundefined" URL samples (Fix #1)
/jobs/security-cundefined-en.html
/jobs/sales-business-development-cundefined-en.html
/jobs/executive-management-cundefined-en.html
/jobs/civil-construction-cundefined-en.html
/jobs/finance-investment-cundefined-en.html
Root cause: category ID variable not resolving before render β†’ JS/template engine bug. All return non-indexable status.
🟑 Slow recruiter pages β€” all /nha-tuyen-dung/ (Fix #5)
cong-ty-tnhh-tmdv-nanofilm.35A959C2.html β†’ 3.8s
cong-ty-tnhh-cuong-quat.35A95D2D.html β†’ 3.2s
biotechem.35A95ED8.html β†’ 3.7s
cong-ty-jibo-textile-vietnam.35A99426.html β†’ 3.7s
cong-ty-tnhh-thuc-pham-va-do-uong-3w.35A9673F.html β†’ 4.2s
Pattern: 100% on recruiter page type. Check SSR queries, N+1 DB calls, or unoptimized hero images per page.
🟑 Title >60ch samples β€” /viec-lam/ categories (Fix #3)
/viec-lam/ban-hang-kinh-doanh-c31-vi.html β†’ 87ch
/viec-lam/tai-chinh-dau-tu-c59-vi.html β†’ 84ch
/viec-lam/quan-ly-dieu-hanh-c17-vi.html β†’ 81ch
/viec-lam/an-ninh-bao-ve-c51-vi.html β†’ 79ch
/viec-lam/xay-dung-c8-vi.html β†’ 74ch
Template formula: "[Industry] Tuyển Dα»₯ng [Year] β€” Tin Tuyển Dα»₯ng Mα»›i NhαΊ₯t | CareerViet". Target: ≀58ch.
βœ… What's working well
β€’ Avg response 0.27s β€” server baseline is solid
β€’ 0 pages beyond 4 URL levels β€” depth structure clean
β€’ 0 5xx errors β€” no server failures in crawl
β€’ 0 near-duplicate page clusters detected
β€’ HTTPS enforced across all crawled URLs
Technical Fix Roadmap
Sequenced by impact/effort Β· Connected to +20% organic applythanks SMART target
🚨 SPRINT 1 β€” 0–14 Days
Dev team Β· Stop the bleeding
☐ Fix "cundefined" category ID rendering (Score 10) β€” debug JS/template variable, re-render or noindex affected URLs
☐ Bulk 410 for confirmed dead pages (Score 9) β€” export 404 list from SF, return 410 Gone, remove from sitemap
☐ Audit redirect chains (Score 8) β€” collapse 3xx chains to single 301, update internal links
⚑ SPRINT 2 β€” 15–45 Days
Dev + Content Β· Ranking uplift
☐ Title template fix (Score 8) β€” update /viec-lam/ category template to ≀58ch formula
☐ Meta description template fix (Score 7) β€” cap at 155ch with keyword-rich formula
☐ Recruiter page performance (Score 7) β€” profile /nha-tuyen-dung/ SSR, fix N+1 queries or enable ISR/caching
πŸ”§ SPRINT 3 β€” 46–90 Days
Content + SEO Β· Quality & Enrichment
☐ Noindex thin English stubs (Score 6) β€” 980 pages <300w, consider consolidating EN/VI versions
☐ Verify H1 coverage (Score 5) β€” post cundefined fix, audit remaining H1 gaps
☐ Confirm JobPosting schema (Score 3) β€” spot-check JSON-LD on job detail pages via Rich Results Test
πŸ“Œ SMART Connection: Fixing the cundefined bug + 404s alone frees ~28% of crawl budget back to revenue-generating /viec-lam/ and /search-job/ pages. Combined with title/meta template fixes on category pages (CTR uplift ~0.3–0.5pp on 9,360 pages), estimated organic session lift: +8–15%. This is the technical foundation for the +20% organic applythanks YoY SMART target.
Source: Screaming Frog crawl May 2026 Β· 6 list-mode export files Β· 13,841 unique URLs Β· Processed 11/05/2026