Maintainer reference · Not indexed

Platform integrations

How MorseCodeGenerator.com plugs into search engines, ads, analytics, and AI discoverability. Each integration is built so a maintainer can flip it on by setting one env var in Cloudflare Pages → Settings → Environment variables.

Search engines

Google Search Console

  1. Sign in at search.google.com/search-console.
  2. Add property → URL prefix → https://morsecodegenerator.com.
  3. Choose "HTML tag" verification.
  4. Copy the content value (a long base-64 string).
  5. In Cloudflare Pages, add an environment variable: GOOGLE_SITE_VERIFICATION = the content value.
  6. Re-deploy. Verify in Search Console.
  7. Submit sitemap: https://morsecodegenerator.com/sitemap.xml.

Bing Webmaster Tools

  1. Sign in at bing.com/webmasters.
  2. Add site → verify with meta tag.
  3. Set env var BING_SITE_VERIFICATION = the meta content.
  4. Re-deploy → Verify.

Bing also receives IndexNow submissions automatically — see below.

Yandex Webmaster

  1. Sign in at webmaster.yandex.com.
  2. Verify via meta tag.
  3. Set env var YANDEX_VERIFICATION.

Pinterest (visual / branded card pickup)

  1. Sign in at pinterest.com/business/claim.
  2. Verify with meta tag.
  3. Set env var PINTEREST_VERIFICATION.

Facebook domain verification

  1. Meta Business Suite → Brand safety → Domains → Add → verify with meta tag.
  2. Set env var FACEBOOK_DOMAIN_VERIFICATION.

IndexNow (auto-submit changed URLs)

IndexNow is a fast-recrawl protocol shared by Bing, Yandex, Naver, Seznam, and Yep. We submit every sitemap URL after each successful build automatically.

How it works in this repo

When the ping fires

Default-deny. The script only submits when it sees an explicit production signal. Acceptable signals:

Everything else (local npm run build, CI checks, Cloudflare preview branches) skips the ping so dev environments don't spam IndexNow. INDEXNOW_DISABLE=1 additionally vetoes the ping if you ever need to stop it mid-incident. The ping never fails the build — IndexNow outages don't block deploys.

To rotate the IndexNow key

  1. Generate a new random hex string: node -e "console.log(require('crypto').randomBytes(16).toString('hex'))"
  2. Rename public/<old>.txtpublic/<new>.txt and update its content to match the new filename stem.
  3. Commit, deploy. Bing/Yandex will pick up the new key from the next ping.

Analytics & ads

Google Analytics 4

Loaded after first idle so it never blocks first paint. Tracking ID is hard-coded in src/components/Layout.astro (look for G-1K9JZ9ZQ2L). IP anonymization is on. To move to a new GA property, replace the ID.

Google AdSense

The AdSense loader (ca-pub-7616383336440831) is included in Layout.astro and fires after first idle. Slots are not yet placed; to monetize, drop <ins class="adsbygoogle"> markup at desired positions (end of long-form content, between hub sections — never inside tools).


AI discoverability


PWA / offline


Submission checklist (one-time setup)

  1. Set Cloudflare Pages env vars: GOOGLE_SITE_VERIFICATION, BING_SITE_VERIFICATION, YANDEX_VERIFICATION, PINTEREST_VERIFICATION, FACEBOOK_DOMAIN_VERIFICATION (only the ones you want).
  2. Push a deploy. Verify in each console.
  3. Submit https://morsecodegenerator.com/sitemap.xml in Google Search Console + Bing Webmaster + Yandex Webmaster.
  4. (Optional) Add the site at marginalia.nu, kagi.com, or other indie engines.
  5. Confirm IndexNow propagation the next day — Bing should show a "Last detected" date matching your last deploy.