# 986 store pages. 56 characters each.

https://getclinads.com/market-research/lenscrafters-vs-myeyedr-eye-care

Can AI find the right eye doctor? Both chains file the paperwork. Only one of them writes anything down.

<p>Two national eye care chains, and one patient search: <strong>eye doctor near me that takes my vision plan</strong>. LensCrafters keeps its stores on local.lenscrafters.com. MyEyeDr. keeps its 986 store pages on locations.myeyedr.com.</p>
<p>Both chains file the paperwork. Only one of them writes anything down. A LensCrafters store page names the hours, the address and the plans it accepts. A MyEyeDr. store page, read the way a crawler reads it, is 47 characters long and names no plan anywhere.</p>
<figure class="lrn-fig"><img src="https://pub-9ade4d6cef5945cf8fd5d95404099ce3.r2.dev/market-research/lenscrafters-vs-myeyedr-eye-care/slide-01.webp" width="1080" height="1350" loading="lazy" decoding="async" alt="Search for eye doctor near me that takes my vision plan: LensCrafters West Melbourne names hours, address and plans, while MyEyeDr. Danbury shows 47 characters and no plan" /><figcaption>Both chains file the paperwork. Only one of them writes anything down.</figcaption></figure>

<h2>Five questions: LensCrafters answers four, MyEyeDr. answers two</h2>
<p>We scored the page a patient actually lands on, read before JavaScript runs.</p>
<div class="mr-score">
 <div class="mr-score-card mr-mid"><p class="mr-score-name">LensCrafters <small>local.lenscrafters.com</small></p><p class="mr-score-num">4<span>/5</span></p><ul><li><span class="mr-v" aria-label="present">✓</span>Where is it?</li><li><span class="mr-v" aria-label="present">✓</span>Is it open now?</li><li><span class="mr-v" aria-label="present">✓</span>Does it take my vision plan?</li><li><span class="mr-v" aria-label="present">✓</span>Is there anything to read?</li><li><span class="mr-x" aria-label="missing">✕</span>Can a map place it?</li></ul></div>
 <div class="mr-score-card mr-bad"><p class="mr-score-name">MyEyeDr. <small>locations.myeyedr.com</small></p><p class="mr-score-num">2<span>/5</span></p><ul><li><span class="mr-v" aria-label="present">✓</span>Where is it?</li><li><span class="mr-v" aria-label="present">✓</span>Is it open now?</li><li><span class="mr-x" aria-label="missing">✕</span>Does it take my vision plan?</li><li><span class="mr-x" aria-label="missing">✕</span>Is there anything to read?</li><li><span class="mr-v" aria-label="present">✓</span>Can a map place it?</li></ul></div>
</div>
<p class="mr-method">Method: 40 store pages sampled at random from each chain, scored on the raw page before JavaScript runs. Both chains keep their stores on a locations subdomain, and both answer a browser and Googlebot the same way.</p>

<h2>Credit to both: the paperwork is done on both sides</h2>
<p>Every store page we sampled, on both chains, carries a proper listing for machines: the street, the opening hours and the phone number. Both keep a dated sitemap, give every store its own title, and return a real error for a store that does not exist. That is better than most of the networks in this series.</p>
<div class="mr-code"><p class="mr-code-label">Both chains · 40 of 40 store pages sampled</p><pre><code>"address": { "streetAddress": …, "addressLocality": … },
"openingHours": ["Mo,Tu,We,Th,Fr 09:00-19:00", "Sa 09:00-18:00"],
"telephone": …</code></pre></div>
<div class="mr-stats mr-stats-2">
 <div><b>80 / 80</b><span>store pages across both chains carrying address, hours and phone</span></div>
 <div><b>1,911</b><span>store pages between them, every one in a sitemap dated this year</span></div>
</div>
<figure class="lrn-fig"><img src="https://pub-9ade4d6cef5945cf8fd5d95404099ce3.r2.dev/market-research/lenscrafters-vs-myeyedr-eye-care/slide-03.webp" width="1080" height="1350" loading="lazy" decoding="async" alt="Both LensCrafters and MyEyeDr. store pages carry address, opening hours and telephone in their page data" /><figcaption>The part most networks skip, done by both.</figcaption></figure>

<h2>Where they part: LensCrafters names the vision plans it takes</h2>
<p>The question a patient actually asks is whether their plan works here. LensCrafters answers it inside the listing itself, on every store, in a description a machine can lift and quote.</p>
<div class="mr-code"><p class="mr-code-label">Inside a LensCrafters store listing</p><pre><code>"description": "…We accept most vision insurance plans
including: EyeMed, Aetna, Humana, United Healthcare,
Davis Vision …"</code></pre></div>
<div class="mr-stats mr-stats-2">
 <div><b>40 / 40</b><span>LensCrafters listings naming the carriers, in a 695-character description</span></div>
 <div><b>0 / 40</b><span>MyEyeDr. listings naming a plan: its description field is empty</span></div>
</div>
<figure class="lrn-fig"><img src="https://pub-9ade4d6cef5945cf8fd5d95404099ce3.r2.dev/market-research/lenscrafters-vs-myeyedr-eye-care/slide-04.webp" width="1080" height="1350" loading="lazy" decoding="async" alt="A LensCrafters store listing description names EyeMed, Aetna, Humana, United Healthcare and Davis Vision" /><figcaption>The question patients ask most, answered in the listing.</figcaption></figure>

<h2>A MyEyeDr. store page is one line long</h2>
<p>Strip the code and this is the entire readable page. Everything else waits for JavaScript.</p>
<div class="mr-code"><p class="mr-code-label">The whole page · 47 characters</p><pre><code>MyEyeDr. | Eye Doctor near Danbury, CT North St</code></pre></div>
<p>A person sees a full store page, because their browser builds it. A crawler, and an assistant reading the page, gets the line above.</p>
<div class="mr-stats mr-stats-2">
 <div><b>56</b><span>characters on a typical MyEyeDr. store page; 38 of 40 came in under 100</span></div>
 <div><b>1,439</b><span>characters on a typical LensCrafters store page</span></div>
</div>
<figure class="lrn-fig"><img src="https://pub-9ade4d6cef5945cf8fd5d95404099ce3.r2.dev/market-research/lenscrafters-vs-myeyedr-eye-care/slide-05.webp" width="1080" height="1350" loading="lazy" decoding="async" alt="Read without JavaScript, a MyEyeDr. store page is a single 47-character line" /><figcaption>What a crawler reads: one line.</figcaption></figure>

<h2>One wrote a letter to the AI engines. The other left the file blank</h2>
<p>LensCrafters publishes a 15 KB llms.txt, the note that tells assistants what a company is and which pages matter. MyEyeDr. has none, and the robots file on the domain that holds all of its stores is an empty document.</p>
<div class="mr-stats mr-stats-2">
 <div><b>0 bytes</b><span>locations.myeyedr.com/robots.txt answers and says nothing: no rules, no pointer to the sitemap</span></div>
 <div><b>Coordinates</b><span>what MyEyeDr. does better: map coordinates on all 40 listings, where LensCrafters gives none</span></div>
</div>
<p><strong>The pattern across this series:</strong> each chain built the half the other skipped. Neither shipped both.</p>
<figure class="lrn-fig"><img src="https://pub-9ade4d6cef5945cf8fd5d95404099ce3.r2.dev/market-research/lenscrafters-vs-myeyedr-eye-care/slide-06.webp" width="1080" height="1350" loading="lazy" decoding="async" alt="LensCrafters publishes a 15 KB llms.txt; the MyEyeDr. locations robots.txt is 0 bytes, though its listings carry map coordinates" /><figcaption>Each chain built the half the other skipped.</figcaption></figure>

<h2>The scorecard: eight checks to five, and four they both pass</h2>
<p>Nine checks, the same method, both chains.</p>
<div class="mr-table-wrap">
<table class="mr-table">
 <thead><tr><th scope="col">Check</th><th scope="col">LensCrafters</th><th scope="col">MyEyeDr.</th></tr></thead>
 <tbody><tr><th scope="row"><b>A store listing in the page data</b><span>Address, hours and phone a machine reads</span></th><td><span class="mr-v" aria-label="present">✓</span></td><td><span class="mr-v" aria-label="present">✓</span></td></tr><tr><th scope="row"><b>A unique title per store</b><span>How the result reads in search</span></th><td><span class="mr-v" aria-label="present">✓</span></td><td><span class="mr-v" aria-label="present">✓</span></td></tr><tr><th scope="row"><b>Store sitemap dated this year</b><span>So a crawler knows what changed</span></th><td><span class="mr-v" aria-label="present">✓</span></td><td><span class="mr-v" aria-label="present">✓</span></td></tr><tr><th scope="row"><b>Dead store URLs return an error</b><span>Not “200 OK” for a store that isn’t there</span></th><td><span class="mr-v" aria-label="present">✓</span></td><td><span class="mr-v" aria-label="present">✓</span></td></tr><tr><th scope="row"><b>Vision plans named in the listing</b><span>EyeMed, Aetna, Humana and the rest</span></th><td><span class="mr-v" aria-label="present">✓</span></td><td><span class="mr-x" aria-label="missing">✕</span></td></tr><tr><th scope="row"><b>Words on the page without JavaScript</b><span>Something to read, and to quote</span></th><td><span class="mr-v" aria-label="present">✓</span></td><td><span class="mr-x" aria-label="missing">✕</span></td></tr><tr><th scope="row"><b>A note written for AI engines</b><span>An llms.txt on the domain</span></th><td><span class="mr-v" aria-label="present">✓</span></td><td><span class="mr-x" aria-label="missing">✕</span></td></tr><tr><th scope="row"><b>robots.txt serves real rules</b><span>Not an empty file</span></th><td><span class="mr-v" aria-label="present">✓</span></td><td><span class="mr-x" aria-label="missing">✕</span></td></tr><tr><th scope="row"><b>Map coordinates in the listing</b><span>So an assistant can place the store</span></th><td><span class="mr-x" aria-label="missing">✕</span></td><td><span class="mr-v" aria-label="present">✓</span></td></tr></tbody>
</table>
</div>

<h2>Why this matters to a clinic</h2>
<p>An assistant can only recommend what a page actually says. MyEyeDr. has 986 store pages and gives a reader one line each. LensCrafters spends a paragraph naming the plans it takes, and wins the question patients ask most.</p>
<p><strong>That is not a budget decision:</strong> it is whether the facts are written down.</p>
<ul>
 <li><strong>We search for your clinic the way a patient would.</strong> Your city and your competitors, on Google and on the AI assistants.</li>
 <li><strong>You get the gaps in plain sentences.</strong> One list you can hand to whoever runs your website.</li>
 <li><strong>It takes a day.</strong> No commitment, no cost.</li>
</ul>

<details class="mr-pdf">
 <summary>View the full teardown slides (PDF, 8 pages)</summary>
 
  <p>Your browser can’t show the PDF here. <a href="https://pub-9ade4d6cef5945cf8fd5d95404099ce3.r2.dev/market-research/lenscrafters-vs-myeyedr-eye-care/lenscrafters-vs-myeyedr-eye-care.pdf">Download it instead</a>.</p>
 
</details>
<p class="mr-download"><a href="https://pub-9ade4d6cef5945cf8fd5d95404099ce3.r2.dev/market-research/lenscrafters-vs-myeyedr-eye-care/lenscrafters-vs-myeyedr-eye-care.pdf">Download the slides (PDF, 636 KB)</a></p>

<div class="post-cta">
<h3>Want a free AI visibility audit for your practice?</h3>
<p>Free, and it takes about a day. We check your city and your competitors the way a patient does, then send back every gap in plain sentences.</p>
<a href="/consult" class="btn btn-primary" data-ph-event="market_research_cta_click">Get my free audit</a>
</div>
