Audited URL: https://flado.id/visa-for-bali/
Audit Date: 2026-04-27 ยท Auditor: Mori Digital
Method: Static HTML/HTTP analysis + on-page best-practice review (based on Google Search Central / Schema.org / Web Vitals guidelines)
Executive Summary
flado.id is built on WordPress + WooCommerce. Content quality is high and E-E-A-T is well established. However, there is significant room for improvement in Technical SEO, International SEO, and Core Web Vitals. Findings are grouped by priority below.
| Priority | Category | Expected Impact |
|---|---|---|
| P0 | Technical SEO fixes | Eliminate risks that erode search evaluation |
| P0 | International SEO (hreflang) | Consolidate authority across language versions |
| P1 | Structured Data implementation | Win rich results (FAQ / Breadcrumb / LocalBusiness) |
| P1 | Performance (Core Web Vitals) | LCP/CLS improvements โ direct ranking factors |
| P2 | Content optimization | Higher CTR and time on page |
1. Technical SEO (Critical)
1-1. Duplicate <title> Tag ๐ด
<title>How to Get a Visa for Bali ... โ Visa Agency by Flado Indonesia</title>
...
<title>How to Get a Visa for Bali ... โ Visa Agency</title> โ duplicate
- Issue: Two
<title>tags inside<head>. HTML spec violation. - Impact: Google may pick the second one, dropping the brand suffix "by Flado Indonesia" from SERPs.
- Fix: Remove the duplicate output in your theme's
wp_head().
1-2. Missing H1 Tag ๐ด
- Current: page title rendered as
<h3>. No<h1>exists anywhere on the page. - Impact: Hurts both Google's topic detection and accessibility.
- Fix: Always have exactly one
<h1>per page.
1-3. Broken Heading Hierarchy ๐ด
- Current: H3s appear in succession, no H2s.
- Fix: Restructure as H1 โ H2 โ H3.
1-4. WordPress Generator Meta Exposed ๐ก
<meta name="generator" content="WordPress 6.9.4" />
<meta name="generator" content="WooCommerce 10.7.0" />
- Issue: Exposing version numbers is a target for vulnerability scanners. (Security concern, not strictly SEO.)
- Fix: Add
remove_action('wp_head','wp_generator')infunctions.php.
2. International SEO (Critical)
2-1. hreflang Completely Missing ๐ด
Four language versions exist (en / id / ru / cn), but no hreflang annotations are set on any of them.
- Impact:
- Each language version is evaluated as an independent site, diluting domain authority.
- Region-mismatch problems ("user searches in Russian, but the English version is shown").
- Risk of being flagged as duplicate content by Google.
Sample fix (in each page's <head>):
<link rel="alternate" hreflang="en" href="https://flado.id/visa-for-bali/">
<link rel="alternate" hreflang="ja" href="https://jp.flado.id/visa-for-bali/">
<link rel="alternate" hreflang="zh-CN" href="https://cn.flado.id/...">
<link rel="alternate" hreflang="ru" href="https://ru.flado.id/visa-for-bali/">
<link rel="alternate" hreflang="id" href="https://id.flado.id/visa-for-bali/">
<link rel="alternate" hreflang="x-default" href="https://flado.id/visa-for-bali/">
2-2. Chinese URL Slug Optimization ๐
Current: cn.flado.id/ruhejinrubalidaoyuyajiadae-voa-yu-c1-qianzhengshenqingzhinanzuixinban/
- Issue: Long pinyin transliteration carries no semantic value for Chinese SEO. A negative signal on both Baidu and Google.
- Recommendation: Use a short, meaningful slug like
cn.flado.id/visa-for-bali/orcn.flado.id/qianzheng/balidao/.
2-3. No Japanese Version ๐
- Neither the language switcher nor the GTranslate widget includes Japanese.
- Japanese tourists and long-stay residents are a major Bali customer segment (1M+ visitors per year).
- Recommendation: Launch
jp.flado.idorflado.id/ja/. This demo serves as the prototype.
3. Structured Data (High Priority)
3-1. No JSON-LD at All ๐ด
The current <head> contains zero Schema.org markup, missing every rich-result opportunity below:
| Schema | Expected Benefit |
|---|---|
Article | Eligibility for Top Stories / Discover |
FAQPage | Accordion in SERP (CTR +30 to +50%) |
BreadcrumbList | Breadcrumb display in place of raw URL |
LocalBusiness | Google Maps / Knowledge Panel linkage |
Service | Rich results in service searches |
Organization | Sitelinks and logo display |
Product + Review | Star ratings in SERPs from existing reviews |
3-2. Underused Review Data ๐
- The WP Review Slider plugin shows Google reviews on-page, but the data is not exposed as JSON-LD.
- Adding AggregateRating + Review schemas would surface star ratings directly in SERPs.
4. Core Web Vitals / Performance
4-1. Heavy Unnecessary Resource Loading ๐ด
Even on non-commerce pages (e.g. articles), the following are loaded:
| Resource | Size | Necessity |
|---|---|---|
| WooCommerce styles + scripts | ~120 KB | โ Not needed |
| jQuery + jquery-migrate | ~95 KB | โ Partially |
| MediaElement.js | ~45 KB | โ Not needed without video |
| Owl Carousel + Bootstrap | ~80 KB | โ Used in limited spots |
| Four trackers (GA / Yandex / Meta Pixel / VK Pixel) | ~60 KB | โ Should be consolidated |
Recommendations:
- Stop loading WooCommerce assets outside product pages (use conditional
wp_dequeue_*). - Gradually remove jQuery dependencies.
- Consolidate trackers via Google Tag Manager.
4-2. Image Optimization ๐
- No
loading="lazy" - No WebP/AVIF support (only PNG/JPG)
- No
srcset/sizes
4-3. Bloated Inline CSS ๐
<style id="wp-custom-css">contains ~800 lines with heavy!importantusage (a sign of CSS specificity wars).- Fix: Restructure with SCSS and ship a built file.
4-4. CLS Risk ๐
- The
joinchat__button(WhatsApp button) renders late and shifts surrounding elements. - Font loading causes FOUT/FOIT.
4-5. Recommended Targets (Estimated Lighthouse)
| Metric | Current (estimated) | Target |
|---|---|---|
| LCP | 3.5s+ | <2.5s |
| CLS | 0.15+ | <0.1 |
| INP | 250ms+ | <200ms |
| Performance Score | 50โ60 | 85+ |
| SEO Score | 75 | 100 |
5. On-Page / Content Optimization
5-1. Meta Description Is a Copy of the Title ๐
<meta name="description" content="How to Get a Visa for Bali & Jakarta, Indonesia: e-VOA and C1 (2026 Updated Guide)">
- Issue: Zero appeal to search intent. Drags down CTR.
- Recommendation: Rewrite in 120โ155 characters, stating who, what, and what they get.
5-2. Image Alt Attributes ๐ก
- Many images have empty or decorative alt text.
- Visa cards and similar visuals should carry context-aware alt strings.
5-3. Internal Anchor Text ๐ก
- Generic anchors like "here" / "click" appear repeatedly.
- Recommendation: Use anchors that match search queries (e.g. "list of VOA-eligible countries").
5-4. No Published / Updated Date ๐
- Article pages show no published or updated date (and these aren't in structured data either).
- Important for E-E-A-T (especially the Freshness signal).
5-5. No Author Information ๐ก
- Adding an author byline + Person schema would meaningfully strengthen E-E-A-T.
6. Other Findings
| # | Finding | Severity |
|---|---|---|
| 6-1 | Yandex tracking pixel inside <noscript> is visible | Low |
| 6-2 | Heavy !important usage hurts maintainability | Med |
| 6-3 | No cookie-consent banner (GDPR / PDPL risk) | Med |
| 6-4 | Open Graph image not specified โ poor SNS share appearance | Med |
| 6-5 | No Twitter Card | Med |
| 6-6 | No autosuggest on site search | Low |
| 6-7 | Default 404 page (not customized) | Low |
| 6-8 | Breadcrumb is plain text, not in structured data | Med |
Recommended Roadmap
Phase 1 (1 week): Critical Fixes
- Remove duplicate
<title> - Implement H1 tags
- Add hreflang tags across all language versions
- Implement four core JSON-LD types (Article / FAQ / Breadcrumb / LocalBusiness)
- Rewrite meta descriptions
Phase 2 (2 weeks): Performance Improvements
- Conditional loading of WooCommerce / unused JS
- Image lazy-loading + WebP conversion
- CSS cleanup + critical CSS extraction
- Open Graph / Twitter Card implementation
Phase 3 (1 month): International SEO Expansion
- Launch a dedicated Japanese site (
jp.flado.id) - Refactor Chinese URL structure
- Generate language-specific sitemaps
- Register each language version separately in Google Search Console
Projected Outcomes (3โ6 months post-implementation)
The deliverables (
/ja/visa-for-bali/, /zh/visa-for-bali/) implement every Phase 1 item and the major Phase 2 items. Targeted Lighthouse score: 95+.