Die einfachste Variante wäre, die betreffenden Seiten von „veröffentlicht“ auf „Entwurf“ unmzustellen, womit sie allerdings nicht nur von Suchmaschinen, sondern auch von allen anderen Webseitenbesuchern nicht mehr gefunden werden.
Möchtest du nur die Indexierung durch Suchmaschinen verhindern, kannst du ein SEO-Plugin installieren und für jede Seite einzeln angeben, ob sie für Suchmaschinen sichtbar sein soll. Das muss nicht so ein doch eher mächtiges Plugin wie WordPress SEO (Yoast) sein, du kannst auch z.B. das schlankere The SEO Framework verwenden:

Noch ein Hinweis: Solche Metaangaben sind Empfehlungen, an die sich nicht alle Suchmaschinen halten.
Vielen Dank für das Plugin @pixolin, habe es jetzt installiert, sieht sehr vielversprechend aus. Sowas suche ich eigentlich eh schon seit geraumer Zeit 🙂
Aber meine Frage, wie man einen 404 Error auf einer spezifischen Seite sendet ist dadurch nicht beantwortet. Es halten sich nämlich nicht alle Suchmaschinen an den noindex-Standard, deshalb möchte ich einen 404 senden.
Aber meine Frage, wie man einen 404 Error auf einer spezifischen Seite sendet ist dadurch nicht beantwortet.
Das habe ich doch beantwortet: der Server gibt automatisch einen 404 aus, wenn die Webseite nicht gefunden wurde. Dazu brauchst du nur die Sichtbarkeit von „veröffentlicht“ auf „Entwurf“ setzen.
Du kannst auch statt dessen einen Header 404 selber setzen, wie es in dieser Antwort beschrieben wird: https://wordpress.stackexchange.com/a/92176
Sinngemäß kannst du auch das Plugin Code Snippets installieren und ein neues Snippet erstellen mit folgendem Inhalt:
function my_event() {
global $post;
$page = get_page_by_title( 'Sample Page' );
if ( $page ) {
global $wp_query;
$wp_query->set_404();
status_header(404);
}
}
add_action( 'wp', 'my_event' );
Das Ergebnis ist aber das Gleiche: Weder Suchmaschinen noch Webseitenbesucher können die Seite sehen. Soll die Seite ausgegeben werden und der Header nur auf 404 gesetzt werden, reicht dieser Code:
function my_event() {
global $post;
$page = get_page_by_title( 'Sample Page' );
if ( $page ) {
status_header(404);
}
}
add_action( 'wp', 'my_event' );
Soll die Seite ausgegeben werden und der Header nur auf 404 gesetzt werden, reicht dieser Code
Sehr gut, genau das beantwortet meine Frage @pixolin.
Und das Plugin beantwortet Fragen, die ich hier noch nicht gestellt habe 🙂
Vielen Dank!
Zu früh gefreut!
Das Snippet
function my_statuscode_404() {
global $post;
$page = get_page_by_title( 'Datenschutzvereinbarungen' );
if ( $page ) {
status_header(404);
}
}
add_action( 'wp', 'my_statuscode_404' );
sendet den 404 auf jeder Seite, nicht nur auf der einen einzigen.
Was mache ich falsch?
Was mache ich falsch?
Habs gefunden, die Funktion muß heißen
$page = get_the_title();