Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

arrrssssss's avatar

Need Help! Conclusion on InertiaJS or NuxtJS

Hi community,

I developed a PWA project with Laravel, Vue3 ( + vite-pwa-plugin ) and InertiaJS, This project was SEO needed and after multiple searches and tests, I find out information about Sever-Side Rendering and things like this, I also enabled SSR for InertiaJS too but

Right now after developing about 90% of project I'm in a real conclusion about SEO and also optimized page load, and really think that I have to migrate this project to nuxtjs and I think use of inertiajs was an absolute mistake, but before any further changes, I want to ask it here from experienced developers to find out what would be the best choice here

Thanks for reading, Hope you write me carefully Regards

0 likes
8 replies
LaryAI's avatar
Level 58

When deciding between InertiaJS and NuxtJS for a project that requires strong SEO capabilities and optimized page load times, it's important to consider the strengths and limitations of each framework.

InertiaJS

  • Strengths: InertiaJS is great for building single-page applications (SPAs) with Laravel and Vue.js. It allows you to create modern, reactive applications without an API, which can speed up development.
  • Limitations: InertiaJS is not inherently designed for SEO because it primarily focuses on client-side rendering. While you can enable server-side rendering (SSR) with InertiaJS, it might not be as robust or straightforward as frameworks specifically designed for SSR.

NuxtJS

  • Strengths: NuxtJS is built on top of Vue.js and is specifically designed for server-side rendering, static site generation, and other advanced features that enhance SEO. It provides a more comprehensive solution for SEO and performance optimization out of the box.
  • Limitations: Migrating to NuxtJS from an existing InertiaJS setup will require significant changes, especially if your project is already 90% complete. You'll need to refactor your application to fit the NuxtJS architecture.

Recommendation

Given your project's requirements for SEO and optimized page load times, NuxtJS is likely the better choice. It offers built-in SSR and static site generation, which are crucial for SEO. However, consider the following steps before making a decision:

  1. Evaluate the Current State: Assess how much work is needed to migrate your existing project to NuxtJS. Consider the complexity of your current codebase and the resources available for the migration.

  2. Prototype with NuxtJS: Create a small prototype or proof of concept with NuxtJS to understand how your existing components and logic can be adapted. This will give you a clearer picture of the migration effort.

  3. SEO and Performance Testing: If possible, conduct SEO and performance tests on your current InertiaJS setup with SSR enabled. Compare these results with what you achieve in your NuxtJS prototype.

  4. Community and Support: Consider the community and support available for both frameworks. NuxtJS has a large community and extensive documentation, which can be beneficial during the migration process.

  5. Long-term Maintenance: Think about the long-term maintenance and scalability of your project. NuxtJS might offer more flexibility and features that align with your future needs.

Ultimately, if SEO and performance are critical for your project, and you're willing to invest the time in migration, NuxtJS is a strong candidate. However, weigh the pros and cons carefully to ensure it aligns with your project's goals and timeline.

JussiMannisto's avatar

Why do you think Inertia was a mistake, and why do you think Nuxt would be better?

arrrssssss's avatar

My main reason is SSR, and SEO I think Nuxt SSR work better than Inertia SSR, Cause Nuxt is more SEO friendly than Inertia,

But as I wrote, I hope experienced developers, helps me in this case.

arrrssssss's avatar

as I do some search, it seems Nuxt render full HTML before send to browser and also it do it on top of Vue, but in the other hand InertiaJS, send a JSON to Vue to render the page, and it seems many crawlers or bots couldn't reach data on pages

JussiMannisto's avatar

@arrrssssss That's not about Nuxt vs. Inertia. What you're describing is server-side rendering (SSR) vs. client-side rendering (CSR), and both Nuxt and Inertia can do either. With SSR, both (typically) use Node for rendering — although web crawlers don't care where the HTML comes from.

Web crawlers absolutely can and do index CSR sites. This site uses Vue with CSR, for example. The only difference is that, with CSR, bots have to render the site using a separate engine, e.g. Chromium. This takes computing resources and is usually done in a separate work queue. CSR has a bigger impact on the crawl budget and can affect crawl frequency. That may be important for large sites with frequently changing content, such as news websites, but it's not relevant for smaller sites.

In short, switching to Nuxt just for SSR does nothing because Inertia also supports SSR. In my opinion, the significance of SSR is completely overblown in SEO discussions. There are so many things that are more important, such as content and semantics. Some things have to be present in the initial HTML, such as structured data and OpenGraph tags, but those can be added in the base view without full-blown SSR.

1 like
arrrssssss's avatar

@JussiMannisto Thank you for your detailed information, so by the way, you mean SSR is not that important for SEO, and If I use Vue with CSR and include structured data and OpenGraph tags, for each page via Inertia Head component or something like that, it will do the work ?

JussiMannisto's avatar

@arrrssssss You can't use Inertia's Head component for that if you're doing CSR. The component is rendered client-side, which means the tags won't be present in the initial HTML, and OG tags won't work. You have to add the tags in the HTML that's sent from the server, i.e. inject them into app.blade.php. It's a bit awkward, I admit. If you use SSR, you can do it with JS components instead, because they'll be rendered server-side.

CSR sites will get indexed if you do things properly. But you shouldn't trust that it happens: test and make sure that the pages get indexed, and the results show up the way you want, especially if you're implementing rich results. This goes for any site, CSR or SSR. Add the site to Google Search Console if you haven't already. Use the console to monitor how things progress after launch.

You might also consider adding a sitemap file and registering it in Search Console. It's not strictly necessary if your site is easily crawlable, i.e. the pages are connected via links, but it can help. I like to generate the file(s) with a custom command. I run it either as a scheduled task or a post-update-cmd script in composer.json, whichever seems appropriate.

Please or to participate in this conversation.