Skip to content
Letzscale

Can ChatGPT read your website?

Is your content visible without JavaScript?

Some websites send an almost empty page and build the text in the browser with JavaScript. Google runs JavaScript, but Google itself says not all bots can. Three 10-minute checks show whether your text is in the HTML your server sends, and what to change if it is not.

· By the Letzscale team · 7 min read ·

On this page
  1. Why it matters
  2. Have these ready
  3. Three checks, and one to avoid
  4. Put the text in the HTML
  5. Google's JavaScript pitfalls
  6. Run the checks again
  7. What usually goes wrong
Time
10 minutes to check
Difficulty
Medium
Who
Your developer, or whoever built your website
You need
Google Chrome on a computer. For check 2, a Terminal window (Mac or Linux)
Checked
24 October 2026

Part of the Letzscale guides: free, step-by-step fixes that help ChatGPT and other AI assistants find, understand and recommend your business. New here? Start with Guide 01: Check what ChatGPT says about your business.

Why it matters

When someone opens your website, their browser receives a file of HTML code from your server. On most websites, that file already contains your text: your services, prices, opening hours. On some modern websites, the file is almost empty. A program written in JavaScript then runs in the browser and builds the text on screen.

For a person, both look the same. For a crawler, they are not. Google runs the JavaScript before it reads a page, but Google itself says that "not all bots can run JavaScript". A crawler that only reads the file your server sends may find no text at all, and has nothing to quote about you.

Before · built in the browser
<body>
  <div id="root"></div>
  <script src="/app.js"></script>
</body>
After · text sent in the HTML
<body>
  <h1>Kastell Conseil</h1>
  <p>Accounting and payroll for
  small companies in Luxembourg.</p>
</body>
What a crawler that does not run JavaScript receives from the same homepage. On the left, an empty box and a script: no text to read. On the right, the text is already in the file. Sending your text in the HTML makes it available to every crawler. It does not guarantee an AI assistant will use it.

Illustration with a fictional business.

Before you start

Have these ready

  • Google Chrome on a computer. The shortcuts below are Chrome's own.
  • Three addresses to test: your homepage, your most important service page, and your contact page.
  • For each page, one sentence you can see on screen that matters, for example the first line of a service description. Pick a short sentence without apostrophes, quotes or "&": in the HTML file these characters are often written as codes, so an exact search can miss them.

Steps

Three checks, and one to avoid

  1. Check 1: search the page source

    Open the page in Chrome. Press Ctrl + U (Windows, Linux) or ⌘ + Option + U (Mac). Chrome opens a new tab with the HTML file exactly as your server sent it, before any JavaScript ran.

    In that tab, press Ctrl + F (Windows, Linux) or ⌘ + F (Mac) and type a few words of your sentence.

    • Found. Good: crawlers that do not run JavaScript can read this text.
    • Not found. The text is added later by JavaScript. Try a second sentence from the same page to be sure, then go to the fixes below.
    view-source:https://letzscale.com
    Chrome showing the page source of letzscale.com, with the sentence Get a free report on what ChatGPT, Gemini and Google AI Overviews say highlighted by the Find bar.
    Our own homepage in View source, 28 October 2026. Find (Cmd+F) highlights the sentence in the HTML the server sends, so a crawler that does not run JavaScript can read it too.

    On our own homepage, letzscale.com, the sentence "Get a free report on what ChatGPT, Gemini and Google AI Overviews say about you" appears in the page source, so it is in the HTML file.

  2. Check 2: fetch the page like a simple crawler developer

    This does the same check from a Terminal, which is useful for testing many pages. curl downloads the HTML file and does not run JavaScript. -s hides the progress bar, -L follows redirects (for example from yourcompany.lu to www.yourcompany.lu). grep -io prints the sentence if it finds it, ignoring capital letters.

    Terminal · our own homepage, 24 October 2026
    curl -sL https://letzscale.com/ | grep -io "Get a free report on what ChatGPT, Gemini and Google AI Overviews say"

    If the sentence is in the HTML, the Terminal prints it back. If it prints nothing, the sentence is not in the file your server sends. Replace the address and the sentence with your own.

  3. Check 3: turn JavaScript off in Chrome

    This shows you, on screen, what a reader without JavaScript gets.

    1. Open the page and open DevTools: F12 or Ctrl + Shift + J (Windows, Linux), ⌘ + Option + I (Mac).
    2. Open the Command Menu: Ctrl + Shift + P (Windows, Linux) or ⌘ + Shift + P (Mac).
    3. Type javascript, select Disable JavaScript and press Enter.
    4. Reload the page, with DevTools still open.

    Look at what is left. A blank page, a loading spinner, or a page with menus but no service text means the content depends on JavaScript. JavaScript stays off in this tab only while DevTools is open. To turn it back on, run Enable JavaScript from the Command Menu, or close DevTools.

  4. Do not use "Inspect" for this

    Right-clicking a sentence and choosing Inspect opens the Elements panel. It almost always shows your text, even on an empty-HTML website, because it shows the page after JavaScript has run. Chrome's own documentation puts it this way: "HTML represents initial page content and the DOM represents active, current page content." The Elements panel shows the DOM. Crawlers that do not run JavaScript only get the HTML, so use checks 1 to 3.

Fix

Put the text in the HTML

If your checks found missing text, the goal is simple: your server should send the important text inside the HTML file, not build it later in the browser.

Custom-built website

Ask your developer for server-side rendering (the server builds each page before sending it) or static rendering (pages are built once, in advance). Most modern website frameworks offer one or both. Google recommends these, or hydration, over "dynamic rendering", which it calls "a workaround and not a recommended solution".

WordPress, Wix, Webflow and other builders

Usually the page text is in the HTML already. The problem is often one block: a slider, tab, pop-up or third-party widget that loads your key text with JavaScript. Run check 1 on the sentences inside that block. If they are missing, move the key text into a normal text block, and keep the widget for decoration.

Why not just rely on Google?

Google can render JavaScript, and still says server-side or pre-rendering "is still a great idea because it makes your website faster for users and crawlers". The same fix helps Google, other search engines and AI crawlers.

For your developer

Google's JavaScript pitfalls

Even when the text is in the HTML, a few things go wrong on JavaScript websites. These come from Google's JavaScript SEO basics page:

  • Links must be real links. "Google can only discover your links if they are <a> HTML elements with an href attribute." A button or a <div> that changes the page on click is not a link crawlers can follow.
  • Set the canonical in the HTML. "The best way to set the canonical URL is to use HTML." If JavaScript sets it too, it must match the value in the original HTML.
  • Set noindex in the original HTML, or not at all. When Google sees a noindex tag, it may skip running the JavaScript. A noindex that JavaScript removes later can keep the page out of Google. If you want the page indexed, do not put noindex in the original page code.
  • Missing pages must return a real 404. Google uses HTTP status codes to see if something went wrong. A "page not found" message shown by JavaScript on a page that answers 200 (OK) looks like a real page. Google suggests a redirect to a URL that returns 404, or adding noindex to error pages.

Structured data added by Google Tag Manager

Structured data (the labels described in Guide 05) is often added with Google Tag Manager, which injects it with JavaScript. Google says it can process structured data that is in the page when it renders it, but crawlers that do not run JavaScript will not see it. Google also notes that markup generated this way can make Shopping crawls "less frequent and less reliable". To check, open the page source (check 1) and search for application/ld+json. If it is only added by Tag Manager, ask your developer to put it in the page HTML instead.

Check it worked

Run the checks again

After the change goes live, repeat check 1 or check 2 on the same pages, with the same sentences. Use a private browser window so you see the live version and not a saved copy.

Done when

  • On your homepage, main service page and contact page, the sentences you chose appear in the page source.
  • With JavaScript disabled, each page still shows your business name, services and contact details.
  • Menu links are real <a href> links in the page source.
  • Your structured data, if you have it, appears in the page source.

Common mistakes

What usually goes wrong

  • Checking with Inspect. The Elements panel shows the page after JavaScript ran, so it hides the problem.
  • Testing only the homepage. Service pages, price lists and contact pages are often built differently. Check the pages you want AI assistants to quote.
  • Searching for a sentence with an apostrophe or "&". These are often written as codes in the HTML, so the search finds nothing even when the text is there.
  • Key text inside a slider or tab. The headline is in the HTML, but the prices or opening hours load only when a visitor clicks.
  • Choosing dynamic rendering as the long-term fix. Google calls it a workaround. Server-side or static rendering is the lasting fix.

Sources, checked 24 October 2026

  1. Google: Understand JavaScript SEO basics
  2. Google: Dynamic rendering as a workaround
  3. Google: Generate structured data with JavaScript
  4. Google Chrome Help: Chrome keyboard shortcuts
  5. Chrome DevTools: Disable JavaScript
  6. Chrome DevTools: Get started with viewing and changing the DOM
  7. curl: man page (options -s, -L)
Can AI crawlers read JavaScript? Check your content is visible without it | Free GEO guide | Letzscale