今日は本当に基礎的な事なんですけれど、まだまだPHPを使い始めたばかりの方向けへ。
PHPを使うと同じテンプレートページさえ用意しておけば、データベースから情報を引っ張ってくるだけで無数に情報が違うページを作成出来ます。
1ページ1ページHTMLで作成しても良いんですが、データ量が大量になってきた時に管理がしきれませんし、いざWebページのレイアウトを変更しようとすると全ページの変更が必要になるケースも。
ここではPHPの利点を活かし、titleタグやページ情報を動的に変更するようにしましょう。
動的ページのtitleタグが固定だとSEOでは不利
SEO対策で非常に重要といわれているページタイトルを指し示すtitleタグ。
こんな感じで書かれる部分ですね。
PHPでGETでパラメーター指定するページの場合、URLが以下のようになります。
このURLを静的に見せる方法としてはApacheのmod_rewriteと言うモジュールがあります。
そっちは「PHP URL 静的」とかでぐぐればいくらでも出てくるんでいいとして、意外とtitleタグ内を動的に変更する記載が無かったんでメモ的に。
って言ってもPHPの基礎中の基礎です笑。
ページタイトルを動的に書き換えるには
まず前提として、例えばDBとか何かしらにその固有のページを指し示す文字列がある事が前提です。
例えば飲食店のポータルサイトを例としてみましょう。
通常、PHPファイルでもHTMLファイルでも<title>タグに設定したものはどんなパラメーターを渡されても一定です。
Aラーメン店とBイタリアン店があっても、結局はPHPでDBなりの内容を読み込んで出力してるだけなんで、大元のファイルは1つですよね。
なので<html>タグの前でデータを読み込んでおきましょう。
ここではMySQLを例とします。
次のようなテーブルがあるとましょう。
DB:users
user_id | shop_name |
---|---|
1 | Aラーメン店 |
2 | Bイタリアン店 |
で、ここで変更したいのはtitleタグ。
このままだとページタイトルは飲食店ポータル | 検索詳細となんの詳細やらさっぱりわからんこっちゃになってます。
次のように書き換えてみましょう。
これでページタイトルは飲食店ポータル | Aラーメン店になります。
こんな応用も出来ます。
htmlspecialchars関数を使う時はちゃんと第三引数まで指定するんだよ!
こんな感じの書き方にすると、ページタイトルは飲食店ポータル | Aラーメン店詳細になります。
本当に基礎的は部分なんですが、こういう細かいところが非常に大事です。
こういう対策をしておかないと、Google等で検索した時にずらっと並ぶ検索結果が飲食店ポータル | 検索詳細ばっかりになるばかりかインデックスされない可能性も大いに出てきます。
上記のような対策をする事でせっかくのPHPの利点である動的なページ生成を検索ロボットに対して明示できるので、「このページはちゃんと別のページですよ」ってのが分かる=インデックスされやすくなると思います。
それにユーザー目線で見て、飲食店ポータル | 検索詳細と飲食店ポータル | Aラーメン店だったらどっちがクリックしたくなる?ってもんです笑。
大事なのはユーザビリティ
良くSEO対策とかで検索すると完全に検索エンジン対策に特化した記事も多いので忘れちゃいがちですが、一番大事なのは見てくれるユーザーです。
ぶっちゃけ検索 エンジン への対策なんてしなくたって良質なコンテンツが揃ってるWebサイトだったら最低限でインデックスされますし検索上位にもなります。
逆にSEO対策万全!ってページだってコンテンツがろくでもなかったりコピーコンテンツばかりだったら見向きもされないでしょう・・・笑。
Webサイト構築は誰かが見る事が一番の目的である事を忘れないでいきたいですね!
コメント