BrisTechTonic is a Bristol SEO agency that helps UK businesses get found on Google, the local map pack and the AI assistants they now ask, like ChatGPT and Perplexity. JavaScript SEO is the work of making a site built with modern web technology (frameworks like React, Vue, Angular or Next.js) something search engines can fully reach, read and list. When the content, links, duplicate-page tags or the little description Google shows are added by code after the page loads rather than being in the page from the start, a search engine can miss them completely. We work out the gap between what a person sees and what a search engine gets, decide the best way to build each page so a machine can read it, and make sure the version a machine lists matches the version a person sees.
JavaScript SEO exists because of a mismatch most teams never see. A modern website often sends a nearly empty page and then builds the real thing in the browser after its code runs. A person waits a fraction of a second and gets a full page. A search engine may get the empty version, put the page in a queue to build later, and in the meantime list almost nothing. The site looks perfect in a browser and performs like a ghost in search, and nobody can explain why because the site gives no hint that anything is wrong.
Read the full detail →
Google handles this in two passes. It reads the plain page first, then runs the code on a second pass that can lag the first by anything from seconds to days. Whatever your code adds, the text, the internal links, the duplicate-page tag, the title and the little description Google shows, the extra detail in the page code, only counts once that second pass finishes and succeeds. If it runs out of time, hits an error, or depends on something that is blocked, that content never gets listed. This is why a page can be live, fast and beautiful yet quietly invisible.
The AI side makes it worse. The crawlers behind ChatGPT, Perplexity, Claude and the assistants buyers increasingly trust largely do not run any scripts at all. They read the page you send and move on. If your product detail, your pricing, your answer to the question someone asked only appears once the scripts run, those tools cannot see it and cannot quote you. Content that depends on the scripts running is content the fastest-growing ways of being found skip entirely.
None of this means the technology is the enemy. React, Vue and Next.js are the right tools for plenty of sites, and a well-built one can be flawless for search. The failures come from building the wrong things in the wrong place: putting content that should be listed only in the browser, hiding links behind click actions, letting the site report a working page for one that does not exist. The fix is rarely to rip out the technology. It is to move what search engines and assistants need into the page they reliably receive, and to prove they receive it.
If Google cannot crawl it, nothing else you do counts.
These are industry figures, not our own results, and we do not invent numbers. Technical work rarely shows on the page, but it is the ceiling everything else runs into. No outcome is ever guaranteed.
What does JavaScript SEO cover?
The render gap diagnosis
We fetch each key page type the way a search engine does and the way a browser does, then compare the two. Whatever content, links, duplicate-page tags and page detail only exist after the code runs is exactly what is at risk, and it is where every other decision starts.
Explore →Choosing a rendering strategy per template
Building the page in the browser, on the server, in advance, or a mix, these are tools, not rules. A marketing page wants the finished page sent ready-made; a logged-in dashboard does not need listing at all. We pick the right approach for each type of page so the content that should be listed is always there without needing the code to run first.
JavaScript-injected metadata and canonicals
Titles, descriptions, duplicate-page tags and language tags written by browser code are the quietest failure in JavaScript SEO. A search engine reading the plain page sees the wrong one or none at all. We move these into what the server sends, where they cannot be missed.
Explore →Routing, internal links and soft 404s
Website menus that move you around without real links, and missing pages that report as working with an empty page instead of a proper not-found, both cause problems. We make internal links real, followable links and make the status honest, so pages are found and the wrong ones are kept out of Google.
Explore →Structured data after hydration
The extra detail in the page code (the sort that gets you star ratings and rich results) only counts if the code runs successfully. For rich results and for machines understanding you, we prefer that detail sent in the page from the start and checked against what actually appears, not what the code was meant to do.
Explore →Rendering for AI assistants
Because most assistants' crawlers never run scripts, we treat a complete plain page as a must-have, not an afterthought. If the answer a buyer asks for is only in the version that appears after scripts run, we bring it into the page you send, so it can be read and quoted.
Explore →Some of our recent work.
More on javascript seo.
Book a free discovery call before you spend a thing
What clients say about working with us.
“I've had the pleasure of working with Chris on several SEO projects for my websites in the health field. He was definitely been able to demystify things so that I felt able to make decisions with him and feel confident they were the right ones. For a non-techie, that is worth gold! I look forward to working with Chris again and warmly recommend him to anyone who - like me - is unsure about all things SEO.”
“I was recommended by my branding partner to use Chris and his team last year. I can’t recommend them highly enough. They are very responsive , easy to communicate with and great at translating techy stuff when needed. They are now an essential part of my business model”
“We've been working closely with Chris, Hannah and the team for over 12 months now. As a small company with ambitious growth plans, it was incredibly important that we made the right choice on who to trust with our SEO. 18 months later, we're totally thrilled with our experience so far and our growing online presence within our market. We'd happily recommend BTT and their services to other SMEs. Drop them an enquiry!”
Real people on your account, not a faceless agency.
You work directly with the senior people who do the work, a small Bristol team you will actually get to know, not a call centre or an account manager relaying messages.
Meet the team →






The way we run JavaScript SEO.
Crawl as a machine, not a browser
We request your page types the way Google's crawler and the non-script-running AI crawlers do, capturing the plain page they receive before any code runs. That is the ground truth, and it usually differs from what the team has ever looked at.
Diff rendered against raw
We build the same pages fully and compare, pinning down exactly which content, links, duplicate-page tags, page detail and extra code detail depend on the scripts running. The comparison turns a vague performance worry into a specific, fixable list.
Decide the rendering approach
Page type by page type, we settle on building in the browser, on the server, in advance, or a mix, based on how each page needs to be found and listed, and on what your setup can realistically deliver.
Specify or implement the change
We write the fixes into your website, moving the content and details that should be listed into what the server sends, or hand your developers instructions precise enough to act on without guesswork. We work in Next.js and similar setups directly.
Verify against live crawl and index
We fetch the pages again as a search engine does, confirm the previously hidden content is now in the plain page, and watch how Google reads and lists it until the change is proven, not assumed.
Guard against regressions
A single change to one part of the site can push content back behind the scripts again. We keep watching that gap, so a future update does not quietly re-hide what we just brought out.
How do we approach JavaScript SEO?
Rendered vs raw HTML
We compare what your server sends out against what appears after the page's code has run. If your headings, text, links or duplicate-page tag only exist once the code runs, that is the gap we close.
The right rendering strategy
Building the page in the browser, on the server, in advance, or a mix, each suits different pages. We choose the right one for each type of page based on how it needs to be read by search engines, not on what is fashionable.
Links, routing and soft 404s
Menus and links driven by code, and web addresses that change without loading a new page, routinely hide pages from search engines or wrongly report a missing page as working. We make the links real and findable, and make sure a missing page honestly reports as missing.
AI crawlers that do not render
Most AI assistants' crawlers fetch your page's code and never run the extra scripts. If your answer only appears once those scripts run, they cannot quote it. We make the content there without needing the scripts to run.
Real people doing the work, and putting their name to it.
You deal with our small, experienced Bristol team directly, from the first call to every monthly report.
Meet the team →What JavaScript SEO puts on your desk.
Are we the right fit for you?
Thinking of switching from another agency?
Moving your JavaScript SEO to us is more straightforward than staying somewhere that is not working. You keep everything you already own, we pick up without a gap, and we can run the whole thing for you or work alongside your team and your developers, whatever suits.
A free look first
We review what your current agency has done, tell you straight what is worth keeping and where the quick wins are. No obligation to move.
You keep what's yours
Your site, content, Google Business Profile and analytics stay in your name. We work with what you already have; nothing is held hostage.
A clean handover
We map the work across, set a plain-English baseline in the first few weeks, and carry on from there. No starting from zero, no quiet ranking gap.
Three-month minimum, then rolling monthly on 30 days’ notice. No long lock-in, no exit fees.
Who does the work, and how?
JavaScript SEO sits where search meets engineering, which is exactly where generic SEO advice falls apart. The people comparing your finished and plain pages are the same experienced people who can read the website's code and write the fix or the instructions. We build in Next.js and similar setups ourselves rather than lobbing recommendations over a wall. We work from what a search engine actually receives, we tell you which read gaps are harmless, and we prove each change against how Google actually lists it before we call it done.
We read the code and the crawl
Working out the problem rests on fetching your pages as a machine does and on understanding the technology producing them. We do both, so the fix tackles the cause in the page template, not the symptom on one page.
We build in these stacks
Because we design and build Next.js and similar sites ourselves, our recommendations are things we actually do, not theory. We know what your developers can realistically change and what it costs them.
We verify against the index
A read gap is only closed when the previously hidden content appears in the plain page and Google confirms it has been listed. We check what actually happens rather than trusting that the code should work.
How much does JavaScript SEO cost?
All + VAT · 3-month minimum, then 30-day rolling| What's included | Lite £299 + VAT / month | Max Most chosen £449 + VAT / month | XL £849 + VAT / month | Custom Contact us |
|---|---|---|---|---|
| Technical & on-page SEO | ✓ | ✓ | ✓ | ✓ |
| AEO / AI-search layer (found in ChatGPT, AI Overviews) | ✓ | ✓ | ✓ | ✓ |
| Local map-pack optimisation | ✓ | ✓ | ✓ | ✓ |
| Page creation | ✓ | ✓ | ✓ | ✓ |
| Blog posts / month | Add-on | Add-on | 2 | Tailored |
| AI Authority building | — | — | ✓ | ✓ |
| Plain-English monthly report | ✓ | ✓ | ✓ | ✓ |
| Best for | Getting the foundations right | Competing on your key terms | Going after it hard, incl. AI authority | Shaped around your goals |
JavaScript SEO: common questions.
What is JavaScript SEO?
It is the work of making a site built with modern web technology something search engines can fully reach, read and list. When the code generates the content, links, duplicate-page tags or page detail rather than the server sending them ready-made, a search engine can miss them. JavaScript SEO closes that gap so search engines and AI assistants list the same page a visitor sees.
Is JavaScript bad for SEO?
No. React, Vue, Angular and Next.js can all rank perfectly. Problems come from building the wrong things in the wrong place, such as putting content that should be listed only in the browser, hiding links behind click actions, or writing duplicate-page tags with browser code. Fix where things are built and the technology stops being a liability.
Does Google render JavaScript?
Yes, but on a second pass. Google reads your plain page first, then runs the code later, and the gap between the two can be seconds or days. Anything your code adds only counts once that second pass finishes and succeeds. If it runs out of time or hits an error, that content never gets listed.
Can AI assistants like ChatGPT and Perplexity read JavaScript content?
Mostly not. The crawlers behind the major AI assistants largely fetch your page and do not run the scripts. If your key content only appears once those scripts run, those tools cannot see it and cannot quote you. For AI visibility, the content needs to be in the page you send, not built in the browser.
How do I know if my site has a JavaScript SEO problem?
The tell is a site that looks flawless in a browser but underperforms in search or is missing from AI answers. The clearest check is to fetch a page the way a search engine does, before the scripts run, and compare it to the full version. If your headings, text, links or duplicate-page tag only appear after the code runs, you have a read gap worth fixing.
What is the difference between client-side and server-side rendering for SEO?
Building in the browser sends a nearly empty page and puts it together in the browser, which asks a search engine to do extra work and delays or risks it being listed. Building on the server, or in advance, sends the finished page that any search engine reads straight away. For pages you want listed and quoted, sending the finished page is almost always the safer choice.
Do I need to rebuild my site to fix JavaScript SEO?
Rarely. The usual fix is to move the content and details search engines need into the page they reliably receive, page type by page type, rather than replacing the technology. Where a setup genuinely cannot build on the server, there are practical options, but a full rebuild is the last resort, not the first.
How does JavaScript SEO fit with the rest of technical SEO?
How pages are built is one part of the technical foundation, alongside controlling what gets crawled and listed, how the site is organised, and page speed. A read gap limits everything else, so we treat it as part of the same review rather than a bolt-on, and fix it in the same careful way we approach the rest of the technical work.
Book the call, or see the evidence first
