Startinblox and SEO
Here is a list of SEO concerns and some solutions to explore. All the tests have been made with happy-dev.fr
Problems
1 - Startinblox apps are SPA
All the content is loaded at once when the page is loaded. It means that no matter which page GoogleBot (
In the search console, we can see that all the pages found by
Two problems: it is seen as duplicate content & only the homepage is considered by the bot
🤖 , we have no links between pages
2 - According to - the html element is a
<a>
- the
<a>
has anhref
attribute
We don't comply with any of these requirements
<title>
and one <meta description>
per app
3 - We have only one One of the most important thing for title
attribute and meta description
.
Here we have only one for the whole website (which kind of make sense because we also have only one HTML file).
It is strongly recommended to have one per page.
4 - Javascript is probably not always executed properly
After a few tests of indexing a page with the search console, we can see that almost half of the time, the rendering is not complete. According to a Google video, even if it's supposed to work, "we can't rely on javascript with web crawlers".
Probably that our "long" rendering time are causing some troubles to the
ie: About Us seems ok, not the manifesto
5 - We don't have canonical URLs
For the multisite languages, we don't have link canonical
which defines the equivalence between pages
Solutions
1 - Use a sitemap
It can be a way to tell the
Problems solved: 2 - 5
2 - Use hidden links
We can automatically insert a hidden link (<a href=link hidden>
) next to each sib-link
and sib-route
.
However, if it's hidden on the page,
Problems solved: 2?
3 - Use pre-rendering
As explained in the Google Blog, we can use a dynamic rendering. It consists of:
- check the user-agent of the client.
- if it's a bot, we generate an HTML page according to the request
- we send it as a response
We could also replace each <sib-link>
by a <a>
at this moment.
The problem is that we need to setup systems like rendertron or prerender on the server which loads the app.
Problems solved: 1 - 2 - 3 - 4