php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Google indexiert Hauptdomain anstelle von Sprachdomains


 
danny77
15-06-2017, 18:59 
 
Guten Tag,
seit mehreren Monaten habe ich das Problem dass in den serps bei Suchbegriffen hauptsächlich nur meine Hauptdomain angezeigt wird anstelle der Sprachdomains:

domain.it

anstelle von:
domain.it/de/site.html
domain.it/it/site.html

Das hat zur Folge, dass bei Italienischen serps immer deutsche meta titel und description angezeigt werden, da deutsch default ist.

Leider ignoriert Google meine Browsererkennung.

Von der Hauptdomain leite ich den Fluss mit 301 weiter:

$template['canonical'] = 'domain.it/de/site.html';
include('sites_de/site.php');

header("HTTP/1.1 301 Moved Permanently");
header("Location: domain.it/de/site.html");


..
(dasselbe für italienisch)
..

da deutsch default ist und die Browsererkennung nicht funktioniert, wird google immer auf die deutsche Seite geleitet.

Dort hätte ich allerdings aber alternative tags gesetzt:


<link rel="alternate" hreflang="it" href="domain.it/it/site.html" />
<link rel="alternate" hreflang="x-default" href="domain.it/de/site.html" />
<link rel="alternate" hreflang="de-IT" href="domain.it/de/site.html" />


Scheinbar ignoriert google meine Weiterleitung als auch meine alternativen language tags..

Bereits ein halbes Jahr habe ich dieses Problem...
Was kann ich tun um das Problem zu beheben ?

Edit:
Sozusagen
anstelle von domain.it
sollen die Sprachdomains an erster Stelle sein
domain.it/de/mainsite.html
domain.it/it/mainsite.html

 
ArneDrews
20-06-2017, 10:28 
 
Ist das echter Code bzw. auch die Reihenfolge?
$template['canonical'] = 'domain.it/de/site.html';
include('sites_de/site.php');

header("HTTP/1.1 301 Moved Permanently");
header("Location: domain.it/de/site.html");
...dann wäre zunächst die Frage: Was befindet sich in der site.php?

 
danny77
20-06-2017, 10:43 
 
Ist das echter Code bzw. auch die Reihenfolge?

...dann wäre zunächst die Frage: Was befindet sich in der site.php?


Hallo ArneDrews,
ja das ist echter Code und auch die Reihenfolge ist so.
Dort befinden sich Variablen wie titel, meta description und schlussendlich content mit html. (Nur Variablen kein output)



$template['page_title'] = '...';
$template['meta_description'] = '...';
$template['keywords'] = '...';
$template['image'] = '...';
$template['content'] = '...';


Ich lese die Datei dann immer zuerst ein bevor ich head oder irgendwas ausgebe, anschließend werden die Variablen am richtigen Platz ausgegeben. Also Google rendert alles schön runter vor der Weiterleitung.

Ich poste hier noch meine Browsererkennung:

if(!empty($langchose)) {

switch($langchose){
case "de":
$template['language'] = 'de';
break;
case "it":
$template['language'] = 'it';
break;
default:
$template['language'] = 'de';
break;
}

}else{

$lang = isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2): '';
switch ($lang){
case "it":
$template['language'] = 'it';
break;
case "it-it":
$template['language'] = 'it';
break;
case "de-de":
$template['language'] = 'de';
break;
case "de-it":
$template['language'] = 'de';
break;
case "de":
$template['language'] = 'de';
break;
default:
$template['language'] = 'de';
break;
}

}

$langchose enthält entweder de oder it aus der domain (domain.it/de/site.html)
Der Bot bekommt dann default:


default:
$template['language'] = 'de';
break;


Edit: Noch ein Anhang wie Google die Hauptdomain rendert.
2. Bild alternative tags.

 
ArneDrews
20-06-2017, 22:17 
 
Dort befinden sich Variablen wie titel, meta description und schlussendlich content mit html.Was genau meinst Du mit "content mit html"?
Wenn Du das hier nicht veröffentlichen willst, sende mir die Datei mal per PN oder Skype ( user:wazdazdenn ), ansonsten raten wir beide hin und her, was der andere meint... ;-)

 
danny77
20-06-2017, 22:44 
 
Was genau meinst Du mit "content mit html"?
Wenn Du das hier nicht veröffentlichen willst, sende mir die Datei mal per PN oder Skype ( user:wazdazdenn ), ansonsten raten wir beide hin und her, was der andere meint... ;-)

Hallo ArneDrews,
also in der Datei site.html (site steht hier als Platzhalter für eine Unterseite - gerade meine ich aber die startseite) befinden sich zum Beispiel folgende Variablen:


$template['page_title'] = 'Ich bin ein Titel einer Seite';
$template['meta_description'] = 'Ich bin eine description einer Seite';
$template['keywords'] = 'bla,blu,ble';
$template['image'] = '/bildlink.jpg';
$template['content'] = '<h1>Hier noch mal der Titel der Seite</h1>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
<h2> Ein Untertitel</h2>
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
';


Ja ich weis mein Template was ich mir gebastelt habe ist womöglich etwas unüblich, aber mir passt es so ;D.

Ich habe es geschafft endlich die Hauptdomain aus den deutschsprachigen serps zu bekommen.
Anstelle von domain.it bekomme ich nun domain.it/de/site.html.

Bin mir nicht mehr sicher wie und wann ich das lösen konnte, weil ich immer wieder dran gebastelt habe.
Vermutlich weil ich falsche sublangtangs benutzt habe wie de-IT (was es warscheinlich nicht gibt).

Allerdings ist in den italienisch sprachigen serps immer noch nur die Hauptdomain mit deutschen titel und meta.

Sozusagen bekomme ich jetzt beim suchen meines Domainnamens in deutsch:
domain.it/de/site.html

auf italienisch
domain.it/ (vor kurzer Zeit eben auch noch auf Deutsch so, auch viele andere Begriffe sind von dem Problem betroffen)

Um das ganze zu überprüfen nutze ich whatsmyserp.com. (-> nicht ein cache problem)

Wenn es dir Recht ist schicke ich dir meine Domain zu, möchte die nicht hier veröffentlichen =).

 
ArneDrews
20-06-2017, 22:52 
 
Hast Du mal ganz zu Anfang Deines Scriptes ( vermutlich index.php ) das ErrorReporting hochgedreht?

error_reporting ( -1 );
ini_set ( 'display_errors', true );

Da kommt vielleicht dann der ein oder andere Hinweis, ich tippe nämlich trotzdem auf ein Cannot add header information...

 
danny77
20-06-2017, 22:57 
 
Hast Du mal ganz zu Anfang Deines Scriptes ( vermutlich index.php ) das ErrorReporting hochgedreht?

error_reporting ( -1 );
ini_set ( 'display_errors', true );

Da kommt vielleicht dann der ein oder andere Hinweis, ich tippe nämlich trotzdem auf ein Cannot add header information...

Fehler oder Anmerkungen, bereinige ich meistens immer gleich. Momentan habe ich auch keine mehr bekommen seit einer Weile und das Problem mit der Indexierung habe ich schon gut ein halbes Jahr.
Dürfte also kein Problem mit dem Header sein. Bei der Google render funktion (Abruf wie durch Google, Bild welches ich oben gepostet habe) kann man auch sehen, dass die Weiterleitung und alle variablen ankommen.

Edit 21.06:
Anhang 2: Endlich Sprachdomain in den deutsch sprachigen serps.
Anhang 1: Problem noch vorhanden, nur Hauptdomain.
Hier handelt es sich um das selbe keyword/Suchword.


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:20 Uhr.