Crawl
Qu'est-ce qu'un crawl asynchrone ?
La plupart des crawlers lancent plusieurs "threads" en parallèle pour télécharger des pages web. Avec cette architecture, chaque thread actif réalise les étapes suivantes :
- ouvre une connexion web vers le site cible,
- envoie une requête http,
- attend que tous les paquets TCP soient arrivés,
- traite la réponse.
L'étape 3 est essentiellement de l'attente ; chaque thread perd ici son temps à attendre, l'utilisation de la mémoire et des ressources système n'est donc pas optimale.
Hextrakt utilise une technologie asynchrone. Un seul thread est ouvert pour gérer de multiples connexions web. Ce thread unique est capable d'envoyer et recevoir toutes les requêtes en parallèle, de telle sorte qu'il fait toujours quelque chose. Ce fonctionnement économise beaucoup de ressources système (mémoire / temps CPU), ce qui nous a permis de crawler 3 millions de pages en consommant seulement 200 MB de mémoire. Notre technologie asynchrone est aussi extrêmement rapide car elle évite les problèmes de threads verrouillés. Sur notre infrastructure de test, la vitesse de crawl dépasse 200 pages par seconde.
Qu'est-ce qu'un crawl adaptif ?
Lors du crawl d'un site web, vous souhaitez pouvoir télécharger toutes les pages aussi rapidement que possible, mais si trop de requêtes sont lancées en parallèle, vous allez certainement dégrader les temps de réponses et prendre le risque de faire tomber le serveur. De nombreux paramètres sont inconnus ou difficiles à évaluer : la bande passante du réseau, la puissance de traitement des serveurs web, la quantité de mémoire et les ressources CPU du poste client.
Pour ces raisons, il est quasiment impossible de décider quel va être le nombre maximal de requêtes à envoyer au serveur en parallèle sans crasher le serveur.
Hextrakt apporte ici une innovation majeure, que nous avons appelé "crawler adaptif". Cette fonctionnalité optimise automatiquement la vitesse de crawl, en ajustant prudemment le nombre de requêtes envoyées en parallèle, afin de respecter les capacités du serveur et de l'ordinateur de l'utilisateur.
Remarque : le crawl asynchrone adaptif est disponible en mode HTML only.
Comment fonctionne le mode de rendu Javascript ?
Hextrakt embarque le navigateur Slimjet, basé sur le projet Chromium, pour se rapprocher au plus près de la technologie de Googlebot.
Contrairement à d'autres crawlers, Hextrakt n'utilise pas de render timeout, mais un timeout maximum : lors d'un crawl JS, Hextrakt attend que toutes les ressources de la page aient été chargées et que tout le code Javascript ait été éxécuté pour analyser le DOM de la page. Si ce temps global d'attente est inférieur au timeout maximum (paramétrable), c'est autant de temps de gagné pour commencer à charger la page suivante.
Rapports
Dans hextrakt, quelle est la différence entre une page et une "URL" ?
Ce que nous appelons page est un document HTML, alors qu'une URL peut pointer vers tout type de fichier, comme les images, css, js, HTML...
Quels sont les différents statuts de crawl pour une URL ?
Une URL peut être :
- Found (trouvée ou découverte) : quand elle apparait dans le code HTML d'une page.
- Fetched (récupérée) : quand le crawler a fait une requête HTTP pour récupérer le statut, les headers et éventuellement le contenu (seulement pour les pages HTML) de l'URL cible.
- Crawled (crawlée) : une page HTML est crawlée quand elle a été récupérée et analysée
- Orphan (orpheline) : une page HTML est orpheline quand elle n'est pas trouvée par le crawler, mais récupérée par l'API Google Analytics ou Search console.
Quelles sont les différentes natures de fichier ?
- html : c'est une page HTML crawlée, qui a donc été récupérée et analysée.
- external : c'est une page HTML qui est soit hors du périmètre de crawl, soit une page orpheline.
- uncrawled html : c'est une page HTML qui a été trouvée par le crawler, mais qui n'a pas été crawlée car bloquée par le fichier robots.txt ou trouvée par un lien contenant un attribut nofollow (si "ignore nofollow" est décoché). Des pages peuvent également être en nature uncrawled si une limite de crawl définie dans la configuration est atteinte.
- other : c'est une page qui a été trouvée par un lien <a href>, mais qui semble être autre chose qu'un fichier HTML.
- js : c'est un fichier Javascript.
- css : c'est un fichier CSS.
- img : c'est un fichier image.
- embed : c'est un fichier trouvé depuis une balise <EMBED src= >.
- extra dependency : lors du crawl d'un site en mode rendu javascript, le code javascript présent dans les pages peut générer des requêtes HTTP supplémentaires (non présentes initialement dans le code HTML de la page). Il peut s'agir de services de tracking ou publicitaires, des plugins de réseaux sociaux, de l'inclusion de polices ou d'autres ressources, JSON par exemple.
Pourquoi y a-t-il des puces grisées dans le tableau des URLs ?
Dans certains rapports, Hextrakt liste des URLs externes, par exemple les URLs de la version mobile d'un site web. Pour ces URLs vous pouvez analyser certaines données (statut, taille, content-type...) si vous avez coché "Check external links" dans les paramètres de crawl (onglet "Advanced"). Si cette case n'est pas cochée, ces URLs ne seront pas vérifiées et vous verrez un puce grise sur la gauhce dans le tableau des URLs. Pour récupérer toutes les données pour des URLs externes, il est nécessaire de les inclure dans le périmètre de crawl, par exemple dans le cas d'une version mobile : include URLs beginning with: http://www.mondomaine.com http://m.mondomaine.com (indiquer ici tous les domaines et/ou sous-domaines à inclure).
Les pages HTML qui ne sont pas incluses dans le périmètre de crawl ont l'information "External" renseignée dans le champ "Nature".
Je ne vois pas de visites SEO (organic entrances) pour des pages qui devraient en avoir
Commencez par vérifier qu'hextrakt est connecté au bon profil Google Analytics, dans l'onglet "APIs" de la fenêtre de configuration. Vérifiez également le script Google Analytics dans les pages du site (ou les paramètres Google Tag Manager) : est-ce que les URLs sont renommées de cette façon : ga('send', 'pageview', 'new-name.html') ? Vous pouvez aussi vérifier les réglages de Google Analytics : les paramètres d'URLs pourraient être supprimés.
Je n'ai pas de données Google Analytics ou Search Console
Vérifiez les réglages de connexion aux APIs Google pour qu'Hextrakt puisse récupérer ces données. Si vous aves stoppé le crawl manuellement, Hextrakt ne récupère pas ces données. Si vous avez finalisé un crawl, ou réglé un nombre de pages maximum, Hextrakt récupère les données de Google Analytics et Search Console.
Dans l'exporateur d'URLs, le filtre "tag != xxx" ne fait pas appaître les URLs qui ne sont pas taguées.
L'opérateur != ne filtre que les valeurs qui ne sont pas vides. Pour obtenir les URLs qui ne sont pas taguées, utilisez l'opérateur "empty" (tag empty).
Installation & configuration
Comment mettre à jour le logiciel ?
La mise à jour se fait en téléchargeant la dernière version depuis cette page. Quand vous installez une nouvelle version, vos données des précédents crawls sont conservées, notamment les rapports personnalisés, filtres, et les tags.