Audited: Aug 2026 · schooloffreelancing.com
| Item | Status | Fix |
|---|---|---|
| Title tag | "Linux Freelancing Training & Services | School of Freelancing" — good length, keyword-front-loaded | ✅ Keep |
| Meta description | Present, ~155 chars | ✅ Good |
| OG vs Meta mismatch | og:description / twitter:description say "IT services", meta description + og:title say "AI services" | ❌ Fix — pick one term, sync across all 5 tags |
| H1 | "Build a High-Income Linux & AI Freelancing Career" — one H1, keyword-relevant | ✅ Good |
| Canonical | Present, self-referencing | ✅ Good |
| robots meta | index, follow, max-snippet:-1, max-image-preview:large |
✅ Good, AI-search friendly |
| Theme color / mobile meta | Present | ✅ Good |
| Image alt text | Logos have descriptive alt ("Linux logo," "Hermes Agent logo") | ✅ Good — extend this standard to all service/location page images |
Action: Standardize on "AI & Linux services" across title, meta, OG, and Twitter tags site-wide. Inconsistent phrasing across social/meta surfaces confuses both search engines and AI crawlers building an entity profile of the brand.
Homepage doesn't expose visible JSON-LD in a standard fetch (this can be a rendering/extraction artifact — verify directly in Google Rich Results Test and Schema Markup Validator).
Given you've already built Organization + EducationalOrganization + Course + Service schema (per your prior work), verify on live homepage:
-
Organizationschema includessameAsfor all socials shown in footer (GitHub, YouTube, LinkedIn, Facebook, Instagram, Threads, WhatsApp, Telegram, X) — currently 9 profiles linked in footer, confirm all are in schema -
AggregateRating(5.0★, 36 reviews) is marked up with real review count — do not pad, matches your own no-fabrication rule - Each
Coursecard (Linux, Hermes Agent, Telnyx) has matchingCourseschema withhasCourseInstance,price,duration - Add
BreadcrumbListschema site-wide — you have deep hierarchy (Training → Course, Locations → Country) that benefits heavily from breadcrumbs in SERPs - Add
FAQPageschema on the FAQs page specifically — currently just a footer link, no schema signal visible - Add
VideoObjectschema for the homepage YouTube embed (thumbnail, uploadDate, duration) — you have an embedded intro video with no visible video schema
Couldn't run PageSpeed Insights directly from this session (tool access restricted to prior search/fetch domains). Run manually and report back, but structural risks visible in the HTML:
- YouTube iframe embed on homepage (
https://www.youtube.com/embed/...) — this is a common LCP/CLS killer. Switch to a static thumbnail (hqdefault.webp— you're already generating this) that loads the real iframe only on click (facade pattern). Cuts ~500KB-1MB of blocking JS on first load. - Google Tag Manager loaded via
googletagmanager.com/ns.html— confirm GTM container loadsasync/defer, not render-blocking. - Test at: PageSpeed Insights and GTmetrix — run for homepage + one training page + one location page (location pages are often template-heavy and most at risk).
Priority targets: LCP < 2.5s, CLS < 0.1, INP < 200ms.
You've already built llms.txt, MCP server, and A2A card — ahead of most competitors here. Remaining gaps:
- robots.txt AI bot rules — confirm explicit
User-agentblocks for GPTBot, ClaudeBot, PerplexityBot, Google-Extended set toAllow(verify directly — I couldn't fetch robots.txt in this session, checkschooloffreelancing.com/robots.txtmanually) - Sitemap reference in robots.txt — confirm
Sitemap:line points to current sitemap.xml - Content structure for citation — AI answer engines favor direct, extractable Q&A blocks. Your FAQ page should use literal question-as-heading format (e.g.,
## How much does Linux Freelancing Training cost?) directly followed by a 1-2 sentence factual answer, then elaboration. Right now check if FAQs open with narrative instead of the direct answer. - Entity consistency — "School of Freelancing," "AnythingLinux," and your personal name (Karim) should resolve consistently across schema, About page, and footer sameAs — this is what lets AI engines build a confident entity graph and cite you by name/brand correctly.
- index.md pairing — you're already doing this for training pages; extend the same pattern to all 20 location pages and all service pages if not already done.
- No blog/resource hub in main nav — biggest missing piece for topical authority. You have deep technical expertise (VoIP, SMS gateways, Hummingbot, Mailcow) with zero long-form content capturing informational search intent.
- Service copy is jargon-dense ("cryptographic security auditing, external gateway proxy scripting") — hurts both readability and keyword match against how businesses actually search ("hummingbot not connecting to exchange," "server keeps crashing").
- Location pages (~20 countries) — ensure each has unique H1/meta, not just swapped country name in a templated block (thin/duplicate content risk if only the country name changes).
- Internal linking — homepage doesn't link to Locations or FAQs directly; both are footer-only, buried from crawl priority.
- Fix OG/meta description mismatch (site-wide audit, not just homepage)
- Add BreadcrumbList + FAQPage + VideoObject schema
- Convert YouTube embed to click-to-load facade
- Verify/fix robots.txt AI bot allowlist + sitemap reference
- Run PageSpeed Insights on homepage + 1 training + 1 location page, fix top 3 flagged issues
Launch /resources/ or /blog/ — target bottom-of-funnel, high-intent freelancer queries:
- "How to become a Linux freelancer with no experience"
- "Hummingbot installation guide" (you already have this expertise — long-form version of your YouTube content)
- "FusionPBX vs Twilio for freelance VoIP projects"
- "How much do Linux freelancers earn in [country]" — ties directly into your 20 location pages, strong internal linking opportunity
- "Telnyx vs Twilio SMS API for freelancers"
Each post: 1,200–1,800 words, one embedded YouTube video (facade-loaded), FAQ block with schema, internal link to matching Training page.
- Differentiate each of the 20 country pages beyond swapped country name: local marketplace stats, local currency pricing examples, country-specific testimonial if available
- Add unique FAQ per location ("Can I learn Linux freelancing from Nigeria?" etc.)
- Publish case studies from actual student outcomes (ties to your GMI program — real, verifiable data you already have)
- Guest content / backlinks from freelance marketplace blogs (Upwork community, Fiverr forum, dev.to) linking back to specific training pages, not just homepage
- Submit to AI/agent directories (isitagentready.com — already on your radar) and similar emerging GEO directories as they appear
- Track: organic sessions per training page, FAQ page impressions (Search Console), AI referral traffic (check server logs for GPTBot/ClaudeBot/PerplexityBot hits as a proxy for AI crawl frequency)
- Monthly: re-run PageSpeed Insights, watch CWV drift after any new embeds/scripts added
- Fix OG/meta description "AI" vs "IT" inconsistency site-wide
- Facade-load the YouTube embed (biggest likely CWV win)
- Add FAQPage + BreadcrumbList schema
- Launch a blog/resources section — you're leaving free organic traffic on the table with zero informational content
- Verify robots.txt explicitly allows GPTBot/ClaudeBot/PerplexityBot + has sitemap line