web-dev-qa-db-fra.com

Angular Application et possibilité de référencement dans le référencement - sans Hashbang

Je lis tous les articles sur la possibilité d'explorer un site en remplaçant Angular hashbangs dans l'URL par un fragment échappé. Un exemple d'un tel tutoriel:

http://lawsonry.com/2014/05/diy-angularjs-seo-with-phantomjs-the-easy-way/

Cependant, l'application Angular que je suis en train de gérer n'est pas vraiment un SPA (elle n'utilise aucun routage dynamique et aucun hashbang dans l'URL); il a une structure d'URL conventionnelle. Cependant, le contenu individuel de chaque page est très dynamique et est construit avec des appels Javascript côté client et des appels AJAX à un service Web. Il me faut donc toujours trouver une solution d’exploitabilité, mais sans la possibilité d’utiliser des fragments échappés dans l’URL. Aucun conseil?

Que se passe-t-il si je crée un processus permettant de générer un fichier sitemap.xml tous les soirs - et même de parcourir en boucle toutes les URL du site et de les prérender dans un dossier contenant des fichiers HTML statiques? La seule chose qui manque, c'est comment être suffisamment intelligent pour fournir le code HTML statique aux robots d'exploration, tout en laissant intacte l'expérience de navigation existante pour les utilisateurs humains. Puis-je simplement ajouter du code à l'échelle du site pour détecter les robots d'exploration en vérifiant l'agent utilisateur et le laisser servir le contenu prédéfini dans ces cas? Ou est-ce que cela déclenchera des signaux d'alarme dans le moteur de Google, en pensant que j'essaie de le "tromper"?

3
user43345

Voir le point 4 sous "Transformation de l'URL" dans documentation AJAX explorable de Google

Si une page ne contient pas de fragments de hachage, mais contient <meta name="fragment" content="!"> dans le <head> du code HTML, le robot d'exploration transformera l'URL de cette page de domain[:port]/path en domain[:port]/path?_escaped_fragment= (ou domain[:port]/path?queryparams à domain[:port]/path?queryparams&_escaped_fragment_= pour accéder à l'URL transformée, par exemple, si www.example.com contient <meta name="fragment" content="!"> en tête, le robot d'exploration transformera cette URL en www.example.com?_escaped_fragment_= et récupérez www.example.com?_escaped_fragment_= à partir du serveur Web.

La magie consiste donc à utiliser la balise Meta suivante:

<meta name="fragment" content="!">

Qui, que l’URL ait ou non un hash bang, obligera Google à analyser le contenu récupéré via un _escaped_fragment.

N'essayez pas d'utiliser le sniffing d'agent d'utilisateur pour transmettre un contenu différent à des bots. Google considère qu'il s'agit de " cloaking " et pénalisera les sites pour cela.

2