Warum registrieren? Nur als registriertes Mitglied vom ABAKUS Forum hast Du vollen Zugriff auf alle Funktionen unserer Website.

Fehler von de.onpage.org Canonical

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
euf
PostRank 2
PostRank 2
Beiträge: 30
Registriert: 24.10.2015, 18:33

Beitrag von euf » 26.11.2016, 18:49

Hallo
Ich habe heute mal die kostenlose Version con Onpage.org über meine Seite laufen lassen. Jetzt steht bei: Nicht-indexierbare Seiten mit hohem OPR - folgender Fehler

Code: Alles auswählen

http://seite.com
Vererbt den gesamten PageRank an: http://seite.com/ 
Canonical auf andere Seite
meine Weiterleitungen in der htaccess

Code: Alles auswählen

RewriteEngine on
RewriteRule ^category/(.+)$ /$1 [R=301,L]
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.seite\.com [NC]
RewriteRule (.*) http://seite.com/$1 [R=301,L]
RewriteEngine on
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://seite.com/$1 [L,R=301]
System

Wordpress

Ist die Schlimm, und wenn ja wie kann ich das beheben?

ABAKUS Anzeige

von ABAKUS Anzeige »





SEO Consulting bei ABAKUS Internet Marketing.
Nutzen Sie unsere jahrelange Erfahrung und lassen Sie sich beraten!
Jetzt anfragen unter: SEO Consulting oder kontaktieren Sie uns direkt unter: 0511 / 300325-0


mediadonis
PostRank 6
PostRank 6
Beiträge: 381
Registriert: 16.02.2006, 14:06
Kontaktdaten:

Beitrag von mediadonis » 01.12.2016, 13:17

Servus!
Freut mich sehr, dass Du unser OnPage.org Free für die Optimierung Deiner Webseite einsetzt :)
Bzgl. Deiner Frage:
Letztendlich besteht hier kein wirkliches "Problem", da Du ja einen Canonical von der non-slash Variante auf die slash Variante der Domain gesetzt hast. Ein Canonical ist hier zwar nach dem 301er die zweitbeste Option, aber dennoch gut und richtig gelöst.

Um generell von non-slash auf slash Varianten weiterzuleiten, musst Du Deine htaccess nur um ein paar Zeilen erweitern:

RewriteEngine on
RewriteCond %{REQUEST_URI} !.(php|html?|jpg|gif|css|js|css?|js?|php?)$
RewriteRule ^((.*)[^/])$ /$1/ [L,R=301]

Aleyda hat hier einen sehr schönen Redirect Generator - evtl. hilfreich in der Zukunft:
https://www.aleydasolis.com/htaccess-red ... generator/

Viel Erfolg weiterhin und happy optimizing :)
Mediadonis.net
----------
Try OnPage.org FREE - die volle Kraft von OnPage.org, gratis für kleine Webseiten!

Benutzeravatar
mwitte
Administrator
Administrator
Beiträge: 4136
Registriert: 08.09.2006, 17:31
Wohnort: Münster
Kontaktdaten:

Beitrag von mwitte » 01.12.2016, 14:09

@marcus: Danke für den Link mit dem Redirect generator -- kannte ich nicht -- ist aber cool!
Wichtigste Forumregel: Nimm NICHTS persönlich -- alles ist Feedback...
Online-Profession GmbH - Online-Marketing-Agentur aus Münster

euf
PostRank 2
PostRank 2
Beiträge: 30
Registriert: 24.10.2015, 18:33

Beitrag von euf » 04.12.2016, 16:42

ich habe keinen Canonical angegeben, dass hat Wordpress automatisch gemacht.
ich möchte dir Urls aber ohne einen slash am Ende.
Warum fügt Wordpress automatisch den Canonical ein?

euf
PostRank 2
PostRank 2
Beiträge: 30
Registriert: 24.10.2015, 18:33

Beitrag von euf » 04.12.2016, 16:55

der Code entfernt den Slash

Code: Alles auswählen

remove_action('wp_head', 'rel_canonical');

M2
PostRank 5
PostRank 5
Beiträge: 230
Registriert: 05.04.2012, 22:01

Beitrag von M2 » 04.12.2016, 19:01

Der Canonical ist doch zur Vermeidung von Duplicate Content innerhalb einer Domain geschaffen worden. Somit lassen sich eben doppelte Inhalte technisch kennzeichnen und vermeiden.

Damit kannst du dem Bot sagen: "Hey, du bist zwar auf der Seite example.com/category/, aber der eigentliche Inhalt liegt example.com/category". Also mit und ohne "/"

Das hat aber nullkommagarnix mit der URL zu tun, die in der Adressleiste steht. Das regelt man dann über die .htaccess. (oder in WordPress über die Permalinks, was aber aufs Gleiche hinaus läuft).

Das WP erstmal prophylaktisch einen Canonical setzt, ist doch völlig ok. Es schadet nichts dem Bot mitzuteilen, das example.com/ ist eigentlich unter example.com erreichbar ist.

Deswegen auch die völlig richtige Antwort
Letztendlich besteht hier kein wirkliches "Problem", da Du ja einen Canonical von der non-slash Variante auf die slash Variante der Domain gesetzt hast. Ein Canonical ist hier zwar nach dem 301er die zweitbeste Option, aber dennoch gut und richtig gelöst.
die Dir marcus schon gegeben hat.

/Affilitiv/
PostRank 6
PostRank 6
Beiträge: 435
Registriert: 11.08.2015, 12:50
Kontaktdaten:

Beitrag von /Affilitiv/ » 04.12.2016, 22:48

mediadonis hat geschrieben:Letztendlich besteht hier kein wirkliches "Problem",
nachdem ich hier 3 mal gelesen hatte, merke ich erst das oben im Post die Domain mit bzw ohne / endet



da Du ja einen Canonical von der non-slash Variante auf die slash Variante der Domain gesetzt hast. Ein Canonical ist hier zwar nach dem 301er die zweitbeste Option, aber dennoch gut und richtig gelöst. [/quote]
ähm?

habe eben eine DOmain im FF aufgerufen
einmal mit / einmal ohne
dann das selbe mit IE
Ergebniss
FF zeigt in der URLzeile niemals den /
IE zeigt den / immer


dann (auch mit beiden Browser; Das ist zwar unötig ....)
mit HTTPreader ....
https://www.andyhoppe.com/software/https- ... header.htm
wieder mit / und ohne
auf der "Ausgabeseite" steht dann immer der / als Adresse drin

Fazit
Domain, ohne Pfad und oder Datei hat teschnisch trotzdem einen / der von FF aber nicht angezeigt wird

also, Domain ohne Slash gibts NiCHT







für HTTPread habe ich eine funktion

Code: Alles auswählen

function httpheader( $url ,$headonly=0)
{ 
	$TEXT=    strtok($url,'/');$TEXT=str_replace(':','',$TEXT);
	$host=    strtok(     '/');
	$path='/'.strtok(      '');
	
	$domain['host'] =       @gethostbyname( $host );
	$domain['host'].=' @ '. @gethostbyaddr( $domain['host'] );
	
   if (strlen($TEXT)==5)
   {
       //$host='ssl://'.$host;
         $PORT=443;
   }else $PORT=80;$PORT=80;
	
	$fp = @fsockopen ($host, $PORT, $error_number, $error_string, 30);
  	if ($fp)
	{
		fputs ($fp, "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n");
/*
                if (strlen($TEXT)==5)
		     fputs ($fp, "GET $path HTTPS/1.1\r\nHost: $host\r\n\r\n");
		else fputs ($fp, "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n");
*/
		
		$buffer=''; $block=256; $httph=0;
		while (!feof($fp) && ++$httph) 
		{
			$line=fgets($fp,$block);
			if ( !strlen( trim($line) ) ) $httph=-1;
			elseif ( $httph==1 )
			{
				$domain['tp']  =strtok($line,' ');
				$domain['stat']=strtok(       '');
			}
			else
			{
				$tok         =strtolower(strtok($line,':'));
				$domain[$tok]=           strtok(       '');
			} $domain[http].=$line;
		}
		while (!feof($fp) && !$headonly) 
		{
			$line=fgets($fp,$block);
			$domain[html].=$line;
		}
		fclose($fp);
//		$content.=nl2br($domain[http]);
	}
	return($domain);
}

mal kurz abwandeln
um zu sehen was passiert

Code: Alles auswählen

$path='';
		fputs ($fp, "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n");

Ergebniss .... HTTP/1.1 400 Bad Request


Also
Domain ohne Slash aufrufen geht nicht (der Browser hängt einen dran)

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag