SEO - Importierte Texte werden nicht als Text erkannt?

  • Liebe Freunde,


    ich benutze keinerlei CMS. Im Grunde "spiele" ich einfach mit Content herum, während ich gleichzeitig HTML, CSS und PHP lerne. Ich habe einen (für mich) großen Fortschritt gemacht, auch wenn er in der Welt von CMS eigentlich völlig unnötig ist:


    Statt jede Seite von vorne mit HTML zu schreiben und wiederkehrende Dinge wie die Navigation immer wieder neu zu schreiben, habe ich jedes Element meiner Website (Titelbild, Navigation, Sidebar, Adbox, Content Area, Footer etc.) zu jeweils eigenen .php Dateien gemacht. Sobald ich nun eine neue Seite erstelle, importiere ich mir den jeweiligen Content lediglich mit


    <? php

    include...header;

    include...nav;

    include...content;

    include...adbox;

    etc

    >


    Das funktioniert bislang tadellos in der Darstellung. Alles wird im Browser so dargestellt, als hätte ich die Seite manuell geschrieben. Den Vorteil sehe ich darin, dass ich nur noch diese zu importierenden Elemente bearbeiten muss, statt (viielleicht irgendwann) hunderte Seiten manuell zu ändern, nur um dann zu sehen "näh, mir gefiel es vorher besser." Die anderen Seiten importieren dann das überarbeitete Ursprungselement.


    Auch mit Texten verfahre ich so. Ich habe einen separaten Ablegeplatz für meine Artikel. Auch die importiere ich via php in passender Reihenfolge zwischen die anderen Elemente. Auch hier gibt es mit der Darstellung auf der Seite keine Probleme. Der Artikel wird mir als Text angezeigt. Ich kann die Wörter markieren, kopieren, irgendwo einfügen. Ich kann hyperlinks anklicken usw.


    Doch habe ich neulich einfach aus Interesse ein einfaches SEO-Tool über meine Seite drüberschauen lassen. Erschreckenderweise musste ich festetellen: Words= 0. Das Tool sagt mir, auf meiner Seite ist nicht ein einziges Wort geschrieben. Ich meine in der Tat, die Datei der Seite ist wirklich steril wie ein Krankenhaus. Da ist nur diese lange Include-Kette von importieren Elementen. Kein einziges <p> ist dort geschrieben.


    Heißt das nun wirklich, dass ich mit meiner Methode Seiten produziere, die für z.B. Google oder andere Suchmaschinen oder generell im Sinne des SEO"leer" sind? Es ist für mich schwer vorstellbar. Ich habe aus Interesse mal andere namhafte Seiten aufgerufen und stellte Fest, dass ganze Abhandlungen direkt in der HTML Datei standen. Ich finde das macht alles so fürchterlich unübersichtlich und die Suche der Zeile vor dem Text und der Zeile nach dem Text wird zur Odyssee. Es sah fürchterlich aus. Ich mag meinen Ansatz sehr, denn so sieht die Datei der Seite sehr aufgeräumt aus und alle importierten Elemente sind sauber untereinander aufgelistet. Und möchte ich eines der Elemente verändern, gehe ich in dessen Pfad, öffne nur dieses eine Element und ändere es. Und schon haben alle anderen Seiten diese Änderungen übernommen.


    Habe ich vielleicht bloß am Anfang meiner .txt datei vergessen, etwas mit metatags zu versehen? Etwas wie "hey, dies hier ist ein Text"!


    Ich bitte um Hilfe

  • Zitat

    Doch habe ich neulich einfach aus Interesse ein einfaches SEO-Tool über meine Seite drüberschauen lassen. Erschreckenderweise musste ich festetellen: Words= 0. Das Tool sagt mir, auf meiner Seite ist nicht ein einziges Wort geschrieben.

    Wie bist Du denn dabei vorgegangen? Bei "Words=0" vermute ich, dass Du dem Tools den Quelltext vorgelegt hast, ohne dass er von PHP interpretiert wurde?

  • Ich bin sehr einfach vorgegangen. Es gibt eine Seite (ich weiß nicht, ob ich hier Links posten darf) die heißt seobility.net und dort kann man einfach die URL der beliebigen Seite eingeben.


    Wenn ich meine eingebe, erhalte ich Words = 0 unten in der Statistik. Wenn ich dagegen die Seiten eingebe, welche ihre Artikel direkt in der HTML Datei schrieben, lese ich Words = 2589 oder Words = 3711 etc. Sprich so erkennt dieses Tool ihre Wörter. Mir SOLL es eigentlich recht egal sein, wenn es keine Auswirkungen auf Suchmaschinen hat, wo die Wörter stehen. Vielleicht ist dieses Toll einfach ganz simpel geschrieben.


    Ich habe bloß Sorge, mit dem jetzigen Architektur-Ansatz, welcher mir sehr gefällt zu riskieren, dass mein Content für Suchmaschinen "unsichtbar" bleibt und meine Seiten als leere Zombieseiten ohne Inhalt angesehen werden.

  • Meine Website lautet: http://arnoldkessler.gq/


    Die erste erstellte und vorab mit Textausschnitten befüllte Seite ist: http://arnoldkessler.gq/pages/workout_plans.php


    Die Wortanzahl meiner Website habe ich überprüft mit: https://wordcounter.net/website-word-count Hier erhalte ich insgesamt 19 Wörter...

    Auch habe ich diese Seite benutzt: https://www.seobility.net/en/seocheck/ hier erhalte ich im kleinen Vorschaufenster 403 Forbidden (obwohl meine Seite in Natura perfekt erreichbar ist) und eine Wortzahl von genau 0.


    EDIT: Achtung! Bitte nicht mit Microsoft Internet Explorer öffnen. Das gesamte Layout wird vom Explorer verkorkst und ich versuche gerade daran zu arbeiten. Alle anderen Browser funktionieren perfekt.

  • m.scatello Ich danke dir schonmal vielmals für den Verweis auf den Checker. Noch blicke ich nicht komplett durch alle Fehlermeldungen durch aber ich werde mich definitiv einlesen. Da stehen ja weitere Querverweise, wo man sich schlau machen kann.


    Aber bedingt wirklich eines davon vielleicht, dass mein Text nicht als echter Text anerkannt wird?

  • Die erste erstellte und vorab mit Textausschnitten befüllte Seite ist: http://[…]/workout_plans.php

    Nein, ist es nicht. Diese Seite liefert nur

    HTML
    1. <html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("fb4b2f15a129b426b74de1b3c408c8c7");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://arnoldkessler.gq/pages/workout_plans.php?i=1";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html>

    als Inhalt - und das ist eben nicht besonders viel Text. Nur wenn ein Cookie gesetzt ist wird die eigentliche Seite ausgeliefert (zumindest ist das meine Vermutung) - und da das Onlinetool keinen Cookie mitschickt bekommt es eben den Code oben vorgesetzt, welcher eben nicht viel Text enthält. Das hätte dir allerdings auch auffallen müssen, die eine Seite oben zeigt doch genau an welchen Text es auf der Seite findet (einen klassischen "der Autor ist zu doof eine Seite richtig zu machen und gibt nur eine wenig hilfreiche Fehlermeldung aus"-Text).

    Den 403er in dem anderen Tool bekommst du weil der Server bei bestimmten Browsernamen mit einem 403er antwortet - deswegen musste ich bei wget den Parameter --user-agent bemühen.


    Warum das komische Javascript ausgegeben wird, solltest du schon selbst wissen, du hast es ja so eingerichtet - wenn nicht musst du bei deinem Hoster nachfragen.

  • tk1234 Ich danke dir für deine ausführliche Antwort, doch werde ich noch nicht ganz schlau draus. Meine Seite bezieht ihr Aussehen aus einem separaten Ordner mit lauter .php Dateien welche jeweils Fragmente des Aufbaus wie navbar, sidebar, footer etc. beinhalten. Ihren Inhalt bezieht die Seite aus einem eigenen Ordner welcher gefüllt ist mit .txt Dateien. In allen Browsern außer Internet Explorer kriege ich die Seite in ihrem vollen Umfang angezeigt. Auch den Text. Ich kann ihn kopieren, einfügen, einzelne Wörter anklicken etc.


    Mir gehts ja gar nicht drum, dass bestimmte SEO Tools diesen Text als solchen erachten. Mir gehts darum, dass Suchmaschinen die Seite nicht für "leer" halten sonden den Text als solchen erkennen. Wenn das so ist, kann ich wunderbar damit leben, dass die SEO Tools den Text nicht erkennen.


    Der Javascript ist ein Test gewesen, Google Adsense zu verknüpfen (ist gelungen). Da musste ich den Javascript kopieren und zwischen <head></head> einfügen.


    Ansonsten arbeite ich ausschließlich mit .php Dateien. Die Seiten selbst, die Architekturdateien, Textdateien alles im .php.

  • Meine Seite bezieht ihr Aussehen aus einem separaten Ordner mit lauter .php Dateien welche jeweils Fragmente des Aufbaus wie navbar, sidebar, footer etc. beinhalten.

    Das wissen wir inzwischen schon - das ist aber völlig irrelevant. Wie eine Seite vom Server zusammengebaut wird, ist völlig irrelevant, wichtig ist nur dass der Inhalt beim Client (egal ob Browser, Suchmaschine oder auch SEO-Tool) ankommt - und genau das ist bei dir nicht der Fall. Es wird - beim ersten Request - eben *nicht* das ausgeliefert was du vermutest, sondern das was ich in #8 gepostet habe. Um die Meldung selbst zu sehen musst du nur Javascript abschalten und ggf. noch die Cookies löschen.

    Der Javascript ist ein Test gewesen, Google Adsense zu verknüpfen (ist gelungen).

    Das von mir gepostete Javascript hat doch nichts mit Google zu tun? Ich weiß nicht was du genau gemacht hast, auf jeden Fall musst du aber dafür sorgen dass gleich beim ersten Request die eigentliche Seite ausgeliefert wird - wie das geht, kann ich dir nicht sagen, was du da am Server gemacht/eingestellt hast, musst du schon selbst wissen.

  • tk1234 danke für diesen Hinweis. Ich kenne mich zwar mit den Funktionen von Servern und den Aufbauten nicht aus, aber es macht Sinn, dass der Request erstmal nur die Datei ohne Text sieht und die weiterführenden Dateien (mit Text), welche durch diese importiert werden, übersieht.


    Leider weiß ich nicht, welche meiner Einstellungen dies bewirken könnte. Ich dachte daher, dass ich einfach mal so viele Infos wie nur geht und um meine Seite und die Servereinstellungen poste. Vielleicht wird ja jemand schlau draus. Hoffentlich werde ich im Laufe des Prozesses auch selbst schlau draus.


    Also. Meine Seite wird gehostet auf Infinityfree.com. Auf dieser Seite erhält jede Website zunächst mal die Subdomain .epizy.com. Die .gq domain habe ich noch von Freenom und habe sie mit den DNS Nameservern geparkt. Um ein SSL Zertifikat habe ich mich bislang noch nicht gekümmert.


    Hier ist der Accountbereich, sobald ich mich einlogge:

    Accountbereich.png


    Wenn ich "weitere Einstellungen" gehe, sehe ich folgende Einstellungen zu FTP sowie MySQL:


    FTP MySQL.png


    sowie zu Domain und PHP:


    Domain PHP.png


    Wenn ich nun in den File manager gehe (also da wo ich meine Ordner und Dateien hochlade), sehe ich folgendes:


    htdocs.png


    ich betrete den Ordner htdocs und dort kann ich im Grunde alles was ich offline an Ordnern habe genau so dort einfügen:



    index.png


    im Ordner architecture sieht es so aus:


    architecture.png


    der Ordner pages hat folgende Seiten:


    pages.png


    und die Artikel selbst werden im separaten txt Ordner geschrieben welcher, da so aussieht:


    txt.png


    Um nun endgültig (auch wenn ich es schon mehrmals erklärt habe und es alle verstanden haben) darzustellen, wie eine Seite bei mir aussieht, welche ihr gesamtes Äußeres und den Inhalt importiert, hier ein Beispiel:


    Beispielseite.png


    Ich erkenne schonmal anhand der Färbung, dass <!doctype html> nicht klein sondern im Capslock geschrieben sein muss also <!DOCTYPE html> denn dann wird das html rot unterlegt. So erkläre ich mir, weshalb mir SEO Tools immer noch sagen, es fehle eine doctype-Bezeichnung.


    Aber wo genau die Krux mit dem nicht erkannten Text liegt wird mir noch nicht ganz klar.


    EDIT: Es scheint gar nicht damit zusammenzuhängen, dass ich diese eigenartige Architektur verfolge. Ich habe auf der Index-Seite einen Lorem Ipsum Text innerhalb des <article> geschrieben. Die SEO Tools zeigen nach wie vor eine Wortanzahl von exakt 0 an.

  • Ich habe mal deinen fehlerhaften Code bei mir auf Webseite kopiert.

    Wenn ich die Counter-Teste mache kommen da gute Ergebnisse raus (Optisch, weil habe nicht nach gezählt ).

    Kannst ja mal selber testen

    * Link entfernt, weil existiert nicht mehr *


    Dann habe ich meine Seite und deine Seite mal einen Speedtest gemacht bei https://developers.google.com/speed/pagespeed/insights/

    Beide Seiten stehen sehr gut da und haben jetzt keine Bremsen drinne oder sonst was.


    Mal nee Frage, includierst du gerne? ( bodyopen,bodyclose,,articleopen,articleclose usw...

    Ich würde ja mal gerne die Inhalte sehen was du da machst.

    Ich bin kein PHP Profi und werde jetzt bestimmt auch was Falsches posten,

    aber bei mir würde das ungefähr so aussehen

    Ich finde das es mehr nicht brauch. GGF noch eine Navigation links.

    Ich habe das so,

    das in der inhalt.php der wechselnde Inhalt geladen wird,

    Die Inhalte kommen aus der Datenbank.

    Das ist bestimmt auch nicht perfekt.

    Du hast ja fast mehr Includes als Wörter :)


    Mach doch mal ein Test. Kopiere den Quelltext von meiner Verlinkung.

    Erstelle eine Testseite irgendwo auf dein Server und mache der Counter Test nochmal.

    Was kommt dann daraus?


    Ich Rate mal das die Probleme von deiner include Suppe kommt.

    Der fehlerhafte Code wahr erst meine erste Vermutung, aber man sieht ja das der fehlerhafte Code bei mir läuft.

    Vielleicht wird da irgendwo BOM erzeugt, wo der Counter aufhört zu zählen oder so, das habe ich aber nicht getestet und ist auch nur so nee Vermutung

  • Ich Rate mal das die probleme von deiner include Suppe kommt.

    Schwachsinn! Hast du eigentlich gelesen (und verstanden) was ich oben geschrieben habe? Einfach mal die Seite mit deaktiviertem Javascript oder Cookies aufrufen (ggf. Cookies vorher löschen), du wirst eine einzeilige Meldung bekommen das Javascript nicht aktiviert sei bzw. zu Google-Seite wie man Cookies aktiviert, weitergeleitet werden.

    Die include-Orgie mag ungewöhnlich sein, das Problem ist die aber nicht - das hast du ja bewiesen da es bei dir funktioniert.


    Das Problem liegt irgendwo in den Servereinstellungen, da muss der OP aber schon selbst nachschauen bzw. seinen Provider fragen. Suchorte für die Einstellungen sind .htaccess-Dateien, PHP-Einstellungen[1] (auto_prepend_file fällt mir da ein) aber auch die Apache-Konfiguration selbst auf die man aber idR keinen Zugriff hat.


    [1] es wäre interessant was passiert wenn man eine reine HTML-Seite verwendet - wird dann auch das Javascript ausgeliefert oder gleich der richtige Code?

  • Nachtrag: PHP[1] scheint nicht schuld zu sein, die CSS-Datei wird auch nur ausgeliefert wenn der Cookie vorhanden ist. Das Problem ist dein Free-Hoster (wohl infinityfree.net, nicht .com?) - die haben eben den Nachteil auch mal sowas einzubauen. Google spuckt zu dem Thema auch was aus (Suchworte "infinityfree.net cookie"), genau habe ich das jetzt nicht gelesen, das überlasse ich dir - in die Richtung solltest du aber ggf. weitersuchen.


    [1] btw: deine PHP-Version ist veraltet, verwende mindestens PHP 7.3, alle kleineren Versionen werden nicht mehr unterstützt.

  • Vielen Dank an euch schonmal vorab für diese vielen Denkansätze.


    m.scatello ja das ist richtig, alle eingebundenen Dateien tragen die Endung .php obwohl alle nur aus HTML Code bestehen. Irgendwie schnappte ich das mal in einem anderen Forum auf, dass sobald man etwas mit PHP einbindet, das eingebundene vorsichtshalber einfach .php zu nennen, da es ja falsch nicht sein kann und im Falle des Falles man immer PHP einbauen könnte (nachträglich).


    ABER: Auch die Include-Suppe ist nicht schuldig, dass keine Wörter erkannt werden. In der index-Datei habe ich direkt in der Datei selbst einen <p>Lorem Ipsum</p> eingebaut. Es werden nach wie vor 0 Worte erkannt. Es muss also an den Servereinstellungen liegen, wie tk1234 es bereits im Verdacht hat. Nur was genau es ist, ist mir noch verborgen. Ich werde mal versuchen, im Infinityfree Forum zu stöbern.


    Ich kann gerne als nächsten Schritt versuchen, die Dateien zu .html umzubenennen und das Einbinden statt include dann via readfile stattfinden zu lassen.


    ANDERERSEITS: frage ich mich auch, ist das denn alles notwendig? Ich meine, der Inhalt, den ich rüberbringen will wird doch angezeigt. Also ein Mensch kann meine Seite öffnen und den Artikel lesen, sich durch die Navigation klicken, buttons betätigen etc.


    Nun könnte ich mich fragen: "was kümmert es mich, wenn ein SEO tool die Wortanzahl als 0 erachtet?"

    Weiter frage ich mich dann: "spiegelt die SEO Tool Analyse das wieder, wie Suchmaschinen meine Seite sehen? Als inhaltslos? Oder erkennen die sehr wohl den Text und die Wörter?" Denn wenn dem so ist, dann ganz ehrlich, werde ich keine schlaflose Nacht haben, nur weil das Tool mir keine Wörter anzeigt.


    Mir geht es nur darum, dass die Seite auch durch Suchmaschinen anhand des Inhalts gefunden wird. Okay, noch ist vergleichweise absolut kaum Inhalt da, aber er steht schon in Form von Textdateien bereit.

  • ANDERERSEITS: frage ich mich auch, ist das denn alles notwendig? Ich meine, der Inhalt, den ich rüberbringen will wird doch angezeigt. Also ein Mensch kann meine Seite öffnen und den Artikel lesen, sich durch die Navigation klicken, buttons betätigen etc.

    Wenn er Cookies und Javascript aktiviert hat und auch keines von beidem auf dem Weg zu ihm irgendwo blockiert wird.

    Mir geht es nur darum, dass die Seite auch durch Suchmaschinen anhand des Inhalts gefunden wird

    Da dieses Javascript anscheinend dazu da ist Bots abzuhalten würde ich mal vermuten dass auch Suchmaschinenbots abgehalten werden - und falls der Server auf z.B. den Google-Bot anders reagiert könnte Google da u.U. verschnupft darauf reagieren. Du kannst bei Suchmaschinen aber einfach überprüfen was sie auf deiner Seite finden, einfach nach "site:domain" suchen, bei Google hilft evtl. auch ein Blick in die Webmaster-Tools.

  • basti1012 ich danke dir herzlichst für diesen Post. Der User könnte mir nicht direkter aus der Seele sprechen. Bloß dass er sein HTML zu PHP umrüstete und ich umgekerht :D


    Es scheint also in der Tat am Server zu liegen. Das verursacht, dass die SEO Tools erst diese Barriere sehen und dann erst meinen Content. Allerdings fügt Infinityfree hinzu, dass die gängigsten Suchmaschinen davon nicht beeinträchtigt werden. Naja, irgendwie ist mir das nicht SO ganz koscher.


    Ich muss dazu sagen, dass ich mit Inifinityfree nicht verheiratet bin oder so. Ich habe es lediglich wegen des unbegrenzten Platzes und der unbegrenzten Bandbreite gewählt. Zuvor hostete ich auf 000webhost. Habe übrigens einige meiner dortigen Seiten durch SEO Tools checken lassen. Alle Wörter werden erkannt, h1 h2 h3 werden erkannt, alles tutti. Nur bei Infinityfree haperts.


    Vielleicht werde ich mich mal nach Servern mit ähnlichen Freiheiten wie Infinityfree umschauen, welche jedoch die Zugänglichkeit eines 000webhost mit sich bringen.


    Zitat

    Wenn er Cookies und Javascript aktiviert hat und auch keines von beidem auf dem Weg zu ihm irgendwo blockiert wird.

    Das begreife ich noch nicht gänzlich. Heißt das, dass man keinen Inhalt angezeigt bekommt, wenn man Cookies und Javascript deaktiviert? Bislang habe ich diverse Freunde um Zugreifbarkeitstest auf meine Seite gebeten. Firefox, Chrome, Midori, Microsoft Edge, auf Windows, wie auf Linux. Keiner meldete Probleme.