TRY OUR PACKAGES
Make sure you don’t send pageviews into your analytics when pre rendering. Easy way is just blocking all request to the tracking pixel domain. As simple as it can get. Noticed an uplift in traffic? Check your SSR first before reporting massive traffic gains.
Caching rendered pages can be cost effective but think about the effects on the datapoints sent to Google: you don’t want outdated structured data like product markup to be outdated.
Since most platforms capture user agents for dynamic rendering setups, changing it directly into Chrome is the first thing I always do. Is this 100% proof? No, some setups also match on IPs. But I would target the SSR as broad as possible, also think about social media crawlers wanting to capture OpenGraph tags for example. Targeting a combination of IPs and User Agents will not cover enough. Better cover too much requests and spend some more money on sufficient servers pushing out rendered HTML then missing out on specific platforms possibilities.
4. Data persistence risks.
Whatever developers tell you, things can break. Things can go offline due to network failures. It could be due to new release or just some unknown bug that gets introduced while working on completely different things. Below an example of a site were the SSR was broken (just after last year’s #BrightonSEO) causing two weeks of trouble internally.
Cloaking in the eyes of search engines: they still don’t like it and make sure you don’t accidently cloak. In the case of server side rendering this could mean showing users different content compared to search engines.
Also third party rendering like prerender.io is not flawless, those can break too. If Amazon crashes their infrastructure, most third parties you’ll use will be offline. Use third party (haha!) tools like ContentKing, Little Warden or PageModified. Do consider where they host their services 🙂
If you have access to a domain in Google Search Console, of course use the inspection tool. It now also uses an evergreen Googlebot version (like all other Google Search tools) so it represents what Google will actually see during crawling. Check the HTML and screenshots to be sure every important element is covered and is filled with the correct information.
It is a simple list of search engine optimization basics, but important for SEO results:
Make sure you monitor and analyze log files to see if any static JS files are generating any errors. Botify is perfect for this with their separate section monitoring static file responses. The brown 404 trends clearly show an issue with files not being accessible at the moment Google required them.
Since Google openly admits there are some challenges ahead, they have been sharing setups of dynamic rendering. Pick the best suitable scenario for a specific group of users (low CPU power mobile phone users for example) or bots. An example setup could be the following where you make use of the client side rendering setup for most users (not for old browsers, non JS users, slow mobile cell phones etcetera) and sent search engine bots or social media crawlers the fully static rendered HTML version.
Google showed numerous setups in their article about rendering on the web but forget to include the SEO perspective. That made me publish an alternative table: read more at https://www.notprovided.eu/rendering-on-the-web-the-seo-version/
2. Tools for checking what search engines do and don’t see.
Even if every element relevant for SEO is available in the initial HTML response, I have had clients losing traffic due to performance getting worse for both users and search engine bots. First of all, think of real users’ experiences. Google Chrome UX reports are a great way of monitoring the actual performance. And Google can freely use that data to feed it to their monstrous algorithms haha!
Next thing you need to check is if users, bots and other requests get the same elements of content and directives back. I’ve seen example where Googlebot got different titles, H1 headings and content blocks back compared to what the users got to see. A nice Chrome plugin is View Rendered Source that compares the fetched and rendered differences directly.
Non-owned URLs that you want to check? Use the Rich Result Tester https://search.google.com/test/rich-results which also shows the rendered HTML version and you can check for Mobile and Desktop versions separately to double check if there are no differences.
Server Side Rendering (SSR) is just the safest way to go. There are cons, but for SEO you just don’t want to take a risk Google sees anything else then a fully SEO optimized page in the initial crawl. Don’t forget that the most advanced search engine, Google, can’t handle it well. How about all the other search engines like Baidu, Naver, Bing etcetera?
3. The minimal requirement for initial HTML response.
Another tactic you can apply to be sure Google doesn’t index empty pages is to start serving a 503 header, load the page and send a signal back to the server once content is loaded and update header status. This is quite tricky and you need to really tune this to not ruin your rankings completely. It is more of a band-aid for unfinished setups.
Check the differences between Mobile and Desktop Googlebots, a tool like SEO Radar can help you quickly identify differences between the two user agents.
Popular brands utilising Vue are Alibaba, 9gag, Reuters, Xiaomi, Ride Receipts.
Because of its virtual DOM capability, React is the best option for complex projects including a considerable number of blocks (navigation panels, accordion sections, buttons, etc.) that go through variable/binary states, such as active/inactive, expanded/collapsed, active/disabled, etc. React becomes more efficient when used with other libraries, for example, Redux.
Svelte may be not fully suitable for bigger projects. At least, because of its deficit in tooling (it doesn’t have a mature pool of plugins) and a stable community. If you’re already employing a framework like Vue or React, switching to Svelte most likely won’t improve the situation.
When not to use jQuery?
Because of the fact that Vue is a comparatively new framework, it doesn’t work well for large projects as it cannot ensure a due level of steadiness, support, and quick problem-solving (hopefully, all that is on the way).
Angular (released in 2016) is an improved edition of AngularJS, with a boosted performance and a bunch of powerful features added. Angular ensures two-way data binding for immediate synchronization between the model and the view, so any change in the view will instantly reflect in the model and in reverse. Angular features Directives that allow developers to program special behaviors of the DOM, making it possible to create rich and dynamic HTML content. Angular has a Hierarchical dependency injection function, which makes code components highly testable, reusable, and easier to control: it helps to define code dependencies as external elements decoupling components from their dependencies.
It can be one of the best options when you need to build a single-page application from the very beginning or launch a relatively small project. Vue easily integrates with the existing server pages and supports developers with web-pack integration and a wide range of powerful features, such as tree-shaking, bundling, code-splitting, etc.
This framework might be an ideal option for small app projects. It is beneficial for beginner front-end developers as it uses simple syntax, doesn’t require DOM manipulation, and makes sure that the browser takes as little workload as possible, which speeds your web product up.
Front-end frameworks include certain development instruments, such as a grid making it simple to place and position the UI design components, pre-defined font settings, and website standard building blocks (i.e. side panels, buttons, navigation bars, etc.)
Also called Angular 2+, it’s a modern TypeScript-based, open-source framework, and one of the most popular software development tools nowadays. More than 600K websites were developed with its help.
The main idea behind the Vue development is to deliver a much simpler concept than one of the Angular, that’s why Vue is considered to be one of the beginner-friendliest frameworks, coming with well-elaborated documentation and a supportive community. Vue has an extensive choice of tools, such as end-to-end testing tools, plugin installation systems, browser debugging tools, server renderer, state manager, and others.
Advantages of Semantic UI.
Backbone.js is a good choice for building single-page, small, and simple web apps. However, it can come in handy when working with bigger projects as it helps to keep an app logic separated from UI, avoid spaghetti code model, and thus lets you maintain a better design with less code.
Backbone.js follows an MVC/MVP development concept: it encourages you to translate your data into models, DOM manipulation into views, and bind them together via events. In other words, it represents your data as Models that can be created, validated, eliminated, and saved to the server. These models enable key-value binding and custom events: each time a UI action brings certain changes to an attribute of a model, the model produces a change event. The change can be transferred to all the Views that reflect the model’s state, so they can react accordingly and re-render themselves with the new data.
Angular is all set to be the optimal framework for creating large, enterprise-scale applications.
React is steadily popular with more than 3 million active users and supported by a large community: 80% of skillful developers have had a positive experience of using React in their projects at least once, and more than 1.5M websites have been made with its help.
Drawbacks of Angular.
Many of Google’s services are developed with Angular. Other popular brands using Angular or AngularJS for their web projects are Forbes, LEGO, Autodesk, UPS, BMW, and many others.
Brands that are using Semantic UI are Snapchat, Accenture, Kmong, Digital Services, Ovrsea.
Ember provides two-way data binding synchronizing the view and model in real-time. It’s known for speedy server-side rendering: Fastboot.js module improves the performance of complex UIs via server-side rendering of DOM. Ember comes with a large ecosystem, while advanced use of templates allows developers to reduce coding. It has a lot of powerful features and components available right from the start, including its own routing and testing tools, but if you need more, there are a lot of plugins and additional useful stuff maintained by the community. By the way, Ember’s community seems to be one of the most motivated, active, and well-organized out there. According to some observations, Ember might be lacking flexibility because of its strict and specific workflows that developers have to follow when using it.
Want to learn more about Svelte development? Read out 2-part series on this very topic:
Vue is not supported by large market players like some other frameworks. First launched in 2014, it was created by Evan You, the person behind the development of another popular JS framework – Angular.