Wenn Google die Seiten aber gar nicht findet, sind alle
Inhalte darauf für den Suchenden ja auch unsichtbar. Ist ja
auch nur bedingt optimal…
Hä?
Du musst unterscheiden zwischen „Seiten“ und „Dateien“.
Eine „Seite“ sprichst Du über ihre URL an. Das kann sowas sein wie „index.php?pageindex=23“
Das include() lädt den Inhalt einer Datei und stellt ihn in die Seite an Stelle des include-Befehls. Das Ergebnis, eine statische HTML-Seite, wird an den Client (Browser oder Suchrobot) ausgeliefert.
Diese Seite wird im Browser angezeigt. Sie ist über eine URL eindeutig referenziert und wird von Dir sicher über Dein Menü verlinkt. In dieser Seite stehen auch die Inhalte der includeten Datei, nur weiß davon der Client nichts (weil das includen serverseitig abgelaufen ist).
Nicht verlinken sollst Du die Datei, die Du includen willst. Die kann auch ganz woanders im Filesystem stehen, wo sie über den Webserver nicht abrufbar ist (bei gekauftem Webspace normalerweise nicht möglich). Sie kann aber auch im Webspace stehen und theoretisch auch per URL abgerufen werden.
Deine Datei könnte $DOCUMENT_ROOT/includes/seite23.inc.php heißen.
Die Seite könnte /index.php?pageindex=23 sein.
Im include steht dann vermutlich: include($_SERVER[„DOCUMENT_ROOT“]."/includes/seite".$_REQUEST[„pageindex“].".inc.php");
Theoretisch könnte man über die URL „/includes/seite23.inc.php“ auch die Datei direkt abrufen, aber das würde ja niemand machen, diese Datei wirst Du nicht verlinken, und dann findet Google diese auch nicht, was ja auch so sein soll. Die Inhalte aber werden ja über die URL „index.php?pageindex=23“ ausgeliefert, der Inhalt der Datei wird vor dem Ausliefern an den Client in die Seite kopiert.
Ich hoffe ich konnte das Prinzip verständlich machen?