Farside Japan Website Remediation Guide

A prioritized implementation plan for resolving every root cause found in the July 13, 2026 Squirrelscan audit of farsidejapan.com. This is a technical and content checklist—not legal advice.

46/100Current audit score
4Failed checks
34Warnings
14URLs/resources crawled

Recommended order

Priority 0 · First

Trust, accessibility, and metadata

Fix the four failures, publish core trust pages, and correct how the homepage appears in search.

Priority 1 · Next

Images and page stability

Add dimensions and lazy loading, compress heavy images, and improve the critical loading path.

Priority 2 · Then

Security and structured data

Add browser-security headers, form protection, and schema for the business and video content.

Priority 3 · Polish

Semantics and maintainability

Correct headings, link names, focus states, contrast, canonical consistency, and secondary optimizations.

Priority 0: trust, accessibility, and search presentation

Critical

1. Give every interactive control an accessible name a11y/aria-command-name

Six links pointing to #one have no readable name. Add visible text or a meaningful aria-label. If they are decorative controls, remove them from the tab order instead of leaving empty links.

<a href="#golden-route" aria-label="View the 10-day Golden Route">
  <span aria-hidden="true">→</span>
</a>

Verify: Tab through the page. Every focused link/button should announce a useful purpose in VoiceOver and have a visible focus indicator.

Critical

2. Add a programmatic label to the form input a11y/form-labels

The input named site-url needs a visible <label>. If it is a bot-trap/honeypot rather than a user field, hide it from assistive technology and keyboard navigation.

<label for="site-url">Your website (optional)</label>
<input id="site-url" name="site-url" type="url" autocomplete="url">

Verify: Clicking the label focuses the input, and an accessibility scanner reports no unlabeled form controls.

Critical

3. Add meaningful image alternatives images/alt-text

Six images are missing alt text. Describe meaningful travel and guide images in context. Use alt="" only when an image is purely decorative and adjacent text already conveys the same information.

  • Example: alt="Private Farside Japan walking tour in Tokyo"
  • Example: alt="Lake Ashi with Mount Fuji behind Hakone"
  • Example: alt="Farside Japan downloadable Tokyo itinerary cover"

Verify: Every meaningful <img> has concise, non-duplicative alt text; decorative images use an empty alt attribute.

High impact

4. Replace the homepage title and description core/meta-title · core/meta-description

The current title (“farside japan”) and description (“photo walks”) do not explain the offer. Recommended starting copy:

<title>Personalized Japan Tours & Trip Planning | Farside Japan</title>
<meta name="description" content="Plan Japan with a knowledgeable local guide. Explore private tours, custom itineraries, group logistics and ready-to-use Tokyo and Golden Route travel guides.">

Keep titles around 30–60 characters and descriptions around 120–160 characters. Match the promise to services actually offered.

Verify: View page source, confirm one title and one description, then request re-indexing in Google Search Console.

High trust

5. Publish About, Contact, and Privacy pages eeat/about-page · eeat/contact-page · eeat/privacy-policy · legal/privacy-policy

  • About: guide biography, Japan experience, languages, service philosophy, authentic photo, relevant credentials/partners, and who the service is best for.
  • Contact: business name, email/contact form, response time, service area, and booking/inquiry expectations.
  • Privacy: data collected, purposes, processors (form provider, analytics, Payhip, email), cookies, retention, user rights, contact method, and effective date.

Add persistent footer links to all three pages. Have a qualified professional review the privacy policy for the jurisdictions where customers are located.

Verify: Pages return HTTP 200, are linked from the footer, are indexable where appropriate, and the privacy link appears beside any form collecting personal data.

Trust

6. Add authorship and dates to guides/content eeat/author-byline · eeat/content-dates

For downloadable guide landing pages or future articles, show “Written by [Guide Name]” with a link to the About page, plus published and updated dates. Add corresponding author, datePublished, and dateModified schema values.

Priority 1: images, loading, and visual stability

High impact

7. Add intrinsic dimensions to images and the iframe images/dimensions · perf/cls-hints

Twenty images and one iframe lack dimensions. Add the source asset’s true width and height; responsive CSS can still render them fluidly.

<img src="/assets/images/example.webp"
     width="1600" height="1067"
     style="max-width:100%;height:auto"
     alt="...">

For embeds, use fixed dimensions or a CSS aspect-ratio wrapper so space is reserved before content loads.

Verify: Run Lighthouse three times and confirm Cumulative Layout Shift is below 0.1.

High impact

8. Lazy-load below-fold media images/offscreen-lazy

Add loading="lazy" decoding="async" to the 13 below-fold images. Do not lazy-load the hero/LCP image; give that image priority instead.

<img src="..." width="1200" height="800"
     loading="lazy" decoding="async" alt="...">
High impact

9. Compress and modernize image assets images/image-file-size · perf/total-byte-weight

At minimum, optimize image03.jpg (211.1 KB) and image06.jpg (212.8 KB). Export responsive AVIF/WebP variants, size them to their maximum rendered dimensions, and use srcset/sizes. Aim for roughly 80–150 KB for large photographic images and lower for cards/thumbnails without visible quality loss.

<picture>
  <source type="image/avif" srcset="photo-800.avif 800w, photo-1600.avif 1600w">
  <source type="image/webp" srcset="photo-800.webp 800w, photo-1600.webp 1600w">
  <img src="photo-1600.jpg" srcset="photo-800.jpg 800w, photo-1600.jpg 1600w"
       sizes="(max-width: 760px) 100vw, 50vw" width="1600" height="1067" alt="...">
</picture>

Verify: Total tracked page weight drops materially below the current ~1.66 MB and no individual non-hero image exceeds 200 KB.

Performance

10. Prioritize only the true LCP image perf/lcp-hints

Identify the actual above-fold hero image in Lighthouse. Preload only that asset and set fetchpriority="high". Do not preload all three candidates reported by the scanner; over-preloading competes for bandwidth.

<link rel="preload" as="image" href="/assets/images/hero.webp" fetchpriority="high">
<img src="/assets/images/hero.webp" fetchpriority="high" width="..." height="..." alt="...">
Performance

11. Shorten critical request chains perf/critical-request-chains · perf/font-loading · perf/preconnect

  • Add preconnects for Google Fonts if they remain: fonts.googleapis.com and fonts.gstatic.com with crossorigin.
  • Prefer self-hosted WOFF2 fonts and reduce families/weights. The current request includes several families and styles.
  • Load Payhip’s script only near the product section or after interaction if purchasing still works correctly.
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
Cleanup

12. Optimize the large inline SVG images/svg-inline

Run the SVG through SVGO, remove editor metadata and unnecessary precision, or serve it as a cached external file if it is reused. Confirm that externalizing it does not delay above-fold rendering.

Priority 2: security, forms, and structured data

Security

13. Add security headers security/csp · security/hsts · security/x-frame-options

Configure these at the hosting/CDN layer. Start CSP in report-only mode, observe violations, then enforce it. Payhip, Google Fonts, TripAdvisor, videos, analytics, and form endpoints may need explicit allow-list entries.

Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: default-src 'self'; frame-ancestors 'self'; object-src 'none'; base-uri 'self'; ...

Verify: Use SecurityHeaders.com, test every purchase/form/video flow, and review CSP reports before enforcing.

Security

14. Protect the public form from abuse security/form-captcha

Add Cloudflare Turnstile or an equivalent low-friction challenge. Validate its token server-side; a client-only widget is not sufficient. Also add rate limiting, a honeypot, and server-side input validation.

Security

15. Secure external new-tab links security/new-tab

For the TripAdvisor link and every target="_blank" link, add rel="noopener noreferrer".

<a href="https://www.tripadvisor.com/..." target="_blank" rel="noopener noreferrer">Read TripAdvisor reviews</a>
Structured data

16. Add business/service schema and VideoObject schema schema/video · video/video-schema

Add JSON-LD describing the business and its services using the most accurate Schema.org types available (for example, LocalBusiness or TravelAgency when eligibility is confirmed). Include name, URL, logo, contact data, service area, and same-as profiles. Add VideoObject only for a real embedded video, with an accurate name, description, thumbnail, upload date, duration, and embed/content URL.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Explore Japan with Farside Japan",
  "description": "A short look at personalized private experiences in Japan.",
  "thumbnailUrl": "https://farsidejapan.com/path/video-thumbnail.jpg",
  "uploadDate": "2026-01-01",
  "embedUrl": "https://..."
}
</script>

Verify: Validate with Google Rich Results Test and Schema.org Validator. Do not add ratings, prices, addresses, or credentials that are not visible and factual.

Priority 3: semantics, navigation, and polish

Accessibility

17. Restore visible keyboard focus a11y/focus-visible

Remove broad outline:none rules. Use a high-contrast focus style that works on light and dark photography.

:focus-visible { outline:3px solid #ffcf4a; outline-offset:3px; }
:focus:not(:focus-visible) { outline:none; }
Accessibility

18. Correct the heading hierarchy a11y/heading-order

Keep one descriptive H1, use H2 for major homepage sections, and H3 only for items nested inside an H2 section. The audit detected an H3 directly after the H1.

Accessibility

19. Improve link names and destination clarity a11y/identical-links-same-purpose · a11y/link-text

The two “Buy Now” links lead to different products. Give each a unique name, such as “Buy the Tokyo 5-Day Guide” and “Buy the 10-Day Golden Route Guide.” This helps screen-reader users and improves conversion clarity.

Accessibility

20. Add a skip link a11y/skip-link

<a class="skip-link" href="#main">Skip to main content</a>
...
<main id="main">...</main>

Keep it visually hidden until keyboard focus, then display it prominently.

Accessibility

21. Verify color contrast a11y/color-contrast

Test every text/background pairing, especially white text over photographs and very light gray copy. Meet WCAG AA: 4.5:1 for normal text and 3:1 for large text. Add a dark overlay behind hero text when needed.

SEO consistency

22. Normalize canonical and redirect behavior crawl/canonical-chain · security/http-to-https

Choose https://farsidejapan.com/ as the preferred homepage URL. Ensure the canonical tag exactly matches it and that HTTP/non-preferred variants redirect in one 301 hop. The HTTP→HTTPS redirect itself is expected; the goal is a single clean hop and no canonical mismatch.

Brand

23. Add complete favicon assets core/favicon

Provide a modern SVG/PNG favicon, legacy ICO, and Apple touch icon. Include the appropriate <link rel="icon"> and <link rel="apple-touch-icon"> elements.

Definition of done

  1. All four failed checks are resolved.
  2. Homepage title and description describe the actual offer.
  3. About, Contact, and Privacy pages are published and linked.
  4. All meaningful images have useful alt text.
  5. All images/iframes reserve layout space.
  6. Below-fold images lazy-load; the hero does not.
  7. Heavy images are compressed and responsive.
  8. Keyboard focus is visible and the skip link works.
  9. Heading levels form a logical outline.
  10. CTA names identify their destination/product.
  11. Security headers pass without breaking forms, Payhip, or video.
  12. The form has server-validated abuse protection.
  13. Structured data validates and matches visible content.
  14. One-hop redirects and canonical URLs are consistent.
  15. Full Squirrelscan audit is rerun with a current scanner version.
  16. Lighthouse mobile runs are repeated three times.
Target: rerun squirrel self update, then squirrel audit https://farsidejapan.com -C full --format llm --refresh. Aim for 85+ after the first remediation pass and 95+ after all valid warnings are resolved or documented.

Audit-rule coverage

Audit ruleCovered byExpected result
crawl/canonical-chainFix 22Canonical points directly to preferred URL
core/meta-title, core/meta-descriptionFix 4Descriptive search snippet
core/faviconFix 23Favicon detected
security/csp, security/hsts, security/x-frame-optionsFix 13Headers present and tested
security/form-captchaFix 14Public form protected
security/new-tabFix 15External tabs isolated
security/http-to-httpsFix 22Single HTTPS redirect
schema/video, video/video-schemaFix 16Valid VideoObject
images/image-file-size, perf/total-byte-weightFix 9Smaller responsive assets
images/alt-textFix 3Meaningful images described
images/offscreen-lazyFix 8Below-fold images lazy-load
images/dimensions, perf/cls-hintsFix 7CLS risk reduced
images/svg-inlineFix 12SVG payload reduced/cached
perf/lcp-hintsFix 10True LCP image prioritized
perf/critical-request-chains, perf/font-loading, perf/preconnectFix 11Shorter critical path
a11y/aria-command-nameFix 1Controls have accessible names
a11y/form-labelsFix 2Input has associated label
a11y/color-contrastFix 21WCAG AA contrast
a11y/focus-visibleFix 17Visible keyboard focus
a11y/heading-orderFix 18Logical H1→H2→H3 structure
a11y/identical-links-same-purpose, a11y/link-textFix 19Descriptive unique CTAs
a11y/skip-linkFix 20Keyboard bypass available
eeat/about-page, eeat/contact-page, eeat/privacy-policy, legal/privacy-policyFix 5Core trust pages linked
eeat/author-byline, eeat/content-datesFix 6Authorship and freshness visible