Capstone: A Real Audit of osztromok.com

SEO Fundamentals

Chapter 10 · Capstone: A Real Audit of osztromok.com

Every prior chapter used illustrative examples. This one doesn't — it's a genuine audit of Philip's own live site (debserver\website\), based on a real source-level review conducted 2026-07-17. Every finding below is real; every fix is a genuine recommendation, not a hypothetical exercise.

Finding 1 — Crawling Is Effectively Broken for Most of the Site (seo1-5)

The single biggest finding
Roughly 300 static Japanese kanji/hiragana/katakana pages exist on disk but are linked from nowhere in the live site's own navigation — and their own internal "back to grid" links point to a kanji-tiles/hiragana-tiles page that doesn't exist anywhere in the codebase. Per seo1-1's own pipeline and seo1-7's own internal-linking material, these pages are structurally orphaned: no crawl path finds them, and the one link each page does have is broken.

Fix: either build the missing tile-grid pages and link them from the main site nav, or add these ~300 URLs directly to a sitemap (seo1-5) as the explicit backup seo1-7's own exercise already named for exactly this scenario.

Finding 2 — No robots.txt, No Sitemap (seo1-5)

Neither file exists anywhere on the site. Per seo1-5, a sitemap is the direct fix for Finding 1; a robots.txt (even a minimal one excluding /admin/) is the site-owner-side counterpart to dsproj1-1's own scraper-side material.

Finding 3 — No Canonical Tags, No HTTPS-Enforcing Redirect (seo1-5)

config.php still hardcodes SITE_BASE_URL = 'http://localhost', and the one existing $canonicalBase variable in the anime sub-app is defined but never rendered into an actual <link rel="canonical"> tag anywhere in the codebase.

Finding 4 — No Meta Descriptions Anywhere on the Main Blog (seo1-2)

Neither template.php nor any of the static kanji/kana pages define <meta name="description">. The separate Anime Vault sub-app does have dynamic meta descriptions — direct, real evidence this is a gap in execution, not a gap in knowledge.

Finding 5 — <html lang="en"> Hardcoded Everywhere, Including on Japanese-Language Pages

Every page, including ones whose entire content is Japanese vocabulary, declares lang="en". For a multi-language learning site, this is a real, fixable mismatch between what a page says and what it claims to be.

Findings Summary Table

FindingSeverityChapter
~300 orphaned kanji/kana pages, broken internal linksHighseo1-1, seo1-5, seo1-7
No robots.txt / no sitemapHighseo1-5
No canonical tags / no HTTPS redirectMediumseo1-5
No meta descriptions on the main blogMediumseo1-2
Hardcoded lang="en" on non-English pagesMediumseo1-2
No structured data anywhereMediumseo1-4
No caching/compression headers on the main site's own .htaccessMediumseo1-6
A real strength worth crediting
Heading structure is consistently well-formed across every sampled page (one clean <h1>, logical nesting), the DB-driven blog uses genuinely clean URLs with no query strings, and internal navigation for the main blog (nav/sidebar/breadcrumbs/prev-next) is solid — seo1-2's and seo1-7's own material is already largely satisfied there.

Chapter Attribution Table

ChapterWhat it diagnosed in this audit
seo1-1The crawl/index/rank framing used to explain why orphaned pages are invisible
seo1-2Missing meta descriptions, the lang="en" mismatch
seo1-4Absent structured data across the whole codebase
seo1-5Missing robots.txt/sitemap/canonical tags, the orphaned-page fix
seo1-6Missing caching/compression on the main site's own .htaccess
seo1-7The broken internal-linking pattern behind the orphaned pages
seo1-9Search Console's Coverage report as the next real step to confirm these findings live

Hands-On Exercises

Exercise 1

Of the two fixes proposed for Finding 1 (build the missing tile-grid pages, or add the URLs to a sitemap), explain what each one actually solves and what it doesn't — are they mutually exclusive, or complementary?

📄 View solution
Exercise 2

Explain why the Anime Vault sub-app having meta descriptions while the main blog doesn't is described as "evidence this is a gap in execution, not a gap in knowledge" — why does that distinction matter for how the fix gets prioritized?

📄 View solution
Exercise 3

Using seo1-9's own material, describe the specific, real next step that would confirm whether fixing Finding 1 actually worked, and how long it would be reasonable to wait before checking.

📄 View solution

Scope Note — What This Capstone Deliberately Doesn't Cover

Honestly out of scope
  • No paid-search/SEM audit — seo1-1 scoped this course to organic search only.
  • No local-SEO/Google Business Profile review — the site has no physical-location component to evaluate.
  • No international/multi-language SEO strategy (hreflang, regional targeting) — a genuinely separate topic from the lang-attribute fix named in Finding 5.
  • No live Search Console data — this audit is based on source-code review; a real Coverage/Performance report requires the site actually being verified in Search Console first, which is itself the recommended next step.

Chapter 10 Quick Reference — Course Summary

  • A genuine audit of osztromok.com, not a hypothetical exercise — real findings from a real 2026-07-17 source review
  • Biggest finding: ~300 orphaned kanji/kana pages with broken internal links, invisible to crawling
  • Also found: no robots.txt/sitemap/canonical tags, no meta descriptions on the main blog, hardcoded lang="en" on Japanese pages, no structured data
  • Real strengths confirmed: clean URLs, solid heading structure, good main-blog internal navigation
  • This completes the SEO Fundamentals course (10 chapters) — closing with a real case study rather than a hypothetical one