J'ai sur mon site un certain nombre de fichiers qui ne sont pas destinés à une visualisation indépendante, mais qui doivent plutôt être AJAXés dans le contenu du site. Ils ne répondent évidemment pas aux normes HTML (pas de corps, pas de tête, etc.) en tant qu'entités indépendantes. Je voudrais empêcher les moteurs de recherche d’indexer ces pages, mais je n’ai pas accès à /robots.txt
(ce qui serait bien plus idéal).
Ma question est la suivante: puis-je inclure les éléments suivants en haut de ces fichiers HTML partiels et obtenir les résultats souhaités?
<meta name="robots" content="noindex, noarchive">
Je suppose que cette question comporte deux parties.
Vous pouvez placer la balise au-dessus d'un document HTML. Cela ne causera pas de problèmes de rendu, car les éléments meta
ne sont pas affichés et ce type de meta
n'affecte pas le rendu de la page. Les moteurs de recherche le traiteront comme dans tout autre document HTML.
Les spécifications HTML ne nécessitent pas de balises body
ou head
(à l'exception de XHTML, mais personne ne s'en soucie, à moins que vous ne serviez votre document avec un type de contenu XML). Un document HTML a toujours des éléments body
et head
, mais leurs balises sont facultatives. Si vous avez un document contenant juste
Hello world
et s'il est servi sous la forme text/html, il sera traité comme un document HTML contenant un body
avec ce texte comme contenu et un élément head
sans contenu, comme si le document contenait
<html>
<head>
</head>
<body>
Hello world
</body>
</html>
(Ceci est invalide, car un élément title
est requis, mais cela n'empêche pas les navigateurs et les moteurs de recherche de traiter les données au format HTML.) Si vous ajoutez une balise meta
au début, elle sera automatiquement devenir le contenu de l'élément head
.
Puisque vous n’avez pas accès à robots.txt, alors .htaccess est également hors de question.
Vous pourriez envisager un HTTP HEADER.
Voir: https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag
X-Robots-Tag: noindex
Exemple de code PHP:
<?php header("X-Robots-Tag: noindex", true); ?>
Malheureusement - et ceci n'est pas documenté par Google - cela fonctionne. J'ai un site client avec un ajax adv qui injecte un asynchrone dans le corps, et Google désindexer cette page.
<meta>
est destiné à être dans le <head>
. Si vous injectez dans une page Web existante, vous obtiendrez un balisage invalide (après ajax)
Mais vous êtes en train de vous noyer dans une tasse d'eau :-) Si c'est destiné à être chargé via ajax. Vous n’avez sûrement aucun lien <a>
vers ces fichiers. Si vous ne créez pas de lien vers les fichiers, les robots ne les indexeront pas.
Donc, vous essayez de résoudre un problème inexistant ici.
Si ces pages sont créées avec un langage côté serveur, vous pouvez inclure une vérification pour une constante ou une variable. Le cas échéant, le fichier peut être chargé. S'il n'existe pas, vous pouvez le rediriger vers un autre fichier ou simplement le bloquer. il.
C'est beaucoup mieux d'envoyer une redirection.
Vous pouvez le faire également avec le fichier .htaccess qui détecte qui le demande, par exemple, si un bot demande le fichier et que vous ne voulez que l’envoyer aux navigateurs, vous pouvez alors le bloquer ou le rediriger avant qu’il n’atteigne le fichier. langue côté serveur.