seo: fix subdomain split, add canonical/sitemap/schema#27
Open
layerzerocontents wants to merge 1 commit into
Open
seo: fix subdomain split, add canonical/sitemap/schema#27layerzerocontents wants to merge 1 commit into
layerzerocontents wants to merge 1 commit into
Conversation
Problem: "slaim.app" Google search shows app.slaim.app (the PWA login wall) on page 1 — landing slaim.app doesn't appear. Branded query is being lost to (a) the login subdomain outranking the apex, and (b) Google fuzzy-matching to "slime"/"slim" with no entity signal to disambiguate. Landing (slaim.app): - title: brand-only "Just Slaim it." → keyword-rich "AI Slide Tutor for Med Students | PDF to Real Anki .apkg" (OG/Twitter titles kept as the catchy brand version for social shares) - canonical → https://slaim.app/ - robots meta with max-image-preview:large - JSON-LD SoftwareApplication + Organization with sameAs to Instagram and GitHub (entity disambiguation: tells Google "Slaim" = this software, not the Spotify artist / slime apps) - /sitemap.xml + /robots.txt at landing root App (app.slaim.app): - robots meta noindex,follow + canonical to slaim.app - X-Robots-Tag: noindex,follow header in vercel.json (covers all PWA routes, belt-and-suspenders with meta tag) Expected: Google deindexes app.slaim.app within 1-2 crawl cycles; authority consolidates on apex. sameAs + Schema gives Knowledge Graph the entity it needs to stop fuzzy-matching.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Searched
"slaim.app"on Google. The landing isn't on page 1 at all — insteadapp.slaim.app(the PWA login wall) is #1. The rest of page 1 is spelling-variant junk (slime apps, "slim", Spotify artist named Slaim, slaim.io game, etc.). Two root causes:app.slaim.appis indexable and outranks the apex. Anyone clicking the top result lands on a login screen.Raw HTML audit of
slaim.appshowed: no canonical, no JSON-LD, no sitemap, no robots.txt, and a<title>that's brand-only with zero category keywords.What changed
Landing (
/landing)<title>:Slaim — Just Slaim it.→Slaim — AI Slide Tutor for Med Students | PDF to Real Anki .apkg<link rel="canonical" href="https://slaim.app/"><meta name="robots" content="index, follow, max-image-preview:large">SoftwareApplication(with offers Free/$19/$39) +Organization, both withsameAsto Instagram + GitHub. This is the single biggest entity signal — tells Knowledge Graph "Slaim = this thing, not the artist / slime apps."/robots.txtreferencing the sitemap/sitemap.xmlcovering/,/pricing,/marketplace,/privacy,/termsApp (
/app)<meta name="robots" content="noindex, follow">+ canonical →https://slaim.app/inindex.htmlX-Robots-Tag: noindex, followheader invercel.json— covers any PWA route past/, belt-and-suspenders with the meta tagfollowis intentional: don't waste internal link equity that flows through to the apexExpected impact
app.slaim.appdeindexed →slaim.apptakes the Polar + Discord integration · remove yc-export #1 brand slotsameAs+ Schema starts disambiguating the entity in Knowledge Graph; fuzzy-match to "slime"/"slim" decreasesFollow-up (not in this PR)
sameAsentries once TikTok / X / LinkedIn handles exist/blog/pdf-to-anki,/blog/slaim-vs-anki)Test plan
curl -sI https://app.slaim.app | grep -i x-robots→ returnsnoindex, followcurl -sL https://slaim.app | grep -E "canonical|application/ld\+json"→ both presentcurl -sI https://slaim.app/sitemap.xml→ 200curl -sI https://slaim.app/robots.txt→ 200slaim.appURL → no errors<title>, not OG)