Wie können Sie Suchmaschinen anweisen, diese Seite noch nicht zu indizieren, aber möglicherweise in Zukunft?

8

Das Unternehmen, für das ich arbeite, verfügt über ein Content-Management-System, das Seiten für bestimmte Inhalte automatisch erstellt.

ZB gibt es eine Seite in unserem System, auf der Sie Informationen zu jedem Komponisten in unserer Datenbank anzeigen können, abhängig von den Eingabeparametern und den Informationen, die wir über sie haben. Hin und wieder gibt es jedoch einen Komponisten, der keine Informationen hat, sodass die Seite eine leere Seite darstellt. Wie können wir Google anweisen, die Seite in diesem Moment nicht zu indizieren, aber vielleicht irgendwann in der Zukunft?

Da der Inhalt automatisch generiert wird, können wir nicht einfach die Sichtbarkeit von Seiten blockieren, da Informationen zu diesem Komponisten jederzeit angezeigt werden können.

Bearbeiten

Bitte beachten Sie, dass unser CMS-System, das das Abrufen durchführt, sehr kompliziert und tiefgreifend ist. Der Inhaltsteil der Seite gibt eine Art von Daten zurück, daher ist das Ausführen eines empty($content) ? xx : yyVorschlags keine schnelle Lösung. Wenn kein Komponist existiert, hat das System keine Seite für den Komponisten. Wenn der Komponist existiert, wird das System. Wenn die Seite dieses Komponisten gerendert wird, durchsucht das System jeden Typ, der sich auf Komponisten bezieht, z. B. Werke, um eine dynamische Seite zu erstellen.

Luke Madhanga
quelle
2
Was genau meinst du mit "leere Seite"? Meinen Sie damit, dass buchstäblich kein HTML gesendet wird? Oder haben Sie das grundlegende "Shell" -Design, aber ohne Inhalt?
DisgruntledGoat

Antworten:

13

Wenn für einen bestimmten Komponisten kein Inhalt vorhanden ist, verwenden Sie das Meta-Tag:

<meta name="robots" content="noindex, follow">

Sobald Inhalte hinzugefügt und das Meta-Tag entfernt wurden, indiziert Google sie.

Beispiel:

<?php if(empty($composerInfoArray)): ?>
    <meta name="robots" content="noindex, follow">
<?php endif; ?>
Wexford
quelle
1
FWIW "Folgen" ist das Standardverhalten. Sie können es löschen, wenn Sie möchten (es verursacht keine Probleme und ist möglicherweise eher für Menschen gedacht, die es lesen, sodass Sie es auch verlassen können).
John Mueller
4

Wenn die "fehlenden" Seiten zwar keine tatsächlichen Informationen enthalten, sondern lediglich Platzhalter für "Möglicherweise gibt es hier in Zukunft eine Seite" enthalten, würde ich empfehlen, Ihren Webserver so zu konfigurieren, dass der Statuscode 404 Not Found für sie zurückgegeben wird.

Browser zeigen dem Benutzer solche Seiten weiterhin an, genauso wie sie normale 404-Fehlerseiten anzeigen (zumindest solange sie lang genug sind ), aber Suchmaschinen behandeln die Seite einfach so, als ob sie überhaupt nicht vorhanden wäre.

Dies ist die Methode, die zB von Wikipedia für nicht existierende Seiten wie diese verwendet wird . Einer seiner Vorteile (abgesehen davon, dass es wohl semantisch korrekt ist) besteht darin, dass es garantiert, dass Suchmaschinen solche Seiten genauso behandeln, wie sie normalerweise fehlende Seiten behandeln, die einen 404-Statuscode zurückgeben.

Ein möglicher Nachteil besteht darin, dass Links zu Seiten, die einen 404-Statuscode zurückgeben, als "404-Fehler" angezeigt werden, z. B. in den Webmaster-Tools von Google. Dies ist jedoch völlig normal und kein Grund zur Sorge .


Um Suchmaschinen dabei zu unterstützen, Ihre neuen Seiten zu entdecken, sollten sie auch eine regelmäßig aktualisierte XML-Sitemap führen, in der alle Seiten Ihrer Website aufgelistet sind, die Inhalte enthalten. Auf diese Weise können Google und andere Suchmaschinen neue Seiten direkt über die Sitemap entdecken, anstatt sie beim erneuten Erstellen Ihrer Website zufällig finden zu müssen.

Ps. Siehe auch: Keine Indexseite ohne relevanten Inhalt?

Ilmari Karonen
quelle
Karenon, die Rückgabe eines 404 ist gleichbedeutend damit, nichts zu tun, das ist das Verhalten eines normalen Webservers. Das Beispiel von Wikipedia ist nur eine benutzerdefinierte 404-Seite.
Binarysurf
1
@Binarysurf: Laut OP verwenden sie ein benutzerdefiniertes Skript, um dynamischen Inhalt für "virtuelle Seiten" bereitzustellen, die aus Informationen bestehen, die in einer Datenbank gespeichert sind (genau wie Wikipedia, SE und die meisten großen Websites heutzutage). Dies bedeutet, dass das "normale Webserververhalten" nicht gilt. Für den Webserver (Apache, IIS, Nginx usw.) ist das inhaltsgenerierende Skript vorhanden und wird ausgeführt. Daher wird standardmäßig ein " 200 OK "Antwort, sofern das Skript nichts anderes sagt. Ich schlage nur vor, dass das OP sein Skript dazu bringt, eine 404-Antwort zu senden, wenn es keinen tatsächlichen Inhalt gibt, der angezeigt werden kann.
Ilmari Karonen
Es gibt ein benutzerdefiniertes Skript, das Komponistendaten aus der Datenbank abruft. Was passiert, wenn der Name einer Person nicht vorhanden ist? Mit Logik erhält das Skript keine Datensätze aus der Datenbank. Was soll es tun? Vielleicht wird es dann 404 nicht gefunden senden. Wenn das Skript etwas gefunden hat, vielleicht nur Metadaten (sein Name) und keine anderen Daten, sendet es 200 und eine Seite mit leerem Inhalt. Selbst wenn er ein benutzerdefiniertes Skript hat, folgt er dem Verhalten des Standard-Webservers? Oder antwortet es 200 für jede einzelne Anfrage? Es wird ohne spezifischen Inhaltsfokus spammig aussehen.
Binarysurf
Sobald Sie ein Skript ausführen, ist das Skript für das Senden des Statuscodes verantwortlich, und der richtige Code, der
gesendet werden soll
1

Ich würde persönlich eine Nachricht in das System einbauen, die den Benutzer darüber informiert, dass für die angegebenen Parameter keine Komponisten gefunden wurden, obwohl ihre Anfrage abgeschlossen war. Dies verhindert, dass der Benutzer denkt, dass die Seite / der Link "defekt" ist.

Chaoskreator
quelle
1

Wenn die Seite keinen Inhalt enthält, sollte Ihr CMS-System keine Verknüpfung dazu herstellen. Das Verknüpfen mit leeren Seiten ist sowohl für Benutzer als auch für Suchmaschinen schlecht.

Ich mag Wayne Whittys Vorschlag, wie das Meta-Tag auf der Komponisten-Seite selbst platziert werden soll. Sie sollten einen Weg finden, etwas Ähnliches an der Stelle zu tun, an der Sie alle Komponisten auflisten und mit ihnen verknüpfen:

<?php foreach ($composers as $composer) {
    if ($composer->countCount > 0)
         print "<li><a href=\"$composer->url\">$composer->name</a></li>";
    } 
} ?>

Wenn Sie dies tun, finden Suchmaschinen die leeren Seiten zunächst nicht mehr.

Stephen Ostermiller
quelle
1
... das heißt, es sei denn, es gibt etwas Sinnvolles, das Benutzer selbst mit einer "leeren" Seite tun könnten, beispielsweise die Bereitstellung von Informationen dafür. (Selbst dann ist es möglicherweise besser, nicht direkt auf die leere Seite zu verlinken, sondern auf eine andere URL, die auf das (mögliche) Fehlen von Daten hinweist. Beachten Sie, dass Sie sich mit dem Randfall befassen müssen, dem ein Benutzer folgt Ein solcher Link, nachdem die Seite kürzlich erstellt wurde; siehe zum Beispiel, wie Wikipedia das macht .)
Ilmari Karonen