Boosting SEO performance with server side rendering

Organic search discovery of our courses and even individual lessons is crucial for our business growth. We have an SEO consultant who has made it clear that server side rendering is necessary to achieve the search ranking/results we hope for. Accordingly, we have historically used NextJS for server-side rendering of our react web pages.

Now as we are considering migrating our platform to Open edX, I am trying to evaluate the impact on our SEO rankings. From my understanding, the MFE architecture has replaced server-side rendering with client-side rendering. Is there guidance for how to optimize SEO performance for Business-to-Customer platforms like my own? Are there other teams with similar challenges that would be willing to share your experience and solutions?

Jeff Cohen
Head of Engineering
MRI Online

1 Like

You are right MFE is CSR (Client Side Rendering)* and it’s replacing legacy course experience which is SSR (Server Side Rendering), and to be exact the one MFE that is related to the context you mentioned (course materials) is the learning MFE, and the learning MFE is by design not built (to my knowledge) to handle SEO requirements, rather it’s focused on handling complex (UI logic/state ). And to be fair I don’t think the old courseware (which is SSR) is more friendly to SEO. You are right though SSR is important to SEO it’s far the only requirement though**.

I have a demo Open edX instance I have just tried Google PageSpeed[1] insight with both cases in a course home page, here are the results:

  • Using the learning MFE: 28 % for mobile and 71% desktop
  • Using the legacy course experience: 19% for mobile and 38% for desktop

This tells us even if you are using the legacy experience (which is SSR) chances are that you are not that SEO friendly, Also note before doing the test I had to enable public course access [2], otherwise both the learning MFE or legacy course experience won’t show anything. which would be useless I guess if you want your content to be indexed by SEO.

With all that in mind, I would say If I were in your position, I would keep my SEO site as it is. You could for example have your own (SEO optimized pages) separate from the platform. You would just add <a> tags that redirect users (to the learning MFE, sign up, login page…etc) of the platform from the SEO pages, and if you think those platform pages might hurt your SEO ranking you could explicitly in your [3] tell SEO bots to not to index them (though I don’t think personally it would hurt your ranking but just in case)

Also keep in mind that you can utilize Open edX API to fetch the content and by using any SEO optimized framework like NextJS or GatsbyJS, you can even do SSG (Static Site Generation), i.e. fetch the course content at build time, and then deploy your site on CDNs, this would ensure you get the best speed possible, which SEO bots definitely like!.

And lastly there I think having better SEO properties is on the radar of the platform but I am not sure when would such featuer be available (in a sense that it can replace your SEO site) and I don’t think it will be related to the MFE, rather maybe course discovery or catalog but I am not entirely sure so don’t take my word for it.

* To be exact it’s both CSR and SSR, bceause some of the materile might be rendered in iframe but however from a CCR/SSR lens I think its fair to think of it as CSR.

** In other words even if your app/site is SSR this wouldn’t automically give you the free ticket to SEO, may be your server takes time to render the template, may be the page depends on other resoureces that would change DOM structure…etc. There are always more ways to go wrong than to go right and SEO requirements isn’t immune to that!.

[2] 4.12. Enabling Public Course Content — Installing, Configuring, and Running the Open edX Platform documentation
[3] Einführung und Leitfaden zu robots.txt-Dateien | Google Search Central  |  Dokumentation  |  Google Developers


Wow Ghassan, I am impressed and appreciative of your thoughtful, thorough and speedy response. I will take time to process and understand your guidance. Thank you!

No worries Jeff, appercerciate your nice words and happy you find it useful!.

It’s just happen that you touched on topics which I already have thought of, not necessarily in same context but in a very similar situation.