Changelog

A running log of what we have built, fixed, and shipped.

JTBD homepage sections and 6 new SEO pages

Homepage updates

  • Hero subtitle rewrite. Changed from feature-descriptive ("Verify if a number is mobile, landline, or VOIP") to trigger-first ("Cleaning a phone list before a campaign? Upload a CSV and get line type, carrier, and validity for every number in under 60 seconds.").
  • Actions section. New "What you can do with PhoneCheckr" section with 6 clickable cards using JTBD language: clean your SMS list, validate a number, look up the carrier, check line type, filter VOIP, validate in bulk. Each card links to the relevant SEO page.
  • API waitlist section. "Coming soon" section with email capture form for the PhoneCheckr API. Captures signups via PostHog event. Positioned above the footer.

6 new SEO pages

Phone number scrubberKeyword
/phone-number-scrubber
Targets "phone number scrubber" and "scrub phone list" searches. Same job as "clean phone list" but different vocabulary used by ops and data teams.
Phone number enrichmentKeyword
/phone-number-enrichment
Targets "phone number enrichment" searches from RevOps and data teams. Frames the same carrier + line type data as an enrichment workflow for CRM imports.
Phone validation for insuranceVertical
/phone-validation-for-insurance
Vertical page for insurance agents and agencies. Covers lead list cleaning, TCPA compliance for calling campaigns, and common phone data problems in aged insurance leads.
Phone validation for recruitingVertical
/phone-validation-for-recruiting
Vertical page for recruiters and staffing agencies. Covers stale ATS data, candidate number validation, and VOIP detection in applicant records.
Phone validation for healthcareVertical
/phone-validation-for-healthcare
Vertical page for healthcare providers. Covers patient appointment reminder SMS, phone data hygiene, and HIPAA considerations (PhoneCheckr does not store data after processing).
Phone validation for debt collectionVertical
/phone-validation-for-debt-collection
Vertical page for debt collectors. Covers TCPA autodialer rules, line type detection before calling, right-party contact rates, and the FCC Reassigned Numbers Database.

Infrastructure

  • src/shared/consts/paths.ts 6 new path constants
  • src/app/App.tsx 6 new routes
  • package.json reactSnap.include updated with 6 new slugs
  • public/sitemap.xml 6 new URL entries
  • public/llms.txt 6 new page listings for LLM crawlers

Current page count

CategoryPages
Homepage1
App flow (upload, report, download)5
SEO landing pages22
Legal2
Total indexed30

SEO expansion, new components, and content standards

Code organization

Reorganized src/pages/ into three subdirectories as the page count passed a dozen. All import paths in App.tsx updated.

  • pages/app/ Upload, Check, Report, Coupon, Download, Error
  • pages/seo/ All SEO landing pages
  • pages/legal/ Terms of Use, Privacy Policy

New shared components

  • ArticleHero Full-width hero section for SEO article pages. Renders the H1, intro paragraph, and Upload CTA. Deployed across all 11 existing SEO pages to replace the plain title + inline lookup pattern.
  • Callout Highlighted callout box with three variants: info (blue), warning (amber), tip (green). Used throughout article pages to break up dense prose.
  • UploadCta Reusable CTA button wired to the upload flow. Lives inside ArticleHero on every SEO page.

Anti-AI content writing standards

Added a formal style guide to CLAUDE.md governing all AI-generated content for PhoneCheckr. Covers banned vocabulary (~30 words and phrases that signal machine-generated text), banned structural patterns, and a 7-item pre-publish checklist. Applied retroactively to all 11 existing SEO pages. 5 violations found and fixed.

Banned: pivotal, tapestry, underscores, serves asBanned: "not just X but Y" framingBanned: -ing tail phrasesRule: sentence case headingsRule: direct answers first

Technical SEO fixes

  • /check-mobile-or-landline title Updated from "Check if a Number Is Mobile or Landline" to "Check Mobile or Landline | Free Phone Lookup | PhoneCheckr". Aligns with H1, adds "free" keyword, within 60 chars.
  • Homepage schema Added WebSite schema with SearchAction / potentialAction (enables Google Sitelinks Search Box). Enhanced Organization schema with ImageObject logo and contactPoint. Added full Open Graph and Twitter Card tags (were missing).
  • Auto-updating dateModified Added REACT_APP_BUILD_DATE to webpack's DefinePlugin, set to today's ISO date at build time. All 11 SEO pages now use it for dateModified in WebPage schema. No manual updates needed.
  • /blog redirect /blog now redirects to /resources via React Router <Navigate replace />.

5 new SEO pages

PhoneCheckr alternativesComparison
/phonecheckr-alternatives
Head-to-head comparison table vs Twilio Lookup, Numverify, Telnyx, and AbstractAPI. Covers price, free tier, whether code is required, and what each tool is built for. Honest about when API tools win.
Phone number validation APIInformational
/phone-number-validation-api
Captures "phone validation API" searches. Explains API vs CSV tradeoffs, the hidden cost of integration, and a decision guide for which approach fits your workflow. Converts to CSV upload.
US area codesInformational
/us-area-codes
Captures aggregate area code question searches. Covers NANP, number portability history (1984→today), why area codes don't reveal line type, and why a carrier lookup is the only reliable method.
Phone validation for real estateVertical
/phone-validation-for-real-estate
Vertical landing page for real estate agents and ops managers. Covers why real estate lead lists have mixed line types, step-by-step CSV workflow, and channel routing by line type.
Phone validation for e-commerceVertical
/phone-validation-for-ecommerce
Vertical landing page for Klaviyo, Postscript, and Attentive users. Covers undeliverable rate cost, pre-campaign cleaning workflow, and use cases: abandoned cart, checkout cleanup, lead scoring.

Current page count

CategoryPages
Homepage1
App flow (upload → report → download)5
SEO landing pages16
Legal2
Total indexed24

Infrastructure updated

  • src/shared/consts/paths.ts 5 new path constants
  • src/app/App.tsx 5 new routes + /blog redirect
  • package.json reactSnap.include, 5 new slugs for static HTML prerendering
  • public/sitemap.xml 5 new <url> entries
  • public/llms.txt + llms-full.txt all 5 pages indexed for LLM crawlers

Technical infrastructure

Beyond new pages, this session wired up a full-stack technical SEO foundation. Most of this is invisible to users but directly affects crawlability, indexing speed, and how AI assistants reference the site.

  • IndexNow. Protocol that notifies Bing and Yandex instantly when new URLs are published, instead of waiting for the next crawl. Key df17eb861e394284acda81f23372590b added to robots.txt and served as a static file at /df17eb861e394284acda81f23372590b.txt. On deploy, a single POST to api.indexnow.org submits all new URLs simultaneously.
  • LLM crawler allowlist. 12 AI crawlers are explicitly allowed in robots.txt via Allow: / rules: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, anthropic-ai, PerplexityBot, CCBot, YouBot, cohere-ai, Meta-ExternalAgent, Google-Extended, and Applebot-Extended. Most sites block these by default; allowing them is currently a meaningful organic advantage.
  • llms.txt + llms-full.txt. Two LLM-readable index files served at /llms.txt and /llms-full.txt. llms.txt is a brief page directory (title, URL, one-line description per page). llms-full.txt contains the complete site content in plain markdown: intro, features, how-it-works steps, all FAQ answers, and full page descriptions. This lets AI assistants like ChatGPT, Claude, and Perplexity accurately describe and cite PhoneCheckr without needing to live-crawl the site.
  • react-snap static prerendering. At build time, Puppeteer spins up a headless Chrome instance, visits every registered route, and saves the fully-rendered HTML to disk. All 25 slugs are registered in package.json under reactSnap.include. Google receives real HTML instead of a blank <div id="root">, eliminating the JavaScript rendering dependency for indexing.
  • JSON-LD structured data system. Every SEO landing page ships 3–4 inline schemas. Required on all pages: FAQPage (all FAQ questions and answers), BreadcrumbList (2-level trail from homepage), and WebPage (name, description, dates, parent site relation). Step-by-step pages also include HowTo (each step as a HowToStep with position, name, and text). The homepage additionally carries a WebSite schema with a SearchAction/potentialAction (this is what enables Google's Sitelinks Search Box in branded SERPs) and an Organization schema with logo ImageObject and contact point.
  • BUILD_DATE automation. The dateModified field in every WebPage schema used to be hardcoded. Now webpack/plugins.js injects REACT_APP_BUILD_DATE as today's ISO date at build time via DefinePlugin. Every production deploy automatically stamps the correct modification date, keeping Google's freshness signal accurate without manual updates.
  • Analytics triple stack. Three tools initialized in parallel in src/index.tsx before React mounts: GA4 via react-ga4 (standard event + conversion tracking), GTM via react-gtm-module (tag management for marketing scripts), and PostHog via posthog-js (product analytics and session replay, hitting https://us.i.posthog.com). All GA events use category: 'PhoneCheckr'.
  • ErrorBoundary. React class component added to src/shared/ui/ErrorBoundary/ and exported from the shared UI index. Wraps the entire app in App.tsx so any unhandled render error shows a fallback UI instead of a blank white screen.

Up next

1
Backlink strategy. On-page work is solid; distribution is the bottleneck. Write something linkable: SMS compliance guide or phone validation benchmark.
2
Two more verticals. Healthcare and staffing/recruiting both have meaningful search volume and follow the same page pattern.
3
E-E-A-T / entity schema. Add sameAs (LinkedIn, Twitter) to the Organization schema on the homepage to strengthen Google's entity understanding of the brand.
4
Commit + deploy. Uncommitted work across multiple sessions. Needs a clean commit and production deploy.
5
reCAPTCHA key rotation. Real key briefly in git history. Regenerate in Google reCAPTCHA console.

PhoneCheckr is a product by Salesmsg. Try it free →