

# Comment comparer la présence des concurrents sur un ensemble fixe de requêtes Bing

Comparez les domaines concurrents vérifiés sur un seul ensemble fixe de requêtes Bing. Utilisez le même marché demandé, la même langue et le même plafond de résultats. Comptez un domaine une seule fois pour chaque requête utile. Conservez son meilleur rang observé dans une colonne distincte. Le résultat est une présence échantillonnée dans la recherche. Ce n'est pas une part de marché. Ce ne sont pas les résultats de chaque utilisateur local.

Un Actor est un programme hébergé de collecte de données. Une Task est un préréglage d'entrée enregistré. L'Actor collecte les lignes source. Vous faites la comparaison dans cet article.

## Ce que vous comparez

Un domaine est l'hôte du site web que vous avez choisi de compter. Un ensemble de requêtes est une courte liste de formulations exactes. Fixe signifie que vous écrivez cette liste avant de voir les résultats, puis que vous ne la changez pas. Un plafond est le nombre maximal de résultats que vous demandez de conserver pour une requête exacte.

Organique signifie que la ligne n'est pas une annonce payante. Pour une ligne organique, isSponsored vaut false. La présence signifie que le domaine est apparu dans l'échantillon conservé pour cette requête.

not_seen_within_cap signifie que la requête a réussi et que le domaine était absent à l'intérieur du plafond. source_failed signifie que la couverture pour cette requête est inconnue. N'enregistrez pas une requête en échec comme zéro. unresolved_identity signifie que vous ne pouvez toujours pas relier l'hôte à l'entreprise. Cet hôte n'est pas une absence connue.

Le rang est l'ordre dans cet échantillon collecté exact. Ce n'est pas un rang pour chaque personne.

## Définir l'entrée Bing

La version publique actuelle de Google Search Scraper est 1.0.15. Cette version peut prendre Google, Bing, Brave et DuckDuckGo. Ces étapes n'acceptent que Bing. La Task enregistrée est une entrée de départ. Elle ne fait pas cette comparaison à votre place.

L'entrée enregistrée actuelle est ci-dessous. Vous remplacerez toute la liste de requêtes et toute la liste de moteurs.

```json
{
  "queries": ["competitor brand", "product category", "best product alternatives"],
  "engines": ["google", "bing", "brave", "duckduckgo"],
  "maxResultsPerExecutedQuery": 20,
  "country": "US",
  "language": "en",
  "safeSearch": true,
  "includeSponsoredResults": false
}
```

Définir l'entrée Bing

Pour une première vérification, utilisez une seule formulation prévue et Bing seulement. Réglez le plafond sur 2. La vérification d'acceptation contrôlée a utilisé le pays US et la langue en. safeSearch à true active le filtre de recherche sécurisée. includeSponsoredResults à false demande d'exclure les annonces payantes. Aucun réglage d'expansion n'existe. N'ajoutez pas de champ page-limit. Le pilote contrôlé de deux lignes a lu exactement une page.

Remplacez les mots one intended phrase par votre formulation réelle avant d'exécuter cette entrée.

```json
{
  "queries": ["one intended phrase"],
  "engines": ["bing"],
  "maxResultsPerExecutedQuery": 2,
  "country": "US",
  "language": "en",
  "safeSearch": true,
  "includeSponsoredResults": false
}
```

Définir l'entrée Bing

Pour l'ensemble de requêtes utilisé ensuite, choisissez un seul plafond pour chaque requête exacte. Conservez le même pays, la même langue, la même recherche sécurisée et le même réglage des annonces sponsorisées. Le plafond ultérieur est votre choix. Ce n'est pas un champ caché. Le pays et la langue sont des réglages demandés. Ils ne prouvent pas où vit un lecteur. Ils ne promettent pas de résultats de carte ni de pack local.

## Lire une ligne de résultat

Une ligne est un résultat pour un moteur, une requête, une page et une position. L'Actor peut conserver de nombreuses requêtes dans une exécution. Il ne crée pas une ligne pour chaque site web du monde.

Utilisez les champs de la ligne comme preuves source :

- runId est l'identifiant de cette exécution de collecte.
- country est le pays demandé.
- language est la langue demandée.
- safeSearch enregistre que le filtre de recherche sécurisée était activé ou désactivé.
- engine est le moteur de recherche pour cette ligne.
- executedQuery est la formulation exacte qui a été exécutée.
- page est le numéro de la page de résultats.
- rankOnPage est la position sur cette page.
- rank est la position dans l'échantillon collecté.
- title est le titre du résultat.
- canonicalUrl est une adresse nettoyée par l'Actor. Conservez cette chaîne inchangée. Ce n'est pas une balise canonique lue dans le HTML de la page. Ce n'est pas une copie complète du lien d'origine.
- resultDomain est l'hôte de cette adresse.
- snippet est le court texte du résultat de recherche. Ce n'est pas un texte récupéré depuis la page. Il ne prouve pas une affirmation.
- isSponsored vaut true lorsque la ligne est une annonce payante.
- advertiserDomain est l'hôte de l'annonceur lorsque la ligne est une annonce.
- observedAt est l'heure de la collecte.
- schemaVersion est le nom du format de la ligne.

Si une ligne a isSponsored à true, excluez-la du rang organique. L'Actor n'ouvre pas la page de destination. Il ne retire pas tout le texte supplémentaire de la page. Il ne vérifie pas les citations. Il n'évalue pas la réussite commerciale. Il ne planifie pas une exécution répétée. Vous ouvrez les pages qui comptent pour votre décision.

## Lire le résumé de l'exécution

OUTPUT est le résumé de l'exécution. Ce n'est pas la même chose qu'une ligne de résultat. Lisez OUTPUT avant de marquer une requête comme utile.

- queriesRequested est le nombre de formulations que vous avez envoyées.
- searchesCompiled est le nombre de recherches qui ont été préparées.
- executionsPlanned est le nombre d'exécutions de moteur qui ont été planifiées.
- enginesSuccessful est le nombre de moteurs qui ont réussi.
- enginesFailed est le nombre de moteurs qui ont échoué.
- pagesAttempted est le nombre de pages qui ont été essayées.
- pagesParsed est le nombre de pages qui ont été lues.
- resultsSaved est le nombre de lignes de résultat qui ont été conservées.
- engineStatusCounts regroupe les états par moteur.
- engineResultCounts regroupe les lignes enregistrées par moteur.
- queryResultCounts regroupe les lignes enregistrées par requête.
- stopReason indique pourquoi l'exécution s'est arrêtée.

Un contrôle Bing actuel a utilisé la formulation Python asyncio documentation, avec US et en. Il a renvoyé deux URL directes docs.python.org. Le moteur était bing. La requête exécutée était cette même formulation. Les deux lignes étaient à la page 1. Les rangs étaient 1 et 2. Chaque ligne avait observedAt. OUTPUT a indiqué un moteur réussi, une page lue et stopReason result_caps_reached.

Ce contrôle montre une prise en charge Bing limitée pour l'URL, le rang et l'heure de collecte. Ce n'est pas un test de comparaison des concurrents sur un ensemble de requêtes. Il ne vérifie pas Google, Brave ni DuckDuckGo. Il ne vérifie pas chaque opérateur, chaque pays, ni un test de rang répété. Un parcours Google en échec avait des liens de redirection dont les pages finales n'étaient pas claires. Ne traitez pas ces liens comme des adresses de page acceptées.

Une requête réussie qui atteint le plafond peut justifier not_seen_within_cap. Une requête en échec ne le peut pas. Un plafond ou un résultat vide ne signifie pas que vous avez vu tout l'index.

## Faire la comparaison

1. Choisissez d'abord un marché cible et une langue. Choisissez la décision de site web que vous devez prendre. Écrivez la liste de requêtes. Écrivez la liste de concurrents. Faites-le avant de voir qui apparaît. N'ajoutez pas et ne retirez pas une requête après avoir vu les résultats. N'ajoutez pas et ne retirez pas une entreprise après avoir vu les résultats.
2. Ouvrez le site public actuel de chaque entreprise. Écrivez la règle d'hôte exacte avant l'exécution. Indiquez si un sous-domaine compte. Un blog, un annuaire ou un affilié au nom proche n'est pas automatiquement cette entreprise. Cette vérification d'identité est la vôtre. L'Actor ne vérifie pas l'entreprise. Si l'hôte reste peu clair, marquez unresolved_identity. Ne traitez pas cette cellule comme une absence connue.
3. Exécutez d'abord une seule formulation avec l'entrée Bing ci-dessus. Utilisez maxResultsPerExecutedQuery 2. Utilisez votre pays et votre langue demandés. La vérification d'acceptation contrôlée a utilisé seulement US et en. Réglez safeSearch sur true. Réglez includeSponsoredResults sur false. Il n'y a pas de champ page-limit ni de champ d'expansion. Lorsque cette vérification fonctionne, exécutez la liste fixe complète. Utilisez un seul plafond sur chaque requête exacte. Conservez les mêmes réglages de marché.
4. Conservez chaque ligne utile. Enregistrez l'adresse, le moteur, le rang et observedAt. Lisez OUTPUT pour chaque requête planifiée. Si la requête échoue, la couverture est inconnue. Si la requête réussit et qu'un domaine connu manque à l'intérieur du plafond, marquez not_seen_within_cap. Ne remplissez pas une requête en échec avec zéro.
5. Faites un tableau concurrent par requête. Utilisez seulement present, not_seen_within_cap, source_failed ou unresolved_identity. Plusieurs pages acceptées d'un même domaine dans une requête comptent encore comme une seule présence. Conservez les lignes de page. Ces lignes montrent quelle adresse et quel rang appuient la cellule. Ne fusionnez pas les lignes par titre. Ne supprimez pas une chaîne de requête distincte.
6. Divisez les requêtes présentes par les requêtes utiles pour chaque domaine connu. Une requête utile a réussi sous le même plafond et les mêmes réglages. Indiquez aussi combien de requêtes vous avez planifiées. Cette fraction n'est pas une part de toutes les recherches. Ce n'est pas un volume de recherche. Ce n'est pas une demande publicitaire. Ce n'est pas une demande des clients. Si de nombreuses requêtes planifiées échouent, ne donnez pas la comparaison sur cet ensemble de requêtes, ou marquez-la comme partielle. Ne cachez pas les requêtes en échec.
7. Conservez le meilleur rang organique de chaque domaine sur chaque requête où il est présent. Une moyenne conditionnelle est la moyenne de ces meilleurs rangs seulement. Laissez de côté les requêtes où le domaine n'a pas été vu. N'entrez pas un rang manquant comme zéro. Ne l'entrez pas comme le plafond plus un. Ne faites pas la moyenne d'un rang manquant comme si vous l'aviez vu. Des domaines avec des nombres différents de requêtes présentes peuvent paraître plus forts ou plus faibles pour cette seule raison. Cet article compare la présence entre les requêtes. Il ne [suit pas un rang au fil des jours](/fr/articles/releves-comparables-positions-mots-cles-bing/).
8. Examinez les écarts. Choisissez ensuite les pages que vous lirez. Un domaine absent de cet échantillon peut apparaître plus tard. Il peut apparaître pour une autre requête. Il peut apparaître pour une autre personne. Le tableau ne montre pas pourquoi une page est apparue. Il ne prévoit pas le trafic ni les ventes. Cette méthode Bing ne revendique pas un résultat Google ni un résultat d'un autre pays.

## Exemple résolu fictif

Toutes les valeurs de cette section sont fictives. Elles ne sont pas un résultat de produit. L'ensemble de requêtes est fixe et utilise Bing, le pays US, la langue en, des résultats organiques seulement et un plafond des cinq premiers. Les domaines des entreprises sont A, B et C. La règle d'hôte compte l'hôte exact de l'entreprise. Un sous-domaine compte seulement sur ce même hôte d'entreprise. Un blog du même nom ne compte pas. Aucun hôte de cette fiction n'est unresolved_identity.

Les requêtes planifiées sont Q1, Q2, Q3 et Q4. Q1, Q2 et Q3 ont réussi. Q4 a échoué à la source. Voici les observations de page.

| Requête | Domaine | Page | Meilleur rang organique | Autres rangs organiques | État |
| --- | --- | --- | --- | --- | --- |
| Q1 | A | 1 | 2 | 4 | present |
| Q1 | B | 1 | 1 | aucun | present |
| Q1 | C | 1 | aucun | aucun | not_seen_within_cap |
| Q2 | A | 1 | aucun | aucun | not_seen_within_cap |
| Q2 | B | 1 | 2 | aucun | present |
| Q2 | C | 1 | 3 | aucun | present |
| Q3 | A | 1 | 3 | aucun | present |
| Q3 | B | 1 | 1 | aucun | present |
| Q3 | C | 1 | aucun | aucun | not_seen_within_cap |
| Q4 | A | aucun | aucun | aucun | source_failed |
| Q4 | B | aucun | aucun | aucun | source_failed |
| Q4 | C | aucun | aucun | aucun | source_failed |

A a deux pages Q1, aux rangs 2 et 4. Ces deux pages restent une seule présence Q1. Elles ne font pas passer A de 2/3 à 3/3.

Trois requêtes étaient utiles. Quatre requêtes étaient planifiées. Le tableau de présence est ci-dessous.

| Domaine | Q1 | Q2 | Q3 | Q4 | Présent sur les requêtes utiles |
| --- | --- | --- | --- | --- | --- |
| A | present | not_seen_within_cap | present | source_failed | 2/3 |
| B | present | present | present | source_failed | 3/3 |
| C | not_seen_within_cap | present | not_seen_within_cap | source_failed | 1/3 |

Les meilleurs rangs organiques utilisent seulement les requêtes présentes.

| Domaine | Meilleurs rangs | Moyenne conditionnelle | Nombre de requêtes dans la moyenne |
| --- | --- | --- | --- |
| A | 2 et 3 | 2,5 | 2 |
| B | 1, 2 et 1 | 4/3, environ 1,33 | 3 |
| C | 3 | 3 | 1 |

La moyenne conditionnelle de A est (2 + 3) / 2 = 2,5. La moyenne conditionnelle de B est (1 + 2 + 1) / 3 = 4/3, environ 1,33. La moyenne conditionnelle de C est 3 / 1 = 3. Ces moyennes n'utilisent pas le même nombre de requêtes. Elles ne remplacent pas le tableau de présence. Elles ne montrent pas qu'un domaine gagne dans chaque recherche.

Chaque cellule not_seen_within_cap s'arrête aux cinq premières lignes organiques. Ce n'est pas une absence de tout l'index.

Q4 est source_failed pour A, B et C. Cette cellule est inconnue. Ce n'est pas une absence connue. Ne dites pas que B est présent sur 3 des 4 requêtes. N'appelez pas 3/3 la couverture des quatre requêtes planifiées. Conservez les deux comptes : quatre planifiées et trois utiles. Une affirmation portant ici sur l'ensemble de requêtes ne couvre que les trois requêtes réussies. Si trop de requêtes planifiées échouent, ne donnez pas la comparaison, ou marquez-la comme partielle.

## Action suivante

Vérifiez un domaine concurrent sur une requête dans votre marché demandé, et enregistrez le lien source ainsi qu'un état de présence à portée limitée. Partez de l'Actor [Google Search Scraper](https://apify.com/chronometrica/google-search-scraper) et de la Task enregistrée [Competitor SERP Research](https://apify.com/chronometrica/google-search-scraper/examples/competitor-serp-research). Changez cette Task pour Bing seulement, une formulation réelle et un petit plafond avant d'utiliser un ensemble de requêtes plus grand.

## Sources et lectures complémentaires

- [Google Search Scraper](https://apify.com/chronometrica/google-search-scraper)
- [Competitor SERP Research Task](https://apify.com/chronometrica/google-search-scraper/examples/competitor-serp-research)
- [Comment vérifier si vous êtes classé sur un mot-clé](https://www.reddit.com/r/SEO/comments/1d5kve4/how_to_check_if_you_ranked_on_a_keyword/)
- [Outils pour suivre le classement d'un mot-clé précis](https://www.reddit.com/r/SEO/comments/1dybuk8/any_tools_to_just_monitor_specific_keyword_ranking/)