Skip to content

Latest commit

 

History

History
65 lines (49 loc) · 5.19 KB

File metadata and controls

65 lines (49 loc) · 5.19 KB

SEO Audit & Architecture Report — emojimaker.cc

Date: 2026-07-29 · Rebuild: v2.0 (Astro static multi-page + Solid islands)

1. What changed and why

Before: single-page Vite/Solid SPA. One URL, empty <body> (all content client-rendered), FAQ existed only in JSON-LD (violates Google's "schema must match visible content" guideline), no pages for any non-brand keyword.

After: 12 statically-rendered pages (full HTML, no JS required for content), each targeting a researched keyword cluster, with interactive tools hydrated as islands. Built on Astro 5 + @astrojs/solid-js + @astrojs/sitemap; deployed unchanged on Cloudflare Pages (pnpm builddist/).

2. Page ↔ keyword map (US monthly volume / Semrush KD, 2026-07)

Page Primary targets Volume / KD
/ emoji maker · custom emoji maker · make your own emoji 27,100/69 · 880/62 · 2,400/77
/emoji-combiner/ emoji combiner · emojis combined · emoji mixer 9,900/53 · 22,200/62 · 6,600/76
/emoji-kitchen/ emoji kitchen (informational) · how to use/get emoji kitchen · emoji kitchen alternative 368,000/50 head + long tail
/random-emoji-generator/ random emoji generator · emoji random generator 2,900/9 · 590/15
/slack-emoji-maker/ slack emoji maker · slack custom emoji · how to make slack emojis 720/20 · 880/35 · 480/43
/discord-emoji-maker/ discord emoji maker · custom discord emojis 1,300/46 · 1,600/44
/twitch-emote-maker/ twitch emote maker · emote maker (for twitch) · how to make twitch emotes 1,300/19 · 720/14 · 1,600/39
/genmoji-online/ genmoji online · genmoji android · what is genmoji 140/31 · 170/21 · 880/55
/genmoji-prompts/ genmoji ideas · genmoji prompts · best/funny genmoji prompts 720/22 · 260/25 · 480/33 · 320/29
/emoji-combinations/ aesthetic/cute/funny/christmas/halloween emoji combinations ~1,000/25-27 each
/guides/how-to-make-custom-emojis/ how to make custom emojis · can you make your own emoji 1,900/52 · 260/65
/404 — (noindex)

Differentiators baked into copy & product (per competitive research): free + no sign-up + no watermark (every ranking competitor gates something), SVG export (no ranking competitor advertises it), platform-exact export sizes (128 Slack/Discord, 112/56/28 Twitch one-click trio).

3. On-page SEO checklist (automated: pnpm audit:seo)

Validated on every built page — current result: 12 pages, 0 errors, 0 warnings.

  • Exactly one <h1>, keyword-bearing, unique per page
  • <title> 25–65 chars, unique; meta description 70–165 chars, unique
  • Self-referencing canonical (trailing-slash consistent, matches sitemap URLs)
  • og:title/description/image/url, twitter:card on every page
  • Valid JSON-LD on every indexable page: Organization, WebApplication (tools), Article (content), HowTo (upload guides), BreadcrumbList, FAQPage
  • FAQ schema questions must appear verbatim in visible <details> markup (checked programmatically; schema answers stripped of HTML)
  • All <img> have alt; internal links verified against built output (no 404s)
  • lang="en", viewport, robots meta (index,follow / noindex on 404)
  • Sitemap: all indexable pages present, noindex pages absent; robots.txt → /sitemap-index.xml

4. Technical SEO

  • Rendering: every page is full static HTML (view-source shows all content). Tools hydrate as islands (client:load above the fold, client:visible below).
  • Performance: no webfonts, system font stack; single small CSS; islands are the only JS. _headers adds immutable caching for /_astro/* and security headers (nosniff, SAMEORIGIN, referrer policy).
  • Internal linking: header nav (6 items), footer mesh (4 columns, every page reachable ≤1 click), contextual cross-links + "Related tools" section per page, visible breadcrumbs on subpages matching BreadcrumbList.
  • Analytics: GA4 loads only when PUBLIC_GTAG_ID is set to a real ID (env/wrangler.toml).
  • Assets: Fluent Emoji SVGs bundled and hashed by Astro's pipeline; MIT attribution in footer + isBasedOn schema.

5. Verified working (manual QA)

  • Maker island: parts load, randomize, canvas compositing, multi-size PNG + SVG export controls
  • Combiner island: pair pick, overlay render (🐱+🔥), presets, sliders, PNG download button
  • Random island, copy-to-clipboard combos, dark/light toggle (no FOUC), no console errors

6. Post-launch checklist (not done in this rebuild)

  1. Deploy, then submit sitemap-index.xml in Google Search Console + Bing Webmaster Tools.
  2. Per-page OG images (currently one shared banner) — biggest remaining social/CTR lever.
  3. /teams-emoji-maker/ page (teams custom emoji ≈1,000/mo, KD ≈30, unserved) + /emoji-combinations/<category>/ split-outs as sections grow.
  4. Animated/GIF export (unlocks "animated emoji" cluster, 45+ autocomplete variants).
  5. Monitor GSC for Emoji Kitchen queries; expand /emoji-kitchen/ with a combo-browsing feature if impressions confirm demand.
  6. Refresh datePublished/dateModified when content changes; keep an eye on iOS/Unicode September cycles and World Emoji Day (Jul 17) for content pushes.