Mam mały problem. Zacząłem robić już apkę w vue. I właśnie się zorientowałem, że google i inne serwisy, które wyświetlają tytuł oraz opis wklejonego linku wyświetlają tylko główny tytuł oraz opis z pliku index.html. Chciałbym mieć na każdej stronie inny tytuł oraz opis. Próbowałem użyć vue meta, vue headful. No i to działa, ale google i inne serwisy tego nie respektują. Co mam zrobić w takiej sytuacji? I po co w ogóle są te pluginy do zmiany danych skoro nic realnie nie dają?
I po co w ogóle są te pluginy do zmiany danych skoro nic realnie nie dają?
Dają, tylko trzeba przeczytać instrukcję:
https://github.com/troxler/headful
(...) you should either prerender your pages before the deployment or use server-side rendering.
@Patryk27: a to nie wystarczy: https://github.com/chrisvfritz/prerender-spa-plugin ?
Próbowałem użyć vue meta, vue headful. No i to działa, ale google i inne serwisy tego nie respektują
Respektują i to działa tylko najpewniej robisz to źle. Zacznijmy od tego jak działa robot google.
Robot nie wchodzi na twoją stronę i ale nie współgra dobrze ze zmianami DOM robionymi przez JS(w zasadzie to tylko tyle, żeby wyrenderowała się treść). On zaciąga plik z URL, po czym skanuje twoją stronę w poszukiwaniu:
- Oznaczeń meta
og:*
- <title>
- Treści : <article>, <h1,2,3,4,5>, <\p>
Cała reszta treści jest skanowana byle jak bo w sumie jak masz samei inne nic niemówiące robotowi bloki HTML to ciężko powiedzieć jak on to zaindeksuje.
Zanim twój widok zostanie w pełni wyrenderowany, to robot już dawno zaciągnął stronę i nie interesują go zmiany, które dzieją się potem. Dlatego **musisz **mu dać stronę, która już ma wyrenderowane meta tagi, tytuł itd. Do tego wystarczy prerendering dzięki prerender-spa-plugin
lub jakiś SSR.