Schema is excellent. robots.txt is broken.
PHP 7.4 has been EOL for 3 years.
bestsmile.us has strong on-page schema (Dentist + Organization + AggregateRating present) and 4.9★ / 561 Google reviews. But the homepage is on PHP 7.4 (security risk — EOL November 2022), robots.txt is malformed at the foundation level, and the 1.4 MB HTML payload is producing a 9.4s mobile LCP.
Domain: bestsmile.us · Business: Cosmetic + general + emergency dentistry · Service area: Miramar + Pembroke Pines, FL · Broward County
Read this if nothing else.
Schema and content are done well. The site is held back by infrastructure issues: PHP 7.4 (EOL), a broken robots.txt missing User-agent + Allow + Sitemap directives, and a 1.4 MB HTML payload from page-builder bloat.
robots.txt is malformed
Missing User-agent: directive (5 fails on audit). Missing Allow: /. Missing Sitemap:. Without User-agent:, the Disallow: rules technically apply to no one. Affects all crawlers, including Google. 10-minute fix.
PHP 7.4 has been End-of-Life for 3+ years
x-powered-by: PHP/7.4.33. PHP 7.4 EOL was November 2022. No security patches since. Compounded by the fact that the version is publicly exposed via response header. WordPress hosts have free upgrade paths to PHP 8.2+.
No <h1> heading
Grep on the homepage HTML returns zero <h1> matches. With strong schema but no H1, you're emitting the structured signal but missing the textual one.
1.4 MB HTML payload
The homepage HTML is 1.4 MB raw — unusually large. Almost certainly page-builder (Divi or Elementor) bloat: inlined CSS, inlined JS, inlined JSON-LD all rendered into the source. Root cause of the 9.4s LCP.
Schema graph is strong
Dentist, Organization, PostalAddress, AggregateRating all emitting. Multi-location practice — verify both Miramar and Pembroke Pines are emitted as separate entities.
Two phone numbers in HTML
(954) 248-2601 and (954) 431-8484. Presumably one per location. Verify each is correctly associated with its location in schema.
Four foundational fixes. The first is 10 minutes.
| # | Action | Why it matters | Effort |
|---|---|---|---|
| 1 | Fix robots.txt — 10-minute foundational fix. Required block: | Without User-agent, all your other robots.txt rules are non-binding. This is the foundation of crawl access. Fix this first. | 10 min |
| 2 | Upgrade PHP from 7.4 to 8.2+. WordPress hosts (SiteGround, Kinsta, WP Engine, Cloudways) all support 8.2+. Test in staging first. Hide the x-powered-by header too. | PHP 7.4 has been unpatched for 3+ years. Public version exposure plus EOL = vulnerability scanner red flag. Performance also lifts 20-30% on 8.2 vs 7.4. | 4-8 hr |
| 3 | Fix the 9.4s LCP — diagnose the 1.4 MB HTML. Identify the page builder (Divi or Elementor most likely). Disable unused modules. Enable critical-CSS inline + defer non-critical JS. Optimize hero image. | At 9s LCP, mobile bounce rate is ~70%+. Site has the authority to convert; visitors aren't waiting around to see it. | 8-16 hr |
| 4 | Add a proper <h1>. Example: 'Cosmetic + Family Dentistry in Miramar & Pembroke Pines, FL'. | Free ranking weight. | 5 min |
| 5 | Verify both locations are separate schema entities. Multi-location practices should emit two Dentist or Place entities, one per address. | Combining locations dilutes local-pack eligibility for each city. | 1-2 hr |
| 6 | Add 14 AI-crawler allows + ship llms.txt. In the new robots.txt. | AI search is 22% of queries. Without explicit access, invisible to those queries. | 30 min |
What the live HTML actually says.
Live HTML pulled from www.bestsmile.us on 2026-06-02 (apex redirects to www via 301). Server: PHP 7.4.33 + WordPress + Yoast SEO.
Stack detected
| CMS | WordPress |
| PHP | 7.4.33 EOL since Nov 2022 + version exposed |
| SEO plugin | Yoast |
| Page builder | Likely Divi or Elementor (1.4 MB HTML payload) |
| robots.txt | 5 audit failures |
robots.txt missing User-agent / Allow / Sitemap
Without User-agent:, the file's rules are not bound to any crawler. Audit shows 5 fails on a single file.
evidence: audit-seo-files.sh: 5 FAILs on robots.txt
PHP 7.4 EOL + version exposed
No security patches since November 2022. x-powered-by: PHP/7.4.33 publicly visible.
evidence: Response header: x-powered-by: PHP/7.4.33
No H1 tag
evidence: grep -oE '<h1[^>]*>[^<]*</h1>' home.html → empty
1.4 MB HTML payload
Unusually large. Page-builder is rendering massive amounts of inlined CSS, JS, and JSON-LD into the source.
evidence: wc -c home.html → 1,418,774
Schema graph correct
Dentist + Organization + PostalAddress + AggregateRating present.
evidence: grep -oE '"@type"' home.html shows 10+ types
9.4s LCP. Root cause: 1.4 MB HTML payload.
Lighthouse mobile lab data, captured 2026-06-02. Google's Good zone: LCP <2.5s, FCP <1.8s, CLS <0.1, TBT <200ms.
LCP is 3.7x the Good zone — and the cause is page-builder bloat
A 1.4 MB HTML payload is unusually large for a dental site. Most well-built WP sites are 50-200 KB. Almost certainly Divi or Elementor rendering massive amounts of inlined CSS / JS / JSON-LD into the source. Disabling unused page-builder modules typically cuts this 60-80%.
Schema is the strength of this site.
Dentist + Organization + PostalAddress + AggregateRating is the right baseline for a multi-location dental practice.
Detected types: Dentist, Organization, AggregateRating, PostalAddress, BreadcrumbList, plus standard Yoast graph types.
One thing to verify: the practice has two locations (Miramar + Pembroke Pines). Multi-location practices should emit two distinct entities, each with its own NAP, hours, and phone. Combining dilutes local-pack eligibility for each city.
Are you findable by ChatGPT, Perplexity, Google AI Overviews?
As of 2026, 22% of all search queries route through an AI surface. Visibility there is now a measurable revenue lever.
robots.txt: AI crawler access
Compounded by the broader robots.txt malformation — without User-agent: *, the file's directives bind no crawler. Fix the foundation first, then add AI-crawler allows.
llms.txt: citation hygiene file
/llms.txt returns 404.
How your business appears in local search.
Two locations confirmed in HTML: 12741 Miramar Pkwy (Miramar 33027) + 500 N Hiatus Rd (Pembroke Pines 33026). Schema declares two AggregateRating entries: 4.8★ / 294 and 4.9★ / 331. Phones (954) 248-2601 + (954) 431-8484. Dr. Laura Gonzalez named on homepage.
Two-location practices should treat each location as its own SEO entity. Each location page should have its own H1, meta, dedicated Dentist schema with that location's NAP, and ideally its own reviews snippet. The schema already declares two AggregateRating entities (294 + 331 reviews) — verify each is correctly bound to its location.
E-E-A-T opportunity: Dr. Gonzalez is named on the homepage but specific credentials and training history aren't surfaced. For cosmetic dentistry specifically, surfacing credentials (university, fellowships, professional society memberships) is a documented conversion driver. Recommended: a doctor-bio page with full credentials and Person + EducationalCredential schema.
The order to do this work in.
Ranked by impact divided by effort. Estimates assume a competent WordPress developer.
| # | Action | Effort | Impact |
|---|---|---|---|
| 1 | Fix robots.txt (User-agent + Allow + Sitemap) | 10 min | Very high |
| 2 | Upgrade PHP from 7.4 to 8.2+ | 4-8 hr | High (security + perf) |
| 3 | Fix LCP — disable unused page-builder modules | 8-16 hr | Extreme |
| 4 | Add proper <h1> | 5 min | High |
| 5 | Split schema into two location entities | 1-2 hr | Medium-high |
| 6 | Add 14 AI-crawler allows + llms.txt | 30 min | Medium |
| 7 | Per-procedure pages (veneers, whitening, Invisalign, implants) | 8-16 hr | High |
| 8 | Reduce CLS — width/height attributes on every image | 2-4 hr | Medium |