# Is Aurelia SEO friendly?

**URL:** <https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897>\
**Category:** Framework Knowledge\
**Created:** [March 12, 2018, 5:24am UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897 "2018-03-12T05:24:57Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![HamedFathi](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/hamedfathi/32/2099_2.png) [@HamedFathi](https://discourse.aurelia.io/u/HamedFathi)\
**Post date:** [March 12, 2018, 5:24am UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/1 "2018-03-12T05:24:57Z")

</div>

A while ago, a friend asked me about SEO in Aurelia.

He works with React. He introduced [React-Helmet](https://github.com/nfl/react-helmet) for working with `meta` tags.

Does anyone know about **SEO in Aurelia** (Browser/SSR)?  
Can anyone provide comparisons with other frameworks in this regard?

Is there any training in this area? How to make Aurelia SEO friendly?

---

<div class="post-metadata">

**Author:** ![rquast](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/rquast/32/624_2.png) [@rquast](https://discourse.aurelia.io/u/rquast)\
**Post date:** [March 12, 2018, 8:33am UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/2 "2018-03-12T08:33:59Z")

</div>

I have meta tags working fine on mine now with a modified version of SSR.

Keep posted on here. I’ll post a fork of the skeleton with some details over the coming week or so (whenever I get some free time).

---

<div class="post-metadata">

**Author:** ![Alexander-Taran](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/alexander-taran/32/2308_2.png) [@Alexander-Taran](https://discourse.aurelia.io/u/Alexander-Taran)\
**Post date:** [March 12, 2018, 8:38am UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/3 "2018-03-12T08:38:07Z")

</div>

@rquast is experimenting away with meta tags for SSR  
He’s got a running example @ [https://getcavy.com/features](https://getcavy.com/features)

[deep link to gitter](https://gitter.im/aurelia/Discuss?at=5aa59f0835dd17022e49ad1d)

 ![image](https://canada1.discourse-cdn.com/flex027/uploads/aurelia/original/1X/7b1a4ccb935a96c3cca962c3f762b316ddbc5c29.png)

There is also a topic  
[server-side-rendering-improvements](https://discourse.aurelia.io/t/server-side-rendering-improvements/883/9) on discourse…

Idea behind is to have aurelia render the meta tags on client and on server  
Don’t know yet how it will pan out for crawlers that execute javascript… will they rescan meta tags after navigating via js

but for ssr - seems pretty solid

---

<div class="post-metadata">

**Author:** ![rquast](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/rquast/32/624_2.png) [@rquast](https://discourse.aurelia.io/u/rquast)\
**Post date:** [March 12, 2018, 8:39am UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/4 "2018-03-12T08:39:40Z")

</div>

That’s a good point about them possibly crawling through the JS and checking the meta. Might have to add code to also update the meta dynamically too (not hard).

---

<div class="post-metadata">

**Author:** ![HamedFathi](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/hamedfathi/32/2099_2.png) [@HamedFathi](https://discourse.aurelia.io/u/HamedFathi)\
**Post date:** [March 12, 2018, 8:42am UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/5 "2018-03-12T08:42:44Z")

</div>

@rquast

It would be great if you share your experiments (both Browser/SSR).  
Thanks

---

<div class="post-metadata">

**Author:** ![rquast](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/rquast/32/624_2.png) [@rquast](https://discourse.aurelia.io/u/rquast)\
**Post date:** [March 12, 2018, 8:50am UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/6 "2018-03-12T08:50:46Z")

</div>

I ran a quick google page speed insights. Looks like they think it runs okay. I also run it behind a reverse nginx proxy with gzip and 304 not modified etc enabled.

[https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fgetcavy.com&tab=mobile](https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fgetcavy.com&tab=mobile)

Page speed is important for SEO because Google ranks pages more highly if they load faster and work better on mobile devices and so on. They’re pushing PWA (progressive web apps), so they may even rank sites running service workers more highly. The more optimizations the better. Meta tags for description and keywords is important, and so is opengraph tags for things like facebook, twitter, discord, rocket chat, and any other chat/posting program that reads opengraph meta tags for website previews.

Apart from the minification options in the webpack config, I also run all of the images through [compressor.io](http://compressor.io) when I save them, to improve speed.

---

<div class="post-metadata">

**Author:** ![HamedFathi](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/hamedfathi/32/2099_2.png) [@HamedFathi](https://discourse.aurelia.io/u/HamedFathi)\
**Post date:** [March 12, 2018, 9:06am UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/7 "2018-03-12T09:06:01Z")

</div>

@rquast

May I ask you if you have time **publish a post** about How to make Aurelia apps SEO friendly in both Browser and SSR?

I believe your knowledge and experience can help everyone.  
I have a very low level of knowledge in this field and I am confident that this information will also help others.

---

<div class="post-metadata">

**Author:** ![rquast](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/rquast/32/624_2.png) [@rquast](https://discourse.aurelia.io/u/rquast)\
**Post date:** [March 12, 2018, 9:07am UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/8 "2018-03-12T09:07:37Z")

</div>

@HamedFathi sure… I’ll give it a go 🙂

---

<div class="post-metadata">

**Author:** ![Alexander-Taran](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/alexander-taran/32/2308_2.png) [@Alexander-Taran](https://discourse.aurelia.io/u/Alexander-Taran)\
**Post date:** [March 12, 2018, 9:15am UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/9 "2018-03-12T09:15:06Z")

</div>

that way please (-:

> **[aurelia-contrib/aurelia-getting-started](https://github.com/aurelia-contrib/aurelia-getting-started/tree/master/guides)**
>
> Basically a queue of topics and examples to cover. Contribute to aurelia-contrib/aurelia-getting-started development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![nathanchase](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/nathanchase/32/642_2.png) [@nathanchase](https://discourse.aurelia.io/u/nathanchase)\
**Post date:** [April 26, 2018, 2:42pm UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/10 "2018-04-26T14:42:44Z")

</div>

Ideally, any page (view) in an Aurelia app should be able to have microdata representations for:

- Open Graph (Facebook)
- Twitter Cards
- JSON+LD structured data (Google)

What Aurelia needs is something like “Helmet” from React/Vue:

> **[nfl/react-helmet](https://github.com/nfl/react-helmet)**
>
> A document head manager for React. Contribute to nfl/react-helmet development by creating an account on GitHub.

  

> **[miaolz123/vue-helmet](https://github.com/miaolz123/vue-helmet)**
>
> A HTML head manager for Vue, edit the page title easily! - miaolz123/vue-helmet

Maybe it can be ported to Aurelia somehow? @rquast?

---

<div class="post-metadata">

**Author:** ![nathanchase](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/nathanchase/32/642_2.png) [@nathanchase](https://discourse.aurelia.io/u/nathanchase)\
**Post date:** [April 26, 2018, 2:45pm UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/11 "2018-04-26T14:45:32Z")

</div>

Here’s how they do it in Nuxt (vue’s SSR implemtation):  
[https://nuxtjs.org/api/pages-head](https://nuxtjs.org/api/pages-head)

---

<div class="post-metadata">

**Author:** ![nathanchase](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/nathanchase/32/642_2.png) [@nathanchase](https://discourse.aurelia.io/u/nathanchase)\
**Post date:** [April 26, 2018, 2:46pm UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/12 "2018-04-26T14:46:56Z")

</div>

Also, vue-meta:

> **[nuxt/vue-meta](https://github.com/nuxt/vue-meta)**
>
> Manage HTML metadata in Vue.js components with SSR support - nuxt/vue-meta

---

<div class="post-metadata">

**Author:** ![HamedFathi](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/hamedfathi/32/2099_2.png) [@HamedFathi](https://discourse.aurelia.io/u/HamedFathi)\
**Post date:** [April 26, 2018, 4:26pm UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/13 "2018-04-26T16:26:26Z")

</div>

@nathanchase great. I hope somebody help us on this way. Thanks for sharing with us.

---

<div class="post-metadata">

**Author:** ![HIRANO-Satoshi](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/hirano-satoshi/32/2583_2.png) [@HIRANO-Satoshi](https://discourse.aurelia.io/u/HIRANO-Satoshi)\
**Post date:** [December 10, 2021, 12:20am UTC](https://discourse.aurelia.io/t/is-aurelia-seo-friendly/897/15 "2021-12-10T00:20:09Z")

</div>

I think yes. Besides metadata, you will need to provide href to `<a>` elements in addition to route-href or click.delegate() so that Googlebot can follow links in your site.

`<a href="${router.generate(viewName, params}"`

See this post for detail.

[Does Googlebot trace route-href? (SEO tips) - #2 by HIRANO-Satoshi](https://discourse.aurelia.io/t/does-googlebot-trace-route-href-seo-tips/4502/2)]
